Homebrew emonpi not detecting CT sensor

Hi, hope some one can help me with this.

I can’t get the CT recognized by the Emonpi.

What I’ve already done is:

  • Flash an SD with Latest version, installed on a Raspberry PI 2 and updated sucesfully via EmonHUB.
  • Installed the I2C LCD ok.
  • Prepared an Arduino UNO board and connected to Raspberry with the correct pins ( I think ) between Raspberry and Arduino.
  • Later updated the ATMEGA328 with AVRdude and it also seems to be ok.
  • Connected the CT1 and Components to A1 Pin in arduino.

After power on, display shows IP, and version, wifi also works fine, but it does not show anything about detecting AC CT. Logging into EmonCMS, shows no inputs available.

Any idea whats missing?


Is your c.t connected when you power the Arduino? It must be (or rather, the 2.5 V bias must be), otherwise it is ignored by design.

Is your “emonPi” from the OEM Shop, or is it made from parts that you bought locally? I’m not clear whether you have tried to build an emonPi clone or an emonBase with a serial connection to an Arduino. Unless you exactly copy the hardware and software for the emonPi, the emonSD image probably won’t work without modification.

What information did you follow when connecting the various components?

What sketch is in your Arduino? Can you use your programmer to see what it is sending?

Hi Robert,

I’ve ordered an EmonPi from the OEM shop, but waiting for it to arrive.

While waiting for the “original one”, I’ve used a Raspberry Pi 2 and a Arduino UNO ( bought locally ) to create an EmonPi clone.

Yes, the CT1 is present before power on and it’s connected like the attached picture to A1 pin in the Arduino and feed with the 3.3V.

I’m not using the EEPROM, is it necessary to detect the CT? Also don’t need AC-AC VRMS sample, RTC, RFM, Temp, etc…

I just need to read power from the CT.

Any idea on what could be wrong?



The EEPROM is not necessary.

You cannot read power without the a.c. adapter and a measure of voltage. You can only have an approximation of apparent power (VA - volt-amperes).

Have you stolen the sketch for the AtMega from the emonPi on GitHub, or what are you using?
Are you reading a current with your Arduino sketch? How is it sending the data to the RPi?

Yes… I’ve downloaded the repository from Github for EmonPi.

and using the following wiring from Arduino to Raspberry from the wiki:


Arduino Analog 1 (D15) to CT1 circuit
Raspberry GPIO 2 (SDA) to LCD
Raspberry GPIO 3 (SCL) to LCD
Arduino Digital 0 (RXD) FTDI Tx to Raspberry GPIO 14 / pin 8
Arduino Digital 1 (TXD) FTDI Rx to Raspberry GPIO 15 / pin 10
Arduino Digital 5 PWM to RaspberryGPIO 17 / Pin 11
Raspberry GPIO 17 (pin 11) to Arduino Dig 5 – shutdown signal
Raspberry GPIO 4 (pin 7) to Arduino reset

This is the “update Emonpi” log. Everything seems to be ok, but may be it will help you to find the trouble.

After updating I was able to see 3 nodes in the input screen for a moment, but they said error and 0 readings or update. I deleted them and never appear again.

Also the boot sequence on LCD still showing only the Wifi IP, MTTQ Server not connected and the version, but can’t see the CT detection message.

Thanks for your support!

emonpiupdate.txt (5.7 KB)

I don’t know enough about the emonPi for the log to mean much to me.

The place to start is your Arduino: does it measure current and send the data? Until that happens, the emonPi will not know that it exists!


I’ve installed the emonPi discrete sampling test sketch to the Arduino just for test the CT and seems to read values from CT correctly. It doesn’t have Voltage readings yet, and will need calibration. This are the serial print values read:

TATmega328 Startup
emonPi discrete sampling test sketch
5 1260.59 65650.82 76.05
5 4.77 26724.53 8.05
5 5.34 10945.75 8.14
5 4.93 4469.20 8.03
5 5.04 1945.78 7.87
5 5.44 929.50 7.97
5 5.36 453.71 7.81
5 5.05 239.01 7.78
5 5.28 181.79 7.93
5 5.29 138.37 7.82
5 5.21 124.38 7.83
5 5.25 139.90 7.95
5 5.23 121.08 7.89

How can I check if the communication between Arduino and Raspberry is ok or if it’s sending the correct information?


That looks as if the Arduino hardware and the interface to the c.t. is working (the numbers going down is the filter settling), so I suggest you go back to the original sketch at emonpi/firmware/src at master · openenergymonitor/emonpi · GitHub

If it does not work then, I think you need to look at your connections again. Bear in mind what I wrote only yesterday in another thread “Beware: the emonTx has the serial pins labelled NOT according to convention. Transmitted data appears on the pin labelled “Rx” (i.e. it is looking for Pin Rx), received data should come in on the pin labelled “Tx” (i.e. it is looking for Pin Tx).” So you must ignore the entries for Tx & Rx in the column in the Wiki headed “emonPi V1.6 Atmega 328”.

You did remember to disable (comment out) the Radio module, or set RF_STATUS = 0; if you don’t have the emonTx Shield fitted?

1 Like


Yes!!! the problem was the RF_STATUS = 0.

Now it’s reporting fine all nodes to EmonHub.

Great Job… You saved my life!!

1 Like

It was trying to communicate with the RFM69 radio module, and waiting for an answer that would never come.

1 Like