emonTx V3


Purchase pre-assembled


Technical wiki emonTx V3.2

Technical wiki emonTx V3.4


emonTx GiHub repo




The emontx V3 is the latest generation of the emonTx Low Power Wireless Energy Monitoring Node designed for monitoring AC electrical power on 1 to 4 separate (household/building) circuits using non-invasive clip on CT sensors and an AC-AC Voltage adaptor to provide a voltage signal for Real Power calculations.

Using the ATmega328 microcontroller, the emonTx V3 runs standard Arduino sketches. Customised code is uploaded via the Arduino IDE and a USB to UART cable.

Data from the emonTx V3 is transmitted via a 433/868Mhz radio to an emonBase web-connected base-station (we recommend a Raspberry Pi with an RFM12Pi) which then posts the data to an emoncms server (e.g. emoncms.org) for logging, processing and graphing. 


  • Apparent Power, Real Power* and AC RMS voltage readings*
  • Microcontroller: ATmega 328 with Arduino Uno bootloader. Compatible with Arduino IDE
  • RF Radio:  HopeRF RFM69CW 433/868Mhz
  • SMA antenna option
  • 3 x standard (23kW max) CT sensor 3.5mm jack inputs
  • 1 x high sensitivity (4.5kW max) CT sensor 3.5mm jack input
  • 1 x  9V AC-AC 2.1mm barrel jack adapter input for powering the unit and AC voltage sample
  • Power supply: 5V mini-USB (See note above)  / 3 x AA batteries / 9V AC-AC adapter (jumper JP2 closed)
  • At least one year of battery life expected from 3 x AA batteries (rechargeable alkaline recommended)
  • 3.3V on-board supply voltage
  • On-board DS18B20 temperature sensor option
  • Easy external encapsulated DS18B20 temperature sensor connection using terminal block
  • Terminal block / RJ45 access to power rails, IRQ0 (Dig2), ADC5 (Dig19) and Dig5 (PWM) I/O connections for optical interrupt pulse counters, relay modules, Solar PV load diversion triacs, LED displays etc. See technical wiki for details

*   AC Adapter is required.

Open Hardware

The emonTx is open hardware with the designs released under the Creative Commons Attribution-Share Alike 3.0 Unported License. The schematics and board files can be viewed and downloaded from the openenergymonitor github hardware repository here:

Firmware examples

EmonTx Arduino example code can be found on github here:

The pre-loaded sketch "emonTxV3_RFM12B_DiscreteSampling" is suitable for single-phase installations. You will need to download a suitable sketch if two or more CTs are monitoring different phases.


Getting started with the emonTx V3


1.) Pre-assembled 

The emonTx V3 is shipped pre-assembled, with the latest firmware installed and ready to go. The firmware should require modification only if you need to change the RF node ID, RF network group, RF frequency, calibration or customize the code to better suit your application. If no customization is required, jump to step 3.) Powering Up. 

2.) If required: Upload Firmware 

If you chose the 'pre-assembled / ready-built' option, the firmware is already loaded. If so, skip this section. The ready loaded firmware is available on GitHub. If you're changing it, be sure to choose the  correct firmware for your emonTx revision and RF module type. The pre-loaded firmware is set to match the frequency of the RFM12B / RFM69CW module on network group 210, node 10.

The emonTx V3 has an Atmega328 at its core with the Arduino UNO bootloader on board. It's programmed via the Arduino IDE and USB to UART cable. It is also possible to flash a pre compiled hex firmware file directly via the ISP connector. See the technical wiki for info.

If you don't already have the Arduino IDE installed, the set up instructions are here:

Setup the Arduino Programming environment

Once you have the Arduino IDE installed, you'll be able to run the firmware examples available in the emonTx V3 firmware repository here:


You will need to make sure all required libraries are present in your Arduino IDE libraries folder in order to compile the code. See Github readme and Setting Up Arduino Programming Environment guide above for info. 

Setting the RFM12B / RFM69CW nodeID, group and frequency

One of the important parts of the firmware sketch is the RFM12B / RFM69CW settings, the frequency should match that of the RFM12B / RFM69CW hardware, the network group should match all other nodes an the network (default 210) and the node ID should be unique. (default 10 for emonTx). You can easily have up to 30 emonTx V3s and other nodes such as emonTHs on the same network posting to the same emonBase (Raspberry Pi + RFM12Pi or Nanode RF)

#define freq RF12_433MHZ
const int nodeID = 19;
const int networkGroup = 210;

To change the frequency change RF12_433MHZ to RF12_868MHZ or RF12_915MHZ depending on the RF module you have. The node id can be between 1 and 30 and the network group from 0 to 250. However, we recommend retaining the allocation of node IDs between 5 and 10 for energy monitoring nodes. See here for OpenEnergyMonitor Building Block page regarding the RFM12B hardware and software or the RFM69CW

3.) Powering Up

If you're running the standard discrete sampling emonTx firmware as shipped, the emonTx V3 searches for connected CTs, temperature sensors and power supply type during startup. Therefore it's important to connect any CT's and temperature sensors before power up, or, hit the reset button after they've been connected. 

See Current Transformer Installation for notes on how to correctly install your current sensors.

The search at power up takes 10 seconds to complete, please be patient and watch the LED for status indications, see below. 

There are four ways to power the emonTx V3:

  1. USB to UART cable - recommended only for short periods while programming. We recommend removing all other power sources
  2. 5V DC Mini-USB - remove jumper JP2 when powering via DC if AC adapter is present 
  3. 3 x AA Batteries - remove jumper JP2 when powering via DC if AC adapter is present
  4. 9V AC-AC power adapter - with jumper JP2 in place

Powering via DC (1-3)

When powering the emonTx V3 via DC (1-3), and running the standard emonTx Discrete Sampling firmware, the emonTx V3 will take Apparent Power measurements, measuring current, assume a Power Factor of 1 and Vrms to be 230V. Power saving mode will be implemented, with the unit going into sleep mode between readings (default every 10s) to save battery power. The unit will report battery voltage instead of Vrms. 

The red LED indicator will illuminate for 10s then flash once then never flash again if power is from a DC source. The LED is disabled to save battery power. If the LED flashes multiple times at startup, this indicates the emonTx detected an AC waveform. This can also happen if an AC adapter has been removed. Hit the reset button if this occurs. When powering the unit via the 5V mini-USB connector, or batteries, jumper JP2 should be removed.

Powering Via AC (4)

A nice feature of the emonTx V3 is the ability to use an AC-AC adapter to power the unit while simultaneously providing an AC voltage waveform sample. If the emonTx V3 detects the presence of an AC waveform (AC adapter connected) at startup, it will automatically implement Real Power and Irms measurements by sampling the AC waveform. Real Power is what you get billed for and depending on the appliances connected to the circuit being monitored, vary significantly from Apparent Power. See Building Blocks for more info on AC power theory. For best power monitoring accuracy, we recommend powering the unit from an AC-AC adapter whenever possible.

The red indicator LED will turn on for 10 seconds, flash at startup then flash once every 10 seconds to indicate an AC waveform has been detected.  Using the AC voltage waveform for reference also enables the emonTx to monitor the direction of the current flow, this is important for PV system monitoring. If you notice a negative reading when you were expecting a positive one, detach the CT from the wire, flip it 10 degres and re-attach it to the wire.

Important note: powering via AC is only recommended for standard emonTx operation without auxiliary sensors (apart from a single DS128B20 temperature sensor) or equipment (e.g. relay modules) connected. If the current draw exceeds 20mA, the AC voltage waveform sample will be distorted, affecting the power monitoring accuracy of the emonTx. To avoid damage to the emonTx V3 circuits the current drawn from the emonTx AC power circuit should never exceed 60mA See technical wiki for more info. If more than 20mA of current is required, it's recommended to remove jumper JP2 and power the unit via the 5V mini-USB connector. When JP2 is removed and the AC adapter is connected, the adapter will provide only an AC voltage sample. i.e. it will not power the emonTx.

4.) emonTx v3 on the emonPi or emonBase

Note: If your running the pre-built Raspberry Pi SD card image (shipped since June 2015) then your Raspberry Pi / emonBase will be running emoncms locally with a pre-setup node-decoder to decode the data from the emonTx automatically. See Section 3 - Logging Data Locally of the main emonPi / emonBase setup guide.

The emonTx V3 running standard firmware transmits the following data structure via RF.

  1. Power 1 - from CT1
  2. Power 2 - from CT2
  3. Power 3 - from CT3
  4. Power 4 - from CT4
  5. Mains AC voltage if AC adapter connected, DC battery voltage if not.
  6. Temperature 1
  7. Temperature 2 (firmware V2.1+)
  8. Temperature 3 (firmware V2.1+)
  9. Temperature 4 (firmware V2.1+)
  10. Temperature 5 (firmware V2.1+)
  11. Temperature 6 (firmware V2.1+)
  12. Pulse Count (firmware V1.6+)


If a temperature sensor is not connected the value will default to error code 300.

RSSI: When using the emoncms inputs module the RSSI signal strength value will also be shown and will be the last item in the inputs list for a given node. less negative is stronger signal i,e '0' is theoretical full signal. (-40 to -50 are common values, more negative than -70 could be cause for concern)

Pulse Count: Convert to Kwh via multiplication (e.g x 0.001 for 1000 pulses per KWh or 0.00125 for meter with 800 pulses per KWh ) then log to feed using Wh accumulator input process. 


Mains AC voltage is multiplied by 100x before being transmitted over RF. The emonhub node decoder multiplies the received value by 0.01x in order to get AC voltage to two decimal places.

The temperature values are multiplied by 10x before being transmitted over RF. The emonhub node decoder multiplies the received value by 0.1x in order to get temperature to one decimal place.

If your using emonhub without the default node decoders you will need to apply these scaler's in order to receive sensible values.



A USB to UART cable can be used to read the serial output of the emonTx V3

The default output is at 9600 bps. Here is an example output from an emonTx V3 with a DC power supply and one CT sensor plugged into CT3 port.

Raspberry Pi Direct Serial Interface (no RF)

See here for documentation to connect emonTx V3 to Raspberry Pi via direct serial