SimpleHMI: Hosts other than SPLat
This tutorial has covered programming of a SPLat controller to utilise SimpleHMI. However, SimpleHMI can be used with other hosts such as Arduino, Stamps and other hobby products.
An ideal host will be something that can do serial communications concurrently with other operations. This implies some level of multitasking or interrupt driven system and hardware serial I/O (UART). The host must be prepared to receive incoming serial data from button presses any time a button is being displayed.
But even if you are using something incredibly basic like a Picaxe, you can get some use out of SimpleHMI. We deliberately made the default button codes “1” though “8” plus a ’04 terminator. A Picaxe could simply look for the numeral and discard or ignore the terminator. It would still have to “camp” on the serial input pin, doing nothing else, when expecting a button press. This cannot produce a robust industrial grade solution, but for a hobby project could be quite adequate. Picaxe does not have enough code space for really elaborate SimpleHMI displays.
Slightly up the ladder are Arduinos, some of which have true UARTS available. With this it should be possible to set up an interrupt service routine to decode incoming characters and generate callbacks, roughly equivalent to the event handlers synthesised by SPLat hash commands.
We have not actually tried programming any 3rd party products for SimpleHMI, and would welcome input from anyone who does it.