EmonTx V3

From OpenEnergyMonitor Wiki
Revision as of 08:20, 3 December 2013 by Glyn.hudson (Talk | contribs) (RFM12B)

Jump to: navigation, search

emonTx V3

The emontx v3 is the latest generation of the open source hardware emontx low power wireless energy monitoring node designed for measuring AC electrical power on 4 different (household/building) circuits using non-invasive clip on CT current sensors and an AC-AC Voltage adaptor to provide a voltage signal for full real power and powerfactor calculation.



  • Emontx v3 can measure real power, apparent power, power factor, rms voltage and current on 4 different mains circuits, it also has inputs for temperature and humidity sensing.
  • Pre-assembled SMT design
  • A single AC-AC adapter can now be used to power the emonTxV3 and provide AC voltage measurement
  • 4x CT current sensing inputs
  • An on-board 3x AA battery option
  • Flexible choice of RF radio module and removable microcontroller

Port Map


Power Supply Options

Uploading Arduino Firmware

The emonTx V3 with the RFu328 uses the ATmega328 microcontroller (same as Arduino Uno) and comes with the Optiboot (Arduino Uno) serial bootloader installed. This makes it super easy to upload new code to the emonTx V3 from the Arduino IDE.

A USB to UART cable is required to upload new Arduino firmware sketches

Start by downloading the firmware, libraries and setting up the Arduino programming environment by following this guide:

Setting up the Arduino Programming Enviroment

Once complete the emonTx V3 firmware location should be navigable from within the Arduino IDE by going to:

File > Sketchbook > OpenEnergyMonitor > emonTxFirmware > emonTxV3

These are the examples available on GitHub so far for the emonTx V3:

RFM12B Firmware

emonTxV3_RFM12B_DiscreteSampling - MAIN FIRMWARE Nov 2013
Auto detection of AC-AC adapter sets Apparent Power / Real Power Sampling accordingly
Auto detection of battery / USB 5V or AC > DC power method and sets sleep mode accordingly
Auto detection of CT connections and samples only from the channels needed
Auto detection of remote DS18B20 temperature sensor connection

RFM12B Examples:

Note: some of these have not been tested extensively, others are incomplete or lacking full functions

  • emonTxV3_4chan_continuous
  • emonTxV3_CurrentOnly
  • emonTxV3_RealPower_Voltage
  • emonTxV3_Pulse

SRF Examples

Note: some of these have not been tested extensively, others are incomplete or lacking full functions

  • SRF___Low_Power___Current_only_Apparent_Power

All emonTx V3 firmware is available on GitHub here: Github:emonTxFirmware

Standard Operation

CT Energy Monitoring

Single Phase



Extended Operation

Temperature Monitoring

A DS18B20 digital temperature sensor can easily be connected by the emonTx V3 by connecting the sensor into to the emonTx V3's screw terminal block. The default firmware supports auto-detecting one DS18B20. Many DS18B20's can be connected but this will require change of Arduino firmware.

In order to save power when running off batteries the emonTx V3 supports switching off the DS18B20 in between readings and performing the temperature conversion while the ATmega328 is sleeping. To do this the DS18B20 power pin is supplied with 3.3V from Dig5, this digital pin is switched off between readings. The data connection from the DS18B20 is connected to Dig19, this I/O pin has got a 4K7 pull-up resistor on-board the emonTx V3 PCB as required by the DS18B20.

To connect an external DS18B20 to the emonTx V3 screw terminal block connections are as follows

DS18B20 emonTx V3 screw terminal connections
Screw terminal pin DS18B20 Connection
3 - GND GND (Black)
5 - Dig5 Power (Red)
6 - Dig19 Data (White)

Utility Meter Interface

Optical Pulse Counting

Many meters have pulse outputs, including electricity meters: single phase, 3-phase, import, export.. Gas meters, Water flow meters etc. The pulse output may be a flashing LED or a switching relay (usually solid state) or both. We recommend using optical interface as this decouples the monitoring equipment from any high voltages.

In the case of an electricity meter a pulse output corresponds to a certain amount of energy passing through the meter (KWhr/Wh). For single-phase domestic electricity meters (eg. Elster A100c) each pulse usually corresponds to 1 Wh (1000 pulses per kwh).

The emonTx V3 has got one interrupt input (IRQ 0, Dig2) which can be used for pulse counting. This is broken out on terminal block port 4

The emonTx V3 pulse counting example sketch calculates the power by the calculating the time elapsed between pulses.

Read more about pulse counting on the OpenEnergyMonitor Buillding Block pagers here

emonTx V3 Hardware Connections

Connect the pulse input into emonTx V3 terminal block port 4 (IRQ 0 / Digital 2) If you're connecting a hard-wired pulse output you may need to add a pull-down resistor onto the emonTx V3 PCB (R31) If you're using an optical counter (e.g TSL257) you should connecting the power pin to the 3.3V or 5V (if running off 5V USB)

emonTx V3 pulse-counting screw terminal connections
Screw terminal pin Connection
1 5V (if powered via 5V USB)
2 3.3V
4 IRQ 0 / Dig2

We recommend powering the emonTx V3 from 5V USB when using for pulse counting operation. Due to the additional power requirements of the optical pulse sensor battery life will be reduced compared to CT operation if powering from 3 x AA batteries.

Direct Optical Interface

if you have an Elster meter (tested with Elster 100C) the emonTx V3 with an IR TSL261R sensor can be used to interface directly with the meter protocol to read off the exact accumulated watt hours that you have generated or used. This reading can be used on it's own or to cross-check and calibrate CT based measurement. See here for original blog post

RF Connectivity


The Rfu328 sold through the OpenEnergyMonitor shop is ready setup for use with the RFM12B, just make sure you solder the RFM12B with the correct orientation if soldering it yourself: the crystal on the RFM12B should be on the same side as the tiny 16Mhz ATmega328 crystal on the RFu328. To use the RFM12B on the RFu328 a modified version of the JeeLib RF12 library has been created. This is called the RFu_JeeLib see GitHub readme for the modifications which have been undertaken. Once using the RFu_JeeLib the RFM12B on the RFu348 can be used exactly the same as before, all code written for the emonTx V2, JeeNode etc should work just fine using using the RFu_JeeLib library.


A Ciseco SRF module can be used on the emonTx V3. The easiest thing to do is to purchase a complete RFu328 SRF setup from Ciseco.However a SRF can be used on the RFu328 purchased from the OpenEnergyMonitor shop with one small modification. The RFu328 sold through the OpenEnergyMonitor shop comes read setup for use the RFM12B, to use it with the SRF you will need to remove one SMT resistor and rotate another by 90 degress. Follow these instructions from Ciseco IN REVERSE!

SMA Antenna options

SMA antenna options for emonTx V3
Manufacturer Description Value Package Rapid Code Farnell Code RS Code
RF-Solutions 434Mhz Ant straight 434Mhz SMA 542-488 1304036 542-535
RF-Solutions 434Mhz Ant 90 degrees 434Mhz SMA 542-488
RF-Solutions 868Mhz Ant straight 868Mhz SMA 1304037 542-551
RF-Solutions 868Mhz Ant 90 degrees 868Mhz SMA 542-563

Electrical Characteristics

power consumption, absolute max values

Open-Hardware Design Files

Proudly open source, the hardware designs are released under the Creative Commons Attribution-ShareAlike 3.0 Unported License:

Download Schematic PNG: emontx-v3.png

Download Schematic: emonTx V3.2.sch

Download Board files: emonTx V3.2.brd


Environmental & Life Cycle