Debugging ET112 RS485 connection

I have an ET112 energy meter and a CerboGX. I’d like to use it for either grid monitoring or measuring my AC inverter output. However I am having a great deal of difficulty talking to it. I do not have the Victron USB-RS485 device, but I do have a couple of other RS485 adaptors and as this is a 2/3 wire bus it seems like it shouldn’t be rocket science to get data out of the device. But after quite a few hours dicking about and reading the modbus spec it’s not working. I am begining to wonder if my ET112 is actually working.

I had assumed it was just sending out a serial stream so it would be obvious when I had the wiring and protocol details right, but from reading the modbus RTU spec it seems that it is in fact a query-response type setup. I found mbpoll which can talk modbus RTU. I have some questions.

What does it mean when the green LED on the ET112 goes orange? It flashes at me for a few seconds every minute when plugged into the CerboGX. Is that ‘activity on RX’ or ‘activity on ‘TX, or both, or something else? The ET112 docs don’t seem to say.

What voltage (AC or DC) should I see between the GND and A & B lines on the ET112? I have a 5-volt logic analyser which says ‘don’t use it on RS485/422 as they can be up to 24V and you’ll blow it up. I actually measure 3.3V and 1.1V DC. And my analyser didn’t blow up so maybe it’s actually <5V? and this is ‘working’?

The ET112 manual says to use 9600 buad, 8N1. But the Modbus spec says default ‘Basic’ comms is 8E1 and if there is no parity then there must be 2 stop bits. What does it actually use?

Do I need to use 3 wires or two? i.e is the GND/common required. The spec says it is, but some adaptors only have A&B.
Do I need to connect pin 3 (terminator) to pin 5 (A)? Victron docs say don’t bother unless you have a really long run. My run is about 1m.

Should I connect pullup and pulldown resistors on A & B. The spec says they should be present. One of my adaptors has links to connect them or not.

Is there a modbus way to interrogate the bus if you don’t know the device address? It seems not. How does the Cerbo find the various supported meters - is it just putting out messages all the time to the known addresses (ET112 seems to be 1 by default) every few seconds until it gets a response?

There is supposed to be some software on the Carlo Gavazzi site that lets you reconfigure the meters. But the link is dead. https://www.gavazziautomation.com/en-global/software-configuration-tools Does it still exist? I bet it’s windows-only. Is there anything equivalent for linux? Is it just sending modbus serial data to registers so in fact mbpoll could do the job?

I have one USB→RS485 device terminated in an RJ45 which plugs into my fogstar battery. It works fine there, but not in the ET112. According to the modbus spec using pin 4 for B 5 for A and 8 for common is standard RJ45 pinout. That seems to match the ET112 pinout but the Fogstar is different 1 for B, 2 for A, 3 for common. I triued making an adaptor but still no joy.

I also have a TTL to RS485 device which can do 2-wire or 4-wire (or RS422). (A lot like this, but I think an older model: https://www.ett.co.th/Catalog2014/ET-MINI%20RS422-485%20ISOLATE%20V1%20ENG.pdf. Actually the circuit in http://www.ett.co.th/product/InterfaceBoard/P-ET-A-00230/MAN_MINI_I_15_Board.pdf called “Module ET-Mini 422/485”. And I have USB to TTL devices. Wiring those together eventually got some action (once I discovered than one USB→TTL device was just dead! Grrr). Watching the TTL signals with my logic analyser I can send mbpoll requests with
mbpoll -m rtu -a 1 -u -b 9600 -d 8 -s 1 -P none /dev/ttyUSB0

but I always get “Connection timed out”.
I did for a few moments get a connection where the LED went orange and it read two registers 0 (value 2570) and 1 (value 0). Are those plausible? And then it stopped and I have not managed to repeat it. I don’t understand why it worked for a moment and then stopped for a few more hours.

Looking on the logic analyser I see valid MODBUS RTU messages on the TX TTL line, but nothing on the RX line. I suspect the issue is that my module has a ‘dir’ pin which it expects to control TX/RX direction when used in 2-wire mode, and my USB→TTL board does not provide such a signal. I don’t really know enough about RS485 to be sure of this so if someone can confirm that would be helpful. I have ordered a more conventional USB→RS485 device which will presumably take care of this duplexing automatically.

If I watch the Cerbo GX with this connected up it sends out a series of 12 valid frames over 3 seconds which makes the LED flash orange, then more messages which don’t appear to be valid. This repeats every 50 seconds or so.

Clues welcome for anything else to check for whether my ET112 is in fact working, or why I seem to only have one-way comms.

1 Like

Hi carlo gavazzi software still exists its called Universal Configuration Software, windows only, you should not have to make any settings in the et112, plug and play with right rs485 interface

the victron is an FTDI chip rs 485 usb converter, maybe this helps

Product and market brochures from Carlo Gavazzi!

1 Like

I finally fixed it, by buying a basic (£5) USB to RS485 adaptor, that works with A,B, GND. It’s CH340 (Qinheng) based, but still appears to work.
A useful bit of info is that as soon as you have bidirectional comms the LH LED goes orange, as well as the right hand LED flashing orange/green.

So now I can finally start to measure my AC inverter, and thus get much more accurate discrimination between AC consumption and AC generation, which currently the system has to infer.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.