The emonGLCD is an open-source, general purpose, wireless graphical LCD. It was designed with displaying energy monitoring data in mind. The unit has an in-built table stand, or can be wall mounted. Powered by an Arduino compatible Atmega328, the emonGLCD can receive data from any sensing node in its surroundings such as an EmonTx or EmonTH, and can be configured to receive the time from the base station.
- ATmega328 with Arduino Uno bootloader
- 128x64 ST7565 LCD display
- White PWM LED backlight
- On-board HopeRF RFM12B wireless transceiver module
- Power supply: 5VDC via mini-USB conector
- DS18B20 on-board temperature sensor
- On-board LDR light-level sensor
- Based on JeeLabs.org design. Uses Adafruit/JeeLabs GLCD library
- Software RTC updated from the internet via emonbase.
The emonGLCD is open hardware with the designs released under the Creative Commons Attribution-ShareAlike 3.0 Unported License. The schematics and board files can be viewed and downloaded from the openenergymonitor github hardware repository here:
- emonGLCD Fascia CAD design is up on Thingiverse
See forum thread of user contributed 3D printed case design:
Design is based on the jeelabs GLCD.
EmonGLCD Arduino example code can be found on github here:
See the readme file for details on the examples.
Note: Set #define RF69_COMPAT 1 at the top of the firmware examples if your using the RFM69 module.
|Function||emonGLCD V1.2 (old)||emonGLCD V1.3+|
|Push button(s)||Dig15 / ADC||Dig 15 (enter), dig 16 (up) and dig 19 (down) - requires software pull-up, active low (V1.3 only). Blog post|
|Temperature sensor||Dig 5||Dig 5|
|LDR light sensor||ADC0 – see V1.2 bugs page||ADC4|
|Tri-color LED Red||Dig 9 – PWM||Dig 9 – PWM|
|Tri-colour LCD Green||Dig 8||Dig 6 – PWM|
Hardware revision history
- First release
- LDR moved to ADC4,
- LED from Dig 8 to Dig 6 to be on PWM output
- Added two extra push buttons for menu navigation (Dig 16 and Dig19) - don't work. Update: they do work!
- Connected backlight directly to IRQ PWM
- Added two additional menu selection buttons to make three in total
- Fixed switches connections
- Connected LCD to 3.3V instead of 5V
- External power connection now routed through voltage reg - accepts input from 5-12V
- Corrected orientation of C13 and C14, this fixed issue of LCD contrast fading
- 12/03/13 - Fix Dig 8 and Dig 6 short and silkscreen error on JeePort3: https://openenergymonitor.org/emon/node/2063
- Built-in lithium battery pack and USB charging circuit
- Female headers to attach LCD
- Change LCD module to a more mainstream and lower cost unit
- RGB PWM backlight
- SMT components pre assembled
Realtime Clock: A Raspberry Pi-based emonhub can be configured to send the current time information to an emonGLCD.
On the Pi, edit the emonhub.conf (usually /boot/emonhub.conf). Find the section labeled [[RFM2Pi]] [[[runtimesettings]]], add the following line. Save the file. No need to restart.
interval = 300
This will send the current time using its RFM12b, every 5 minutes (5 x 60 secs)
Create display graphics See this forum thread for python tool to create GLCD graphics from a bitmap: https://openenergymonitor.org/emon/node/3957
RF Signal Strength Meter Scanner by Martin Roberts:
See forum thread https://openenergymonitor.org/emon/node/2395
Touchscreen: Nathan Chantrell has been been doing some experimenting with a DS resistive touchscreen layer and RGB PWM backlight. His work is still in development.
Tutorial on interfacing a DS touch screen with an Arduino: tutorial-arduino-and-the-ds-touch-screen
A workaround for higher temperature measurement: emonglcd-temperature-hack.
The v1.4 PCB contains a track error, rendering the spare Digital IO pin on the JeePort unusable. It can be fixed by cutting a PCB trace. See this for details.