EmonTX Low Power Temperature Node

This guide details how to build a wireless low power temperature sensing node using the emontx printed circuit board and only the required components for temperature sensing rather than all the components for full emontx operation to keep things simple and low cost.

Important modification for low power operation

The important thing to note about this build is that to achieve low power operation what is usually the 5V rail on the emontx is connected to digital output 7 on the atmega making the rail switchable. The DS18B20 one wire temperature sensor gets its power from what is usually the 5V rail and so with this modification its possible to switch the DS18B20 off when not in use, saving power and extending battery life considerably. The assembly steps needed to do this are highlighted in the build guide below with bigger pictures.

Bill of materials

The EmonTX Low Power Temperature Node can be bought from the openenergymonitor shop as a kit of parts here

The following components should be in the kit, or if your sourcing your own components these are the components you will need:

Number of Part description
1x EmonTx PCB
1x Atmel ATMega328 - the main microcontroller
1x 28 pin DIL Socket
1x 16Mhz Crystal - for the ATMega328.
2x 22pF Ceramic Capacitors
3x 100nF (0.1uF) Ceramic Capacitors
1x 10uF Electrolytic Capacitors
1x 6pin Header (FTDI port)
1x 10k resistor (Brown, Black, Orange, Gold)
1x 4.7k resistor (yellow, violet, red, gold)
1x DS18B20 one-wire temperature sensor
1x RFM12b (433Mhz, 868Mhz)
1x 165mm (433Mhz) or 82mm (868Mhz) Wire for RFM12B Antenna
1x Double AA Battery holder


1) Start by soldering in the 10k (Brown, Black, Orange, Gold) and 4.7k (Yellow, Violet, Red, Gold) resistors.

2) Solder in the 16 Mhz crystal and the 22pF ceramic capacitors.

3) Solder in the 28 pin DIL socket
4) Solder in the 3 100nF capacitors. Furthest bottom left is the ftdi reset capacitor. The one just above it is for smoothing on the power supply and the one just above the DIL socket goes in holes labeled C4. 5) Solder in the DS18B20 one-wire temperature sensor. (Flat face facing inwards)  

6) Important step - FTDI Header with 2 pins removed

When soldering in the 6-pin FTDI header, remove the 2nd and 3rd pins from the right. Pin 2 has nothing connected and Pin 3 is the 5V Supply from the FTDI Adapter which we dont want to connect to the board as the 5V part of the circuit is being powered and switched by digital pin 7 at the battery voltage 3.3V.

7) Important step -DIO7 to PWR wire link

Solder in a wire jumper between the PWR and DIO7 pad on port 4 to route power to the temperature sensor in a switchable fashion as detailed at the start.

8) Solder in the 10uF capacitor 9) Solder on the RFM12b wireless transceiver and aerial. 10) Connect up the Double AA Battery holder.

The complete unit, you might want to use a couple of rubber bands to hold the battery pack on to the bottom of the board:


Upload Firmware

The firmware example for this build can be found in the emonTxFirmware repository on github here:


The example is located in the folder emontx_temperature_examples > emontx_lowpower_temperature > emontx_lowpower_temperature.ino

Make sure you have the UNO Bootloader selected in the arduino IDE before uploading. You may also need to set the frequency of the RFM12 wireless transciever, node id and group id to your hardware and system configuration.

Once you have uploaded the firmware the unit should now be transmitting the temperature value and can be recieved by any of the base station options that are available, these can then forward the data to the web for graphing. The firmware is not configured to print the temperature value to serial so as to save power but if you need it to print just add a line such as: Serial.println(emontx.temp); to the sketch just after line 103. You may also need to add a delay to give it a chance to send the data to the serial before the units goes back to sleep.