eMule - Golf Cart Conversion
Conversion of an electric golf cart to farm vehicle platform


Note: At this time, this is just a proposal. It project has not been built, or even commenced (though the golf cart has been purchased). It is just an idea. Initially the intention is not a full robotic conversion, but to convert the golf cart to an agricultural platform, and maybe take it further later on.



Golf carts are not just for playing golf. They are actually miniature electric cars, and can be driven on roads in some parts of the world. They are increasingly being used for agricultural vehicles on flat properties as they are much safer than quad-bikes because the heavy batteries make for a very low centre of gravity. (They are almost idiot proof). They also designed to not damage grass or turf, and cause minimal compaction which every farmer will appreciate.

Second-hand electric golf carts are readily available to the enthusiast for a price, and with some effort they can be converted to agricultural carry vehicles. Don't expect as good a bargain as you might get from a motorised wheel chair unless you are going to do a lot of searching. Bargains tend to gravitate to dealers, who know how to get a better price for them, and aren't fooled into thinking they are useless because their batteries have been neglected.

An eMule can be used

  • to transport people (though they are probably best left in their original form if this is the primary use)
  • to transport equipment, tools, firewood, rubbish
  • as spray or spreader vehicles
  • as miniature tractors to pull things around, out, over or through. At a pinch they can pull a normal car trailer.

It is also fashionable to make vehicles which look like the M274 US army 'mules' popular after WWII and in Vietnam. The original M274s are now coveted collector's items.

This process would could be expected to involve five stages.

  • Buying the golf cart.
  • Making the accelerator, brake and steering purely drive-by-wire.
  • Stripping off the roof and panels, and installing a tray.
  • Making the vehicle fully autonomous.

Buying the golf cart.


Golf carts are not like motor cars. They may only get used every week or two and spend most of their lives in a dry shed, and hence last a very long time. Buy an old golf car (mine was 25 years old) for this. Plenty of carts this old look like beaters (scratches, cracked panelling or windscreens, torn seat covers etc), but are still structurally quite sound. They will be a lot cheaper than a flash new-looking model coveted by some over-superannuated golfer. And don't be shy about explaining to the helpful sales-lady: 'I am looking for something a bit unusual'. Trust me: she has had this request before.

The CAD concept


Stripping off the roof and panels, and installing a tray.


Strip-down is actually straightforward. The panels, roof and windshield can be simply unbolted from the cart's chassis. Some of the controls (eg forward/reverse switch) are mounted on the plastic panels, and hence would require remounting. The 'Club Car's have an aluminium frame, which make welding mild steel quite difficult, but this can be solved in other ways - like just bolting on the new frame. This is a good idea anyway, as a non-destructive conversion enables the original cart to be reassembled if there is a change of heart.

The tray can be welded with mild steel, in a simplified version of the M274.

Because the tray has to sit above the chassis, and therefore above the suspension points, it ends up being quite high - and the seat may be higher than it was in the original golf cart.

Making the accelerator, brake and steering usable with the new configuration


The accelerator is a basically a potentiometer on a pedal, so that should be pretty straightforward - the original can be brought over and re-wired for the extra distance.

The brake should be pretty straightforward - it is just a mechanical lever pulling a wire, which goes to the back wheels (there is no braking on the front wheels!). The golf cart has some mechanical trickery which makes a 'handbrake' on the foot, which disengages when the driver presses either the foot brake or the accelerator - that could be tricky to move across, but is not essential.

The steering is much harder. The steering column comes with a proper linkage, so the angle can be changed, but it's not clear how much (actually the steering in the M294 Mule is pretty clumsy too). The existing steering wheel can go almost three full turns (ie almost 540 degrees to each side), so a linear actuator levering the steering wheel to will not cut it.

If the accelerator, brake and steering were drive-by-wire, then the driver could just use a joystick or similar to control the vehicle, or turn control over to fully autonomous when required.

On the shoulders of giants


Much of this has been done before by others. In particular, a WPI student project (google "MQP Goat Cart Report 2017") made such modifications to the same model of golf cart (1995 Club Car).

Accelerator drive-by-wire.


In principle, the accelerator could be just replaced by a digital potentiometer like the Digilint 410-239, or DS1803 but there are issues. In particular, the 410-239 will not handle voltages larger than 5V - but the car runs at 48. It is not clear whether the potentiometer is exposed to more that 5V. The fact that the WPI group (mentioned above) used a DS1803 suggests that the potentiometer uses 5V or less.

Another option is to use a servo motor to physically rotate a 5KΩ potentiometer.

The wiring diagram suggests that the accelerator system is more complex than that. In particular, there is probably a switch which only activates when the pedal is partially pressed.

A circuit diagram of the accelerator mechanism is hard to find, but the documentation for the motor controller suggests that the yellow and black wires out of the accelerator mechanism are 0 to 5K Ω. The voltage across these is still unknown.

bluegoes to +48V (when ignition switch closed)
purple0V (ground)
yellowcontroller - 0 to 5K Ω
white/blackspeedController (0 to 5K Ω)
green/whiteswitch which activates when the accelerator pedal is pressed


  • What voltage will be across yellow and white/black?
  • What green/white switch (to 0V or +48V)? Which way (probably normally open?)

Brake drive-by-wire.


The brake pedal can be replaced by a linear actuator, which can pull the cable tight when required.

Some force feedback would be desirable here. Maybe something like the DYLY-101 S type load cell on the brake cable, with a HX711 amplifier connected to an Arduino? Or maybe just a single 50kg force sensor like the ones used in bathroom scales? Or even something as simple as a system made with two cheap weight sensors.

Steering drive-by-wire.


Steering is tricky because considerable force needs to be used to turn the wheels. Whereas a tractor can just use an EZ-steer to turn the wheel because it's a power steering unit with no feedback, golf carts typically have no power steering and rely on human force. A powerful motor could turn the steering shaft, but position feedback is critical. Alternatively, the steering could be turned by having a linear actuator push/pull a bar on the steering column to turn it around, but this will limit the turn to less than 180 degrees, which is likely to severely reduce agility - already limited by the Ackermann steering.

A linear actuator can be connected directly to the steering arm. Two experiments were done to test the force required for steering

  • Turning steering wheel - Turning the steering wheel required 10Nm (10kg at 100mm).
  • Directly turning front wheels - Pulling the steering arm required 60Nm (75kg at 80mm).
So if the steering arm is 120mm, it should take 500N to operate it, but ..
  • This is the worst case - being on concrete, and being stationary.
  • This is the best case - being unloaded at around 450kg, and the cart could carry another 350kg fully loaded.
  • This is the worst case - if the steering column is removed, then an actuator won't have to back-drive the steering wheel at 12:1.
  • This is the best case - if the wheels are at full turn the actuator is not perpendicular to the steering arm, effectively reducing the steering arm length.
In summary, 1000N would be comfortable. Actuators which do 1000N are slow. And 24V would be a must.

Conversion parts list

Actuator for braking This would just pull the brake cables.
Load sensor for braking This would be a cable/tension indicator
Actuator for steering the steering wheel could be removed and replaced with this.
Digital potentiometer to replace accelerator And controlled by SBC
Arduino As the logic controller.
5V Supply power supply for the Arduino.
Motor controllersMotor controllers for the brake and steering actuators.

Making the vehicle purely autonomous.


This is just a matter of getting the onboard PC to control the accelerator, brake and steering. .. software.

Drive model

The code written to date has all been for a differential drive, so this will be a good test of the generic nature of the robot code. There is a generic 'Helm' object which can be specified to be either a 'DifferentialDriveHelm' or an 'AckermannHelm'.

This cart is likely to be faster than most differential drive robots. Electric wheelchairs are not designed for speed - too easy to dump Granny on the pavement. Although a golf cart has a modest top speed, its size, and Ackermann steering model create a whole new set of navigation real-time decision challenges.


Yeah, we all got issues.


It would be pretty much the same as the other robots, except with an AckermannHelm instead of a DifferentialDriveHelm. No zero turn ability here, so the navigation would be different, and probably more cautious.

Bear in mind that even a zero turn rover can get stuck.

The future

Conversion to autonomous control.


Warning: This is a 500kg vehicle and moves at around 10km/h. It will kill someone in an accident, just like a motor car. Anyone thinking of building this kind of robot needs to think this through very carefully. It is also powerful enough to break through your boundary fence and start running around your neighbour's property, so this is also a serious liability issue. Think. Please.

Leave a comment

Something I'm doing wrong? Solved my problems? Got a better idea? Got a similar problem?
Think I might have solved your problem? Ninety-nine problems, but your robot ain't one? Say so ..