EmonTx V3

From Wiki | OpenEnergyMonitor
Jump to navigation Jump to search

emonTx V3.2

For new (2015) emonTx V3.4 see wiki page: EmonTx_V3.4

The emontx v3 is a Low Power Wireless Energy Monitoring Node designed to monitor AC electrical power of four 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.

emonTx V3 Setup emonTx V3 PCB emonTx V 3 PCB assembled


  • emonTx v3 can measure apparent power, real power*, power factor*, RMS voltage* and current on four mains circuits
  • temperature and humidity sensing
  • Pre-assembled SMT design
  • A single AC-AC adapter can be used to power the emonTx V3 and provide AC voltage measurement
  • 4x CT current sensing inputs
  • On-board 3x AA battery option
  • Flexible choice of RF radio module and removable microcontroller
* when AC-AC voltage adapter is connected

Port Map

emonTx V3.2

emonTx V3 Ports emonTx V3 IO emonTx V3 Port map


Using an ATmega328 microprocessor, the emonTx V3 runs standard Arduino sketches. Custom sketches are uploaded using the Arduino IDE and a USB to UART cable.

Data from the emonTx V3 is transmitted via a 433/868MHz radio to an emonBase, a 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.

The main board of the emonTx V3 is pre-assembled, requiring the addition of the RFu328 and an optional battery holder to get up and running. However, if the 'fully-built' option has been selected in the emonTx v3 Bundle Builder, the emonTx will ship with the Rfu328 and firmware installed. If this is the case, skip to step 3 below.

Power Supply Options

There are four ways to power the emonTx v3:

  1. USB to UART cable - recommended for short periods only, e.g. while programming. We recommend removal of all other power sources.
  2. 5V DC Mini-USB cable - 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 closed (If jumper 2 is left open the AC-AC adapter will be used for power sampling, but not to power the emonTx V3 - see Powering via AC below)

Powering via DC (1-3)

When powering the emonTx V3 via DC (1-3) (and running the main emonTx firmware (emonTxV3_RFM12B_DiscreteSampling)) the emonTx v3 will take Apparent Power measurements, measuring only current, assuming a Power Factor of 1, and Vrms to be 230V. Power saving mode will be implemented, i.e. the unit will go into sleep mode between readings (default every 10s) to conserve battery power.

The red LED indicator will illuminate for a couple of seconds then extinguish never to flash again, if power is from a DC source. If the LED flashes multiple times at startup, this indicates the emonTx is detecting an AC waveform. This can happen if an AC adapter has been removed. Press the reset button if that occurs. When powering the unit via 5V USB/battery, it is advisable to remove the JP2 jumper if an AC-AC adapter is present.

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 sample. If the emonTx v3 detects the presence of an AC adapter at startup, it will automatically take Real Power and Irms measurements by sampling the AC waveform. Real Power is what you get billed for and can sometimes, 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 with an AC-AC adapter whenever possible.

Using the AC voltage sample for reference 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 180 degrees, and re-attach it to the wire. The red indicator LED will flash at startup then flash once every 10's to indicate an AC waveform has been detected. Sleep mode will be disabled to maintain a consistent power draw on the AC circuit.

Important note regarding powering with AC: Only recommended for standard emonTx operation without auxiliary sensors (apart from a max of 4 DS18B20 temperature sensors) or equipment (e.g. relay modules) connected. Correct operation via the AC supply is critically dependant upon using the correct AC-AC adapter. If you are using the recommended adapter, the current draw exceeds 10 mA, and mains voltage is below the allowed minimum, circuit operation will be impaired adversely affecting the accuracy of the emonTx. To avoid damage to the emonTx v3 circuits the current drawn from the AC circuit should never exceed 60mA - see the technical wiki for more info. If more than 10mA of current is required, it is recommended to remove jumper 2 (JP2) and power the emonTx via the 5V USB connector. If an AC-AC adapter is connected it will be used only to provide an AC sample when JP2 is removed.

Uploading Arduino Firmware

Compiling and Uploading using Arduino IDE

The emonTx v3 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 Environment

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

File > Sketchbook > OpenEnergyMonitor > emonTxFirmware > emonTxV3

Flashing Pre-compiled .hex

The main emonTx v3 emonTxV3_RFM12B_Discrete Sampling firmware as pre-loaded onto pre-build emonTx is also supplied as a pre-compiled .hex file.

GitHub can be used to make sure you have the latest version:

$ git clone https://github.com/openenergymonitor/emonTxFirmware.git $ cd emonTxFirmware/emonTxV3/RFM12B/emonTxV3_RFM12B_DiscreteSampling

Linux : use AVRdude

$ sudo apt-get install avrdude

$ avrdude -v -c arduino -p ATMEGA328P -P /dev/ttyUSB0 -b 115200 -U flash:w:emonTxV3_RFM12B_DiscreteSampling.cpp433.hex

Specifying the USB port of your USB to UART programmer and the correct name and location of the .hex file

Windows: you might be able to use the the XLoader application to upload .hex files (we have not tested this. Please update the wiki if you have)

Flashing the Bootloader

Should not be required

The OptioBoot Arduino Uno serial bootloader should already be loaded on the ATmega328 chip. If however, for some reason you need to re-upload the bootloder and set the fuses, here's how it's done:

The stock emonTx firmware can be downloaded in pre-compiled .hex form, including the bootloader, from github, look for a .hex file with the word bootloader in the title, on the emonTx V3 GitHub.

The .hex file can be flashed, and the fuses set, on the ATmega328 using the following avrdude command:

$ sudo avrdude -v -p atmega328p -c avrispmkII -P usb -e -Ulock:w:0x3F:m -Uefuse:w:0x05:m -Uhfuse:w:0xDE:m -Ulfuse:w:0xFF:m -U flash:w:emonTxV3_4_RFM12B_DiscreteSampling_bootloader.cpp.hex:i  -Ulock:w:0x0F:m

or, to speed things up:

$ sudo avrdude -V -u -p atmega328p -c avrispmkII -P usb -e -Ulock:w:0x3F:m -Uefuse:w:0x05:m -Uhfuse:w:0xDE:m -Ulfuse:w:0xFF:m -U flash:w:emonTxV3_4_RFM12B_DiscreteSampling_bootloader.cpp.hex:i  -Ulock:w:0x0F:m

If you want to read the data from the ATmega328, e.g to make a backup, execute the following command:

 $ avrdude -v -p atmega328p -c avrispmkII -P usb -U flash:r:test_intel.hex:i

Arduino Firmware Info

See GitHub readme for firmware info:

All emonTx v3 firmware is available on Github:emonTxFirmware

All pre-assembled emonTx v3s are shipped with emonTxV3_RFM12B_Discrete Sampling firmware. This is the main firmware for the emonTx v3 and has been tested and the device calibrated based on nominal component values. If better accuracy is required, and facilities are available, the unit should be re-calibrated to take account of variations present in the components used. You will need access to a programmer to reload the sketch. If you ordered an emonTx v3 without a radio module, no firmware will be loaded, although a bootloader will be present. You will need access to a programmer to load a sketch.

The emonTxV3_RFM12B_Discrete Sampling firmware has the following features:

  • Detection of AC-AC adapter sets Apparent Power / Real Power Sampling mode
  • Detection of battery / USB 5V or AC > DC power method and sets sleep mode
  • Detects connected CTs, and samples only from the connected sensors
  • Detection of remote DS18B20 temperature sensor

[Note: Detection of connected sensors occurs at power-on. The sketch must be re-started (press the reset button) if changes are made to the input connections, i.e. sensors are connected or disconnected after power-on]

The emonTxV3_RFM12B_Discrete Sampling firmware samples 10 full AC cycles, i.e. 200ms per measurement per CT. Within this measurement, samples are taken at the rate of approximately 2500 per second. It is assumed the power does not vary significantly during the time the emonTx is in sleep mode, which is usually sufficient for household monitoring. If greater precision is required, (as is the case with PV Power Diversion we recommended you use PLL continuous sampling. See the RFM12B firmware examples folder on GitHub.

Standard Operation

CT Energy Monitoring

Single Phase

By default, all OEM sketches are intended for monitoring a single phase system. All sketches are available on GitHub.

The "Discrete Sampling" sketch is suitable for general purpose use, including installations where the emonTx is powered by batteries. However, advanced sketches are available under "Examples" including a sketch for 3-phase installations, "Continuous Sampling" (useful where there is a rapidly switched load, for example), pulse input, etc.

The theory behind the calculations is explained in the "Building Blocks" section.


Because the emonTx has only one voltage sensing input, it is not possible to accurately measure 3-phase power with a single unit. However, if the voltage balance between the phases is accurately maintained (i.e. the supply has a relatively high fault level), it is possible to measure the voltage of the first phase and use this to calculate a reasonable representation of the voltages on the second and third phases, that can then be used to calculate the real and apparent power on the other two phases. A sketch that does this is emonTxV3_3Phase_Voltage

The "emonTxV3_3Phase_Voltage" sketch works by sampling the Phase 1 voltage as normal, but the values are stored in a circular array. One third of a cycle later, the stored value is read and used to calculate the real power in Phase 2. Two thirds of a cycle later, the stored value is read again and used to calculate the real power in Phase 3. Unfortunately, because the samples do not align exactly with the desired points on the second and third phases, it is necessary to interpolate between samples. When commissioning this sketch, it is essential to follow the calibration procedure in the comments.

Further information about 3-phase supplies can be found in "Building Blocks".


Like any other device assembled using components from a variety of sources, the values that the emonTx reads are subject to normal manufacturing tolerances. These have been analysed in detail in Building Blocks.

It is very important to note that the 'worst-case' error is exactly that, the maximum error possible if every component has the greatest possible error, and all errors add up in the worst possible way. The worst case is very unlikely to occur in practice. Most components are closer to their nominal values than their 'worst-case' values, and some of the errors will cancel each other. With careful calibration, some users claim their emonTx is reporting energy consumption within 1% of the value recorded by their energy supplier's meter.

Extended Operation

Temperature Monitoring

A DS18B20 digital temperature sensor can easily be connected to the emonTx v3 by connecting the sensor to the screw terminal block. The default firmware supports auto-detecting one DS18B20 sensor. Many DS18B20s can be daisy-chained, but this will require changes to the pre-installed emonTx firmware. You may also run into power consumption issues depending on how you are powering the emonTx (see Power Supply Options above).

In order to conserve battery power, the emonTx v3 switches off the DS18B20 between readings, and executes the temperature conversion routine while the ATmega328 is sleeping. To do this, power (3.3V) is supplied to the DS18B20's power pin from Dig19/ADC5. This digital pin is switched off between readings. The data connection from the DS18B20 is connected to Dig5. This I/O pin has a 4K7 pull-up resistor connected to the 3.3 V rail 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 - Dig19 Power (Red)
6 - Dig5 Data (White)

Utility Meter Interface

Optical Pulse Counting

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

In the case of an electricity meter, a pulse output corresponds to a fixed amount of energy passing through the meter (kWh/Wh). For single-phase domestic electricity meters (e.g. Elster A100c) each pulse usually corresponds to 1 Wh (1000 pulses per kWh). Water and gas meters are typically marked to show the quantity of water (liters/gallons), or gas, (cubic meters/cubic feet) each pulse represents.

The emonTx V3 has 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 measuring the time between pulses.

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

emonTx v3 Hardware Connections

Connect the pulse input to emonTx v3 terminal block port 4 (IRQ 0 / Digital 2) If you are connecting a hard-wired pulse output, you may need to add a pull-down resistor to PCB (R31) If you are using an optical counter (e.g TSL257), you should connect the power pin to 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

When used for pulse counting operation, we recommend powering the emonTx v3 from the 5V mini-USB connector, or the AC-AC adapter. The additional power consumed by the optical pulse sensor will significantly reduce battery life, compared to CT-only operation.

Direct Optical Interface

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


OpenEnergyMonitor was designed to use a low power radio to transfer the readings from the Sensor Node to the base station. This uses less power and has longer range than wifi.

RF Connectivity


The Rfu328 sold through the OpenEnergyMonitor shop is setup for use with the RFM12B. Make sure you solder the RFM12B with the correct orientation if fitting 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 the GitHub readme for details regarding the modifications. Using the RFu_JeeLib, the RFM12B on the RFu348 can be used exactly as before, i.e. all code written for the emonTx V2, JeeNode, etc should work fine using using the RFu_JeeLib library.


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

Due to higher power requirements, it is not possible to power the emonTx v3 from an AC adapter when using an SRF module. When an SRF module is used, the board should be powered via DC and the jumper removed see #Electrical Characteristics - Absolute min / max for power ratings.


By default, the emonTx V3 is shipped with a wire whip antenna. Our tests have shown a wire whip performs best. See our test data below:

EmonTx ant test photo.jpg emonTx Test Graph

All antennas and RFM12B modules were 433MHz running standard emonTx discrete sampling firmware, transmitting once very 10s. Each emonTx was given a unique node ID (7-10) to enable transmission identification.

An RFM69CW receiver provided RSSI readings to enable antenna comparison. The RSSI readings were all lower than normal since the RFM69CW used is an 868MHz module, with an 868MHz antenna, forced via software, to a 433MHz receive frequency.

The emonTxs with the SMA antenna had the RFu328 soldered directly (SMT) to the PCB, the coil and whip antenna had the RFu328 mounted using headers

SMA Antenna

While an SMA antenna does not improve the gain, it does make the antenna setup more durable and allow for the use of an SMA feedline and remote whip antenna. The whip can be a real lifesaver for installations with difficult RF considerations e.g. thick stone walls, no direct line of sight.

Adding an SMA antenna

Ideally, the RFu328 should be soldered directly to the emonTX via the SMT pads when using an SMA connector, (as shown in the photo below) as this connects the antenna pad on the RFu238 directly to the emonTx PCB antenna track which is connected to the SMA connector.


It is possible to use an SMA antenna when the RFu328 has been mounted on headers instead of soldered directly to the SMT pads on the emonTx. To do so, you'll need to connect the RFu328 antenna pad to the antenna pad on the emonTx with a small wire jumper. The wire jumper and the two pads which need to be connected are shown by the red line in the photo below.

RFu328 Headers showing jumper for SMA

SMA antenna options for emonTx V3
Manufacturer Description Value Package Rapid Code Farnell Code RS Code
Tru Connect SMA PCB connector N/A thru-hole 16-1562 2079861 512-0070
RF-Solutions 434MHz Ant straight 434MHz SMA 542-488 1304036 / 2DB 2305893 / 2096220 / 2133440 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
Ciseco SMA Extension whip antena 5m 433MHz SMA
Ciseco SMA Extension whip antena 5m 868MHz SMA

Wired Connectivity

Whilst the system was designed to transfer data via radio, it is possible to link the emonTx and RaspberryPi by wires. Note: this is NOT the standard setup.

Direct connection - emonTx v3 to Raspberry Pi GPIO

Both the Raspberry Pi and emonTx v3 run at 3.3V, so the serial data Receive and Transmit lines can be directly connected. the 5V power rail from the Raspberry Pi can be supplied to the emonTx which is then limited to 3.3V by the emonTx v3 voltage regulator. 5V is provided by the red wire (see photo). The ground connection is the black wire, the serial data from the emonTx is the green wire. Wire for serial data traveling the opposite direction i.e. Pi to emonTx, has not been connected in this example, but can be added if two way communication is required.

Emontx to pi serial emonTx Pi direct connection

See here for detailed emonTx/Raspberry Pi direct serial interface documentation

Electrical Characteristics - Absolute min / max

emonTx V3 Datasheet
Function Parameter Min Recommended

Max / typical

Absolute Max

damage possible if exceeded

CT 1-3 Monitoring Power @ 240V 23kW / 95.8A 60kW / 250A Using 22R burden and YHDC SCT-013-00 with 22 turns
CT 4 Monitoring Power @ 240V 4.5kW / 19.2A 4.6kW max measure – 19.7kW / 82A Max dissipation Using 120R burden and YHDC SCT-013-00 with 22 turns
AC-DC half-wave supply Current output 20mA 60mA Current draw above 20mA AC sample signal will be effected
3.3V Rail current output When powering with 5V USB 150mA 168mA Limitation SOT22 MCP1700 Ta=40C Vi=5.25V
Operating Temperature Temperature -40C +40C +85C
Storage Temperature Not programmed -50C +150C
5V Input Voltage USB/FTDI/5V Aux +3.4V +6V +6.5V (see note 1) See note 1
3.3V Supply Voltage on 3.3V supply rail 2.6V * 3.3V 3.8V RFM12B / 3.6V SRF * *ADC readings will be incorrect if Vcc!=3.3V
Power Consumption RFM12B @3.3V 0.034 mA (MCU sleep + RFM12B sleep) 7.3mA (MCU running) 9-10mA (MCU + LED), 23-28mA for 3ms RFM12B tx With ATmega328, RFM12B and 1 CT connected
Power Consumption SRF @3.3V 0.032 mA (MCU sleep + SRF sleep II) 7.4mA (MCU running, SRF sleep II) 31.24mA (MCU running, SRF awake) With ATmega328, SRF and 1 CT connected

Note 1: A higher voltage (up to 17.6V) can be used to power the emonTx if power is connected into the MCP1754 through the AC-DC enable jumper pin.

Design Calculations

Burden Resistor Calculations

Using SCT-013-000 with 2000 turns with 100A max primary: http://www.yhdc.com/cn/product/25/

CTs 1-3 have a 22R burden resistor, and can measure up to 97A (23.3kW @ 240V) using a YHDC SCT-013-00 CT which has 2000 turns.

CT 4 has a 120R burden and is rated at 4.6kW max

Using an SCT-016-000 with 6060 turns, at 200A max primary the recommended burden is 33R, which gives a max current rating of 214A http://en.yhdc.com/nav/Split-core-current-transformer-60.html

The higher the burden resistance, the smaller the measurement range, the higher the low end accuracy will be. Burden resistors should be +/- 1% tolerance.

Is^=Ip^/turns = Irms x sqrt(2)/turns

Rb= (AREF/2) / Is^ = AREF / 2Is^

Rb= (AREF * turns) / (2*IpRMS x sqrt(2))

Pmax=(240 * AREF * turns) / (2 *sqrt(2) * Rb)

Rb (100A , 24kW @ 240V) = 3.3*2000 / 2 x 100 x sqrt(2) = 23.3 Ohm

Closest value = 22R or 24R

Using 22R yields a Pmax of 23.3kW (97.1A) which is close enough to 100A. Measurements at 97-100A will be poor since the CT starts to saturate.

Pmax=(240 * 3.3 * 2000) / (2 *sqrt(2) * 22) = 23.3kW

Rb (16.7A , 4kW @ 240V) = 3.3*2000 / 2 x 16.67 x sqrt(2) = 23.3 O = 139.9 Ohms

Closest value = 120R or 150R

A 120R burden yields a max rating of 19.16A or ~4.6kW @ 240V

If the power level goes above the CT max rating, the voltage will go above 3.3V and the ATmega328’s ADC will be saturated. A 1K series resistor is used to limit input current to the ATmega. The ATmega 328’s internal clamping diodes will safely limit the voltage, preventing damage. http://openenergymonitor.org/emon/node/171

CT inserted indication

On the emonTx v3 design, a switched jack plug is utilized to provide a clear indication if a CT is connected or not. When a 3.5mm jack plug is NOT inserted pin 3 is connected to pin 2 and pin 4 is connected to pin 5 as shown in the diagram below. Pin 4 has been connected to GND so when no CT is connected, the ADC will sense 0V.

When a 3.5mm jack is inserted the connection between pins 4 & 5 is broken and the CT channel will work as usual.

emonTx V3 Setup

This method increases quiescent power consumption slightly since 3.3V will be connected to GND through a 470K resistor when no CT is connected. This will introduce a current drain of 7uA per channel, so a maximum of total of 21uA on the board (assuming at least 1 CT is always connected). See Quiescent power consumption section.

Burden resistor and capacitor power and voltage ratings

From testing results the maximum current in the secondary at saturation (primary current 250A – 60kW! @ 240V) is 85mA (RMS)

CT 1-3 (up to 23.3kW) use a 22R resistor. The max voltage through the burden at CT saturation will be 1.87V (measured by Robert to be 1.5V RMS). The max power the 22R burden will need to dissipate at CT saturation is 159mW

CT 4 (up to 4.6kW) uses a 120R resistor. Although this channel is rated for a maximum of 4.6kW, we can’t stop it from accidentally being used to make a measurment above that power level. Components should be rated for saturation. The max voltage through burden at CT saturation will be 10.2V (measured by Robert to be 5.2V rms). The max power the 120R burden will need to dissipate is 867mW.

However, the emonTx will be specced for domestic use. In the UK, the maximum rated fuse/RCB is 100A, most new builds are 80A. Therefore we can safely spec the emonTx for 100A max.

The current in the secondary at 100A is 50mA (RMS).

Max voltage in CT 1-3 22R burden = 1.1Vrms (measured by Robert to be 0.935 Vrms)

Max power in 22R CT = 55mW

Max voltage in CT 4 120R burden = 6V (measured by Robert to be 3.9 V rms)

Max power in 120R burden = 300mW

If a 0.25W resistor was used, the maximum current in the secondary would be 42mA. This equates to 82A or 19.7kW. CT4 will be physically removed from CT1-3 and clearly marked as 4.6kW max. Ideally, a red 3.5mm socket will be used to clearly identify.

Therefore the actual max power will be around 175mW. That gives a good margin.

Conclusion: 0.25W burden and 6V capacitor will be suitable ratings. A 0606 X5R 10uF 6.3V filtering capacitor can be used

Given testing results these values have been shown be to conservative, testing results are:

  • 100 A, 22 R: Burden voltage = 0.935 Vrms, 2.612 V peak-peak
  • 100 A, 120 R: Burden voltage = 3.89 Vrms, 12.07 V peak-peak
  • 250 A, 22 R: Burden voltage = 1.498 Vrms, 5.626 V peak-peak
  • 250 A, 120 R: Burden voltage = 5.194 Vrms, 21.9 V peak-peak

Max power is thus 225 mW (120 R) or 102 mW (22 R)

These are the maximum RMS voltages that can be developed. If 250 mW resistors are used, the actual power is comfortably inside the rating.

Power Supply


The emonTx v3 has been designed to accept power via 5V USB, 3x AA batteries, FTDI connection, Aux input from terminal blocks or from AC power adapter via an AC-DC half-wave power suply.

Only one of the available power sources should be used. DO NOT MIX POWER SOURCES.

In order to keep quiescent power loss to a minimum, a SOT32 MCP1700 LDO regulator was chosen for battery, USB 5V and FTDI power (5V) operation. The max input is 6V which is fine for battery (3 x AA) and USB operation. The MCP1700 has lower quiescent power consumption than the MCP1702 used in the AC-DC half-wave supply.

Powering from 5V USB (MCP1700 SOT22) Thermal Calculations Max voltage drop required = 5.25-3.3=1.95V

Thermal resistance junction to ambient (JA) for MCP1700 SOT23A = 230 degrees C/W (from datashet)

Max case temperature = 150 degrees (from datasheet)

I max = (T case max – T ambient max)/thermal resistance (JA) / delta V max

I max (SOT23A) = ((150-40)/336)/1.95V = 168mA (for SOT23A)

The emonTx v3 does not support battery charging. Please ensure batteries are removed before connecting USB or FTDI power.


For Power supply design circuit design, see blog posts: [[1]] ][2]]

For emonTx V3 power supply specifications, see: #Electrical Characteristics - Absolute min / max

All calculations assume a YHDC 013-000 CT and Ideal Power 9C AC-AC adapter 77DE-06-09-MI / 77DB-06-09-MI

An SOT89 MCP1754 LDO regulator is used in the the AC-DC power supply circuit. The MCP17542 maximum input is 16 Volts. The larger SOT89 package is needed to dissipate the heat. The 47uF capacitor stores enough energy to see us through half wave cycles. See section below for more info on AC-DC half wave operation.

The calculations below were first done for the MCP1702. This LDO reulator was swapped for the MCP1754. The MCP1754 was used in production version 3.2. See below for thermal calculations.

Powering from AC-DC half wave (MCP1702 SOT89) - old, not used in production

Thermal resistance junction to ambient (JA) for MCP1702 SOT-89 JA=52 degrees C/W (from datasheet)

Max case temperature = 150 degrees (from datasheet)

Imax = (T case max – T ambient max)/thermal resistance (JA) / delta V max

At 12Vrms (max output of 9V AC-AC at max mains voltage)

ΔB = 12-3.3 = 10.7V

Imax (SOT-89) = ((150-40)/52)/10.7V = 21.6-19.7mA (30C – 40C ambient) worst case – max mains voltage and 50 degree ambient – max output = 18mA)

At V=10.4Vrms (output of 9V AC-AC at typical mains voltage)

ΔB = 10.4-3.3 = 7.1V

Imax (SOT-89) = ((150-40)/52)/7.1V = 32.5-29.7mA (30C – 40C ambient)

At V=8.77Vrms (output of 9V AC-AC at min mains voltage)

ΔB = 8.77-3.3 = 3.62

Imax (SOT-89) = ((150-40)/52)/3.62V = 63.7-58.4mA (30C – 40C ambient)

Assume maximum possible continuous current supplied by MCP1702 from the AC-DC half-wave supply to be 18-20mA.

Powering from an AC-DC half wave supply (MCP1754 SOT89) - new, used in production v3.2

Thermal resistance junction to ambient (JA) for MCP1702 SOT-89 JA=153.3 degrees C/W (from datasheet P.22)

Max case temperature = 150 degrees (from datasheet)

Imax = (T case max – T ambient max)/thermal resistance (JA) / delta V max

At 12Vrms (max output of 9V AC-AC at max mains voltage)

ΔB = 12-3.3 = 10.7V

Imax (SOT-89) MCP1754 = ((150-40)/153.3)/10.7V = 67 mA (40C ambient)

worst case – max mains voltage and 50 degree ambient – max output = 61mA )

At V=10.4Vrms (output of 9V AC-AC at typical mains voltage)

ΔB = 10.4-3.3 = 7.1V

Imax (SOT-89) MCP1754 = ((150-40)/153.3)/7.1V = 101 mA (40C ambient)

At V=8.77Vrms (output of 9V AC-AC at min mains voltage)

ΔB = 8.77-3.3 = 3.62

Imax (SOT-89) MCP1754 = ((150-40)/153.3)/3.62V = 198 mA (40C ambient)

Using the MCP1754 with its higher thermal rating means the current limiting resistor dissapation rating is now the bottleneck to how much current can be drawn from the supply.

Robert Wall: AC-DC supply might not work (ripple will be unacceptable) if it is connected to a remote socket also serving a high current load at lowest mains voltage. However, the possibility this particular combination of circumstances will happen in practice is extremely remote and can be discounted.

AD-DC Power Supply component ratings

Max operation output of circuit = 20mA

Maximum output of circuit = 30mA. The AC voltage sample will be affected and the MCP1702 could overheat if ambient temperature is 40-50 degrees. 30MA should be drawn only for short periods. E.g. SRF radio Transmitting.

Do not try to draw more than 30mA. This will result in the 3.3V rail dropping significantly, and excess current passing through the 56R current limiting resistor. This will cause the resistor to overheat/burn.

Halfwave rectifier diode D1: Worst case at highest mains voltage and extreme current output: 30mW average

Current limiting resistor: 56R R29. At worst case, lowest mains voltage and extreme current output: Average power dissipation: 222mW. 0.25W resistor will be ok.

Reservoir capacitor C18 47uF: should not see a higher voltage than 12V since the zener diode will clamp the voltage to 12V. A capacitor rating of 16V will be more than enough.

De-coupling 1uF capacitor C17 voltage rating: The transformer is ground referenced, the other side referenced to 1.65 V – so 6.3 V should be plenty. The alternating component of the voltage should be very small, else we have phase shift problems. [The major part of the 12V will appear across the divider chain, R13 + R14.]

Zener diode - 12V MCP1702 overvoltage protection 106mW average - not needed since MCP1754 is used and can handle 16V input

Open-Hardware Design Files

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

All the Design files for the emonTx V3 are hosted on Git based SolderPad, see: http://solderpad.com/git/openenergymon/emontxv3

emonTx V3 BOM

The circuit schematic and pcb layout files are available on GitHub, see: https://github.com/openenergymonitor/Hardware/tree/master/emonTxV3/emonTx_V3.2

Ideas for Future Versions

  • Add resistor divider (470K/1M with low value cap to GND) for battery voltage monitoring into a free ADC input, although there are no free ADC's! Maybe it could be jumpered to ADC0 since AC-AC will not be used when a battery is present.
  • Check optimal SMA antenna tuning PCB trace

Physical Dimensions

PCB: 100mm x 80mm

emonTx V3 Dimensions

Download: Extruded Aluminium Case Datasheet

Enclosure & Fascia CAD Design

It was decided to use an extruded aluminium case with acrylic fascia. The case is solid, wall mountable and port cutouts are easily customizable with laser cut fascias. The initial embodied energy of aluminium is greater than plastic, but recycling aluminum uses less energy than recycling plastic. See our blog post investigating the embodied energy of electronics enclosure materials.

The emonTx V3 fascia design CAD files are available here: Thingiverse Download

DIN Rail Mount

Thanks to @Aquefot for contributing a DIN mount rail fitting CAD design ready to be 3D printed for the emonTx: Thingiverse Download


The hardware designs (schematics and CAD files) are licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.

The firmware is released under the GNU GPL V3 license

The documentation is subject to GNU Free Documentation License

The hardware designs follow the terms of the OSHW (Open-source hardware) Statement of Principles 1.0.

Environmental & Life Cycle

We are passionate about sustainability and are aware of the embodied energy and use of resources involved in electronics manufacturing. We try our best to reduce environmental impact wherever possible:

  • We have recently been inspired by a few projects taking a lead in promoting and making steps towards Ethical and Sustainable Electronics, see our blog post we wrote on the topic .
  • The PCBs are manufactured in the UK by a manufacturer who uses lead free techniques, complies to the highest environmental industry standards and is actively investing in techniques and equipment to reduce waste and environmental impact (e.g water treatment and recycling). Hot-air leveling was chosen instead of immersion gold finish to reduce environmental impact.
  • The assembly is done in the UK. All components are RoHS compliant and free of conflict materials.
  • Surface freight is used in preference to air shipping when ordering parts in bulk. This consumes 33 times less energy.
  • We have strived to reduce electrical energy consumption in our hardware to be as low as possible and recommend the use of green, rechargable batteries, see blog post



The OpenEnergyMonitor system is sold as a development kit to empower members of the openenergymonitor community to to get involved with the OpenEnergyMonitor open-source energy monitoring development project.

Your safety is your own responsibility, including proper use of equipment and safety gear, and determining whether you have adequate skill and experience. OpenEnergyMonitor and Megni registered partnership disclaims all responsibility for any resulting damage, injury, or expense. It is your responsibility to make sure that your activities comply with applicable laws, including copyright. Always check the webpage associated with each unit before you get started. There may be important updates or corrections! All use of the instructions, kits, projects and suggestions given both by megni.co.uk, openenergymonitor.org and shop.openenergymonitor.org are to be used at your own risk. The technology (hardware , firmware and software) are constantly changing, documentation (including build guide and instructions) may not be complete or correct.

If you feel uncomfortable with assembling or using any part of the kit, simply return it to us for a full refund.