Emontx shield and lcd_l2c == freezes, with bad values on CT3

I suspected something like that - it’s a near-repeat of the problem a few years ago. (From memory: with a particular clone and an Ethernet Shield? - something like that.)

hi i bought a emontx shield and it seams to gives erroneous reading
example:
I think it has probably a bad resistor on port 3

-0.00 -26.97 6042.74 28.17 121.67
-0.00 -27.37 6056.80 27.26 121.86
-0.00 -26.93 6038.67 27.82 121.74
-0.00 -27.55 6034.19 28.03 121.59
-0.00 -27.12 6027.13 27.83 121.71
-0.00 -26.81 6042.26 27.63 121.53
-0.00 -27.46 6031.58 28.11 121.77
-0.00 -27.37 6030.33 28.09 121.55
-0.00 -27.30 6017.31 27.72 121.37
-0.00 -27.43 6044.73 27.77 121.67
-0.00 -27.81 6033.74 28.42 121.85
-0.00 -27.78 6056.13 27.71 121.79
-0.00 -27.22 6036.45 28.08 121.81
-0.00 -27.51 6047.02 28.55 121.91
-0.00 -27.66 6056.78 28.21 122.03
-0.00 -27.32 6063.59 27.66 122.20
-0.00 -27.47 6073.10 28.15 121.83
-0.00 -27.98 6064.05 27.55 122.01
-0.00 -27.62 6069.62 27.98 121.94
-0.00 -27.41 6071.97 27.44 122.06
-0.00 -27.30 6066.59 28.39 121.95

What do those numbers mean? I have no idea which sketch you are using.
Please read the FAQ, because that tells you what you need to tell us so that we can help you.

It would be helpful if you put all 4 CTs on the same cable and told us what current, power and voltage you expected to see. Have you swapped CTs between channels - does that reveal anything?

oops sorry I should of said it had a +27 watt load on 2,3 and4 all of on the same cable, here a sample with zero load on ct 2,3 and 4 that is with the base sketch - Shield_CT1234_Voltage_SerialOnly port 3 always reading in around the 6000 mark

0.00 0.00 6157.50 0.00 122.75
-0.00 0.00 6161.65 0.00 122.65
0.00 -0.00 6155.85 0.00 122.68
0.00 -0.00 6150.88 -0.00 122.69
0.00 -0.00 6153.79 -0.00 122.62
-0.00 0.00 6152.94 0.00 122.55
-0.00 0.00 6040.95 0.00 122.70
-0.00 -0.00 6132.23 -0.00 121.73

Why is your voltage only 120 V? What is your nominal mains supply voltage?

What does Input 3 read with the CT uplugged? (You should see the values slowly decay to zero.)

It might be the CT’s burden that is missing or open-circuit, but I rather doubt that you would get numbers that big even so. But it’s easy to test. Look at the pcb immediately behind the CT’s socket, and you should see a pair of holes for a wire-ended resistor, and between them on the other side of the pcb a SMT 33 Ω resistor, R17. Is the resistor there? If you have a multimeter, can you check the value? Even if it appears correct, if you have any small (i.e. any value below about 300 Ω) wire-ended resistor, or even a wire link, temporarily insert that into those holes and see what happens. If the numbers fall to a “sensible” value, by that I mean significantly less than 6000 (zero for the link!), then it looks as if that is indeed your problem. If not, I’ll have to think again.

I notice you’re the same poster having compatibility issues with the emonTx shield and your I2C LCD shield. Were the above measurements taken with the LCD shield connected? If so, do they get better when you remove it? If so, see my reply to your other thread (I don’t think the two shields are compatible at least on a Uno).

Threads merged, as it would appear to be the same problem.

humm not really the same problem not sure why you merged it, perhaps related as i get the bad reading on ct 3 even before trying the lcd _l2c as i just wrote a program that was operating on the remaining working ports…
lcd l2c only uses 4 wires - 5v, grd, scl and sda-- no a4 o5 involved and was curious if the lcd -l2c is incompatible with emontx shield

all measurement for ct3 are done on on a a empty arduino and emontx only thing connected are the CTs ( no LCD shield or lcd - l2c connected)

why 120 volt Canadian voltage ranges from 120 - 124 normally 124 volts for my province

the 6000 value is the same with ct plugged in or not, all it does in fluctuate around the 6000 range by 10 - 20 % and never decays to zero
I compared it the resister value where you said and it is relatively close to the range of the other ones +/- 33.3. I also tried a second resistor inserted 33 value same reading does not change

if i use the no volt sketch it decays to 2000 instead of 6000

as to all the errors tried it on 3 different uno borard all from different manufactures all the same issues

If the same person is having two problems with a common piece of hardware, it makes a lot more sense to me to have them in the same thread, so that everybody sees the full picture.

I had no idea where in the world you were, hence the voltage question. I’m assuming all the time that you haven’t altered the sketch in any way.

With the Shield_CT1234 sketch, you say the CT3 power shows around 2000? Which ac adapter are you using?

Have you checked the pcb for obvious manufacturing faults - I’d be looking in particular at the track that goes from the burden resistor to the processor, and looking for a hairline break or a whisker bridging to an adjacent track. Have you checked continuity between the burden resistor and the Arduino pin?

What power value do you get with the Shield_CT1234 sketch with the Shield absent ? (You’ll need to comment out the rf12_… and send_rf_data… lines, else the sketch will hang.)

With the Shield & CT connected, does the voltage on the burden resistor sit at around 2.5 V d.c?
The software filter should take out the d.c. bias whatever the voltage the input sits at, but this would be a final check.

On an Uno, SCL is A5 and SDA is A4 (see https://www.arduino.cc/en/Reference/Wire) or if you prefer to use the ATmega328P datasheet:

PC4 can be ADC4 or it can be SDA but it can’t be both (ditto for PC5, ADC5 and SCL). When you’re connecting your lcd_I2C to your Uno, where do you connect it, if not to A4 and A5?

Those two shields may well work together if you choose an Arduino that has the I2C pins somewhere else. That’s not an iron-clad guarantee, you’d need to check all other pins usages for conflicts before you commit to replacing your Uno with something else. But one thing is for sure, an Uno can’t do any I2C (not just LCD shields) when it’s hosting an emonTx shield.

But you’re right… if there’s nothing connected to SDC and SDA then that can’t be the source of your bad readings.

okay i check the traces they seam fine i can not see any thing visible wrong, and when i check for continuity from the burden resistor to the corresponding analog pin it say it fine… would there be a pcb layout for this board somewhere, as it would be easier to track the traces.

perhaps one of the other grouping of cap resistors are bad for ct 3 i tried to check thier reading but i get nothing … it just zeros out , I guess how they are . configure make it impossible to check.

what the bare minimum pins require to boot this board.
I assume a0- a4 ( as 5 appears not to be used) and 5v and ground and pin 9 for the led . i will try that and just swap positions for ct 3 to ct 4 and if the fault move to ct4 position then we know the fault is hardware.

thanks dBC i did not know that, so as it appears a5 is not used, if ( i had fully working board) all i would need to do is cut the trace, pull pin for a4 or remove the burden resistor and then l2c would work by disabling ct4

I have already told you where to find physical details of the board, and unless you answer all the questions I ask, I cannot help you.

i tried connected the only the pins a0-a4 and all the pins on the analogue side and pin9 , it worked properly – it turned out to be a cold solider point, when it was inserted in the uno it held it in the perfect position the pin did not touch, unplugged from the board it did,

sorry robert if i offended –

so it would seam if you get a reading of 6000 with ac adaptor and ct1234 voltage and 2000 with ct1234 then most likely it is a bad solider joint at corresponding analogue pin ( for future reference )

oh there are pin plug in called scl and sda on the opposite side of the uno board, so i would of thought they were unrelated to the analogue 4 and 5

hi again – well i pulled analogue pin a4 from the emontx which disabled ct4 and reprogrammed the uno while removing reference ct4 from sketch - now it displays info on lcd -l2c screen with out issue-- which is fine i only needed 2 ct sensor and an optional 3) for my project anyways –

thank you for your help much appreciated…

I would not be so bold as to make that statement. In all the years that I have been in electronics and electrical engineering, in my experience the only predictable property of a dry joint - or for that matter a bad crimp - is that it is completely unpredictable. While what you have written might be true for you this week or this month, I would be happy to say that it would not be the same for someone else, or for you in a year’s time (if you had not found it, of course). (And yes, one legendary dry joint took me two years to find. It was only when the surfaces had corroded sufficiently for the fault to last long enough for me to find it that I did. Before then, the slightest movement when you so much as tapped the case cleaned the surfaces enough for the fault to go away.)

So dBC was right when he said that the LCD display would be using the same pin as CT4.

Therefore we can safely say that the display that you were using is not compatible with the emonTx Shield, unless the shield is modified.

I’m glad that your issues are resolved.

Ah, OK. They’re just exact copies of A4 and A5 in a more convenient location(*). You can buzz them out with your multimeter if you like, and you’ll see the hole labelled SCL up near the reset button is connected to A5 and ditto for SDA/A4. It makes no difference which pair you use as they both end up at the same pin on the CPU.

(*) On your Uno. On my Mega2560 they’re exact copies of D20 and D21 in the same convenient location. That way shield designers who need I2C access can drop two pins into those two holes up near AREF safe in the knowledge that the Arduino below will plumb them through to wherever the I2C controller lives on that particular processor.

Not exactly. The incompatibility is between the LCD display, the emonTx Shield, and the Arduino UNO. On many other Arduinos, the I2C pins live elsewhere (see pointer above). On a Mega2560 for example, the I2C pins share with D20 and D21 which AFAIK the emonTx shield doesn’t use, so there’d be no conflict there.

Those pin functions always overlap with something. The problem with the Uno is that the designers chose a processor with so few pins that they all start overlapping with something you care about. Losing A4 and A5 to I2C is a significant hit to anyone doing lots of ADC stuff, while losing D20 and D21 to I2C is a bit of a don’t-care since there are plenty of other digital pins to be used.

well not sure if anyone would be interested - but here a copy of my sketch for my little project - it a solar diverter but it does things a little differently then others

  1. it operates either by using traic and dump source if you like - when the program first starts it takes a sample of the the dump element and then bases it calculations) so there should be very little steps to find the the right dump with in couple steps.
  2. it controls dc load by pwm - it can control 6 pwm at once adjust or redirect solar panels dc output.

I had to modify the emontx shield a bit for the uno basically pull pin a4 and iscp remove that and install two jumper pins instead on top so I have access to pin 13 pin 11, then i just used existing jumper pins for pin 10 pin 5
added extra parts lcd -l2c, ad5206 (100k), any common pwm 40 - 100 amp found on ebay - the bnc connector is for the traic controller and the cat5 jack are for the pwm each cat5 cable handles 2 pwm boards. if you want more info just ask

Txsheild3adv2.ino (11.1 KB)