ADC MCP3424 Help

Hi all.

I purchased some of these PCBs with some ADC on them, see here:
ADC Things

I saw there was a node called node-red-contrib-redplc-rpi-mcp342x so I figured I'd be good to go. But no...

Each node has 4 outputs that can be set up, but there is only one output from the node? Done a bit of searching but I can't find any real good info on this node. Most nodes appear obvious in setting them up. i.e. MCP3008 (SPI) or ADS1015 (I2C), both of which I've have working.

All I get out of each node for the MCP3424 is some messy number that is 13 characters long. And nothing changes on the output when I fiddle with the settings (bit reading, voltage levels) or apply voltages to the inputs.

Before asking. Yes I have enabled I2C (and SPI).

I don't know how to create a node, way above my pay grade for now.

Thanks.

[{"id":"a373123389e65c08","type":"tab","label":"Test MCP","disabled":false,"info":"","env":[]},{"id":"7669c199ac58cd0f","type":"inject","z":"a373123389e65c08","name":"","props":[{"p":"payload"}],"repeat":"4","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":140,"y":60,"wires":[["bf6f73f8385ca880","b227848ca2db61eb","2e8e332fe43c5974","9dd22a3ea2fc8359"]]},{"id":"bf6f73f8385ca880","type":"mcp342x","z":"a373123389e65c08","addressai":0,"devtype":"4","devadr":"0","mode0":"0","mode1":"99","mode2":"99","mode3":"99","gain0":"0","gain1":"0","gain2":"0","gain3":"0","factor0":"1","factor1":"1","factor2":1,"factor3":1,"offset0":0,"offset1":0,"offset2":0,"offset3":0,"x":380,"y":160,"wires":[["93c4c81af5848144"]]},{"id":"b227848ca2db61eb","type":"mcp342x","z":"a373123389e65c08","addressai":"1","devtype":"4","devadr":"1","mode0":"0","mode1":"0","mode2":"0","mode3":"0","gain0":"0","gain1":"0","gain2":"0","gain3":"0","factor0":1,"factor1":1,"factor2":1,"factor3":1,"offset0":0,"offset1":0,"offset2":0,"offset3":0,"x":380,"y":220,"wires":[["dab946c2de7aa8ef"]]},{"id":"2e8e332fe43c5974","type":"mcp342x","z":"a373123389e65c08","addressai":"2","devtype":"4","devadr":"2","mode0":"0","mode1":"99","mode2":"99","mode3":"99","gain0":"0","gain1":"0","gain2":"0","gain3":"0","factor0":1,"factor1":1,"factor2":1,"factor3":1,"offset0":0,"offset1":0,"offset2":0,"offset3":0,"x":380,"y":280,"wires":[["560b3b25690f67e3"]]},{"id":"9dd22a3ea2fc8359","type":"mcp342x","z":"a373123389e65c08","addressai":"3","devtype":"4","devadr":"3","mode0":"0","mode1":"0","mode2":"0","mode3":"0","gain0":"0","gain1":"0","gain2":"0","gain3":"0","factor0":1,"factor1":1,"factor2":1,"factor3":1,"offset0":0,"offset1":0,"offset2":0,"offset3":0,"x":380,"y":340,"wires":[["a818a4c82f367c56"]]},{"id":"93c4c81af5848144","type":"debug","z":"a373123389e65c08","name":"","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":630,"y":160,"wires":[]},{"id":"dab946c2de7aa8ef","type":"debug","z":"a373123389e65c08","name":"","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":630,"y":220,"wires":[]},{"id":"560b3b25690f67e3","type":"debug","z":"a373123389e65c08","name":"","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":630,"y":280,"wires":[]},{"id":"a818a4c82f367c56","type":"debug","z":"a373123389e65c08","name":"","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":630,"y":340,"wires":[]}]

Hi,
the input and output are only for triggering reading analog inputs.
The node writes the analog values to Node-Red global variables.
I update the description page with examples in next time.
There are also little bug fixes and support for 64bit OS.

Really ? The recommended practise is for msg.payload to always contain the "interesting" data that the next node may want. Hiding it in global is not good.

So the gist is that the Node is kinda useless to anyone else. Where does it write the information in Global variables? In what format is the information written and how can I use information to create lets say a simple gauge?

Thanks

Found these in the global context:

|IA0|[ 0, 0, 0, 0 ]|
|IA1|[ 0, 0, 0, 0 ]|
|IA2|[ 0, 0, 0, 0 ]|
|IA3||[ 0, 0, 0, 0 ]

But don't know what to do with them now.

If I use a "change" node and move global:IA0 to a msg:payload I see:

msg.payload : array[4]
array[4]
0: 0
1: 0
2: 0
3: 0

On 1st inject then undefined after that. I'll keep poking at it.. It's how I learn about this stuff anyway!

1 Like

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