I Need Datasheets

Recently received the following two boards, but no datasheets. I have no idea what the address header bytes should be, let alone the commands I can use. Please provide the datasheets. Thanks.


Product datasheet can be found on on product page under resources section.


Thanks. I have been reading those docs you referenced for several days now. However, they really don’t answer all my questions. Specifically:

  1. The “Current Monitoring Controllers” document specifies that header byte 1 is 146 and byte 2 is 106. Do the same header bytes apply to the PEVMAC2C, which is a voltage monitor?

  2. In the sample Python code for current monitors, in the line “data=bus.read_i2c_block_data(0x2A, 0x55, 3)”, why address 0x55? This does not seem to relate to the original header addresses.

  3. And does that same address (0x55) apply to the voltage monitor?

Once again, thanks for the speedy response to my original request. Much appreciated.

Yes, same command header will apply to the voltage monitor.
here is a sample python code for voltage monitoring

in python when we read a block of data without specifying reg location then we use 0x55.


Thanks again for the response and confirming the register location.

Using the similar current monitor Python code for the voltage monitor, I can only conclude that my new PEVMAC2C is not working. Although I get a good response from the I2C command2 (type, maxV, #ofChannels), I get an incorrect response to the I2C command1, as shown below:

pi@raspberrypi:/var/www/html $ python volts.py
Content-Type: text/plain

Type of Sensor : 5
Maximum Volts : 120 V
No. of Channels : 2
[0, 0, 0, 255, 255, 255, 255]
Channel no : 1
Volts : 0.000 V
Channel no : 2
Volts : 16777.215 V
pi@raspberrypi:/var/www/html $

The actual line voltage as measured by voltmeter is 122.4VAC, and the voltages to the board inputs are 10.62VAC (channel 1) and 10.63VAC (channel 2).

Unless there are any other suggestions from the community, I will contact NCD to return/replace the board. Thanks.

can you share the script you are using ?

I think you are using wrong sub command to read the voltage.

the voltage read command will look like this

Command for reading voltage

0x6A(106), 0x05(5), 0x01(1),0x02(2), 0x00(0), 0x00(0) 0x04(4)

Header byte-2, command-5, start channel-1, stop channel-12, byte 5 and 6 reserved, checksum

command1 = [0x6A, 0x05, 0x01, 0x02, 0x00, 0x00, 0x04]
bus.write_i2c_block_data(0x2A, 0x92, command1)

From the results looks like you are using this command
command1 = [0x6A, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00]

Thanks, and yes, I am using command 1. I see now in the sample you mentioned above (voltage-monit_python) that there is a command 5, which is not listed in the Current Monitoring document. I will try command 5.

Unfortunately I accidentally fried the I2C shield board today, so I can’t implement and test until I get a new board. My bad… sigh. I’ll update this thread as soon as practical. Thanks again for your help.

Command 5 is the obvious answer, and thanks again for pointing that out. All is well with my equipment, and the voltage monitor board is responding as expected.

glad you got it working. let us know if you need anything else.