Introduction: Electric Canoe

Picture of Electric Canoe
This is a series of 9 short videos about how I set up my electric canoe. It's not exactly instructions, but I do go through a many of the different parts. I hope that others who are building electric boats, or thinking about it, might enjoy some of my rambling. This canoe is unique in that its twin screw (two propellers), and is driven by a wii nunchuck. It's powered by two golf cart batteries. The motors are Minkota Endura 30s.

Also, Here is the original movie I made about this boat last year:

Step 1: Batteries and Wiring

Picture of Batteries and Wiring
Give a general description of the Step

FLexiwire at

9620T22 6 Ft. 392 Deg F Hi-voltage/high-flex Wire, 10 Awg, .330" Od, 20000 Vdc, Clear

Step 2: Motor Mount Hinge

Picture of Motor Mount Hinge
The rest of the wiring and the hinge setup
to drop the motor down.

The hinge part:
1513A39 2 Each Mortise-mnt Nontemplate Hinge W/removable Pin, Square Corners,dull 304ss, 4"h Leaf, 4"open Widt

Step 3: Electronics

Picture of Electronics

Here is the arduino code I used:

WiiChuck.h and ServoTimer1.h are both available on-line. Drop a message if you want them and cant find them.


#include "Wire.h"
#include "WiiChuck.h"
#include "ServoTimer1.h"

#define TILL_POWER_PIN 8
#define TILL_STBD_PIN 10
#define TILL_PORT_PIN 9

#define THROTT_DIFF_PIN 12
#define THROTT_MAIN_PIN 11

#define MINTILLPULSE 1100 // Minimum servo position
#define MAXTILLPULSE 1900 // Minimum servo position

#define MINTHROTTPULSE 1000 // Minimum servo position
#define MAXTHROTTPULSE 1965 // Maximum servo position

//ServoTimer1 tiller = ServoTimer1();
WiiChuck chuck = WiiChuck();

int tillerPulse = 1500; // Amount to pulse the servo
int throttlePulse = 1500; // Amount to pulse the servo

int throttleDiffPulse = 1500; // Amount to pulse the servo

int lastTillerPulse = 1500;
int baseTillerPulse = 1500;

int move = 10;

long lastPulse = 0; // the time in milliseconds of the last pulse
int refreshTime = 20; // the time needed in between pulses

int analogValue = 0; // the value returned from the analog sensor
int analogPin = 0; // the analog pin that the sensor's on

boolean wake = true;
long sleeptimer = 0;
boolean dothrottle = true;

void setup() {


for (int i =8; i<13;i++) {
pinMode(i, OUTPUT); // Set servo pin as an output pin

int angle;
void loop() {

lastTillerPulse = tillerPulse;

if (chuck.buttonC) {
baseTillerPulse = (int)(1500.0 - chuck.readRoll() * 3);
throttleDiffPulse = (int)(1500.0 + chuck.readJoyX() * 5);
tillerPulse = baseTillerPulse;
else {
if (abs(chuck.readJoyX()) > 10) {
tillerPulse = baseTillerPulse - chuck.readJoyX();
else {
tillerPulse = baseTillerPulse;

if (chuck.buttonZ) {
throttlePulse = (int)(1500.0 + chuck.readJoyY() * 5);


if (throttlePulse < MINTHROTTPULSE) {
throttlePulse = MINTHROTTPULSE;
if (throttlePulse > MAXTHROTTPULSE) {
throttlePulse = MAXTHROTTPULSE;

if (throttleDiffPulse < MINTHROTTPULSE) {
throttleDiffPulse = MINTHROTTPULSE;
if (throttleDiffPulse > MAXTHROTTPULSE) {
throttleDiffPulse = MAXTHROTTPULSE;

if (tillerPulse < MINTILLPULSE) {
tillerPulse = MINTILLPULSE;
if (tillerPulse > MAXTILLPULSE) {
tillerPulse = MAXTILLPULSE;

Serial.print(", ");

if (tillerPulse != lastTillerPulse) {
wake = true;
sleeptimer = 0;
else {
sleeptimer += 1;

if (sleeptimer > 80)
wake = false;

if (wake) {
digitalWrite(TILL_POWER_PIN, HIGH);
else {


void updateServos() {

//analogValue = analogRead(analogPin); // read the analog input
//tillerPulse = (analogValue * 19) / 10 + MINPULSE; // convert the analog value
// to a range between MINPULSE
// and MAXPULSE.

if (dothrottle) {
// tillerPulse the servo again if rhe refresh time (20 ms) have passed:
digitalWrite(THROTT_MAIN_PIN, HIGH);
digitalWrite(THROTT_MAIN_PIN, LOW); // Turn the motor on

digitalWrite(THROTT_DIFF_PIN, HIGH);
digitalWrite(THROTT_DIFF_PIN, LOW); // Stear Motors
delayMicroseconds(5000 - throttlePulse - throttleDiffPulse);

else {
dothrottle = !dothrottle;

digitalWrite(TILL_STBD_PIN, HIGH); // Turn the motor on
digitalWrite(TILL_PORT_PIN, HIGH); // Turn the motor on
delayMicroseconds(tillerPulse); // Length of the pulse sets the motor position
digitalWrite(TILL_STBD_PIN, LOW); // Turn the motor on
digitalWrite(TILL_PORT_PIN, LOW); // Turn the motor on



Step 4: WiiChuck Steering

Picture of WiiChuck Steering

The Demo step shows what's connected with what. The Electronics step has the Arduino code that does it.

Step 5: Steerage

Picture of Steerage

5520K124 2 Each 1-1/4" Cast Bronze Companion Flange

9959K33 2 Each Chrome-plated Steel One-piece Clamp-on Collar, 1-3/8" Bore, 2-1/4" Outside Diameter, 9/16" Widt

The Sprocket:
2737T287 1 Each Steel Finished-bore Roller Chain Sprocket, For #25 Chain, 1/4" Pitch, 40 Teeth, 1-3/8" Bore

upper Bronze Sleeve to adapt the sprocket
6381K567 2 Each Alloy 932 (sae 660) Bronze Sleeve Bearing, For 1-1/8" Shaft Diameter, 1-3/8" Od, 1" Length

The lower bronze sleeve
6381K251 2 Each Alloy 932 (sae 660) Bronze Sleeve Bearing, For 1-1/8" Shaft Diameter, 1-3/8" Od, 4" Length

Chain: (links)
6261K108 4 Each #25 Connecting Link For, Standard Ansi Roller Chain
6261K284 1 Each Standard Ansi Roller Chain, #25, Sngl Strand,1/4"pitch, Rollerless,.13"dia,4l

The Hone I was talking about:
4424A75 1 Each Flexible Cylinder Hone, 1-1/8" Cylinder Id, 120 Grit, 8" Overall Length

Step 6: The Motor Mount Clamp and Setup

Picture of The Motor Mount Clamp and Setup

Step 7: The Demo!

Picture of The Demo!
See things running, and how to drive with a wiichuck.

Step 8: The Canoe Cart

Picture of The Canoe Cart
The cart might be my favorite part.

McMaster parts list:

78155T17 40 Each Cart-smart Junior Caster, Rigid, 2" X 1" Rubber Wheel, 90# Capacity

92364A245 2 Packs Type 410 Ss Pan Head Phil Self-drill Screw, 10-16 Thread, 3/4" Length, Drill Point #3

3644T51 1 Each Horizontal-pulling Hand Winch, For 1/8"dia Wire Rope,1 Speed,600# First Layer Cap

5458T42 1 Each Aluminum Narrow-width Ladder, 8 Height, 12" Width, 300 Lb Capacity

44745K81 1 Each Slit Foam Rubber Insulation For Pipe & Tube, 1" Thick, 1-3/8" Insulation Id, 6 Length

Add to this some wide two sided velcro straps, and a boat cart. The boat cart is sold on ebay as an instep cc100, but it goes by other names elsewhere. That appears to be the cheapest version though. A solid cart on its own.


astral_mage (author)2013-09-14

do a base line voltage test. on the motors . look up the wheel chair conversions 4 more info

astral_mage (author)2013-09-14

have u thought of putting on guard blocks to prevent damage to the connectors

silversurfer2 (author)2011-07-05

Hi I'm trying to make a similar launch trolley.
I'd love to see a video of retrieving the canoe from the water.

donovanburton (author)2011-01-25

what is the canoe winch / launcher called? where did you get it from?

timothy (author)donovanburton2011-01-25

I made it. It's pretty simple though. It's a narrow gauge ladder from mcmaster with casters screwed into and a winch on one end, strapped to a canoe cart. Its great for unofficial boat launches, made necessary by the silly weight of golf cart batteries in canoe. That canoe weighed at least 250. I wouldn't recommend this cart setup for anything over 200, if that. It felt iffy at times. But did the job!


wiglaf (author)2011-01-08

Just out of curiosity, when you were experimenting, did you ever try changing the speed and direction (forward or reverse) of the engines as a method of steering, instead of using the servo setup?

timothy (author)wiglaf2011-01-09

Yes I did. Originally, I had wondered if could do all the steering this way (and avoid the whole servo complication), but since it turns out that doesn't work at speeds (ie. 3 knots), I'm glad I can turn the motors too.

You can use the joystick on the nunchuck to allow for "tractor drive" style steering. Given the placement of the motors at the stern, and the length of the canoe, it wasn't particularly effective. For docking maneuvering, it was more fun. In theory, the combination of both angling the motors, and adjusting their relative speeds, should allow the boat to do crazy stuff like crabbing. There are some commercially available power boats that do this kind of thing. I never got around to actually trying to implement that kind of stuff though.


csorrows (author)2010-04-11

0:05 "One long ASH piece" Made me LOL!

el greeno (author)2010-03-09

The european style connector block you used is known as a chocolate block here in the UK.

tom_jones (author)2009-11-17

brilliant idea using an arduino and a nunchuck. could you please send me the wiichuck.h and servo1.h firles please as i am struggling to find them.
many thanks and kudos
Tom J

timothy (author)tom_jones2009-11-17 Hey Tom,
Sure. It looks like the ServoTimer1.h library has been incorporated into the main arduino library.  Check this page:

The wiichuck.h library is available for download on the playground:


timothy (author)timothy2009-11-17

 woops.  sorry about accidental link at start of post...

JAREDB (author)2009-08-28

You could probably mount all of the electronics in a o-ring sealed aluminum housing. You could then heatsink the motor controller to the case.

ANDY! (author)2009-08-04

hi. I wanna put a motor on my small boat for real cheap. Any suggestions?

timothy (author)ANDY!2009-08-05

Sure. My first setup was super simple. I recommend a minnkota endura 30 motor. 115 shipped I think. A group 27 battery which gets you about 3-4 hours of run time. A simple battery box comes from the same autoparts store where you can find the battery. Then with two long lag bolts from the hardware store and a 2x4, you can make a simple cheap motor mount for the endura. Cut one piece to fit under your gunwales. That makes the bottom of the clamp with the wide dimension up against he gunwales. Cut another piece to go ontop of the gunnels, and stick out on one side of the boat about a foot. Long enough to clamp on the motor to. This piece is oriented with the narrow edge against the gunwale. In this orientation the motor clamps to the 2x4 easily. Last use the lag bolts to squeeze the two pieces together an clamp to the gunwale. You will just need drill aligned holes through the two pieces. On my setup, I also extended the motor wires with some 8 gauge wire so I could put the battery in the front of the boat. Copper wire is costly though, so you can decide I that is worth it. The whole thing is less than 200 I think. I don't know f that is cheap enough for you. Cheaper still is an old paddle! Good luck Tim

ANDY! (author)timothy2009-08-05

thanks. do you think a water pump from a car would work as an outboard? batteries are not the problem.

timothy (author)ANDY!2009-08-06

I sure don't know. But that's a great idea to try. Maybe multiple pumps together If one isn't enough. I'd be curious to hear about your experiments. I'd hook one up and just feel how much force it generates. have you googles stuff like "diy Jet drive" ? T

ANDY! (author)timothy2009-08-08

not yet. ill do it though. if a car water pump isnt enough, how about a power washer!

paukekino (author)2009-05-28

great instructable. well made. seems you put a lot of thought and $$$ into project. which says you love what you do.

baudeagle (author)2009-05-17

Hey Timothy, Great job on the construction, you have some talent there. Here is one item that you may want to consider altering. I noticed that the wires exiting the large sprocket rub on the interior of motor tubing. Eventually this rubbing action will wear the plastic coating off the wires and these will short out, especially in a wet environment. This short might have a devastating effect on your control . I would not like this to see this happen out in the middle of a big lake. One more item, since servos are quite expensive then why did you choose to use two individual servos? You may have been able to get away with one slightly larger servo and them mechanically link (with additional chain and idler sprockets) the two motors? If you want to add to your invention a small solar panel could help recharge the batteries while not in use. Baudeagle

timothy (author)baudeagle2009-05-17

Thanks for these ideas and points. All quite true. Originally, I wanted two servos so that I might do some fancy maneuvering with independent control of the two motors. This would allow cool stuff like crabbing the boat sideways, and all sort of exotic nonsense. If I were to redo this, I wouldn't use servos at all. The other problem with servos is that they need power all the time to hold the position of the motor. Even with the > 400 oz inches of torque, it's not hard to overcome the servo with force. In a rebuild, I would use a worm gear with a regular motor and some kind of feedback, or possibly a stepper motor. As a general note, I would never take this boat anywhere I couldn't paddle to safety.

JacobAziza (author)2009-05-12

Impressive work But... in terms of being "green", it would be even more efficient to just paddle it manually.

timothy (author)JacobAziza2009-05-14

That is definitely true. My desire to see things on the lake exceeds my ability to paddle myself there, so that is one hitch. A sailboat is another more green option. But on those hot windless days, I like to be able to get out on the cool water, and go for a swim. To boot, if I had invested all that build time learning to paddle better instead, I'd probably be a pretty respectable boatsman by now

Pkranger88 (author)2009-05-11

Good stuff, Any chance you can include the circuit diagrams? In addition, the overall cost of this project seems like it may be fairly costly given the number of parts purchased through McMaster-Carr. Can you tell us the overall project cost? Otherwise, very good. It's ironic to think though about someone choosing to troll along, rather than paddle, a canoe. It would be nice to have some resources posted where you learn about using arduinos and such. Thanks.

timothy (author)Pkranger882009-05-14

Hi, good question.
Yes, I should put up more information on the electronics. is a great starting place for arduino stuff. Though it's a tangle of wires, the circuit is quite simple because it's the combination of two well documented projects. Search for "aruino servo motor" for info on setting up servo motors with arduino. Servo signals control both the turning, and the motor driver also controls speed with this signal. In fact, you could easily pull out the arduino, and drive this boat with conventional RC radios and recievers. Search for "Arduino todbot wiichuck" and you will find a bunch of info on interfacing the wii nunchuck side of things.

In terms of cost. This was a pre-recession project... Well, The worst parts were the servos and motor drivers. I might end up selling those back into the robotics community. It's true, mcmaster parts add up. I think boat ended up being the 2K neighborhood, including the used canoe hull. The good part is that many of the parts can get reused if I want, or hold their value.

I like how extrrordinary1 above is plans to use his boat batteries for his home at night. That's a great way to get more value from a boat.

extrordinary1 (author)2009-05-11

I did something like this with a huge canoe a friend had and I patched a hole in it. We used a trolling motor, 100 pd thrust Minn Kota, but it was very frustrating when we got into a patch of moss! We had to paddle out of it, clean the moss off the prop. It was dark and we were running trot lines back in 96.

Currently building a tri hull electric pontoon with twin motors, and under water lighting to attract fish. Plan to use high intensity LED's to light up under the boat to conserve battery power. I'm building the hulls with the stitch and glue method making a custom design I created. There are 18 batteries onboard with a wind generator in the rear to extend the run time on the lake. The wind generator will also charge batteries while being hauled back and forth, and while sitting at home to provide surge power for my power inverters at home. Acting like a second bank of batteries for my primary wind generator at home.

Weissensteinburg (author)2009-05-10

The construction of the entire canoe impressed me, but when you got to steering it with the nunchuck...that blew me away. Keep up the great work. Rated and Featured.

cool! (author)Weissensteinburg2009-05-10

... hm it looks like you rated it a three, which seems low. Idk, it says one rating and it is at 3.05. Ill rate highly. Great work, this canoe is amazing!!!

Weissensteinburg (author)cool!2009-05-11

As Nacho said, ratings aren't as cut and dry as they seem. Instructables uses some sort of an algorithm that evens the ratings disparity between newer and older instructables. Without it, just one person giving it a 5 would skyrocket the instructable to the top of the "sort by ratings" category. Inversely, giving it a low score will not drop you right down to a low rating. It's great because an instructable actually requires a lot of good feedback to appear as a great instructable.

NachoMahma (author)cool!2009-05-10

. The "average" rating can be a little flaky until there are more ratings. . Find an iBle that hasn't been rated yet and give it a three (make sure it deserves a three). Last time I did that, the average went to 2.91! And mine was the only rating. . There are a few forum topics that discuss this. Search if you are interested.

huang.wencong (author)2009-05-11

hahaha... I always have the idea to do this, but I have no money and no time to make it... Nice one anyway...

maxstevenson (author)2009-05-10

Truly superb. 5 stars!

About This Instructable




Bio: Here is a site from when I Lived aboard and cruised in a wooden boat: Current blog of randomness: ... More »
More by timothy:Electric CanoeTemperature Control For Kitchen Appliances
Add instructable to: