Data Harvest FlowGo Protocol Reverse Engineering

phipli

Tinkerer
Sep 23, 2021
115
116
43
Made some good progress last night. I plugged in a Data Harvest FlowGo I'd picked up a while back. It didn't have any software with it and I hadn't done anything with it.

1731848081785.png

I enjoy playing with old educational interface boxes - it was a big thing here in the UK in the 80s and 90s for teaching Systems / Control to children (even primary school children!) and was often mixed in with things like Design and Technology and Science lessons. My school wasn't the best at it, but wasn't the worst by a long way either. The teachers knew what they were doing, but as a person with an interest in this sort of thing, I never felt we spent enough time doing it.

Anyway.

I sat down last night and decided to investigate this box a little. I checked lsusb and saw that it identified as an FTDI thing when connected via USB, and a serial port manifested. I knew a single command from a much older generation of box they made years before and thought "hey, if I was designing something, I'd probably just reuse stuff"... so I tried it, and got a response. Given that, I just brute forced every command combination, helped by it giving a response that indicated if something was a valid command or not.

By 1:30am last night I was able to...
  • Get it to tell me its product name as a string
  • Read from the two analogue ports
  • Read from the 4 digital inputs
  • Write to the 6 digital outputs

I've not worked out which command controls the motors (not stuck, just need to go back to it because I probably sent a 0 for speed and so the LEDs didn't light up), what if anything I could do with the "Go" button and I've seen a video of someone using it without a computer, so I think you can load like, routines, into it. I have a strong suspicion which command does that last thing, but I also suspect that I wont be able to easily reverse engineer the format of the routines blind. There will be more stuff too I'm sure. Probably some stuff for changing serial settings, potentially perhaps analogue input precision? Perhaps not.

If anyone has one and wants to play with it from Python from a modern computer, or possibly even Hypercard from an SE (I've not tested the RS232 port yet - I have had trouble with some ports working with old Mac serial - it seems if both the Mac and the device are both technically non-compliant, compatibility can fall between the gaps!), you can find details at the following link. Yes, it isn't complete documentation, give me a chance, I only started last night :ROFLMAO: .

 
  • Like
Reactions: eric

phipli

Tinkerer
Sep 23, 2021
115
116
43
Updatier -

Added some details about the Contact Controller Plus to the same page above, which seems to use the same serial commands. Had to build little adapter for the power connector as it used a 5pin DIN connector.

1731960537134.png
 

Kai Robinson

TinkerDifferent Board President 2023
Staff member
Founder
Sep 2, 2021
1,161
1
1,172
113
42
Worthing, UK
Reminds me of the power supplies we had in the electronics lab at school, big, orange, with a chunky metal insulated bus bar like loopbto select the voltage on it. Also used banana plugs.