Thanks to the relatively low cost of the Raspberry Pi and high resolution LCD screens, “smart displays” have become a favorite project of those looking to clear out their parts bins. Just hook the Pi up to the screen, setup some software, and you’ve got yourself a digital bulletin board for your home that can show your schedule, the weather, etc. Build it into a mirror, and you’ve got yourself at least double Internet points.
But when [John Basista] started planning his own smart display, he decided to take the path less traveled. He’s entered the resulting open source project into the 2019 Hackaday Prize, and we’re very excited to see where it goes from here. Even in these early days he’s already made some great strides, with nary a Raspberry Pi in sight.
[John] has nothing against using the Raspberry Pi for these smart displays, and indeed, it has a number of traits which make it particularly well suited to the task. But the problem for him was that it only supported HDMI, and he had his heart set on using an Embedded DisplayPort (eDP) screen. Namely the Innolux N173HCE-E31, a 17.3 inch IPS LCD designed for laptops.
He tried to find a Linux or Android compatible SBC that featured eDP, but found it to be a challenge. There were some x86 options, but didn’t want to go down that road. Eventually he settled on the Dragonboard 410c, which features a quad-core Qualcomm APQ8016E CPU running at 1.2 GHz and 1GB of RAM. This board didn’t have eDP either, but it did have Display Serial Interface (DSI), which he could convert to eDP with the Texas Instruments SN65DSI86 IC.
From there, he started developing a PCB which would hold the Dragonboard 410c and the SN65DSI86. The board also breaks out I2C and UART so he can connect it to various other sensors and gadgetry down the road, and includes all the necessary power regulation to drive everything. The whole thing fits in the palm of your hand, and judging by the renders [John] has put together, should nestle nicely into the back of the 3D printed enclosure when everything is finished.
There’s still quite a bit left to do on this project, but [John] has plenty of time to tie up the loose ends. Currently there’s little information about the software side of things, but as you can see in the video after the break, it’s now running Android which should make things relatively easy.
18 thoughts on “Open Source Smart Display Takes The Long Way Around”
Doesn’t the Raspberry Pi 3 (and others) have a DSI interface?
I believe it does, but that only one or two screens actually work with it. Maybe the same DSI > eDP adapter would work for Pi’s too. The performance of the interfaces on the Pi (HDMI vs DSI) may be a factor as well?
so why not make this for the PI then? Being able to plug in an iPad display (even when driving at 1080P only) would be amazing!
The connector on the regular RPI boards only break out 2 MIPI DSI lanes. That’s enough to drive maybe 1200×800? I’ve been trying to find an LCD from a phone that is cheap, readily available, and can be driven by 2 lanes. There aren’t any. You can find tons of displays that are cheap and super-duper HD+ resolution, but they all need 4 lanes.
The RPI Compute module does break out all 4 lanes, but you need a separate motherboard for it.
That’s not completely correct. You can run a lot of these displays with only some of the DSI lanes connected. However, you will either be restricted in terms of resolution – as most commenters here noticed – or frame rate – depending on your application this might be less of an issue.
Also, you will need access to the datasheet for your display controller.
Source: we did this at a previous job with an eval board that did not give us access to enough DSI lanes. This way, we only needed a passive adapter board for the first prototype.
(This is a reply to lw2’s comment below, it won’t let me reply directly, for some reason.)
Do you remember what LCD controller you used for that project?
I’ve looked through dozens of datasheets, and I couldn’t find any recent controllers that say they support 2-lane DSI. I assumed that if the datasheet doesn’t explicitly say it supports 2-lanes, you can’t use it that way.
The most recent controller I could find that explicitly says it supports 2-lane operation is the Ilitek ILI9881C. Unfortunately it’s 5 years old and only supports 1280×800 resolution. More importantly, I haven’t been able to find any panels for sale that actually use it.
If he needed a converter chip anyway, why not choose one that goes from HDMI to eDP?
Not sure that there is even one like that. HDMI and eDP are totally different, HDMI is effectively still emulating the old analog TV standard, just encoded digitally (so you still have vsync, hsync, frames, etc. just encoded digitally) plus everything is synchronous (clocked). Display Port is packet based instead. Converting from one to the other would require a large buffer and quite complicated silicon, even without the HDCP mess in HDMI.
However MIPI-DSI to e.g. parallel RGB interface (or more likely the reverse – parallel RGB to MIPI) or to HDMI/DVI or Display Port are quite common – MIPI is a common high speed synchronous interface present on most higher end SoCs for connecting LCD displays (and cameras and other things), so if you want a monitor output, it needs to be converted to e.g. HDMI. And there are quite a few chips for doing that available.
If you search for HDMI to eDP adapter, you can find several boards that do the job, and some seem to have just one big chip on them.
made the retina display work with the pi in a diy projector with a DP to edp Adapter like this: http://emerythacks.blogspot.com/2013/04/connecting-ipad-retina-lcd-to-pc.html
and a HDMI to DP Adapter. After some fiddling with the pi config it supports 2048×1536.
Khadas Edge-V has an eDP connector :)
Maybe try to connect this to some tablet/mobile phone with broken display to drive price down even further.
There are a bunch of boards that have eDP support.
The Olimex Teres-I DIY laptop has it, (albeit via a bridge chip). I’ve got my eye on the Khadas Edge-V, which has 4-lane MIPI DSI *and* eDP routed out to connectors.
It’s a shame he didn’t want to go the x86 route. Most laptops these days use eDP screens. I bought a couple Acer C720 Chromebooks with broken displays off eBay for ~$35 each, and some new 11.6″ eDP displays for ~$30 each. Most eDP displays use the same connector (30-pin IPEX for 1/2 lane, 40-pin for up to 4 lanes), and the replacements worked perfectly. There was no config or anything, it was literally plug and play. I put hacked UEFI firmware on them and now I’ve got a bunch of little Linux laptops that cost ~$70 each.
eDP is the best thing to happen to laptops since Li-Ion batteries!
Sorry but according to their website, it only does 2 lane MIPI DSI.
Where did you read that it only has 2 lanes?
The schematic for the Edge-V shows 4 MIPI DSI TX lanes routed out to a connector, as well as an eDP connector with all 4 lanes. It looks like there are actually 3 MIPI DSI connectors, 1 dedicated TX, 1 dedicated RX (for cameras), and an additional port that can be RX or TX. Each connector has all 4 lanes accessible.
It seems like a very capable board!
I really don’t understand the focus on HDMI for output when DP is an open standard. I work in digital signage and find it confusing that only the cheapest TVs come with DP ports. Most of the higher end or more expensive (not necessarily the same thing, looking at you LG) get rid of DP. Sharp doesn’t even support it. But DP converts to HDMI and vice versa quite readily. I guess the only solace is knowing when USB-C 3 takes over, we’ll have DP over USB native.
I think you answered your own question. Since DP is royalty-free, it makes sense that it is the cheapest to implement. Plus DP is really only on PCs, so adding it to a TV is superfluous. I bought the cheapest DP-enabled monitor I could find a couple years ago, and, of course, I couldn’t help but open it up and see what the controller looked like. The display itself was native LVDS, and there was a DP bridge chip that also provides a VGA input. If big displays used native DP timing controllers instead of LVDS, it would make sense to provide the DP input, and then add a bridge chip for HDMI, but all of that costs more. A few years back Intel got rid of LVDS and only provides DP outputs, so PC laptop displays are almost all eDP at this point. HDMI is provided by a DP-to-HDMI bridge chip. USB-C DP-over-Alt mode uses a physical switch on the USB3 lines that routes them directly to a DP source.
IMHO, MIPI DSI and HDMI are relics, that are popular simply because they have been popular. DP is faster, cheaper, simpler, and overall much easier to work with (see my plug-and-play comment up above). Just like how LVDS displays are still common, established technologies take a while to disappear. But sooner or later we will hit the limit of that tech, and the newer/faster/simpler thing will take over.
Please be kind and respectful to help make the comments section excellent. (Comment Policy)