Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Joy Module #10

Open
Carolina710 opened this issue Jul 15, 2023 · 1 comment
Open

Joy Module #10

Carolina710 opened this issue Jul 15, 2023 · 1 comment

Comments

@Carolina710
Copy link

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!

@redragonx
Copy link
Owner

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants