Olly Epsom explains how (and why!) he built his own 1kW electric outboard motor for under £600

DIY electric engine controller system

Olly’s electric outboard motor works a treat zipping around Largs

Olly’s electric outboard motor works a treat zipping around Largs

Olly Epsom explains how he designed and assembled the computer control system for his powerful, low cost home-built electric outboard

The setup as detailed in last month’s article is perfectly acceptable. In essence, all I did was to replace the engine block of a 1972 2hp Johnson outboard with an electric motor.

I installed a speed controller, a lithium-ion battery and bought a twist-grip throttle from an electric bicycle outlet online. A simple current/voltage monitor of the sort widely available online will then leave you with a similar setup found in commercial electric outboard units.

But we want bigger, better, sexier, more fun. Well, I did, anyway! Using various low-cost off-the-shelf components I built and tested the following elements:

1) A computer control and monitoring system based on the Arduino computer. Interaction with the computer is via a touch screen display (by Nextion) which includes a key-code lock. Monitoring of motor speed, temperature, voltage and current is performed and displayed. Control of motor speed and cooling fans is provided. In addition there is a facility to control the motor via Bluetooth which is of no practical use but looks cool.

2) A proper enclosure for the motor and battery, which protects the components from the weather.

3) Electrical and mechanical cooling systems following testing of the motor in real conditions. This system consists of four variable speed cooling fans, and one 3D printed mechanical cooling fan directly attached to the motor shaft.

Overhead view of the electric motor with the lid removed

Overhead view of the electric motor with the lid removed

The computer

Adding a computer controller can dramatically improve usability, security and confidence in operation.

The internal workings of all electronic computers are digital, but the real world is usually analogue. An Arduino Nano can monitor up to six analogue inputs, deliver six quasi-analogue outputs and eight digital inputs or outputs.

Analogue inputs: in this case means voltages between 0 and 5V which the Arduino sees as a number value between 0-255.

Quasi-analogue outputs: the technical term is Pulse Width Modulated (PWM) output. Again this is a voltage between 0 and 5V which the Arduino sees as a number value between 0-1023.

Digital input/outputs: There are eight pins which can provide digital inputs or outputs. Digital means discrete, a choice of two values, in this case 0V OR 5V.


Checking out the motor in the workshop after a dunking

Checking out the motor in the workshop after a dunking

Early testing

Construction is under way. The motor is connected, the motor controller wired up, some form of simple computer control may be installed, and the battery is fully charged. In addition fans and sensors may also be fitted.

There probably isn’t a cover or housing, but you can duct-tape everything together, find a suitable piece of water (a canal is excellent) and go for a spin. This I did in February.

The first snag I hit was that the bracket I had for the dinghy was too high, meaning the propeller was half out of the water. The only solution was to sit at the back of the dinghy, which ruined the hydrodynamics.

But the motor worked well, and was fast and powerful. I was averaging 5kph until after just over a kilometre at full power there was a sudden jolt and the motor stopped. “Bugger” I thought.

My first thought was that the motor had seized. It hadn’t, although the base plate was very hot.

Not that surprising given the stated efficiency of the motor as ‘Above 80%’ meant that, at full power, it was dissipating 200W.

I deduced that the motor speed controller had failed, and when I dismantled it at home this did in fact turn out to be the case.

I suspect it was undersized for the motor. I ordered a replacement, more powerful, controller rated at 1500W. When it arrived, it was a mass of unidentified wires and it took me a couple of evenings to identify the throttle.

To this day I haven’t identified the reverse system. I thus have a motor fitted ‘for but not with’ reverse.

Still, this is not necessarily such a bad thing given that the donor motor was never designed to operate backwards in the first place.

At this point I reasoned that there was woefully insufficient cooling fitted. I had a ruffle around my electronics stores and located four 12V fans of various sizes.

How fortuitous that I had a 48V-12V converter to power them!

I connected them to run at variable speed based on motor temperature under Arduino control, but if you don’t want to use a computer, just wire the fans to run continuously.

Also, reasoning that ‘mechanical is best’ and that, at 4,000rpm at full throttle the motor would be turning faster than most DC fans, using the CAD program OnShape I designed and had 3D printed a mechanical fan that I attached to the motor shaft. This essentially stirs the air up and away from the motor base plate.

I also fitted a Bluetooth receiver and pre-programmed the Arduino to take commands from a Python program I wrote on my laptop.

Battery box showing main power outlet. Note stainless steel carry handle from a kitchen unit

Battery box showing main power outlet. Note stainless steel carry handle from a kitchen unit

Refinement and retesting

After the public failure of the first test I wasn’t planning on being caught short again. For the second test I mounted the motor on a wheely bin, filled it with water, and controlled it from my laptop, indoors – it was just after the Beast from the East and there was still snow in my garden.

The computer recorded temperatures, currents, fan speeds etc for later analysis.

This was not needed, because the motor ran for 50 minutes at full throttle without fault. It seemed the bigger controller and cooling systems had done their job.

Why not run it for longer? Because the battery wasn’t fully charged. Why not? Because the charger caught fire. So much for the CE marking…

The supplier immediately sent me a replacement charger but even now I’m loath to leave it charging unattended.

I also cut down the mounting bracket by 150mm, ensuring the propeller is correctly submerged even if the entire weight of a person is not at the back of the dinghy.

The 3D printed mechanical fan

The 3D printed mechanical fan

Enclosure and mounting

Now came the time to properly mount and enclose all your equipment. In my case the Arduino, Bluetooth, and fan speed controller had always been mounted in an IP67 rated enclosure.

For the rest of the engine mounted components (current sensor, potential divider, motor speed controller, fans, throttle sensor, display) a suitable housing was needed.

At first I messed about with GRP but it’s safe to say this isn’t my forte in life, though it’s probably the best route if you are good at it.

Eventually I opted for standard ABS enclosures from CPC-Farnell at around £13 each. One for the battery, and one for the engine.

Since the outboard is air cooled large holes are needed in the enclosure for the fans. These I covered with aluminium louvres from Screwfix.

The entire enclosure will let water in through the louvres, and out through drains at the bottom, but should protect the interior from deluging.

Since the drive motor and eBike controller are IP55 rated (essentially splash proof) then, provided the entire engine doesn’t go swimming, it should be good to go.

This is where the commercial model outboards have a definite advantage over a home-built one – they can be fully submerged.

Now I realise how much cooling the electronics require, if I was building another I’d consider liquid cooling and a completely enclosed and waterproof motor housing.

It was during the enclosure build that I managed to connect the battery the wrong way around, which blew up the hall current sensor and, luckily, nothing else.

This was my own fault but it’s an example of the sort of thing that happens late at night after a long day.

For the display, I cut a hole in the enclosure to mount it, but used PVC window material (of the sort you get on sprayhood windows) to cover it, which permits use as a touch screen. A 3D printed bezel (again designed with OnShape) then covered the ugly hole and made a more professional finish.

I also used a couple of stainless steel kitchen door handles to mount on the motor and battery box. All fasteners are A4 stainless steel (except they are not of course, most of them are only A2…).

Motor looks pretty neat on Olly Epsom’s dinghy

Motor looks pretty neat on Olly Epsom’s dinghy

Mounting to the dinghy is via the donor outboard leg clamp onto a standard bracket

Mounting to the dinghy is via the donor outboard leg clamp onto a standard bracket

Entry into service

After much frustrating work, testing, building, retesting, rebuilding and swearing, the electric outboard formally entered service in May 2018 on a run from Millport bay to Millport in Great Cumbrae in the Clyde estuary.

Myself and my friend Corey were on the dinghy, and there was a fair swell.

There were a couple of glitches: the 12V DC supply couldn’t cope with the dinghy inflation pump, and there was a minor software error that caused the motor to stop if the reversing switch was pressed.

Seeing the switch doesn’t need to do anything as there isn’t a reverse mode, this doesn’t really matter.

Since the first deployment it has been tested extensively and increasingly aggressively, and has so far given reliable service.

Speed varies with load and conditions but is generally around 3 knots. I suspect that due to motor speed and torque characteristics that the motor could take a larger or more aggressive propeller.

Motor temperature is peaking at about 80°C, which is hotter than I would like, but is not a threat from an electronic point of view.

I programmed the fans go to full power at 50°C and/or when the throttle demand is above 75%. As long as the battery is plugged in the cooling fans will continue to run based on motor temperature.

The key-code lock function means that the motor can be locked with one touch on the display and left safely to cool down.

Running the outboard on a Canadian canoe during a 10km trip on Loch Lomond

Running the outboard on a Canadian canoe during a 10km trip on Loch Lomond

One particularly pleasing usage was an endurance test of the motor on my friend Dave’s Canadian canoe on Loch Lomond in June.

The two of us travelled over 10km in under two hours on one battery charge including butting into significant swell.

Not surprisingly the system works better on the canoe than my inflatable, due to much better hydrodynamics, and speeds of 6 knots were possible.

I have also used it to land on Ailsa Craig and, following a clumsy dinghy launch, briefly completely submerged the motor.

The motor continued functioning, although I did have to clear water out of the battery box the next day.

Having used the outboard all summer I have found no serious issues with it and, other than a few minor software improvements (including adding a cruise control function) I have not modified it in any way.

Without wanting to tempt fate, I am fairly satisfied I have a machine that, by home build standards, is tough and reliable. I am very happy with it.

Completed Flow Control Diagram

Completed Flow Control Diagram


  • 48V-5V DC converter: to power the Arduino and the Hall Effect sensor.
  • 48V-12V DC converter: this came with a car-cigarette-lighter fitting that I now often use to pump up the dinghy. It also came in handy for powering the cooling fans.
  • Resistor-Capacitor Filter: the throttle signal is analogue, and read by the Arduino. The Arduino processes this signal and outputs a quasi analogue (PWM) signal to the speed controller. In order for this speed controller to understand this PWM signal it has to be smoothed (filtered) with a RC filter.
  • Switch and relay: To enable a smooth transition from forward to reverse via the Arduino.
  • Potential divider circuit: reduces the 48V signal to enable the Arduino to display the battery’s output voltage. Note: 48V into the Arduino without these resistors will fry the computer!
  • Hall Effect Sensor: needed to accurately measure current by the Arduino (again for accurate software displays).
  • LM35 temperature sensor: to tell the Arduino when to trigger the cooling fans.
  • Variable speed control circuit: to run the fans most efficiently (ie not just full ON or OFF).
Computer controller inputs and outputs

Computer controller inputs and outputs

With everything assembled on the bench the electronic inputs can then be processed onboard using user-written software. Arduino can also communicate with various other equipment, such as touch screens, using a range of standard formats which, while potentially daunting to the uninitiated at first, are fairly simple, and there are numerous examples online.

All software simply takes inputs, conducts operations on them, and uses that information to generate outputs. It must be very reliable, and that is another reason for using an Arduino rather than a more complex computer – Arduinos are extremely robust and any computer errors are unlikely to remain hidden.

Suggested flow diagram for control software

Suggested flow diagram for control software

Low cost computer control

The Arduino is a series of microcomputers originally produced in Italy by the Arduino company. As a not-for-profit organisation Arduino made the computer open-source, and thus versions of the smallest model, the Arduino Nano that I used, can be bought for £3-£5 each.

Programming is via a very simple language which can be freely downloaded onto a PC. The program is loaded into the Arduino via a USB cable.

Arduinos are ideal for control and monitoring as they are low cost, low power consumers, with a huge community of users, meaning a vast quantity of advice is freely available online.

Part 2: Computer control, monitoring, enclosure and cooling system – as published in the January 2019 issue of PBO.

  1. 1. Introduction
  2. 2. DIY electric engine controller system
Page 2 of 2 - Show Full List