Ethernet LCD for art project - Page 1
Forum section: electronics / projects

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: June 08, 2022, 11:15:15 pm
content: I'm looking at possible solutions for a device to be used for an (expensive) art installation, wondering if anyone has any ideas beyond where I've got to so far....Requirement is fairly simple : A 720x720 square TFT LCD (16 or 24 bit), which has already been sourced.This will display uncompressed still images sent over 100M ethernet (UDP or raw frames) , powered via PoE. Needs a minimum of 2 frames' worth of RAM (2Mbytes) More is desirable.Build will be in the 100-200 range, parts must be available this month, final build around August. Target cost £20-30 excluding LCD.Possible solutions considered so far :1) SoC type processor with inbuilt ethernet, LCD and DRAM controller, bare metal C codeSAMA5D2 looks like a good possibility: well documented, just about available, 0.8mm BGA, 100M Ethernet MAC (needs external Phy), DDR2/3/4 interfacePros :Low risk - hardware is definitely capable of the job so can order critical parts ahead of development, and use a devboard to get startedOther goodies available for future fun - camera interface, lots of CPU power for compressed images, overlay/alpha key capability in LCD controllerBare metal support supposedly available ( I've yet to investigate this)0.8mm BGA should be manageble, probably on 6 layer PCBRough BOM cost about £20 ( CPU £5, DRAM £2 Ethernet Phy £2, PMIC £1.50, Poe & other parts £5, PCB £5 )Cons - not found much yetAny other suggestions ? Documentation likely to be the downside for the lesser-known cheap SoCs. Happy to trade higher device cost against easier development.2) As above but running LinuxPros :Ability to use existing software for networking, image handling,decompression etc.Lesser known SoCs may be more viable as Linux packages already exist for themCons :Needs a lot more RAM, and local MMC/SD card. Probably trickier to do over-the-wire FW updatesI'd need to learn Linux (Long term pro, short term con!)3) As above but using ready-made Linux sbc.Pros : less to build, proven hardwareCons : availability, cost, LCD almost certainly will have different pinout so will need a carrier/interface for that and probably PoEAFAIK all flavours of Raspberry Pi & compute module are unobtainium in quantity - I believe it can do a parallel LCD interface though so might have been an option otherwise4) FPGA + Ethernet Phy+ SRAM/DRAMEthernet side not too hard as it's a closed system, so can take shortcuts to simplify the Ethernet MAC, like ignoring CRC, fixed offsets into packet for UDP payload etc. (Although we're only receiving, still need to be able to transmit so that an ethernet switch can learn MAC address for routing.Need ARP if using UDP vs. raw frames, but probably not too hard - maybe a pre-stored reply packet with precalculated CRC - I don't yet know enough about the protocol to know if this is possible. )Pros : Potentially cheaper, maybe doable with QFP rather than BGACons : probably more work, less predictable development time, hard to predict how big an FPGA needed to buy stock ahead of development, poor part availability5) Is there any sort of complete "ethernet LCD monitor" thing that already exists or something that could be repurposed ? Square format is desirable ( artists....), but an off the shelf solution in another format could be persuasive.Any input welcome...!

author: nctnico
author_rank: Super Contributor
timestamp: June 08, 2022, 11:41:13 pm
content: Nowadays bootloaders already contain a lot of drivers for video, ethernet and storage. This might be a good starting point for a 'bare metal' implementation; Linux is nice for having more interfacing & GUI abilities but for just displaying video that comes in over ethernet the bootloader could be good enough.Maybe a device from Allwinner is a good option as well. AFAIK availability is better and there is community support + reference designs.

author: radar_macgyver
author_rank: Frequent Contributor
timestamp: June 08, 2022, 11:50:45 pm
content: One additional reason to consider an SBC or SoC running Linux is that you can diagnose connectivity issues using standard networking tools (ping, iperf, etc). When you have 100-200 of these, initial testing of connectivity will chew up a lot of time.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: June 09, 2022, 12:00:59 am
content: Quote from: nctnico on June 08, 2022, 11:41:13 pmDo you have any specific examples ?

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: June 09, 2022, 12:32:47 am
content: This looks interesting , about a tenner on Aliexpress :https://www.orientdisplay.com/introduction-of-lichee-pi/

author: Someone
author_rank: Super Contributor
timestamp: June 09, 2022, 12:40:39 am
content: Quote from: mikeselectricstuff on June 09, 2022, 12:00:59 amU-boot is a tiny little system that is a first/second stage bootloader to load linux on many embedded boards, it can host applications and has a fairly wide driver support.

author: free_electron
author_rank: Super Contributor
timestamp: June 09, 2022, 01:11:51 am
content: rpi compute module ? those are cheap

author: mariush
author_rank: Super Contributor
timestamp: June 09, 2022, 06:59:20 am
content: How much space?If you can hide it behind the lcd panel... I was thinking repurposing some of those refurbished thin clients computers but it would probably be difficult to source 100+ of the same model.Could be powered through the ethernet cable... and I guess you'd just need a lcd driver board to convert dvi/hdmi/vga to the lcd input if the board doesn't have some lvds output..example : (says 71 available, $10 each)https://www.ebay.com/itm/224911411317?hash=item345dc3c875:g:NLUAAOSwaaZhsTWuorhttps://www.ebay.com/itm/284810363200

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: June 09, 2022, 08:06:38 am
content: Quote from: free_electron on June 09, 2022, 01:11:51 amYes, but apparently unobtainable at the moment

author: macaba
author_rank: Regular Contributor
timestamp: June 09, 2022, 10:23:05 am
content: In the absence of Raspberry Pi (where pimoroni and waveshare do 4" 720x720 screens with Pi mounting), I would say that the suggestion above of using eBay-sourced thin clients (flashed with Windows 10 IoT Enterprise/linux rather than citrix) with HDMI connection to the screen (seems aliexpress has those 720x720 screens with onboard HDMI) seems most pragmatic to make it a pure software solution.It would be easy to get each client to navigate (with a full screen browser window) to a webpage (http://192.168.16.100/screens/0) with the background set to an image. Extend that a bit more with websockets and you get full async control/instant update. Other lower level approaches also possible (C# WPF app that listens on a socket for images pushed to it and displays it on an image control, etc, etc).Edit: looking atthis documentit seems certain thin client model numbers also support linux. Looks likethis low cost onesupports linux with an older version of the imaging tool.

author: Berni
author_rank: Super Contributor
timestamp: June 09, 2022, 10:32:42 am
content: That is quite a project.Cheapest method is definitely going to be Chinese Linux SBCs using some of those Chinese ARM SoCs that don't pay the ARM licenses. The snag there tends to be how good of a Linux image you get. Running baremetal C on those tends to be difficult when you can't get the full SoC documentation. So while it is a cheap and quick solution it could potentially cost a lot of time for the software.FPGAs sound like a good reliable solution if you can find a good cheap chip. Ethernet is reasonably simple when stripped down to a MAC layer only. Interfacing SRAM is easy and 2MB of it sounds reasonable. Id say the software development while more work is more predictable too.

author: Codemonkey
author_rank: Regular Contributor
timestamp: June 09, 2022, 10:56:54 am
content: How fast do you need to be able to update the images ? Do the images really need to be stored in ram or could you save them to say an SD card / external flash / eeprom and minimise your ram requirement ?

author: jeremy
author_rank: Super Contributor
timestamp: June 09, 2022, 10:57:50 am
content: Maybe slightly above your price range, but how abouthttps://tibbo.com/store/plus1/specifications.htmlQFP package, parallel LCD interface (only 320x240 though), dual ethernet MAC, onboard RAMI have just started playing with one, seems pretty neat so far.There is also this, includes the square LCD and ethernet PHY:https://www.aliexpress.com/item/1005003684310743.html

author: macaba
author_rank: Regular Contributor
timestamp: June 09, 2022, 11:22:29 am
content: An example creating a single-file-binary server on linux that serves up a page with 720x720 image to any thin clients running a web browser in full screen mode:https://gist.github.com/macaba/5ed6999c85e78d6bbf767566cb4d177eDynamic update, video content, subtitles; all that is relatively easily added.(I promise that I am a die-hard electronics engineer that loves precision analog electronics, microcontrollers, FPGAs, all that good stuff but sometimes it's good to not reinvent the wheel!)

author: TomS_
author_rank: Frequent Contributor
timestamp: June 09, 2022, 11:23:55 am
content: Would FreeRTOS+TCP be a potential solution?It doesnt require much effort to get working, provided there is an existing driver for the ethernet MAC (but these also arent too hard to write, Ive done it for two different MACs myself).Cons: may be a bit more work than you want/can fit into the time frame, and long term stability testing may be difficult to achieve without doing it "in the field".Pros: small memory/flash footprint, static IP or DHCP, doesnt need a huge underlying OS to basically provide a network interface.I could try and help you out if it came to it.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: June 09, 2022, 11:37:42 am
content: Quote from: Codemonkey on June 09, 2022, 10:56:54 amPossible, but may have issues with endurance and erase times.We may also ideally want do to live-ish video to individual screens

author: nctnico
author_rank: Super Contributor
timestamp: June 09, 2022, 12:08:15 pm
content: Quote from: mikeselectricstuff on June 09, 2022, 12:00:59 amThe well known u-boot for example which has become an industry standard.

author: abquke
author_rank: Regular Contributor
timestamp: June 09, 2022, 12:13:54 pm
content: I remember when one could "just buy" ethernet PHYs. Those were good days.

author: free_electron
author_rank: Super Contributor
timestamp: June 09, 2022, 02:31:52 pm
content: Quote from: mikeselectricstuff on June 09, 2022, 08:06:38 amhow about those orange-pi or allwinner based boards ? there's many pi-like devices out there.

author: Doctorandus_P
author_rank: Super Contributor
timestamp: June 09, 2022, 03:03:13 pm
content: The Raspberry Pi's are quite popular, and availability of "less popular" single board computers may be better.For example, "Orange Pi" has been around for a long time and they also have relatively cheap boards."Hardkernel" (With their O-Droid board) has also been doing business for quite some time and has worldwide resellers. On their own site quite a lot of stuff is also "out of stock" at the moment.Olimex makes their own SBC's based on Allwinner chips, and they have also been selling them for about 10 years or longer, The company started in 1991 (https://www.olimex.com/About/). Olimex can also deliver them for an industrial temperature range at a moderate extra cost. Olimex is also open source friendly. Several of their boards (for example OlinuXiono-A64) are freely available as a KiCad project on their github repository (Older boards are available as Eagle projects), and this makes small modifications such as adding custom connectors relatively easy. (Or make the PCB square and add some dummy IC's for "good looks"?)Normally they also sell the processors separately, but just now their most popular processor is "Out of stock" too.https://www.olimex.com/Products/Components/IC/A20/The more capable A64 seems to be still available:https://www.olimex.com/Products/Components/IC/A64/

author: Terry Bites
author_rank: Super Contributor
timestamp: June 09, 2022, 03:13:27 pm
content: The question is, do you want to run video over network or just use CATx cabling?Blackbox and others of less repute make HDMI over ethernet boxes. Plug and play.Its not true of course, they just use network cable. If you really want to run video over a network then you could gut a network video recorder.I've seen pcbs for integration as well though most of them seem to have a VGA monitor output. "IP camera DVR PCB"AXIS make the real thing. Not cheaphttps://www.use-ip.co.uk/axis-t8705-video-decoder-01186-001.html

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: June 09, 2022, 03:15:38 pm
content: Quote from: abquke on June 09, 2022, 12:13:54 pmYes - had to hunt around for that - LCSC had one microchip part in stock. That's one attraction of the Allwinner V3S - onboard 100M Phy!

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: June 09, 2022, 03:21:37 pm
content: Having looked into it some more, the V3S seems like a no-brainer for this project - QFP package, onboard RAM and PHY.Lots of potentially interesting extras like video decompression, though Jay Carlson's guide suggests that driver support for that may not be so good.Does anyone know any reliable suppliers for this part in tray qtys ?

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: June 09, 2022, 03:27:56 pm
content: Quote from: Terry Bites on June 09, 2022, 03:13:27 pmThe starting point is really the 4" square LCD, for aesthetic geometry reasons - they will be packed into a fairly tight 3D structure, so bulk and cabling are significant issues.The original spec was for video, and one approach I was considering was taking an HDMI signal, stuffing it into an FPGA, taking a 360x360 sub-image, pixel doubling and and outputting 16 or so sets of Mipi and buffering that out over cables to LCD modules.Reality is starting to creep in so we're initially targetting still images uploaded over ethernet, and anything more is a bonus, having _something_ available for an exhibition is better than a fancer thing too late.With the ethernetted LCD approach we are only developing one piece of hardware, the rest is just off the shelf PoE switches, and the software people can figure out the host-side stuff.

author: free_electron
author_rank: Super Contributor
timestamp: June 09, 2022, 04:41:04 pm
content: Quote from: mikeselectricstuff on June 09, 2022, 03:27:56 pmwhat about a bunch of thin clients ? there is a bunch floating around on ebay from some company (Pano) that went belly up and people have hacked them . they are like 50$..you can get lots (5 pieces) of Wyse Zx0 for 100$. that's 20$ a piece.... very hard to beat.or HP T430's.. 10 for 220$ ...the Wyse Tx0 are 85$ for 10 ... your bare chip will cost more than that. they have a DVI output.https://www.ebay.com/itm/265699917199?hash=item3ddcf2fd8f:g:2EwAAOSw2ZJihubithey can run dos, windows and linux....- cheap- ready to run proven hardware- readily availablewhen looking at the wyse machine always check the pictures of the model numbers. some only have 128Mbyte flash and 512Mbyte ram . but some have 2Gb or 4GB flash and 2G ram .

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: June 09, 2022, 06:54:37 pm
content: Quote from: free_electron on June 09, 2022, 04:41:04 pmAs mentioned above, the final thing will be a 3D structure covered with 4" LCDs packed as close to each other as possible, at least 100 of them. Something like that PC would be a cabling and logistical nightmare.It also will hopefully need to be replicated for sale, so needs a sustainable supply.

author: edavid
author_rank: Super Contributor
timestamp: June 09, 2022, 07:30:51 pm
content: 1. What's the LCD panel interface?2. What's the update rate? Does every LCD display a unique image?3. Why Ethernet instead of a simple serial interface? Would a unidirectional interface work?

author: nctnico
author_rank: Super Contributor
timestamp: June 09, 2022, 07:53:24 pm
content: Quote from: evb149 on June 09, 2022, 03:34:10 pmI'm not a fan of modules. I've got burned pretty bad a couple of times (*) due to incompatibilities between versions and problems in software that comes with the module. Designing your own SOC system from scratch eliminates a lot of variables. With a volume of 100+ modules a custom design will be cheaper anyway.* Most recent adventure: US based manufacturer stops producing a module suddenly without the chance of a last-time-buy. This has left one of my customers that has build a product around that module hanging out to dry. FFS

author: free_electron
author_rank: Super Contributor
timestamp: June 09, 2022, 08:08:04 pm
content: Quote from: mikeselectricstuff on June 09, 2022, 06:54:37 pmStrip the board from the box mount behind LCD. all you need is ethernet cable and power cable.supply is not a problem. these things are still made. there are various models. it is a standard PC based on a VIA S7 processor and will run standard PC OS. you can switch to different models , they are all compatible. if one model goes out another comes into market.

author: ajb
author_rank: Super Contributor
timestamp: June 09, 2022, 08:34:00 pm
content: I'd be very wary of anything that relies on an SD card to operate, especially with 100-200 of them in one install that sounds like it will be a challenge to service. We've been integrating another company's microSD-card-reliant hardware into our own products for a while and it's a frequent support issue for SD cards failing. I don't know if it's insufficient protection against sudden power off, or that the application is read-only and the SD cards aren't write-refreshing periodically or what. Even more expensive industrial-grade cards haven't improved things.Quote from: mikeselectricstuff on June 09, 2022, 03:27:56 pmThere are chipsets designed to convey video over Cat5, IIRC including some that are designed with standard parallel LCD interfaces on one or both ends. That doesn't solve the problem of power, but if it means you need a very simple backpack board for each display with no firmware and then a handful of more complicated FPGA or whatever based systems to slice up the image/video stream maybe the overall tradeoff is worthwhile? Not sure what sort of cable length those chipsets support, I know we have some CNC equipment that uses them for getting video from the control cabinet to the control panel on the front, so something like 1280x1080 over 6-8m?

author: abquke
author_rank: Regular Contributor
timestamp: June 09, 2022, 08:42:08 pm
content: Quote from: nctnico on June 09, 2022, 07:53:24 pmI did okay getting modules in on time, but then had to do a board revision because I couldn't get the connector to hold them. It's been a very "educational" 18 months...

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: June 09, 2022, 08:47:35 pm
content: Quote from: edavid on June 09, 2022, 07:30:51 pmprobably parallel, Maybe MIPIQuoteTBD, YesQuoteSpeed and ability to use off-the-shelf connectivity for data and power ( PoE switch).

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: June 09, 2022, 08:50:44 pm
content: Quote from: ajb on June 09, 2022, 08:34:00 pmAgreed - Ideally it would boot from SPI flash. It could then load stuff over the network as requiredQuote from: mikeselectricstuff on June 09, 2022, 03:27:56 pmQuoteWe still need to generate 100 video streams somehow

author: nctnico
author_rank: Super Contributor
timestamp: June 09, 2022, 08:51:03 pm
content: Quote from: ajb on June 09, 2022, 08:34:00 pmThat is likely a connector quality issue. I have designed various hardware that has been sold in 10k+ units in total that uses SD cards without significant issues but I have used high quality SD card connectors in my designs. First things module manufacturers skimp on is connector quality while 99% of problems with electronics are contact / connectivity issues.

author: nctnico
author_rank: Super Contributor
timestamp: June 09, 2022, 08:54:06 pm
content: Quote from: free_electron on June 09, 2022, 08:08:04 pmBut you still need interfacing with the LCD display (how to get HDMI / display port out without needing a short cable?), likely connection to a large PSU and add storage. All in all there will be quite some design effort to make such a solution ready for an industrial grade setup that can be produced reliably. A board (or module) that is designed to be integrated is a much better choice.

author: free_electron
author_rank: Super Contributor
timestamp: June 09, 2022, 09:05:27 pm
content: Quote from: nctnico on June 09, 2022, 08:54:06 pmPsu is a tiny brick giving 12 volts. one centralized big supply can feed all. use phantom POE. no need to spend money on real PoE (which is limited in power anyway)Storage is built in . if you buy the 2GB flash + 1GB ram version it sits on board (flash is a standard IDE DOM) . Plenty to run even heavy Os's and you are not hampered by slow SD cardsif you go with a board designed to be integrated you still will need an adapter to go from whatever display connector/interface to what he has as display. all the display have different pinouts. and good luck if that controller can;t handle your display. here at least you have HDMI which is a standard.

author: nctnico
author_rank: Super Contributor
timestamp: June 09, 2022, 09:28:22 pm
content: Quote from: free_electron on June 09, 2022, 09:05:27 pmBut then you'll need an additional HDMI to LVDS / MIPI conversion board as well. Having a module that outputs LVDS or DSI with a fixed resolution is much easier and much more reliable. Going from HDMI or DP sucks big time for a unit that needs to operate without user interference. Not to mention some form of backlight driving. It is going to be a comlicated and unreliable setup if you are going to connect a whole bunch of boxes. A reliable design is one that has been tailored to the choosen display (or range of displays).

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: June 09, 2022, 09:52:08 pm
content: OK so I'm becoming more and more convinced that the Allwinner V3S is the way to go. It's almost a single-chip solution, and in a package that should be doable on 4 layers easily. No need for boards/modules to deal with BGA and trace matching fidldiness.The comment about SD cards made me realise that the ideal solution would be something like :On a newly built board, plug in a MicroSD card (or USB stick) to boot something which copies a boot image into the onboard SPI flash. Probably also needs to derive a unique device ID/MAC address (e.g. prompt over UART terminal, or from an incrementing file on the card) and store it in the flash, or maybe an I2C eeprom.Subsequent restarts boot from the SPI flash ( unless there is a MicroSD present, which would override - looks like the V3S already does this).The SPI flash boot image contains only the absolute minimum amount necessary to boot Linux from a remote network server.This allows for easy updates of the application code, and minimises onboard flash requirement.The boot process would need to be robust enough to cope with 100-odd nodes all hitting the server at once! Boot time is not a big issue, but every node MUST boot reliably every timeWould be nice but not essential if it could initialise the LCD and display and image and progress while net booting is happenning.Bonus points : ability to reprogram the SPI flash image from the network server - seems like this would just be a bunch of SPI commands as the flash would not be in use once network booting is complete. If it fails there is still the SD card recovery option.It's a closed system so the remote server could be at a fixed IP address, and boot protocol can be whatever makes the node loader the simplestQuestions :Would the V3S's 64Mbyte RAM be enough to comfortably run Linux and the application software to display images from the server?(I doubt application software would need more than 8MBytes)Would it need a lot of guru-level tweakery to get it down to a suitable size ? All it needs is networking, network filesystem and image display.Decompressing JPEG images would be nice, as would video playback.How big would the SPI flash need to be to hold the loader to boot from the server?

author: nctnico
author_rank: Super Contributor
timestamp: June 09, 2022, 10:29:29 pm
content: 64MB is cutting it close. You'll need an older, cut down Linux kernel. Modern day Linux kernels are 20 to 30MB in size. I'm not saying it is impossible but it would require creating a very minimal Linux distribution which is very time consuming to do (using buildroot for example).512MB would be more comfortable. If you can couple that with at least 2GB of flash (eMMC) then you should be able to run it comfortably. Given your time constraints and relatively low volume, I'd use the Allwinner A33 or the more modern Allwinner A64 with 512MB of RAM and a 4GB (or larger) eMMC to get a design going quickly using an off-the-shelve Debian distribution. Still doesn't need to break the bank and a 6 layer board should do the job even though extra layers don't cost that much anyway. I looked into these for a potential project recently. For longer term availability and performance I'd choose the A64 but the A33 OTOH has a 16 bit DRAM bus so needs less effort to route. Reference designs are available for both. BTW: eMMC is likely cheaper compared to SPI flash and it has wear levelling.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: June 09, 2022, 11:11:08 pm
content: Quote from: nctnico on June 09, 2022, 10:29:29 pmIs that a problem for this application?QuoteUseful to know, thanksI know near-zero about Linux hence some dumb-ish questions.The V3S is inherently capped to 64M due to internal RAM, and distributions exist for it.It has ethernet and TFT peripherals, so presumably these are supportable within the 64M. Am I missing something?We literally only need to be able to display images (even uncompressed is probably fine) - we could even live without a proper filesystem and receive image data over UDPThe network booting stuff isn't essential for the initial exhibition as we could use SD cards as a stopgap.QuoteWhy that much flash, if we're booting from a network ?QuoteFor larger capacities, yes, but for just the network booting stuff, eMMc entry-level capacity would probably be serious overkillLooking on Digikey, cheapest emmc is about £5 and very little stock of anything16Mbytes of SPI flash is about £1 and tons of stock of many options, in nice easy SO/DFN packagesWear levelling is not an issue, will be written very rarely

author: nctnico
author_rank: Super Contributor
timestamp: June 09, 2022, 11:13:22 pm
content: The choice is not so much technical but more financial. A space constrained device will require more work on the software side.If you have enough space and use a standard Debian distribution, getting the software going is about 1 or 2 weeks of work and you'll have a lot of flexibility where it comes to adding extra software. Getting a space constrained system going can take 6 weeks of work (for somebody with experience) and being very limited on what can be added. 16MB if flash is about the minimum. Count on needing up to half for the kernel and then there is 8 left for some rudimentary Linux enviroment. Wear levelling can be done in software as well and a common trick is to have a read-only filesystem so nothing can be overwritten -ever-.