Cheap Remote Controlled Electric Pushcart (<$200) Using Hoverboard Motors

by AlexC97 in Workshop > Electric Vehicles

1521 Views, 22 Favorites, 0 Comments

Cheap Remote Controlled Electric Pushcart (<$200) Using Hoverboard Motors

41497D7B-86B0-413C-A801-ACB65FC406AE_1_105_c.jpeg
requirements table.png

Since being introduced to golf, I've begun to truly realize how expensive this sport is. From golf sets costing hundreds if not thousands of dollars to electric-powered golf caddies costing several thousands of dollars, the high costs prevent many from indulging in this exciting sport.


However, usefulness of the electric push cart is undeniable as it alleviates a lot of the physical demands of having to either carry or push your heavy clubs without the need to pay for a full golf cart. Ever since my dad got the MGI Navigator Quad Gyro, it's been a part of his everyday golf carry. But at the asking price of nearly $2000 CAD, it urged me to explore alternatives when my mom expressed her wish to purchase one as well.


The answer was using one of those self-balancing hoverboards that once took the internet by storm. Since then, its popularity has rapidly declined and I don't remember the last time I saw one of these on the streets. Well, thanks to that, one of these can easily be picked up for less than $50 where I live. Mine was an off-road hoverboard that comes with slightly larger wheels with deeper tire treads, which will be important later when the caddy has to trek through mud and tall grass.


Opportunity and Requirements Table

The opportunity of this design project is to create an inexpensive alternative to commercial electric golf caddies mainly using off the shelf components and parts from an old hoverboard.

The requirements table is included as a figure above. The table was extensively used in validating the usefulness of the design.


For all CAD models and programs used for this project, check out my Github repository: https://github.com/alexwonseokcho/electric_golf_cart

(This project is still a work in progress. I will continue to update this article and add more detail to the instructions)

Supplies

  • ($20-50) two-wheeled hoverboard - bigger wheels are better
  • (free - $100) 18650 batteries or a 10s battery pack
  • ($20) Arduino Nano, nRF24l01, and miscellaneous electronics parts and supplies
  • (free - $10) old manual push cart

Disassemble Hoverboard

151D1CBA-2810-4EFD-8F2C-E0DBB3DBE28D_1_105_c.jpeg
9DF3AB67-5A8F-4E40-8F4C-D5109574FAC2_1_105_c.jpeg
2E2EDE7F-A112-450F-9185-A020C5A3A7AC_1_105_c.jpeg

For better instructions on how to disassemble and repurpose these hoverboard parts, check out https://github.com/EFeru/hoverboard-firmware-hack-FOC. TL:DR, each hoverboard has 2 in-wheel BLDC motors usually rated for 250W+ of power, the mainboard that contains the motor controller, and a li-ion battery pack. For $50 or less, (I got mine for $20) it is an absolute gold mine. All three of these major components can be reused and repurposed. For this project, I reused the motor and mainboard but not the battery as I wanted more range.

Flash the Mainboard With Custom Firmware

B78E5F21-5DAE-4225-B818-912BA35EF299_1_105_c.jpeg
120664E6-B363-4F2E-AE5B-53371AE5ABF5_1_105_c.jpeg

The default mainboard is programmed to operate as a hoverboard, but we want manual control over the wheel functions instead. This is possible thanks to some brilliant developers who created a firmware hack. By reprogramming the mainboard, we can control the motors as we wish via serial commands through a microcontroller. To learn how to do this, go to this Github repo: https://github.com/EFeru/hoverboard-firmware-hack-FOC. I'm using the FOC SPEED control mode with UART3. My modified firmware can be found in the project files (will upload later - please remind me in a comment if I still haven't done this haha)


Program Golf-Cart Side Arduino

Moving Hoverboard Motors
Motor Hold Position

Once you have successfully flashed the firmware onto the mainboard, it's now time to program the Arduino to communicate with the mainboard. For now, we'll simply test whether the firmware flashing was successful. So instead of uploading my entire program, just upload the example code given in the Github repository (https://github.com/EFeru/hoverboard-firmware-hack-FOC) on any Arduino board with its TX and RX pins connected to the UART pins of the mainboard. This should make the wheels oscillate back and forward as shown in the first video. Then, I tested out the speed control feature of the firmware by setting the speed to zero. This makes the motor hold its position even if I forcefully rotate it, which is handy for staying parked on an inclined hill.

Disassemble Golf Cart

E6D0AFAD-D135-41C9-A9D2-F1B31F9CCA3A_1_105_c.jpeg
197F2998-6733-46AA-84F2-9F67BB167263_1_105_c.jpeg
38FDBED1-B06C-449C-8F24-7078D0A0815F_1_105_c.jpeg
1F578F1B-2ADA-43FB-86D1-D37DC2A27D99_1_105_c.jpeg

We now need to disassemble the golf cart and take out its original wheels and its mount to make way for the new motors. Upon disassembling, I examined various ways to mount the motor. When I saw the mount for the original wheel, I was inspired to create something similar that would attach to the steel frame of the cart, but have screw holes to mount the motor instead.

Motor Mount CAD and 3D Print

7C25961F-1C0D-4C21-9317-6EBACE82FDBB_1_105_c.jpeg
513B620A-A6FA-4359-8122-2DC80565A9A3_1_105_c.jpeg
90C2D46D-8007-445A-B50F-22DBEE1BD1B7_1_105_c.jpeg
316918A1-8C28-4CA0-8F9F-BA1C1E23013B_1_105_c.jpeg
B36BAF07-BE62-4541-859E-035888EC74EE_1_105_c.jpeg

I used Autodesk Inventor software to CAD all the required structural parts of the cart. The most important and difficult part to make was the motor mount to fix the motor shaft onto the frame of the golf cart. The original wheel mount inspired my design as I mimicked its geometry for mounting onto the steel chassis. On the end, I created two large holes for the bolts to drill into. Although I was fully aware that directly bolting things into a 3D printed plastic part is not ideal, I was out of options as I did not have the correct nuts to house the bolts. To compensate, I made the hole intentionally significantly smaller and 3D printed it with PLA (*1) at 100% infill. I then drilled the bolts into the small hole, which created a lot of heat and practically melted its way into the plastic piece. Although this does sound quite sketchy--and it admittedly is--it was incredibly rigid as the bolt is very long and it was fused very well with the molten plastic. It went through various rigorous impact tests and I determined it to be sufficient for the task.


*1 PLA was used for prototyping as it is quick and easy to print. However, I will likely switch to PETG in the next revision as it is much more UV resistant.

Mainboard Box CAD and 3D Print

bottom case.png
top case.png
IMG_0510.jpeg

Then, a suitable casing was designed and printed for the mainboard. It was then attached to the frame using bolts and nuts. It also had a hole for the original power button to be snugly fit inside to turn on and off the cart.

10s4p Battery Pack

5B0BA8EA-7930-445B-976F-5E3E399BC948_1_105_c.jpeg
7CED10E8-A539-47BF-B488-7696725614CF_1_105_c.jpeg
78E9EDF7-352A-4034-A95C-FA0977324A67_1_105_c.jpeg
5514A36D-CA38-49D5-AAFA-961106DEE336_1_105_c (1).jpeg

The battery pack was created using 40x 18650 3350 mAh lithium cells from batteryhookup.com. The process of salvaging and repackaging these were documented in another post of mine. This was arranged in a 10s4p arrangement to create a 36V nominal 482Wh battery pack that is still quite compact and lightweight. I used the battery size of the MGI Navigator Quad Gyro, which supports 36 holes of play at 312Wh, then increased it by 55% for funzies. That should comfortably last more than 2 full rounds of golf.


A spot welder was used to place nickel strips between the cells. The cells are placed in a 4x10 rectangle, with each row of 4 cells being a parallel group. After a painstakingly long process of carefully spot welding, I soldered the BMS board I salvaged from the hoverboard. Check out my other article on how to create your own battery packs. In the future, I'd like to use a better quality BMS, as this is critical to the safety and reliability of the device. After wrapping everything with Kapton tape and connecting a XT60 power cable, the electrical part of the battery pack was done!

Battery Casing CAD and 3D Print

battery top.png
battery bottom.png
6F293C1D-9B98-4FE9-A06D-8D218931DBFD_1_105_c.jpeg

To protect the battery from the elements, I created a housing for the battery, which was promptly printed on my 3D printer. The lid of the housing is friction fit for the time being, which works reliably enough.

Embedded Programming and Communication

4FCE8646-5D02-4AD4-894A-A9D488A2E9A6_1_105_c.jpeg
9038C199-AE01-4EF5-AFD7-3CFB3FBDCD77_1_105_c.jpeg
92D1CA92-FA2A-4916-878F-8437816ECFF7_1_105_c.jpeg
2D3B0093-E03E-4659-B7BF-9431CDE4C2A6_1_105_c.jpeg
5DADE24D-26EC-4E7B-B818-750D84B3D08D_1_105_c.jpeg
7C05A82B-8E50-4EF8-8974-CE3E69B6E370_1_105_c.jpeg
115C6F00-7433-4222-84F4-0946BF6953C5_1_105_c.jpeg
AB3AE86C-2171-4BBB-B65B-27E9E4B5A8E6_1_105_c.jpeg
3108C12C-9E81-49A7-8C46-95187EDF68B4_1_105_c.jpeg
F3F281C8-CCE9-4A77-9587-FB2B3CDB4E47_1_105_c.jpeg
A3390A47-4193-4207-A194-E4BF967451FC_1_105_c.jpeg
793C106D-BEC2-471D-9A5C-AF561FFFD605_1_105_c.jpeg
9ED7E008-7E6F-4C85-B594-22A9CDBFE5C3_1_105_c.jpeg
7B01CCA4-FC7E-4E14-B467-42B7EE21954B_1_105_c.jpeg

The remote control feature is powered by the nRF24l01 RF module, which should give it a maximum range of at least 50-100m. I began by soldering the radio to the golf-cart receiver side arduino nano as per the regular SPI connection pins on the nano. For more information, you could read this article: https://howtomechatronics.com/tutorials/arduino/arduino-wireless-communication-nrf24l01-tutorial/#:~:text=nRF24L01%20Transceiver%20Module,-Let's%20take%20a&text=It%20uses%20the%202.4%20GHz,2.4%20%E2%80%93%202.5GHz%20ISM%20band

Once that was done, I programmed the Arduino to take in commands wirelessly through the nRF, then relay that to the mainboard via the UART connection mentioned earlier. All the code used for this project can be found in my Github here: https://github.com/alexwonseokcho/electric_golf_cart.

It was then time to make the remote. To make it as compact as possible, an Arduino Pro Mini was used alongside as smaller nRF24l01 module. On it, five buttons were mounted to control the cart forward, backward, to turn, and to stop. With a small pouch style li ion battery cell and its corresponding circuity (TP4056 charge/protection, 5V boost converter), the remote was done. The buttons are satisfying to click and the wireless range works quite well.

Testing!

9F249D56-86E9-4A8D-89B2-0E0CC9CC417E_1_105_c.jpeg
Golf Cart Test 1

With everything attached, let's see how it works! I went out to my favourite golf course and gave it a go! For now, I had simply zip tied the battery under the steel chassis, but this will get its own proper mount later. I started off the round with full battery at 42V, and after the round was over, I was at 37V, which means I still have around 60% battery left over! So I can conclude that it has enough battery for more than 2 full rounds.

I artificially limited the speed to around 20 kph for safety reasons, but the motors are capable of significantly more than that - around 40 kph should be possible. Nevertheless, everything was working fine, but there was one glaring flaw: when you begin to accelerate quickly, the cart sometimes tips backwards. For this, I propose two solutions which would be implemented in a later revision.

Next Steps

IMG_0124.jpeg
IMG_0511.jpeg
IMG_0512.jpeg
IMG_0513.jpeg
IMG_0514.jpeg

I will attach an anti-tip wheel to the back of the frame so that the cart won't tip easily. I will likely make a flipout mechanism with some steel rods I found in the dumpster. That's the hardware solution to the tipping issue.

The software solution would be to add an IMU-enabled balancing feature to the cart, such that the motors will be control to keep the cart balanced in any angle that you'd want, quite similar to a hoverboard. Adding an IMU also means I could use it to keep a stable heading during operation.

Additionally, I wanted to make the remote smaller and streamlined with less parts. That's when I discovered the ESP32-C3 XIAO board, which is the ESP32 C3 in a tiny footprint with a battery charging and protection circuit preinstalled. Hence, I set out to create a revision 2 for the remote, which can be seen in the picture. It's significantly smaller and lighter, with bigger buttons as well. This time, the communication works via ESPNOW, which is a proprietary protocol available on ESP devices. The receiver side was changed as well and equipped with another ESP32 C3 board alongside an MPU6050 for heading/balance control.

Further revisions to the project will be posted in another article.