So, after impulse buying a iBoard Ex from ITEAD Studio a good while back, I figured that I would finally get around to doing something with it. The board is essentially an Arduino Leonardo, Ethernet shield and PoE (Power over Ethernet) adapter on the same board, with headers for Xbee and stuffs. So Googling around I found some example code that works as an NTP time grabber, or clock. It seemed like the start for something fun, So I started modifying that to suit my needs, adding local time shift, LAN IP readout and stuff. The codce was already set up for outputting data to a serial terminal. But I wanted to put the data out on a regular hd44780 LCD.. So as luck would have it I also had a Adafruit Feather 32u4 board I got as a freebie some time ago. I decided to use that to convert the serial data into parallell for the LCD. To do this all in a fairly neat way I decided to make the Serial display driver compatible with Matrix Orbital control code standards, so I can control exactly where I want stuff to be on the display more easily, basically making it act more like a directly attached display, but without eating up a lot of the I/O on the base board.
To this I then added a standard 4x20 LCD, but one with very high contrast; a nearly black background. This makes it really pop and look more like an OLED than LCD.
I did have some trouble getting the values to display correctly, as when it ran to a standard terminal the leading zero when values are below 10, and print shift was done automatically, because that's how terminals work. This is not the case with Matrix Orbital displays. If you just send data directly it's just going to put it all in from the beginning, and ignore all sorts of spaces and stuff. So a bunch of control bits are needed to specify cursor positions and such. This needs to be done for every print to the display controller. Meaning that if a value has a leading zero, the zero should take the column position of the value, and the value position needs to be shifted up one column. Not complicated, but rather time consuming.
Anyways, it works, and I had fun building it.
Over and out for now. :)
Comments