Goal: Getting Multiple Coridium’s ARMbasic SBCs to drive common COTS TFT Touchscreen Displays
Being able to add HMI to an ARMbasic project is something that I have long wanted. After recently returning home from a very-much-extended professional TDY, I have dusted off some goodies that I have been anxious to get back to since I had ‘deployed’ last summer.
One of these endeavors was getting the LPC54005-based LCD Evaluation Kit up and running in a manner that I was happy with.
Being a bit of a ‘Hey, this worked here, can I leverage it elsewhere?’ type, I pursued seeing if I could make other Coridium Arduino-formfactor targets as hosts for a TFT LCD, getting the touchscreen and uSD card functionality working. I am happy to report that I am experiencing some success. Yes, there is a lot more work to do, but traction is being gained.
The inspiration for going down this path is multi-faceted. I’ve a good number of hopeful projects that I intend to leverage the product of these efforts in support of:
- Project Storm – an RTOS/Multitasking OS (ABrtos/ABmt) Config/Reporting/Debug tool
- Project Decadence – a smart signal/passive state generation tool to test test equipment
- Project Kronos - Talking Web/Alarm Clock
- Project Apollo - Web Radio/Media Player
- Project Hestia – an Intelligent Thermostat and eventually whole-house control
- Project Helios – Enhancements to a stalled Toaster-Oven-based SMD Reflow Oven project
- Project Neptune – a Maritime Autopilot for my home-brew water-chariot
- Project Anemoi – Web-based Weather Station, becoming an organic local Wx station
In the interests of portability, and adding another sense to the HMI aspects of these efforts, I have added battery connectors to some of the boards that were lacking same, added a voltage divider (smd resistors – two 100K in series with the common going to an ADC input so that the board could monitor battery voltages (up to 6.6 volts)), to enable the device to monitor battery voltage without suffering from a lot of parasitic current drain, and have routed power, ground, and a GPIO to a 3 pin female header so that I can plug in a modular electromagnetic aural device, enabling providing aural feedback on top of the visuals of the displays. I may consider adding a haptic feedback vibrator at some point, but for now the tone generator/library, when coupled with the touchscreen display, provides enough HMI for most/all anticipated uses.
A simple voltage divider battery sense circuit on an LPC1114 board
Aural alert device connection provsions and an added JST connector for use with LiPo batteries
Five ARMbasic targets all battery powered and doing their thing (draining my LiPos down and singing loudly when the storage voltage (3.85V) is reached)
The aural warning module that I home brewed from an old PC's MoBo. Inside the hot glue is a decoupling diode and a resistor -> switching transistor.
As with all things electronic, supplying input voltage that is outside the range of published maximums can lead to damage. In this case of the display imaged below, I had inadvertently rolled the output of my power supply well above the 5V input, when testing the battery sense circuit which led to the display taking the brunt of the problem. I let the magic smoke out. But, after evaluating it, I decided to shot gun the voltage regulator thereon – no joy. These displays have very view replaceable components exposed, so I gave it a go and swapped out the two 8-bit bidirectional buffers and viola, the display was revived. Whew. Granted, the glass is not that expensive, but I hate throwing good monies at a problem that less money and a bit of know-how/effort could resolve. So, for just a couple of bucks, and some time waiting on our beloved postal service, I was able to salvage a ~$20 display. Point here: Be careful and, if your power supply is equipped with over-voltage or over-current protection that you’re not using, one might be better served to actually make use of those features that would help prevent equipment damage. Lesson learned on this end…
Image of revived display with empty blue smoke containment devices alongside.
In closing: As these efforts mature – base display is working, need to refine and refactor the libraries, expand the libs with more display driver goodness, and get touch working across all the display models and host boards – I’ll eventually offer updates and code libraries for use by all. Until then, take care and keep replacement blue smoke vessels within arm’s reach.