can2RNET icon indicating copy to clipboard operation
can2RNET copied to clipboard

Joy Module

Open Carolina710 opened this issue 11 months ago • 1 comments

Thanks for your great work! I am currently working on an invacare power wheelchair with Linx electronics. I want to receive data and control the wheelchair remotely. This is a work in the scope of my phd thesis, but it is also a personal project, because I have 2 sisters who use wheelchairs 🙂

So far I am simply using arduino mega, interfacing with the wheelchair bus, using the chip MCP2515 (Can High, Can Low to SPI interface). I'm already able to read some frames, but I still can't decrypt them totally. I would like to send some of these messages to the bus to decrypt which frame can wake up the wheelchair, or make some engine work, but the joystick module shows an error and the system turns off.

Now I was wondering, because I saw in a project that use can2rnet that joystick is induced to error and to be able to communicate with the power module in its place.... is this the only way? because I wanted my joystick to work normally as it controls the state of the batteries and charges for example.

Also, do you think wireshark could help me better decipher some of this information? I think I would receive the same data, but maybe with less losses.

Thank you so much!

Carolina710 avatar Jul 15 '23 14:07 Carolina710

Yes, the way is to use wireshark, but until there's a R-Net Wireshark plugin that implements the full R-Net protocol, you only get the raw data in canbus frames. If somebody can create one, then great! My research can be a starting point for this.

https://www.wireshark.org/docs/wsdg_html_chunked/ChDissectAdd.html

As for the Joy module, the error inducing is a quirk/hack that I used as my advantage. You see, the joy module still sends movement frames regardless if its touched, the frames are 0, 0. X and Y positions. The chair responds if it gets a move frame within 10ms or something like that, it gets confused otherwise and tries to do it all if we send move frames from a program. So the easy way to fix this was silencing the joy module. The added benefit is that the chair stays on. People think it's plug and play, but R-Net has its own thing and handshakes when registering a r-net device like joy modules. You have to do this in software, and since r-net isn't fully reverse engineered to begin with, we can't emulate a proper joy module. If you can do this, feel free to add the library.

I'm not familiar with at all with the invacare power wheelchair with Linx electronics, I have no idea if it uses r-net or not, my guess is no. But my research can be used to guide you. Chairs with R-Net do not rely on joy modules for charging/battery states, it is a passthru system. So, sorry. I don't have an answer other than fully figuring out the R-Net protocol and permobil's secondary seating protocol.

redragonx avatar Sep 30 '23 22:09 redragonx