Sometimes, 2×16 characters (or perhaps a few more) just don’t cut it, when I’d like to present things graphically, or use larger fonts for some of the info. That’s when a “GLCD” would be handy, one which lets you set individual pixels, that is. I was pointed to a nice low-power 128×64 display recently, and decided to create a pcb for it – so here’s the new Graphics Board:
Due to the size of the board, it’s not a plug or an add-on to a JeeNode, but the other way around: you can take a JeeNode, JeeNode USB, or JeeSMD, and push it onto this board to power and drive the display.
Ports 1 and 4 are used for the diplay, but ports 2 and 3 are available, and brought out in such a way that plugs can easily be added on. To make a clock, add an RTC Plug. To add a few touch buttons, add a Proximity Plug. To create a fancy Reflow Controller, add a Thermo Plug. Or just use it as is and add a sketch to display messages received over wireless. Endless possibilities…
Here’s the display in action, it’s pretty bright when driven from 5V:
It can display up to 8 lines of 21 characters, but it’s also fully graphical of course. BTW, in real life the display looks much more white-on-black.
I particularly like this setup, using the AA Power Board to make this thing completely self-powered:
The backlight resistor is chosen such that on 3.3V, this display draws ≈ 6 mA, and on 5V it draws ≈ 19 mA. It will last a few days with an AA Power Board, but when the 100 Ω resistor is replaced by 270 Ω or even 470 Ω, you can get well over a week of battery life on a single AA (assuming the JN itself is sleeping most of the time) – at the cost of dimming the backlight to a fairly low level.
There is a solder jumper on the board which normally connects the backlight to the PWR line. By connecting it to the IRQ line instead, that pin can turn off the backlight under software control (or dim it, using PWM).
The display is based on the ST7565 chip and can be driven by Limor Fried’s great ST7565 LCD library. Note that this library uses a 1 Kb RAM buffer.
Here’s the glcd_demo.pde sketch which generates the above display:
I included logic to put the ATmega and radio into power down mode to let me measure the display’s current consumption. While active, they draw another 5..30 mA.
The Graphics Board is now in the café and the shop.
Update – Here is a copy of the ST7565 code I use.
Nice board! Btw. there’s a typo in the article (I know you hate them :-) ):
Due to the size of the board, it’s not a plug or an add-on to a JeeNode, but the other wat <- should be way I guess…
Fixed, thx!
Also “Ports 1 and 4 are used for the diplay, but ports 2 and 2 are available” should presumably be “display” and “ports 2 and 3”.
Nice board.
Whoops… thx.
isn’t 1Kb of ram (required by the library) all we have on the mcu ?
No fortunately the 328 have 2Kb.
Fantastic! Just what I needed to my HTPC and as Ethernet connected prompter! Suggestion for use: Add an adhesive touch sensitive film + an analog plug and you have a complete (infinitely variably) GUI for eg. a CNC machine.
The shop has now more gadgets then a swiss army knife. Great !! Keep on going !
Graphics board… proximity board…
Hmmmm, where can I get a transparent capacitive membrane, I fancy touch screen!
From the photos it seems like tha aa. Lard might also fit upside down on the other half of the board, right next to a jee node. Is this the case? And will the required pins line up?
This is awesome! If I see correctly, only 4 pins are required to drive this graphical display.