Range on the Wii as it comes is not very good....dont need much standing in front of the gaming console.
The Wii Nunchuck wireless only has a PCB track antenna's, a better circular polarized antenna on RX and TX should improve things considerably.
Failing that i will use the Spark fun joy in a Jiffy box with an Arduino Nano and NRF2401+ as Transmitter.
Nano + NRF2401+ receiver to Analog
Nano analog to Power chair.
Long term i wont be leaving my good house chair anywhere unattended, its just part of the testing phase.
I'll lead up to a dedicated power chair base that i use outside semi permanently attached to a Custom made Trailer to take a PolyCraft Tough Tender boat.
Local creek is two blocks from my house with direct access to the Gold Coast Broadwater for fishing.
DougL wrote:it looks like you're trying to map each nunchuck data element( joy_x, joy_y, buttonC, buttonZ ) to different PWM ports. Why not put them into a PPM stream like used on RC transmitter/receivers? There are enough Arduino's being used for RC and drones that there must be a few PPM libraries to pick from. That's what I plan to do with the FrySky modules I think I posted a link to. They are on order but coming from China so it'll be a few weeks more. I don't know if there's a limit to the number of "channels" but the way I see it we could use 7 channels and get all the nunchuck data. BTW, I have the nunchuck using the left right tilting to change the throttle. accel_x()/20 does the trick using the Wii nunchuck library. That gets me to 0-10 for the Jazzy Select( need 0-15 for the Select GT model ). Tilting to the right increases the throttle all the way to max and tilting to the left lowers it. I will change the lowering part to something like anything from -2 to -10 subtracts 1 from the current position.
looking good so far though.
Doug
DougL wrote:looks like some clock on input 1 and data on input 0. I don't know what is going on down at input 4 though.
.Internal wiring from where? what? Are they something from the joystick lines between the joystick module and the power base?
As for the charge connector goes, there's little to do there since it's only 3 connections and 2 of them are power( +V/28V and GND ) with the 3rd being the Inhibit/Program signal. Not much use there given you want to control the power base not program it's firmware.
gcebiker wrote:Just ordered a Logic 4 with express post from USA to Australia.
At $183.00AUD its still cheaper than a few tanks of fuel for the car, dam fuel is expensive now.
DougL wrote:can you remind me how it was determined the protocol was SPI? From a previous post there are only 4 wires going from the power base to the joystick control board and 2 of those are power(V+/GND) and 2 wires are signal(Y/V).
Also, there is a 3 pin charge connector on the joystick and one of those is the Inhibit/Prog pin and I found that pin was a direct circuit(and wire) down to the power Rob@ with the subject line I want better communication from robbase. So that left a 1 wire signaling protocol and UART made the most sense so it was the first tried and it turned out to be true.
This is why I ask how it was determined the protocol was SPI which is a 2 wire protocol(1=data, 2=clock)?
Remember, the Inhibit line is a safety feature of most all power chairs as it prevents the chair from being moved in any way when plugged into the charger.
Doug
ex-Gooserider wrote:Two different plugs, with different wiring and protocols...
There is the three wire (on most controllers) XLR charging plug - the wires on this are +V and Gnd, with the third wire serving as EITHER an inhibit wire (shorted to ground by the plug on the charger which has the two pins wired together) OR a programming wire that uses some sort of one wire serial data protocol, via either a dongle or a converter that does some serial data conversion between the usual PC TX/RX + handshake signals, and the one wire setup.... (Some controllers have an oddball setup with a proprietary version of the XLR plug that adds more extra, tiny, pins that are used only in programming, and are ignored in charging.
Then there is the connector / cable between the joystick pod and the rest of the chair electronics (controller, ALM modules, etc...) This will have a variable number of wires. At least two that are usually bigger than the others and carry the charging current from the XLR plug on the pod to the power module where they feed into the battery cables. Then there will be some additional wires (often very small, as they are only for data signals, which carry data, including joystick commands, information about button pushes, inhibit signals, etc.... The number of wires, protocols and so on will vary depending on the controller brand / family.... It is reverse engineering this set of wires, protocols, and messages that pose the big challenge when trying to hack into the chair electronics....
The inhibit / programming wire and signals on the XLR plug has NOTHING to do with the wire and signals on the cable to the rest of the system. The inhibit / programming wire goes ONLY to the board in the joystick module. The electronics in the pod take whatever comes into it from the XLR plug, and does some processing on it, including translating it to the protocol used to talk to the rest of the chair and sends out whatever it needs to.... The exact details of what gets sent is again variable depending on the controller type.... For instance some controller systems store the programming data in the joystick pod, and others in the power module....
The charger inhibit signal is actually one that doesn't NEED to be sent to the rest of the chair - if the joystick pod sees it, then all it needs to do is flash that controllers error code, and simply NOT send any other signals to the rest of the chair....
ex-GooseriderDougL wrote:can you remind me how it was determined the protocol was SPI? From a previous post there are only 4 wires going from the power base to the joystick control board and 2 of those are power(V+/GND) and 2 wires are signal(Y/V).
Also, there is a 3 pin charge connector on the joystick and one of those is the Inhibit/Prog pin and I found that pin was a direct circuit(and wire) down to the power Rob@ with the subject line I want better communication from robbase. So that left a 1 wire signaling protocol and UART made the most sense so it was the first tried and it turned out to be true.
This is why I ask how it was determined the protocol was SPI which is a 2 wire protocol(1=data, 2=clock)?
Remember, the Inhibit line is a safety feature of most all power chairs as it prevents the chair from being moved in any way when plugged into the charger.
Doug
Time [s] Analyzer Name Decoded Protocol Result Notes
0.14072275 Async Serial '0' (0x00) (framing error) //Jazzy 600 Joy Turned on (Off / High) (On/low)
0.15108 Async Serial '145' (0x91)
0.15134 Async Serial '31' (0x1F)
0.1516 Async Serial = (0x3D) (framing error)
0.151912 Async Serial '31' (0x1F)
0.152354 Async Serial '188' (0xBC)
0.15264 Async Serial '148' (0x94)
0.1529 Async Serial '248' (0xF8)
0.15316 Async Serial '241' (0xF1)
0.153498 Async Serial '148' (0x94)
0.153784 Async Serial '132' (0x84)
0.154096 Async Serial '0' (0x00) (framing error) //Low pulse, data lead in ?
0.156042667 Async Serial } (0x7D) (framing error)
0.156503417 Async Serial COMMA (0x2C) (framing error)
0.1581415 Async Serial x (0x78) (framing error)
0.171125833 Async Serial '18' (0x12) (framing error)
0.17146375 Async Serial '252' (0xFC)
0.171723833 Async Serial '8' (0x08) (framing error)
0.172191833 Async Serial '131' (0x83)
0.172607833 Async Serial '156' (0x9C)
0.172893833 Async Serial '252' (0xFC)
0.173179833 Async Serial t (0x74) (framing error)
0.173465833 Async Serial '132' (0x84)
0.173777833 Async Serial '0' (0x00) (framing error) //Low pulse, data lead in ?
0.175570583 Async Serial O (0x4F) (framing error)
0.176031333 Async Serial '252' (0xFC) //
0.176312833 Async Serial '252' (0xFC) //
0.176568833 Async Serial '248' (0xF8) //Repeating section of code
0.176875417 Async Serial '252' (0xFC) //
0.177156917 Async Serial '252' (0xFC) //
0.1774385 Async Serial '252' (0xFC) //
0.17772 Async Serial '12' (0x0C) //
0.177976 Async Serial '0' (0x00) (framing error) //Low pulse, data lead in ?
Return to Everything Powerchair
Users browsing this forum: acid_coke, Burgerman, Jay_x, martin007, mentado020477, woodygb and 98 guests