Data Harvest FlowGo Protocol Reverse Engineering

phipli

Tinkerer
Sep 23, 2021
118
117
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
118
117
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,162
1
1,173
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.
 

phipli

Tinkerer
Sep 23, 2021
118
117
43
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.
I'm trying to remember what we had. I couldn't find a picture. The physics labs had... like, boxes with a recessed face and a big dial in the middle, like a 2" knob with a 3" flange (giggles). Same banana jacks. In the tech department they had much newer stuff and they had variable DC power supplies built into these sort of triangular mains outlets. We... actually didn't use them very often. Retrospectively one of those would be nice for my workbench :)

Late last night I discovered that the "Contact Controller Plus" can take any input voltage between 6 and 15V DC, and is rated for up to 5A on the outputs. This is so that you can pick your PSU voltage to suit what your driving, for example if you have 12v relays and motors you can use a 12V PSU. Actually pretty handy. Other boxes I have just have a switch for selecting 6 or 12v, others are just ~6v and I think one has a dial for selecting the voltage. Might have to admit that I've got quite a few different types. Even a homebuilt ADB controlled one.

I'm updating the webpage again with some new info I found... still underway.
 

phipli

Tinkerer
Sep 23, 2021
118
117
43
Thought I'd make it more retro computer specific. Here's one for the vintage mac crowd :


Edit :
After modifying the software a little so I could change the sample rate and x axis resolution, I ran the light and temperature sensor for a bit over an hour over sunset. The temperature probe was shoved in the radiator to show the heating cycling (quite slowly) and the light sensor was pointed out the window. I should make it average multiple readings to reduce the noise, but it isn't bad all things considered. Blue is light, red is temperature.

1732123035043.png
 
Last edited:
  • Love
Reactions: bakkus