A Smarter Jeep Hurricane RC Power Wheel
On my daughter’s first birthday, I got her a Jeep Hurricane Power Wheel. I’d always wanted a Power Wheel when I was younger and never had one. Not to say my parent’s didn’t get me awesome stuff. I had a computer way ahead of everyone else. I had a Nintendo and Super Nintendo. I had a lot of awesome stuff, but never a Power Wheel and especially not an RC Power Wheel.
When I saw this one on Ebay and realized that it was local, I knew she had to have it. I got it home and was extremely excited. At that point, Mom, Dad and now Grace all had their own Jeep.
On her first birthday, I showed my daughter her Jeep. She was excited in a “I’m a 1 year old and am excited about pretty much everything” way. She enjoyed sitting in it, but that’s about all she could do for being 1. It then sat in my garage for about 7 months.
As she got a little older, she was able to hold herself up better and sit up more. She was still too short to reach the pedals, but she now liked just sitting in it and using her imagination with her toys. We’d go over to a friend’s house who has an older son and he would drive her around. That made her love her Jeep even more. Eventually, it got moved into her play room and she would regularly sit there. Unfortunately, even at around 2 years old, she was still too short to reach the pedals. That’s where I decided to step in.
What is a Power Wheels if not an RC car without RC? You still have the local control. You have the throttle, shifter and steering wheel. It just didn’t have the remote part.
First step was to assess how the current wiring sits. To take the seat out and check all the wiring, you’ll have to take out 5 screws from the seat (4 in the back, 1 in the front). You’ll then take out 2 (might be 3?) screws for the center console. Removing that will reveal the current wiring setup.
The wiring, in stock form, is actually pretty straight forward. You have your power coming out of the battery going straight to the pedal at your child’s feet. That’s the White wire. When the pedal is pressed, it sends power through the Red wire in the pedal out to the shifter. The shifter itself is really 2 switches. In the picture above, you can see the connectors to each switch disconnected from the shifter.
The position of the shifter determines how the motors get power. By reversing the polarity (all happening through the switches), the motors go in reverse. It’s all rather simple. No electronics needed, at all.
The nice thing about all of this is that it makes it very easy for us to take control. If you break it all down, you have some pretty simple components:
- 1 x Push Button (Pedal)
- 2 x Switches (Shifter)
Even those doing beginner Arduino projects can put together a basic project that takes into account 1 button and 2 switches. I started with re-wiring everything. I grouped all of their power into 1 wire and all of their grounds into 1 wire. I only had red colored wire for it all, but I have a lot of colored electrical tape that I used to identify what each wire connected to. I made sure that all Power lines were marked red at the ends. I also made sure that all grounds were marked Black. Signals were green for the shifter and yellow for the pedal.
Once I had that all re-wired, I took the signal off each switch from the shifter and the signal from the pedal and wired that up. All of the wires met in the hood of the Jeep. Here’s what it looked like when I first started.
I also got the wires to the motors sorted out. There is technically a positive and negative wire for each motor, but since you can reverse polarity they’re kinda just signal wires as well. I made sure the wires matched up and also linked each motor. By sending Power through Blue and Ground through Yellow, I’m able to make both motors go forward. If I reverse that, they both go reverse.
At this point, all my wires for the switches, pedal, motors and battery were hooked up and routed into the hood of the Jeep. It made things a bit tight in the center tunnel, but I made it work.
It was important to me to keep all of this stock in case I ever wanted to sell the Jeep. I didn’t cut into any of the stock wiring. I just added connectors on the end and attached to those. Once all your wires are ran, all of the pieces should come back together just as it was before.
I then needed to get power to the Arduino. I wanted to stick to using the stock battery, so I needed to step the power down. Fortunately for me, that is easily done with a LM2596 DC-DC Buck Converter. These things are pretty straight forward to use, but mistakes can still happen. Here’s what happens when you accidentally reverse the polarity into one of these.
Fortunately no one was injured in this. I just had a little mess to clean up.
Once you do get the wires set up correctly, you can adjust the voltage to match what your Arduino needs. In this case, I was using an Arduino Mega 2560. It is probably overkill for this application, but it leaves me a lot of room for expansion so I’m ok with it. In my case, I stepped the power down to 9v. Your Arduino can actually handle the power conversion on its own, but I figured I’d do it here so I can distribute the heat better. It also gives me an easier on/off switch.
Move the Motors
Once that was set up and good to go, it was time to move the motors. I ended up getting the HiLetgo BTS7960 for this. I have to warn you that my first one was actually messed up. I spent a week trying to figure out what I was doing wrong. I had all the wires set up correctly and all the code built, but I just couldn’t go in reverse. I made the assumption that my hardware was bad. When I purchased a new one and attached it, everything worked perfectly. Hopefully you have better luck than I do.
So how does the BTS7960 work? It has 4 major connections to start with. M-, M+, B+, B-. B+ and B- are Battery Positive and Negative. M- and M+ are Motor Positive and Negative. It acts as sort of a relay for the Arduino. I don’t need to pump all the motor power through the Arduino itself (which it really wouldn’t be able to handle). The Arduino connects up to a bunch of inputs on the side of the BTS7960 board and I send it commands (using PWM) to tell it to send power to the motor. In my case, I connected VCC to my Arduino +5v power. I connected GND to my Arduino ground. R_EN and L_EN tell the board to enable reverse power for each connection. I just connected them both to my Arduino +5v. I then connected RPWM and LPWM to PWM ports on my Arduino. All of this sounds confusing, but once you get it set up on your board it will be very straight forward. By following this setup, you simply send PWM signals to RPWM and LPWM to drive the motors. I’ve included my code below so you can see how it all works and there are comments in there to help.
Once all of that was setup, it was time to get it under remote control and have it become a real RC Power Wheel. Fortunately, I have a lot of extra parts from my remote control airplane days.
I started with a HobbyKing TR6A receiver that I had laying around. After pairing it with my Turnigy 9x transmitter, I hooked it up to my Arduino. This is also relatively straight forward. Simply give the receiver Power and Ground on the BATT side. Then take the signal from each channel and hook it up to input ports on your Arduino. Here’s how it all looks when it’s in the hood of the Jeep.
Here is the code on pastebin that runs it all. It’s a bit long to paste in this post, but if you have any issues getting it off pastebin let me know and I will email it to you. The comments on the top explain how the stock wiring looks like. You can deduce how my final wiring looked like by looking at what ports I assigned to each variable.
That’s it! I wired in some headlights as well. The Jeep drives well. I don’t have any steering yet, mainly because I didn’t want to buy a linear actuator. As you can tell, my daughter is still a little young to steer it well. She’ll figure it out eventually. I also want to lower the speed for my lowest setting. I want it to be more of a walking pace.
Overall, I’m really happy with how it turned out. The Arduino has been holding up well in the Texas 100 degree weather. The BTS7960 heat sink does get hot, but not to the point where it’s causing any issues. Next step will be to add some more lighting for her and start figuring out exactly how I want to do steering.
Good luck building your own RC Power Wheel!