An emonBase is a web-connected base-station that receives monitoring data from the emonTx and posts to a remote or local server for web-based logging and visualisation. This server could be an installation of emoncms or a service like Pachube. 


Nanode 5 (original)  

Note: as of December 2011 we have switching to using the NanodeRF as the emonBase see here for new documentation. 

                Nanode 5 (original)           +          JeeLabs RFM12B wireless module       =          emonBase

What makes an emonBase?

The emonBase comprises of a Nanode with the addition of an RFM12B wireless module to give the Nanode wireless capabilities.  The Nanode has a special port dedicated for the RFM12B wireless module (see illustration above).

What is a Nanode?

Nanode is an open source Arduino-like board that has in-built web connectivity. It is a low cost platform for creative development of web connected ideas. We are using the nanode + RFM12B wireless transciever for our emonBase base station. It relay's data sent from the emonTX up to emoncms/pachube for web based visualisation.

The main nanode project documentation including step-by-step assembly instructions can be found on the london hackspace wiki here: Nanode wiki. Nanode also has its own website here: Nanode website.

What is the RFM12B wireless board?

The RFM12B wireless board (designed by JCW from JeeLabs) comprises of the RFM12B wireless module and level shifting resistors. A few modifications of the Nanode 5 are currently need to enable the RFM12B module to work with the Nanode. See the Nanode wik here for instructions:

Note: for compatibility with the emonTx the 433Mhz RFM12B module must be used. 



OpenEnergyMonitor Nanode arduino sketches (use Arduino IDE  (select duemilanove under board menu) with a 5V FTDI cable to upload sketches):

Note: A standard Audino can be used as a USB to FTDI converter if you don't own an FTDI cable. Follow tutorial here.

Note (9/11/11): the emonBase uses the Ethershield library. The latest version of the library does not work with the current emonBase code. You can download the previous version of the library that has been tested to work with the emonBase code from here: We are looking into the issue. 


Other OpenEnergyMonitor Examples (old archive):

Loads of examples of using the nanode to post data to emoncms and pachube using Andrew Lindsay's EtherShield library. Examples for StaticIP, DHCP, DHCP + DNS

Same as above but with code to recieve data from the emontx using rfm12 transcievers. Uses the jeelabs rfm12 library.

Emontx and nanode code for measuring and sending/relaying 16 one-wire temperature sensor readings + their unique ID's up to emoncms

A start on isolating data from the http reply header.

Other Nanode exampele from around the web:

First stop for Nanode application examples:



Nanode webserver and temperature sensor:




Note: Andrew Lindsay's Ethershield library has undergone a few updates recently. Make sure you are using the most upto date version. Download from github here:



Once the emonBase firmware has been uploaded the red LED on the Nanode should flash once every 10's to indicate wireless data being sucessfully received from the emonTx. If this doesnt happen then check:

-Has the RFM12 been plugged into the special (dedicated) socket on the nanode?
-Has the required modifications been made to the Nanode to make it work with the RFM12B?
If you continue to have problems please post on the OpenEnergyMonitor forums. There are many people happy to help. 





mharizanov's picture

Re: emonBase - Nanode

 Good news, nanode has been upgraded to nanodeRF that overcomes the shortcoming pointed in the "troubleshooting" section of this tutorial PLUS cuts the cost a bit by not having to purchase separate breakout RF board.

In addition apparently as an option you can have

1) microSD card for extended datalogging, Bitlash scripts or web page serving

2) Real Time Clock with alarm/wake-up function

3) 32K x 8 SRAM for sketch download from internet using TFTP

which makes the new board quite appealinng.


glyn.hudson's picture

Re: emonBase - Nanode

Thanks for this, the NanodeRF has been developed as a collaboration between KenBoak, Trystan and myself . It has been designed to make the perfect emonBase. We will be switching over to it in the next few months. The emonBase documentation will be updated soon. The NanodeRF is fantastic it will greatly simplify building up an emonBase. 


mharizanov's picture

Re: emonBase - Nanode

 Just to let you know that Andrew Lindsay has quote "I have now stopped development work on the EtherShield library"

On his blog he has posted instructions on how to convert EtherShield code to EtherCard library.

glyn.hudson's picture

Re: emonBase - Nanode

Thanks, We'r well aware of this. We have been on close contact with Andrew. We will also be moving over to the EtherCard library in due course. There is a Pachube example included in the EtherCard library any feedback from anyone using this would be appreciated. A few months ago when we tested the the EtherCard library we found it to be unreliable and keep dropping offline. Hopefully this will/ has changed.  

Paul Reed's picture

Re: emonBase - Nanode

 Glyn, I am using the Ethercard library and the Maniacbug sketch which works very well with my Nanode, and as you can see from my Pachube charts, it very rarely fails. (The short dashes in the graph are not indicative of being frozen see this explanation).

The main problem I have found, is if my internet goes down (BT Broadband !!%##) when it is restored, the DHCP often fails and the Nanode needs to be manually rebooted to restore the DHCP connection. The sketch does however have a static IP configuration to overcome this - but I havn't been assigned a static IP address by BT, so I'm solely DHCP.

I am trying to use the Watchdog Timer function to deal with this, and have posted this in the Pachube forum, as although I can code the wdt_reset, I am not skilled enough to write the code to determine when the Nanode has lost it's connection and needs the reset.
I was hoping to use the client.connect sketch, but as far as I can see, it only works with the Ethernet.h library (which of course does not work with the Nanode!)

mharizanov's picture

Re: emonBase - Nanode

Here is a ethernet library ported for ENC28J60


glyn.hudson's picture

Re: emonBase - Nanode

Cheers Paul, thanks for the feedback. I'll have a go at switching to EtherCard on my home monitoring in the next week or so. Is the manicbug sketch very different to the Pachube sketch included with the EtherCard lib? We'll also make some examples of posting the emoncms using the etherCard lib. 

Trystan and have also been experimenting with watchdog timers on Nanode, it still in quite early days but results seem promising. I think it's really is essential that we solve these reliability issues. 

Thanks for your help, 

Paul Reed's picture

Re: emonBase - Nanode

 Well here's the sketch which I am using at the moment.

The amendments which I have made are;
a) Serial data is sent down the UART every 20 seconds (from an Arduino running the openenergymonitor sketch). Everything commented as cmdMessenger has been added to decode the data received via the serial UART and pass to the variables sd1, sd2, etc. 
b) Lines 184-186 blinks the LED to indicate that the Nanode is attempting to send data
c) Line 189 determines if there has been data changes that justify sending an update to Pachube, with an overall max time of 14 minutes to prevent freezing.

Maniacbug added a section towards the end by threebytesfull, which automatically recalls the MAC address of the Nanode ID chip which it uses to establish its individual identity, so just leave everything after line 245 just as it is - no user bits to amend! (This is a timesaver and works well).

My Watchdog section (which isn't shown here or currently loaded in my Nanode) enables the wdt, and if a 'IF' statement in the loop is 'false' then the loop runs normally and resets the wdt every cycle. If the statement is 'true', then this results in a delay command of 5 secs occuring - which delays the 'wdt reset' and forces a reset. The trigger condition currently is a millis() count, so it resets every 30 minutes regardless of whether there is a problem or not. This is crude and obviously bad practice, but I hope that the timer function can be replaced with something more sophisticated to avoid unecessary resets. The loaded sketch however appears quite stable, but I wanted to add a Watchdog for 'belt & braces'!

fan's picture

Re: emonBase - Nanode

I have been playing with a naNode (got it from Ken) the last few days, love it so far.

If I may add some thoughts/suggestions. Please consider these in good will:

My opinion is that you should have your own version of the naNode that is distinct and more appealing. Here are some of the features I was thinking could make a difference:

[3.3V version with SRAM chip fitted]

* That will enable collecting data and storing it for a while until Internet connection is available and it is pushed to the central repository
* Remote sketch uploading is quite appealing, only possible with SRAM fitted in.

[Power over Ethernet]
This is useful where we would like to save an extra power supply

[CT jacks or at least CT breakout board with 3 CTs + Power]
On many occasions, only a naNode is necessary for home power monitoring purposes. A Wireless Game Adapter to bridge the naNode to the home wifi router can compensate for the lack of Ethernet close by.

Thanks :)


fan's picture

Re: emonBase - Nanode

I only have a 3.3V FTDI cable; will I be able to use it with nanodeRF or I need to buy a new one? I was thinking of hooking the USB power for 5V and the FTDI at the same time?
What is your suggestion?