stoduk / BlueRower

Data logger for serial enabled rowing machines (such as Water Rower), storing remotely via Bluetooth or storing locally on SD
5 stars 1 forks source link

No data from serial port #2

Open ronan-ln opened 1 year ago

ronan-ln commented 1 year ago

Hi,

I am very interested in your project as a way to record my Waterrower performance. I have a S4 monitor version 1 (firmware v1.49) with a serial port but I can't seem to get any data coming from the serial port. I have connected the serial port pins 2 and 3 to a RS232 and to a TTL to USB converter and connected to a raspberry pi. When I switch the performance monitor on and start rowing, I do not get any data coming from the serial port (tried with pyserial and miniterm). I can see however the communication LED flash when I write data to the port.

Do you have any advice in how I could confirm that the data is flowing from the rower?

Thanks, Ronan

stoduk commented 1 year ago

Hi

I'm not entirely sure what your setup is but it sounds quite different from mine. If you send more details and photos I might be able to point you in the right direction but largely the advice would be to test each bit in isolation if it isn't working as a whole...

Cheers, Anthony

ronan-ln commented 1 year ago

The photos with the DIN cable and the TTL converter make me think our setups are similar.

I have a 6 pin DIN so let the the back of my S4 performance monitor picture 1

Into which I plug a 6 DIN cable picture 2 that only has 3 connections:

I then connect these to a TTL to USB adapter picture 3 with output going into input and input going to output.

And finally I use pyserial to try and read some data from the performance monitor, while rowing, but don't get anything printing.

Have I missed something? How do you connect to the performance monitor?

Thanks Ronan

stoduk commented 1 year ago

The extra detail explains it - the S4 is spitting our RS232 but you aren't converting that to TTL before passing it to the TTL-USB adapter. Given RS232 involves high voltages you might have damaged something, but at the very least you'll need to add some sort of adaptor.

I used a MAX3232 RS232 to TTL adaptor (see photos on main page) to handle this - I used a bare chip direct from the manufacturers (might even have been a free sample, I don't recall now) but ebay, etc. sell breakout boards if that is better for your needs.

[if it wasn't obvious I threw up my description of this project up in a hurry, looks like for a competition to win a new Ardunio wifi enabled board - I never went back to update it so it is a little scarce on details]

ronan-ln commented 1 year ago

I had actually done it using a RS232 to TTL converter at first. This one from eBay. I assume this is the same as yours? I removed it thinking it was not required 🤦

I will give it another go with this in the middle and let you know how I get on. Do you have any more notes on how you connected everything? I am wondering if I could be reversing input and output on some cases.

Do you use a TTL to USB adapter as well, and is it there that you flip input for output?

Are the protocol specifications listed here the ones you ended up using?

Thanks again for your support!

stoduk commented 1 year ago

That sort of thing is right but I’d be suspicious of any breakout board (or bare chip) that is too cheap. Analog.com lists the IC at $3 for small volumes so if the price can’t include that then it might use fake chips.

the device I made is in storage so I can send more details but not sure when. Probably within the next week so chase if I haven’t responded.

The WR info from archive.org looks to be what I was using.

stoduk commented 1 year ago

Just an update to say I have no update - sorry, been busy and haven't been able to grab it from storage.

However, if you've got the RS232:TTL adaptor in place then it should be easy to work out which is Tx and Rx even if you aren't sure the documentation is clear. You can't really cause any harm by miswiring them - so either connect them up and try to read data, flip the cables if it didn't work. Or just setup two UART on your microcontroller and try to read from both to figure out which is the right one.

[IIRC the communication is all one way from the S4 monitor so you won't be transmitting to it]