I have this Inbras electrolyte analyzer, a rebranded version of the same device manufactured by Diestro. It uses a PIC18F87K22 (master) which communicates with the sensor using a PIC12F629 (slave) through 4 pins in a custom IDC-DB9 connector with the following connections:
I will be referring to the slave device's pins since it is what I am interested in.
This device is supposed to measure the level of two liquid containers, but actually just counts down from a fixed volume. I want to program a microcontroller to replace it and actually measure the level of these containers, but to do so I need to figure out the communications used without having access to the programs stored in the microcontrollers (I don't have any programmers and it probably also is copy-protected).
The package where the reagent bottles are kept and the "sensor" attached to the green bottle.
There are no sensors at all. It just connects to the analyzer through the IDC connector and these pads do nothing.
I used a generic FX2 based logic analyzer along with Sigrok + PulseView to capture the data. Samples here. All these captures should indicate that the containers are empty and I unfortunatly only have access to these right now.
Here are some of the things I would like to find out:
- Which pins are for transmission and reception?
- What is the baud rate?
- Which protocol is being used?
Some observations:
Sample from the slave-connected-calibrate.sr
file.
A bit closer in, with SPI decoder (CLK = GP1, MISO = GP0, MOSI = GP5, CS = GP2 and CS polarity = active-high).
- Signal seems to be an asynchronous, since there is no apparent clock signal.
- Signal frequency is 7 kHz.
- GP2 seems to be some sort of chip enable pin because it stays high during 8 long pulses.
- GP1 probably is the transmission pin because there’s so much data in it.
- Probably not UART (at least not using with the common baud rates).