Minutes later, I'm no longer at a loss...
AND WE'RE OFF!!!!!!!!
It looks like it's using SERIAL_8N2.
Certainly, if I set the arduino to use that config then I can read all the data.
sigrok seems to think that the controller is using a zero parity type but we don't have that option in arduino. So at 8N2 sigrok shows loads of parity errors from the arduino but it works dagnabbit!
On starting up the arduino with my new code using SERIAL_8N2 the screen is no longer flickering and goes into standby mode.
And I'm now able to properly communicate!!!!
It's been a long time coming and we're not there yet but this is a massive step forward and for the first time I can talk back to the blasted controller. Now I just have to add in the logic but that's the easy bit.
Massive thanks to Riva for keeping me going.
^^^ Starting to sound like an awards ceremony
Here is the info I have managed to gather about what the controller is sending:
3rd byte - Power
Power | 3rd byte |
---|---|
ON | 01 |
OFF | 02 |
PAUSED | 03 |
4th byte - Requested Temperature
Temp (deg C) | 4th byte |
---|---|
25 | 29 |
26 | 2A |
27 | 2B |
28 | 2C |
29 | 2D |
30 | 2E |
31 | 2F |
32 | 30 |
33 | 31 |
34 | 32 |
35 | 33 |
36 | 34 |
37 | 35 |
38 | 36 |
39 | 37 |
40 | 38 |
41 | 39 |
42 | 3A |
43 | 3B |
44 | 3C |
45 | 3D |
46 | 3E |
5th byte - Flow Rate
Flow | 5th byte |
---|---|
MIN | 05 |
LOW | 06 |
MED | 07 |
HIGH | 08 |
MAX | 09 |
6th byte - Outlet
Outlet | 6th byte |
---|---|
Default | 02 |
Alternate | 01 |