RC Model Boat

Working RC model of the 1926 Whitecap as designed by John Hacker. A 25 feet motor boat originally with a 150 HP engine, scaled to 723 mm long for printing in six sections. Requires 140W motor (2830 750Kv brushless) and low profile servo for the rudder.

It would be possible but tricky to re-scale, many Openscad scripts ended up being hard-coded to the scaled size. Important variables are at the top of scripts but precedence isn't necessarily sensible.

The ribs/stations and keel line were traced using minimal free plans available. X-splines were then used to make them continuous. They were then converted into a solid 3D object using a custom written gawk script. The continuous rib+keel points were used to make more continuous curves from bow to stern. These were then stitched together to make an initial solid hull shape that had many more polygons than necessary but faithfully reproduced the hull shape.

Meshlab was then used to i) reduce the poly count to something more manageable and ii) generate another hull object that was 3mm smaller.

Openscad was then used to subtract the 3mm-smaller hull from the original hull, producing a hollow hull.

Openscad was then used extensively to add internal and external prop shaft supports, motor mount supports, access hatch with lips and rudder shaft mount/holder. I already had a 5mm ID brass tube and steel shaft that fitted it nicely, the Openscad model was generated to make use of that. I also had a 2830 motor (750Kv, 140 Watts max), that was calculated to possibly be powerful enough to drive the boat to planing speed. Openscad was also used to make a coupler from the motor's 4x M2 screw holes to the 5mm drive shaft.

Openscad was then used to cut the resulting model (boat_combineall.stl) into 6 sections that could be printed on a standard printer, ready for glueing together with hot-glue.

Openscad was then used more to generate motor mounting bracket, rudder servo holder, rudder arm, rudder arm to servo arm link, the rudder and a propeller.

Detailed Instructions

Details of that process are in cmds.sh, though that tails off, as it deals with generating the hull and once that was done, individual openscad files (with their own embedded comments) were used to generate the other parts.

All of this was printed with 1.2mm shell thickness, ie, 3 perimeters of a 0.4mm nozzle, with 1.2mm bottom and top layer thickness just for consistency. The hull was printed with maybe 10% in-fill, unfortunately that wasn't recorded but cutting inside a test print I can see it was low.

The lid was printed with 5% in-fill, 3 perimeters, as were the lid supports, as the true strength is always in the surface not the inside. It was stronger and heavier than necessary.

The various other parts were printed with 50% in-fill, as they were small and possibly subject to a lot of stress in a small space. For the small size, it wasn't worth the risk of fracture for the saving of a small amount of plastic.

The approximate ordering of the build is:-


(1285 grams, ready to go, including S3 1.8Ah battery but without lid)

whitecap-building-plans-study-sheet-rotated.jpg - original plans, with the addition of a small rotation to remove the lean.

whitecap-ribs.jpg - same image but just the ribs, which made the tracing more manageable.

*.fig - xfig line traces of the above images to produce points following each rib/station.

xspline3stdin.awk - 3D X-spline implementation

ribs2gpdata.sh and gpdata2obj.sh - convert the above *.fig into boat.obj , using R for 2D X-splines and custom script for 3D X-splines.

boat.stl - low poly version of what is output of 'bash ribs2gpdata.sh ; bash gpdata2obj.sh' , but not yet scaled down. Reducing the polygon count also introduces flaws in the model, it is no longer water-tight. Meshlab must be used manually to fix those flaws (using the show* options to highlight the problem, deleting the dodgy faces, and then using the Fill Holes option on the faces around the newly created hole). Without these fixes, Openscad will fail to render.

boat_scaled.stl - boat.stl but scaled to correct size, ie, ~732mm long.

boat_scaled_inside.stl - low poly count, scaled, but 3mm smaller, ie, the hull to subtract


block.scad - prop shaft support block, ie, the external fin in-front of the propeller

block.stl - output of that script

block_scaled.stl – and then scaled to correct size


boat_combineall.scad - large script that subtracts the smaller hull from the larger hull, adds prop shaft support in and out, motor mounts, and access hole+lip.

boat_combineall.stl - complete (combined) output of all the above, with steps in a nearby stick” showing where the six sections to be printed begin and end.

Note this script has numerous comments and commented/uncommented sections that are required to produce some parts.


Sections ready for printing:-

boat_combineall_part1.stl - bow section

boat_combineall_part2.stl - motor mount section

boat_combineall_part3.stl - forward prop shaft section

boat_combineall_part4.stl - rear prop shaft section

boat_combineall_part5.stl - finned section (external prop shaft support)

boat_combineall_part6.stl - stern section. Kept small to minimise the amount of support material, 5 and 6 could be combined.


These were all printed "on-edge", that is, the mating surface between the sections was either facing up or down. This was to minimise support material and also to help ensure the mating surfaces matched. Equally, the beam direction of the hull was always printed with X, to avoid any small differences between X and Y.

These are then hot-glued together very carefully. I tried warming up a pair of surfaces on the hot-bed and then hot-glueing the entire surface. The result would have been strong but there just wasn't enough set time to align the two parts. Instead, I hot-glued the keel, and then hot-glue each "corner" on the inside, one corner at a time. That gave plenty of time to put the two parts into the best fit.

I first glued sections 3 and 4, then 5, then 6, then 2, then 1.

My printer under-extrudes on the surface nearest the bed, so I later went back and put hot-glue into the gaps. It would have been nice to use a glue that wasn't so soft.

The prop shaft tube was then hot-glued onto the inside of the hull.

The hull was then varnished with around 7 coats, with sanding in-between (P80), to produce a smooth finish.



(330 grams, could do with being lighter, there was really no need for 3 perimeters)

hulltop.scad - produce a lid out of various spheres, and then subtract an oversized version of the lower hull, for a little tolerance.


hulltop.stl - complete hull top

hulltop_part1.stl - hull top parts, just about printable on my printer - standing on edge!




hulltopsupports.scad - found the hot-glued lid parts to be too floppy, hot-glued these at right-angles, two per joined pair.

hulltopsupports.stl - for a total of four used. Made the lid very solid.


magmount.scad, magmount.stl - angle brackets to hold 4x M6 washer halves (cut in half, no need for full washers). With fragments of hard disk magnets hot-glued to lid. Brackets were hot-glued to the hull. Double-sided tape then held down the M6 washer halfs. Duct tape cut into a slice was then wrapped around the washer half and bracket, covering the washer. The trick here is to put the magnets on the washers, wherever they want to sit. Then *quickly* dab all 4 magnets with hot-glue and then put the lid on. When cold, you can remove the lid with the magnets already in exactly the right place, ready for a little more hot-glue.

The lid was then varnished on the outside and under the rim, maybe 3 coats, with sanding.


Motor mount

motormount.scad - motor mount, comes as three parts. M3 bolt the three parts together, then hot-glue the lower two parts into the mounting plates in the hull. Can then unscrew the motor mount when required.

motormount.stl - main motor mount, for my 2830 750Kv brush-less motor.

motormount_baseLeft.stl - Left and right lower mounts, for hot-gluing onto the hull

motormount-BaseRight.stl - " . In practice I only put a small amount of hot-glue to the sides, so that I could peel it off if required, and that has stayed stuck.

Motor coupler

motormount2.scad, motormount2.stl - motor to prop shaft coupler.
This bolts to motor can (4x M2), and then the shaft (which has been ground to form a key) is then slotted in, and finally bolts (2x M3) tighten on the prop shaft. Prop shaft diameter is 5mm exactly. Brass tube outer diameter is something slightly larger than 5mm, it is not 6mm. The printout was fairly clean but required drilling out to be a better fit for all the bolts.

Rudder parts

rudder.scad, rudder.stl - Rudder, 40mm x 30mm works okay. Smaller might be possible to reduce drag but 20x20mm is definitely too small, had very little positive control.

tiller.scad, tiller.stl - Arm above the rudder, connected to the rudder with 3mm stainless steel rod. In the end this was cut down to have the same throw distance as the servo arm. It is also at about 45 degrees when the rudder is straight ahead, to match the angle of the servo.

rudderlink.scad, rudderlink.stl - Kinked arm connecting servo arm to tiller. Note also printed an un-kinked version to support servo box, just hot-glued in to act as a support strut. Also note the .stl doesn't include the 2mm holes, they were drilled out from scratch.

servobox.scad, servobox. stl - To suit a standard sized but low-profile servo. A standard height servo just isn't practical, there just isn't the height towards the back of the boat.

2mm bolts were screwed into the standard servo arm and tiller. The tiller was first drilled with 1.5mm bit to give the 2mm bolt something to bite into. It was also drilled a little with a 2mm bit to help it take when cutting the threads. The link arm had 2mm holes drilled all the way through. There was no exact science behind this part of the build, the servo tray was hot-glued in, the supporting strut was hot-glued in, and then the required link arm distance was measured, printed and drilled to suit.

Update: The 3mm brass rod arrived, it was soldered to 19mm x 47mm x 1.8mm copper strip, with 5mm ahead of pivot point. This was small enough to allow changing of the propeller without removing the rudder. In practice, it was far too small, there wasn't enough positive control and it only directed the flow from the top half of the propeller, requiring steering corrections for changes in speed. Bigger brass plate has been ordered.

Mounting boxes

Out on the water it was found that water can find its way in, seemingly via the rudder post. It was also found that duct tape doesn't really stick to the PLA. To avoid the drops of water and stop the electronics from moving around, mounting boxes were hot-glued in. These are for the speed controller, receiver and battery. As I was using 40MHz radio, there was a lot of aerial to loose and that was also initially duct taped to the underside of the top deck, only to find the tape comes off.

batteryholder.scad – 1.8Ah 3S battery holder. Your battery is bound to be a different size.

batteryholder_bot.stl, batteryholder_top.stl – consists of a top and a bottom, that clip together.

receiverholder.scad – 40 MHz receiver box

receiverholder.stl – base with holes for wires and clip on lid.


prop.scad, prop.stlFirst attempt at designing a propeller. Worked okay.

prop2.scad, prop2.stl – Second attempt of a propeller, different shape and keyed to the drive shaft. The key is for quick changing.

Surprisingly little difference between the two from memory, tested on different days with different weather.

I told myself I wouldn't be printing a propeller, better to buy one that is well moulded and shaped. However, it turns out the prop shaft I used isn't a standard size for the diameter of prop appropriate for the boat. Tested with 3 bladed 30mm diameter, 30 degree pitch, but that appeared too much, in reality it was the greased drive shaft add to much drag. Tested again without the grease, with 2 bladed 30mm diameter and that was better. Tested again with 2 bladed, 34mm diameter, still 30 degree pitch, and the boat was planing quite well. Tested again with 36mm diameter 45 degree pitch and that was too much, the boat didn't quite have the same speed and the motor was warm.

In use

Greasing the prop shaft was a bad idea, adds too much drag and besides, the grease I used wasn't waterproof. The drive shaft doesn't need to be sealed at all, the prop shaft terminates above the water line. However, as it is steel, that does mean it will rust. The only thing to do is remove the prop shaft after use... Stainless steel would have been very useful here, have ordered some.

An 3S 1800mAh battery with the 2830 motor and the two bladed 30mm printed prop just about drives it to the plane. Not hugely convincing until the battery is right at the back of the hull. It has been tested with a 3 bladed 30mm printed prop but that appeared to be over-propped - OTOH, that was using a greased prop shaft which turned out to sap power all by itself. A 34 mm diameter with 30 degree pitch propeller produced a good plane, needs more prop testing to find the maximum power that can be extracted from the motor. So far, more testing has confirmed 34mm+30 degree 2 bladed is a reasonably optimal size. Also tested with 2.5Ah 4S battery, this didn't improve the speed, produced much more heat in the motor and was visibly heavy in the water.

Potential improvements

"Better" prop, bigger prop, smaller prop - would be helpful to count the actual RPM, and how much it deviates from free-running when in the water. Can only say the 34mm dia, 30 degree pitch appears to be a sweat spot. More diameter is worse, more pitch is worse, and more blades has no obvious effect. Less pitch and more diameter is the next option.

Reprint everything to be lighter - 2 perimeters rather than 3. Ideally 2 on the outside and 1 on the inside, if only slicers supported that concept. If the original plan is true, the model is sitting about 4mm too low in the water and that can only mean it is heavier than it should be.

Test on water without lid, or make a very light lid – it would have to be a very calm day to avoid all splashes. 330 grams just for a lid is far too much.

Model the top surface of the hull, with its front to back and left to right curved surface and cut-outs for seats. The current flat surface with single large cut-out was to make printing and testing easier.


Written by R.Gregory, last edited 7 Jan 2018

Would welcome any comments, r.gregory at liverpool.ac.uk