Open Source Repository

The Builder's Guide.

The LM42P is uncompromising in its component quality. To ensure this technology remains accessible to makers, the mechanical architecture and Bill of Materials (BOM) have been made entirely open source.

System Variants

[ M1 Render Loading ]
M1 Architecture Render

M1 Architecture

The standard mechanical variant. Designed around custom bushing and housing modules, ideal for makers with standard tooling capabilities.

[ M2 Render Loading ]
M2 Architecture Render

M2 Architecture

The advanced linear guide variant. This architecture utilizes a dedicated linear rail block for maximum stability and reduced friction.

Variant M1: Parts List

[ Main Assembly ]
Main Assembly exploded view

Main Assembly

  • 1x Housing
  • 2x Bushing
  • 1x Junction block
  • 2x Idle pulley
  • 2x Idle pulley fastening
  • 1x Motor
[ Housing Module ]
Housing Module exploded view

Housing Module

  • 1x Sheet
  • 1x Motor sheet
  • 1x Top frame
  • 1x Left frame
  • 1x Right frame
  • 1x Low frame
  • 28x Rivet
[ Bushing Module ]
Bushing Module exploded view

Bushing Module

  • 2x Shell
  • 2x Sleeve
  • 16x Square nut
  • 16x Screw
[ Junction Block ]
Junction Block exploded view

Junction Block

  • 1x Shaft
  • 2x Magnet dish
  • 2x Dish screw
  • 1x Clamp
  • 1x Counter clamp
  • 1x Block washer
  • 1x Block screw
  • 1x Belt
[ Idle Pulley ]
Idle Pulley exploded view

Idle Pulley

  • 2x Bolt
  • 4x Thin washer
  • 2x Bearing
  • 4x Side bearing
  • 12x Thin washer-1
  • 2x Washer
  • 2x Nut
[ Motor Module ]
Motor Module exploded view

Motor Module

  • 1x Motor
  • 1x Pulley
  • 4x Spacer
  • 4x Bolt
  • 4x Washer
  • 2x Nut
  • 2x Spherical nut

Variant M2: Parts List

[ Main Assembly ]
Main Assembly exploded view

Main Assembly

  • 1x Housing
  • 2x Linear guide
  • 1x Block
  • 1x Idle pulley
  • 1x Attachment
  • 1x Motor
[ Housing Module ]
Housing Module exploded view

Housing Module

  • 1x Sheet
  • 1x Motor sheet
  • 1x U-Profile
  • 3x Spacer
  • 5x Rivet
  • 4x Stop
[ Linear Guide ]
Linear Guide exploded view

Linear Guide

  • 1x Rail
  • 1x Slider
  • 6x Rivet
[ Junction Block ]
Junction Block exploded view

Junction Block

  • 1x Junction block
  • 2x Male junction
  • 1x Glue
  • 1x Clamp
  • 1x Stop
  • 4x Screw
  • 1x Belt
[ Attachment Module ]
Attachment Module exploded view

Attachment Module

  • 1x Plate
  • 1x Stop nut
  • 1x Nut
  • 1x Washer
  • 4x Spacer
  • 4x Screw
  • 1x Grip
[ Motor Module ]
Motor Module exploded view

Motor Module

  • 1x Motor
  • 1x Pulley
  • 2x Spacer
  • 2x Spacer screw
  • 4x Screw
  • 4x Nut

Core Electronics

[ Power Unit P ]
Power Unit P exploded view

Power Unit P

  • 1x Housing
  • 1x Power supply
  • 1x Driver (Gecko/TB6600)
  • 1x Microcontroller (ESP32/Uno)
  • 1x Voltage regulator
  • 1x Motor socket
  • 1x Remote socket
  • 1x Cable gland
[ Remote Control ]
Remote Control exploded view

Remote Control

  • 1x Housing
  • 1x Cover
  • 2x Encoder
  • 2x Knob
  • 1x Cable

Legal & Safety Disclaimer

This documentation is provided solely for educational and personal fabrication purposes. Any commercial use, reproduction, or distribution of this project is strictly prohibited without explicit prior permission. The creators of the LM42P cannot be held responsible for any malfunction, mechanical failure, or injury resulting from user-built machines. You assume all risks and responsibilities associated with the assembly and operation of this hardware.

Complete Builder's Manual

Download DIY Build Guide

DIY

This document is provided solely for the purpose of building your own personal machine. You are welcome to read it for educational use only. Any commercial use of this document is strictly prohibited. Copying any part of this project (including photos, videos, or plans) is not allowed without prior permission from me.

LM42P cannot be held responsible for any malfunction of the machine that may result in injury. You use this machine entirely at your own risk and responsibility.

Below you will find information on how to obtain an LM42P. Currently, two variants are available:

  • M1
  • M2

Before you begin building your machine, please take note of the following important information :

  • For the 3D-printed parts, all files are located in the directory named 3d-print-files, which is inside the parent directory named after the corresponding part.
  • All part names are marked in bold.
  • Apply threadlock to the screws.

m2

Figure

housing

Figure

Parts list

QtyPartDescriptionMaterial
1u10x35x250aluminium
1sheet86x305x2aluminium
1motor sheet86x305x2aluminium
4stop13.7x33x4aluminium
3spacersee section spacer-
10rivet2.4 x 8 mmaluminium

sheet

This section describes the manufacturing process for the part called sheet.

Drawing

.

Figure
Required Tools and Components

Below is the list of materials required to produce the part named sheet.

  • 1x sheet dimensions : 86x305x2 material : aluminium ;
  • 1x steel rule ;
  • 1x file ;
  • 1x drillator see section drillator , p. ;
  • 1x drillator-m see section drillator-m , p. ;
  • 4x clamp ;
  • 2x 2.5 mm drill bit ;
  • 1x 4.2 mm drill bit ;
  • 1x 5.2 mm drill bit ;
  • 1x chamfering tool ;
  • 1x drill press.
Manufacturing Instructions
  1. use a file to remove all sharp edges ;
  2. carefully determine which face requires protection before proceeding ;
  3. align and clamp the drillator-m, using the top-left corner as a reference, this is important for proper alignment ;
  4. center punch all holes using a 2.5 mm drill bit ;
  5. remove the drillator-m ;
  6. using the same drill bit, drill the two holes positioned at the far-left edge, one at the uppermost and one at the lowermost position ;
  7. using two 2.5 mm drill bits, align and clamp the drillator ;
  8. center punch all holes ;
  9. remove the drillator ;
  10. drill all holes ;
  11. chamfer all holes (use a screw to check the chamfer depth) ;
  12. use a file to create both R 2.5 mm radii ;
  13. remove the protective film or masking.

motor-sheet

This section describes the manufacturing process for the part called motor-sheet.

Drawing

.

Figure
Required Tools and Components

Below is the list of materials required to produce the part named motor-sheet.

  • 1x sheet dimensions : 86x305x2 material : aluminium ;
  • 1x flat/convex file ;
  • 1x drillator see section drillator , p. ;
  • 1x drillator-m see section drillator-m , p. ;
  • 1x scribe ;
  • 4x clamp ;
  • 2x 2.5 mm drill bit ;
  • 1x 4.2 mm drill bit ;
  • 1x 5.2 mm drill bit ;
  • 1x jigsaw ;
  • 1x chamfering tool ;
  • 1x drill press.
Manufacturing Instructions
  1. use a file to remove all sharp edges ;
  2. carefully determine which face requires protection before proceeding ;
  3. align and clamp the drillator-m, using the top-left corner as a reference, this is important for proper alignment ;
  4. using a scriber, mark the outline of the 38 mm diameter hole ;
  5. center punch all holes using a 2.5 mm drill bit ;
  6. remove the drillator-m ;
  7. using the same drill bit, drill the two holes positioned at the far-left edge, one at the uppermost and one at the lowermost position ;
  8. using two 2.5 mm drill bits, align and clamp the drillator ;
  9. center punch all holes ;
  10. remove the drillator ;
  11. drill all holes ;
  12. chamfer all holes (use a screw to check the chamfer depth) ;
  13. use a file to create both R 2.5 mm radii ;
  14. using a jigsaw, cut as close as possible to the 38 mm diameter outline ;
  15. Using a flat/convex file, file the 38 mm hole until the motor fits through ;
  16. remove the protective film or masking.

u

This section describes the manufacturing process for the part called u.

Drawing

.

Figure
Required Tools and Components

Below is the list of materials required to produce the part named u.

  • 1x square tube dimension : 35x35x2x305 material : aluminium ;
  • 1x gauge minimum length: 305 mm ;
  • 1x try square ;
  • 1x steel rule ;
  • 1x scriber ;
  • 1x hand saw ;
  • 1x perpendicaltor ;
  • 1x file ;
  • 1x rail (see section linear-guide , p. ) ;
  • 2x clamp ;
  • 1x 3.5 mm drill bit ;
  • 1x 3.3 mm drill bit ;
  • 1x 2.5 mm drill bit ;
  • 1x chamfering tool ;
  • 1x drill press.
Manufacturing Instructions
  1. scribe a line with a scriber, leaving approximately 0.3 mm of extra material beyond the final total length ;
  2. cut the square tube to length using a handsaw and a try square ;
  3. use the perpendiculator to ensure both ends are square ;
  4. scribe two lines using the scriber, each about 0.3 mm from the edge of the squared square tube ;
  5. cut the square tube along the scribed lines using the handsaw ;
  6. use a file to clean the cuts and chamfer the edges ;
  7. clamp the rail in the correct position using a gauge (make sure it’s centered), ;
Figure
  1. mark the positions of the six 3.3 mm holes using a 3.5 mm drill bit to center punch ;
  2. drill the six holes using a 3.3 mm drill bit (do not drill the 2.5 mm holes yet—those will be drilled with the sheets) ;
  3. chamfer the six holes using a chamfering tool ;
  4. clamp the sheet in place ;
  5. center punch the five holes using a 2.5 mm drill bit ;
  6. clamp the motor sheet ;
  7. center punch the five holes using a 2.5 mm drill bit ;
  8. drill all ten holes using a 2.5 mm drill bit ;
  9. chamfer the six holes using a chamfering tool.

drillator

This section describes the manufacturing process for the part called drillator.

If your 3D printer has a large enough build volume, you can print the drillator and drillator-m in one piece, which improves alignment accuracy.

Drawing

.

Figure
Required Tools and Components

Below is the list of materials required to produce the part named drillator.

  • 1x 3d printer ;
  • 1x PLA ;
  • 1x file ;
  • 1x drill ;
  • 1x 2.5 mm drill bit.
Manufacturing Instructions
  1. 3D print the part using the files located in the 3d-print-files directory ;
  2. chamfer the edges using a file ;
  3. drill the 2.5 mm holes using a 2.5 mm drill bit and a drill.

drillator-m

If your 3D printer has a large enough build volume, you can print the drillator and drillator-m in one piece, which improves alignment accuracy.

Drawing

.

Figure
Required Tools and Components

Below is the list of materials required to produce the part named drillator.

  • 1x 3d printer ;
  • 1x PLA ;
  • 1x file ;
  • 1x drill ;
  • 1x 2.5 mm drill bit.
Manufacturing Instructions
  1. 3D print the part using the files located in the 3d-print-files directory ;
  2. chamfer the edges using a file ;
  3. drill the 2.5 mm holes using a 2.5 mm drill bit and a drill.

stop

Drawing

.

Figure
Parts list
QtyPartDescriptionMaterial
4x1=4screwM4 × 6 mm Torx flat head screwstainless steel
4x1=4nutstandard M4 hex nutstainless steel
-glueblackPoliflex 444

spacer

Drawing

.

Figure
Parts list
QtyPartDescriptionMaterial
3x2=6screwM5 × 12 mm Torx flat head screwstainless steel
3x1=3spacerM5 x 8 x 35 mmaluminium

linear guide

Figure

Parts list

QtyPartDescriptionMaterial
1railMGN12H, length: 250 mm-
1sliderMGN12H, 27 x 45.4 mm-
6rivet3.2 x 10 mmaluminium

Drawing

.

Figure

block

Figure

Parts list

QtyPartDescriptionMaterial
1junction block3D printednylon
1gluecastedepoxy
2male junctiongoogle : pool cue junctionbrass
1beltHTD 3-
1clampHTD 3aluminium
1stopsubassemblie (see section)see section stop
4screwM3 × 36 mm flat head screwstainless steel

junction block

Figure

motor

Figure

Parts list

QtyPartDescriptionMaterial
1motorNema 23 4.2A 3N.m 112mmwith cable
1pulleyHTD M3 28T 16/8aluminium
2spacerM5 x 8 x 35 mmaluminium
2spacer screwM5 × 65 mm Torx flat head screwstainless steel
2screwM5 × 12 mm Torx flat head screwstainless steel
4nutM5stainless steel

Drawing

.

Figure Figure

Assembling Instructions

Required Tools and Components
  • 1x motor ;
  • 1x pulley ;
  • 1x spacer ;
  • 1x adjustable reamer, diameter 8 mm ;
  • 1x sandpaper ;
  • 1x acetone.
  • 1x shaft glue (Loctite 238) ;
  1. Test the pulley on the motor shaft.\ There should be a between them (for the shaft glue).
  2. If there is no gap :
  • Use an adjustable reamer (diameter 8 mm) to carefully enlarge the hole in the pulley until the pulley fits with a slight gap.
  1. Clean the shaft and the pulley with acetone.
  2. Apply shaft glue to the shaft.
  3. Press the pulley onto the spacer, using a spacer to ensure correct positioning (.
  4. Let it cure for 4 hours.

idle pulley

Figure

Parts list

QtyPartDescriptionMaterial
1idle pulleyHTD3 28T / 8Aluminium
2screwM5 × 12 mm Torx flat head screwstainless steel
1spacerM5 x 8 x 35 mmAluminium

Drawing

.

Figure

Assembling Instructions

Required Tools and Components
  • 1x idle pulley ;
  • 1x spacer ;
  • 1x depth gauge ;
  • 1x shaft glue (Loctite 238) ;
  • 1x sandpaper ;
  • 1x driller ;
  • 1x M5 threader shaft ;
  • 1x acetone.
  1. Test the idle pulley on the spacer. There should be a between them (for the shaft glue).
  2. If there is no gap :
  • Insert the threaded shaft into the spacer and mount it in a drill.
  • Use sandpaper to carefully reduce the outer diameter of the spacer until the idle pulley fits with a slight gap.
  1. Clean the spacer and the idle pulley with acetone.
  2. Apply shaft glue to the spacer.
  3. Press the idle pulley onto the spacer, using a depth gauge to ensure correct positioning (see position Drawing).
  4. Let it cure for 4 hours.

attachment

Figure

Parts list

QtyPartDescriptionMaterial
1plate57 x 57 x 6aluminium
1stop nut3D PrintedPLA
1nutM8brass
1washerM8 x 8 x 35 mmstainless steel
4spacer8 / 5 × 10 mmaluminium
2screwM5 x 18 mm Torx flat head screwstainless steel
1grip57 x 57Griptape (skateboard)

Drawing

.

Figure

Manufacturing Instructions

Required Tools and Components
  • 1x aluminium plate 57 x 57 x 6 mm ;
  • 1x 3D printer ;
  • 1x PLA ;
  • 1x STL file (stop nut) ;
  • 1x STL file (drillator) ;
  • 2x clamp ;
  • 1x scriber ;
  • 1x file ;
  • 1x 2.5 mm drill bit ;
  • 1x 5.2 mm drill bit ;
  • 1x 4.2 mm drill bit ;
  • 1x 9 mm drill bit ;
  • 1x M5 tap ;
  • 1x Griptape 57 x 57 mm (use for skate board) ;
  • 1x drill press ;
  • 1x driller.
  1. 3D print the drillator ;
  2. 3D print the stop nut ;
  3. clamp the drillator on the aluminium plate ;
  4. scribe the 4x radii and the holes ;
  5. drill and tap all holes ;
  6. file the 4 radii ;
  7. file the sharp edges ;
  8. cut and drill the grip.

Assembling Instructions

All screws must be glued using threadlock glue.

  1. Fabricate the shaped tools: the tensionator and the drillator (refer to section tensionator and drillator).
  2. Rivet the rail onto the housing U-profile.
Figure Figure
  1. Slide the junction block (assembly) onto the rail.
Figure
  1. Mount the stop screw nut, ensuring proper alignment. Glue with threadlock glue and mastic glue. After curing, file the 5x screw so it does not protrude.
Figure Figure Figure
  1. Repeat the previous step to mount the second stop screw nut.
Figure Figure Figure
  1. Assemble the following components:
  • 3 × spacer 35
  • 3 × screw 12
  • 4 × spacer 10
  • 2 × screw 18
  • 1 × stop nut
  • 1 × nut 8
  • 1 × washer 8
  • 1 × plate
Figure Figure
  1. Rivet the following:
  • 5 × rivet 24
Figure Figure
  1. Secure the motor (assembly) with:
  • 2 × screw 12
  • 2 × washer 5
  • 2 × nut 5
Figure Figure
  1. Close the housing using the idle pulley (assembly), with:
  • 2 × screw 65
  • 2 × spacer 35
  • 2 × washer 5
  • 2 × nut 5
  • 3 × screw 12
  • 5 × rivet 24
  • 1 × idle pulley (assembly)
Figure Figure
  1. Attach the shaped tool tensionator to the idle pulley using 2 × colson 4.
Figure
  1. Place a weight of approximately 17 kg (e.g., 11 × 1.5 L bottles).
  2. Mount the shaped tool drillator.
Figure
  1. Mark drill points using a 2.5 mm drill on both sheets.
  2. Drill with a 5 mm drill, then chamfer the holes.
  3. Tighten the idle pulley using 2 × screw 12.
  4. Well Done you've finished the m2 !

drillator

This section shows how to make the shaped tool named drillator The purpose of this tool is to point the holes of the idle pulley shaft during tensioning the belt.

Drawing

The following figure shows the drawing of the drillator.

Figure
Details
  • Quantity: 1 ;
  • Material: PLA ;
Manufacturing Instructions
  1. 3d print the drillator the files are in the folder named 3d-print-files.

tensionator

Figure

This section explains how to build the shaped tool called the tensionator for the assembly of the m2 machine.

The following figure shows the drawing of the tensionator with all its elements.

Figure
QtyPartDescriptionMaterial
1pulleyD50 mm-
1colson4 mm-
2rope--
1weight17 kg-

m2 accessories

rod

Figure Figure

Parts list

QtyPartDescriptionMaterial
1tube20/18,length: 250 mmcarbon
1female junctiongoogle : pool cue junctionbrass
1sleeve3D printedPLA
1glueresin, hardner, graphite powder

Drawing

.

Figure

Manufacturing Instructions

Required Tools and Components
  • 1x carbon tube length: 500 mm ;
  • 1x paper ;
  • 1x tape ;
  • 1x handsaw ;
  • 1x perpendiculator ;
  • 1x drillator ;
  • 1x 5mm drill bit ;
  • 1x driller ;
  • 1x sandpaper ;
  • 1x 3D printer ;
  • 1x PLA filament ;
  • 2x female junction ;
  • 1x file ;
tube
  1. Scribe a mark at the exact middle of the carbon tube.
  2. Wrap a piece of paper around the tube and secure it with tape (to guide the cut).
  3. Use a handsaw to cut the tube into two equal parts.
  4. Make both ends of each tube perpendicular using the perpendiculator tool.
  5. Remove the sharp edges with sandpaper.
  6. Drill the 6 holes using the driller and the drillator tool (refer to the Drawing section).
  7. Remove the sharp edges again with sandpaper.
sleeve
  1. 3D print the part using the files located in the 3d-print-files directory.
  2. Chamfer the edges using a file.
  3. Insert the female junction into the sleeve and gently push it into the tube. Adjust if there is too much friction or too large a gap.
female junction
  1. File the three 5/1.5mm flats—see dimensions in the Drawing section.

Assembly Instructions

Required Tools and Components
  • 1x hot glue ;
  • 1x male junction ;
  • 1x tape ;
  • 1x scale ;
  • 1x glue :
    • resine:
      • Brand: ? ;
      • Type: ?.
    • hardner:
      • Brand: ? ;
      • Type: ?.
  • 1x graphite powder :
    • Brand: Suter Kunstoff AG ;
    • Type: West Graphit-Pulver 423.
  • 1x clamp ;
  • 1x piano wire ;
  • 1x oven ;
  • 1x perpendicalor.
  1. Screw the male junction into the female junction.
  2. Seal the hole with hot glue.
  3. Trim any excess hot glue using a scalpel.
  4. Unscrew the male junction.
  5. Thoroughly clean the outside and top of the female junction with acetone.
  6. Seal the hole with tape.
  7. Using a scalpel, carefully cut the tape around the female junction.
  8. Insert the female junction into the sleeve, ensuring the flat side aligns with the canals inside the sleeve.
  9. Push the assembly into the tube until the female junction is aligned with the end of the tube. Use a ruler for accuracy. Press on the tape — it's normal for the female junction to move slightly inward due to the tape's thickness.
  10. Wrap tape around the end of the tube, with the tape's edge extending about 1 mm above the end of the tube.
  11. To glue two female junctions, prepare the following mixture:
  • 1.5 g of hardener ;
  • 3.75 g of resin ;
  • 1.125 g of graphite powder.
  1. Prepare glue, as described in the shaped-parts section, and mix it with graphite powder.
  2. Use a clamp to hold the tube vertically.
  3. Pour the glue mixture above the tape, letting it slightly overflow past the end of the tube.
  4. Use piano wire to enter each canal of the sleeve, removing any bubbles and ensuring glue flows properly into the canals.
  5. Let the glue set for 2 hours.
  6. After 2 hours, check the level of the composite. Add more if necessary.
  7. Allow to cure for 24 hours, or place in an oven to accelerate curing.
  8. Use the perpendiculator to grind the end of the tube until the tape sealing the female junction is removed (you should see a shiny ring appear).
  9. Repeat the same steps for the other end of the tube.

suction cup dildo adapter

Figure

This section explain how to build the suction cup dildo adapter for the m2 machine.

Figure

Parts list

QtyPartDescriptionMaterial
1suction cup dildo adapter nut3D printedPLA
1suction cup dildo adapter bolt3D printedPLA
1male junctiongoogle : pool cue junctionbrass
1boltM4 x 30 mmstainless steel
1nutM4brass
2washerM4stainless steel

Drawing

.

Figure

Required Tools and Components

  • 1x 3D printer ;
  • 1x CAD software (to ajuste M10 tap in case) ;
  • 1x PLA ;
  • 1x STL file suction cup dildo adapter nut ;
  • 1x STL file suction cup dildo adapter bolt ;
  • 1x STL file drillator ;
  • 1x STL file sample ;
  • 1x male junction ;
  • 1x bolt ;
  • 2x washer ;
  • 1x nut ;
  • 1x file ;
  • 1x 3.2 mm drill bit ;
  • 1x chamfer mill ;
  • 1x M4 tap ;
  • 1x tap wrench ;
  • 1x boltdriver ;
  • 1x drill press ;
  • 1x driller ;
  • 1x water pump pliers ;
  • 1x allen key ;
  • 1x threaderlock glue ;
  • 1x bench vise.

Manufacturing Instructions

  1. Skip the next three steps if all 3D printers used print with the same accuracy as an Ultimaker.
  2. 3D print the sample.
  3. Test if the M10 tap fits into the sample.
  4. Adjust the M10 tap size on the suction cup dildo adapter nut, suction cup dildo adapter bolt, and drillator 3D models as needed.
  5. Remark : Before printing the suction cup dildo adapter nut and the suction cup dildo adapter bolt, adjust the starting position of the M4 thread. The drillator was originally designed for a 2mm male junction, but since the actual male junction is located at 0.5 mm, I had to shift the thread start by 0.5 mm to compensate. the male juction was not at 2mm but at 2.5mm. 3D print the suction cup dildo adapter nut, suction cup dildo adapter bolt, and drillator.
  6. Screw the male junction into the drillator (the large diameter with a width of 2 mm should be flush against the reference plane). Use water pump pliers.
  7. On a drill press, drill a 3.2 mm hole.
  8. File or chamfer the hole.
  9. Tap an M4 thread.
  10. Assemble the male junction and suction cup dildo adapter bolt with the bolt. Don’t forget to apply thread locker.

tenga adapter

Figure

Parts list

QtyPartDescriptionMaterial
1tenga adapter3D PrintedPLA
1male junctionM10 x 39.3 mmPLA
1gluecastedepoxy and grafite powder
2screwM4 x 25 mm Torx flat head screwstainless
1washerM7 x 13 x 0.5 mmstainless steel
1drillator3D PrintedPLA

Drawing

.

Figure

Required Tools and Components

  • 1x 3D printer ;
  • 1x PLA ;
  • 1x STL file (tenga adapter) ;
  • 1x STL file (drillator) ;
  • 1x male junction ;
  • 1x female junction ;
  • 1x screwdriver ;
  • 1x 3.2 mm drill bit ;
  • 1x 4.2 mm drill bit ;
  • 1x chamfer cutter ;
  • 1x M4 tap ;
  • 1x left-hand tap ;
  • 1x drill press ;
  • 1x driller ;
  • 1x file ;
  • 1x tape ;
  • 1x cutter ;
  • 1.5 g of hardener ;
  • 3.75 g of resin ;
  • 1.125 g of grafite powder ;
  • 1x wood chisel.

Manufacturing Instructions

See also video :

  1. 3D print the drillator.
  2. 3D print the Tenga adapter.
  3. Drill a 4.2 mm hole in the Tenga Fleshlite.
  4. Insert the male junction into the female junction.
  5. Using a drill press, drill a 3.2 mm hole.
  6. Tap an M4 thread into the hole.
  7. File three flat surfaces on the M10 thread.
  8. Wrap tape around the M4 thread.
  9. Trim the tape using a cutter.
  10. Insert the male junction into the Tenga adapter.
  11. Prepare the glue mixture:
  • 1.5 g of hardener;
  • 3.75 g of resin;
  • 1.125 g of graphite powder.
  1. Pour the glue into the assembly.
  2. Remove any excess glue from the top of the male junction.
  3. Assemble the Tenga Fleshlite using the screw.

glass dildo adapter

Figure

Parts list

QtyPartDescriptionMaterial
1glass dildo adapter bolt3D PrintedPLA
1glass dildo adapter nut3D PrintedPLA
1male junctionM10 x 39.3 mmPLA
1boltM4 x 30 mm Torx flat head screwstainless steel
2washerM4 x 9 x 0.8 mmstainless steel
1nutM4 x 3 mmstainless steel

Drawing

.

Remark : The position of 6 was previously at 4 mm, and a gap of 0.25 mm has been added. All 3D print files have already been updated accordingly, so the parts are ready for printing with these modifications.

Figure

Required Tools and Components

  • 1x 3D printer ;
  • 1x PLA ;
  • 1x STL file (glass dildo adapter) which include both bolt and nut sides ;
  • 1x STL file (sample) ;
  • 1x STL file (drillator) ;
  • 1x male junction ;
  • 1x screwdriver ;
  • 1x 3.2 mm drill bit ;
  • 1x M4 tap ;
  • 1x M10 tap ;
  • 1x left-hand tap ;
  • 1x drill press ;
  • 1x driller ;
  • 1x file ;
  • 1x clamp ;
  • 1 x 7 mm open-end wrench ;
  • 1x 0.5 mm of sheet ;
  • 1x threadlocker (light one).

Manufacturing Instructions

See also video :

  1. 3D print the sample and check if the M10 tap of the male junction fits snugly into the sample without any gap.
  2. Adjust the M10 tap on the drillator model.
  3. 3D print the drillator.
  4. Adjust the M10 tap on the glass dildo adapter model (both nut and bolt sides).
  5. 3D print the glass dildo adapter.
  6. Place a 0.5 mm sheet between the glass dildo adapter parts.
  7. Clamp all components together.
  8. Tap the M10 thread.
  9. Screw the male junction into the drillator.
  10. Using a drill press, drill a 3.2 mm hole from both sides.
  11. Tap an M4 thread into the hole.
  12. File the sharp edges of the M10 thread.
  13. Insert the male junction into the glass dildo adapter bolt.
  14. Apply threadlocker to the bolt, add the washer, and tighten everything.
  15. Assemble the glass dildo adapter nut with a washer and a nut.

vac u lock adapter

Figure

Parts list

QtyPartDescriptionMaterial
1vac u lock adaptermoldedcomposite
1male junctionM10 x 39.3 mmbrass

Drawing

.

Figure

Required Tools and Components

  • 1x 3D printer ;
  • 1x PLA ;
  • 1x STL file (mold) ;
  • 1x STL file (cover) ;
  • 1x male junction ;
  • 1x file ;
  • ? g of hardener ;
  • ? g of resin ;
  • ? g of grafite powder ;
  • 1x scale ;
  • 1x release agent ;
  • 1x 1s lipo battery or one AA battery ;
  • 1x wooden chisel.

Manufacturing Instructions

See also video : not yet done

  1. Get the moldator ready (see Section ).
  2. 3D print the mold.
  3. Preheat the oven to 40,°C.
  4. Apply release agent inside the mold.
  5. Wait 30 minutes.
  6. Prepare the composite mixture:
  • ?,g hardener;
  • ?,g resin;
  • ?,g graphite powder.
  1. Insert the male junction into the cover.
  2. Pour the composite into the mold.
  3. Gently close the mold with the cover.
  4. Clamp the mold onto the moldator.
  5. Connect the battery to the motor.
  6. Place everything inside the oven.
  7. Cure for 4 hours.
  8. Use a wooden chisel to open the mold.

moldator

Figure
Parts list
QtyPartDescriptionMaterial
1motorstandard (worm gear)-
1motor plate64 x 2 mmaluminium
1pin plate64 x 2 mmaluminium
3spacer6 x 4 x 149.15 mmaluminium
6screw spacerM5 x 12 mmstainless steel
3screwM3 x 8 mmstainless steel
1mold3D printedPLA
1cover3D printedPLA
1drillator3D printedPLA
Drawing
Figure Figure
Required Tools and Components
  • 1× 3D printer ;
  • 1× PLA spool ;
  • 1× STL file (drillator) ;
  • 1× 2,mm aluminium sheet ;
  • 1× screwdriver ;
  • 2× clamps ;
  • 1× Allen key ;
  • 1× 2,mm drill bit ;
  • 1× 4.2,mm drill bit ;
  • 1× 5.2,mm drill bit ;
  • 1× chamfer cutter ;
  • 1× M5 tap ;
  • 1× left-hand tap ;
  • 1× drill press ;
  • 1× driller ;
  • 1× file ;
  • 1× scriber ;
  • 1x jigsaw ;
  • 1× 8×6,mm aluminium tube (min length 460,mm) ;
  • 1× gauge ;
  • 1× handsaw ;
  • perpendiculator.

Manufacturing Instructions

See also video :

  1. 3D print the drillator.
  2. 3D print the cover.
  3. Clamp the drillator on the 2 mm aluminium sheet at a corner.
  4. Point with a 2 mm drill bit.
  5. Scribe the cercle around the drillator.
  6. Drill all holes (see the drawing).
  7. Saw with a jig saw the ouside cirle.
  8. Repeat the five precedent points for the other plate.
  9. Shape the spacer.
  10. Assemble every thing like on the figure.

power unit p

Figure

Parts list

QtyPartDescriptionMaterial
1housing78 x 47 x 240 mmaluminium
1power supply110V/220V 36V 180W-
1driverG201X Digital Step Drive-
1microcontrollerESP32 30 pins-
1voltage regulatorLM2596-
1motor socketamphenol female 5 polesaluminium
1remote socket34 x 28 x 18 mm RJ45-
1cable gland17 x 34 x 8 mmm-
1motor plugamphenol male 5 polesaluminium
1power supply cable3-core 0.5mm2 length : 2 m-
1power supply plugdepends on country 110 V or 220 V-
1motor cable4-cores 0.5mm2 length : 1 m ( in case the motor is not supplied with its own)
1wire0.5mm2 length : 1 mcooper
1wire0.75mm2 length : 0.50 mcooper

housing

Figure

Parts list

QtyPartDescriptionMaterial
1baseU 75 x 44 x 1.5 length : 240 mmaluminium
1topU 78 x 10 x 1.5 length : 240 mmaluminium
1side socketU 43 x 10 x 1.5 length : 70 mmaluminium
1sideU 43 x 10 x 1.5 length : 70 mmaluminium
8rivet3 x 8 mmaluminium

Drawing

Figure Figure

power supply

Figure

Parts list

QtyPartDescriptionMaterial
1power supplyAC/DC WXDC2416 220-110/36V-
1ring connectorM3-
1lock washer3.3 x 5.1 x 0.8stainless steel
4spacer3.2 x 7 x 5aluminium
4washer3.2 x 7 x 0.5stainless steel
4rivet3 x 14 mmaluminium

Drawing

Figure

driver

Figure

Parts list

QtyPartDescriptionMaterial
1driverG201X Digital Step Drive-
4washer3.2 x 7 x 0.5stainless steel
4rivet3 x 10 mmaluminium

Drawing

Figure

microcontroller

Figure

Parts list

QtyPartDescriptionMaterial
1microcontrollerESP32 30 pins-
1support3D printedPLA
2screw2 x 8brass
2washer3.2 x 7 x 0.5stainless steel
2rivet3 x 12 mmaluminium

Drawing

Figure

voltage regulator

Figure

Parts list

QtyPartDescriptionMaterial
1voltage regulatorLM2596-
2spacer3.2 x 7 x 3nylon
2rivet3 x 8 mmaluminium

Drawing

Figure

motor socket

Figure

Parts list

QtyPartDescriptionMaterial
1motor socketamphenol female 5 polesaluminium
1gasket32.5 x 32.5 x 1.5rubber
4screwM3 x 12 mmstainless steel
4nutM3stainless steel

Drawing

Figure

remote socket

Figure

Parts list

QtyPartDescriptionMaterial
1remote socket34 x 28 x 18 RJ45-
1support3D printedPLA
4screw2 x 10 mmbrass
2screw 32.9 x 10 mmstainless steel
2connector24.3 x 7 x 4 mmm 9 poles-

Drawing

Figure

cable gland

Figure

Parts list

QtyPartDescriptionMaterial
1cable gland17 x 34 x 8 mmnylon
1nut17 x 5 mmnylon

Drawing

Figure

motor plug

Figure

Parts list

QtyPartDescriptionMaterial
1motor plugamphenol male 5 polesaluminium

Drawing

Figure

Wiring

Wiring diagram

Figure

Parts list

QtyPartDescriptionMaterial
1power supply cable3 poles 0.75mm2 length : 2 m-
1power supply plugdepends on country 110 V or 220 V-
1motor cable4 poles 0.5mm2 length : 1 m ( If the motor is not supplied with its own cable, refer to the Appendix, for instructions on how to attach it.}
1wire0.5mm2 length : 1 mcooper
1wire0.75mm2 length : 0.50 mcooper
Required Tools and Components
  • 1x wire cutter ;
  • 1x wire stripper ;
  • 1x terminal crimping tool ;
  • 1x multimeter ;
  • 1x soldering iron ;
  • 1x solder ;
  • 1x gauge ;
  • 1x screwdriver 0 ;
  • 1x rivet gun ;
  • 1x water pump pliers ;
  • 1x electrical tape.

Wiring Instructions

The lengths and cross-sectional areas of the wires are listed in table , page .

  1. File the bottom of the base (only the part where the red framed hole is) so that the grounding contact faces well. This operation is not necessary if you are using non anodized sheets (anodized surfaces are none-conductive). .
Figure
  1. Strip the power supply cable 3 cores at 10cm.
  2. Tighten the ring connector on the ground wire (yellow).
  3. Fix the cable gland to the base.
  4. Tighten cable gland.
  5. Control the power supply : control the voltage of the output of the power supply with a voltmeter. It should be 36V.
  6. Install the power supply in the base, ensuring that the ground connection is correctly made ().
Figure
  1. Connect and tighten the phase and neutral wires to the 36V "IN" terminals of the power supply.
  2. Connect the power supply plug to the power supply cable.
  3. Use a multimeter (in resistance mode) to verify that the ground of the power supply plug is properly connected to the base.
  4. Solder the four wires to the corresponding pins on the voltage regulator :
  • Connect the wire to IN+ (input positive).
  • Connect the wire to IN- (input negative).
  • Connect the wire to OUT+ (output positive).
  • Connect the wire to OUT- (output negative).
  1. Install the voltage regualator in the base.
  2. Adjust voltage regulator voltage :
  3. Connect the voltage regulator IN to the power supply OUT ;
  4. Connect the voltmeter to voltage regulator OUT
  5. Solder the four wires to the motor socket.
  6. Install all other components in the base.
  7. Wire them properly (see Terminals Connection and Wires details in Table , page and Wiring diagram , ).
  8. If the motor does not already have a cable installed, solder four wires to the motor. See Appendix: Attach the motor cable , page , for instructions on how to attach it. (It is much easier if you can get a motor with the cable already wired.)
  9. Wire the motor plug :
  10. Strip the outer cable sheath over a length of 3 cm.
  11. Strip the four inner wires and solder them as required.
  12. At 5 cm from the edge, wrap 10 layers of electrical tape around the cable.
  13. Soldered the four wires as follows ("Actually, this is not the same as shown in the ESP schematic. I connected the M2 according to the table, but next time I need to follow the ESP schematic and check whether the red and green sides of the machine are the same.") : * red → C ; * green → B ; * black → A ; * blue → D.
  14. Assemble the plug and tighten the flange.
  15. Wire the remote-d.

Terminals Connections and Wires details

QtyPartDescriptionMaterial
D35_microcontroller - 1_connector90.25
D32_microcontroller - 2_connector90.25
D33_microcontroller - 9_driver90.25
D25_microcontroller - 8_driver90.25
D26_microcontroller - 3_connector90.25
D27_microcontroller - 4_connector90.25
D14_microcontroller - 5_connector90.25
D13_microcontroller - 6_connector90.25
10_driver - 7_connector15 (don't cut)0.25
10_driver - GND_microcontroller9 (Wired according to precedent and tightly bundled within the 10_driver)0.5
3_driver - A_motor socket150.75
4_driver - B_motor socket150.75
5_driver - C_motor socket150.75
6_driver - D_motor socket150.75
8_connector - VIN_microcontroller?0.25
OUT-_voltage regulator - GND_microcontroller70.5
OUT+_voltage regulator - VIN_microcontroller120.5
IN+_voltage regulator - OUT+_power supply160.5
IN-_voltage regulator - OUT-_power supply150.5

Firmware

After all components have been installed and wired inside the housing, it is time to upload the firmware to the microcontroller.

m1

The firmware source code for machine m1 is located in the **firmware** directory. A portion of the firmware code is shown below.

To upload the firmware, please follow the steps described in the Appendix.

//speed rotary encoder
#define ROTARY_ENCODER_A_PIN 27 //CLK
#define ROTARY_ENCODER_B_PIN 26 //DT
#define ROTARY_ENCODER_BUTTON_PIN 32 //SW
#define ROTARY_ENCODER_STEPS 4
#define ROTARY_ENCODER_ACCELERATION 2000 //30000 3000
AiEsp32RotaryEncoder rotaryEncoder = AiEsp32RotaryEncoder(ROTARY_ENCODER_A_PIN, ROTARY_ENCODER_B_PIN, ROTARY_ENCODER_BUTTON_PIN, -1, ROTARY_ENCODER_STEPS);

// stroke rotary encoder #define ROTARY_ENCODER2_A_PIN 13 //CLK #define ROTARY_ENCODER2_B_PIN 35 //DT #define ROTARY_ENCODER2_BUTTON_PIN 14 //SW #define ROTARY_ENCODER2_STEPS 4 #define ROTARY_ENCODER2_ACCELERATION 7000 AiEsp32RotaryEncoder rotaryEncoder2 = AiEsp32RotaryEncoder(ROTARY_ENCODER2_A_PIN, ROTARY_ENCODER2_B_PIN, ROTARY_ENCODER2_BUTTON_PIN, -1, ROTARY_ENCODER2_STEPS);

void IRAM_ATTR readEncoderISR() { rotaryEncoder.readEncoder_ISR(); rotaryEncoder2.readEncoder_ISR(); }

// IO pin assignments const int MOTOR_STEP_PIN = 33; const int MOTOR_DIRECTION_PIN = 25;

// Speed and stroke settings const int MIN_SPEED = 2000; //set min speed in us/step const int MAX_SPEED = 10; // no diff 5 and 20 5 10 15 25 45 speed/accelration for 1kg toy: 45/320000 // higher the acceleration and lower value of speed can be set to be // more speedy const int MIN_STROKE = 10; // 10 vibro_stroke = 10 const int MAX_STROKE = 4800; //4850 4650 4600 4500 4000

// Motor acceleration int MOTOR_ACCELERATION = 320000; // 640000 for small toy 850000 decroche 640000 320000; // speed/acceleration for 1kg toy: 45/320000

FastAccelStepperEngine engine = FastAccelStepperEngine(); FastAccelStepper *stepper = NULL;

long target = 0; // it's the target int previousDirection = 1; bool stopped = true; //machine stopped unsigned long lastButtonPress = 0; // avoid rebounce when button is pressed bool green = false; // green side of the machine is used bool red = false; // red side of the machine is used const int GAP = 50; // gap between the end of machine and mobile part;

void setup() { Serial.begin(115200); pinMode(ROTARY_ENCODER_A_PIN, INPUT_PULLUP); pinMode(ROTARY_ENCODER_B_PIN, INPUT_PULLUP);

pinMode(ROTARY_ENCODER2_A_PIN, INPUT_PULLUP); pinMode(ROTARY_ENCODER2_B_PIN, INPUT_PULLUP);

m2

The firmware source code for machine m2 is located in the **firmware** directory. A portion of the firmware code is shown below.

To upload the firmware, please follow the steps described in the Appendix.

//speed rotary encoder
#define ROTARY_ENCODER_A_PIN 27 //CLK
#define ROTARY_ENCODER_B_PIN 26 //DT
#define ROTARY_ENCODER_BUTTON_PIN 32 //SW
#define ROTARY_ENCODER_STEPS 4
#define ROTARY_ENCODER_ACCELERATION 2000 //30000 3000
AiEsp32RotaryEncoder rotaryEncoder = AiEsp32RotaryEncoder(ROTARY_ENCODER_A_PIN, ROTARY_ENCODER_B_PIN, ROTARY_ENCODER_BUTTON_PIN, -1, ROTARY_ENCODER_STEPS);

// stroke rotary encoder #define ROTARY_ENCODER2_A_PIN 13 //CLK #define ROTARY_ENCODER2_B_PIN 35 //DT #define ROTARY_ENCODER2_BUTTON_PIN 14 //SW #define ROTARY_ENCODER2_STEPS 4 #define ROTARY_ENCODER2_ACCELERATION 7000 AiEsp32RotaryEncoder rotaryEncoder2 = AiEsp32RotaryEncoder(ROTARY_ENCODER2_A_PIN, ROTARY_ENCODER2_B_PIN, ROTARY_ENCODER2_BUTTON_PIN, -1, ROTARY_ENCODER2_STEPS);

void IRAM_ATTR readEncoderISR() { rotaryEncoder.readEncoder_ISR(); rotaryEncoder2.readEncoder_ISR(); }

// IO pin assignments const int MOTOR_STEP_PIN = 33; const int MOTOR_DIRECTION_PIN = 25;

// Speed and stroke settings const int MIN_SPEED = 2000; //set min speed in us/step const int MAX_SPEED = 10; // no diff 5 and 20 5 10 15 25 45 speed/accelration for 1kg toy: 45/320000 // higher the acceleration and lower value of speed can be set to be // more speedy const int MIN_STROKE = 10; // 10 vibro_stroke = 10 const int MAX_STROKE = 4800; //4850 4650 4600 4500 4000

// Motor acceleration int MOTOR_ACCELERATION = 320000; // 640000 for small toy 850000 decroche 640000 320000; // speed/acceleration for 1kg toy: 45/320000

FastAccelStepperEngine engine = FastAccelStepperEngine(); FastAccelStepper *stepper = NULL;

long target = 0; // it's the target int previousDirection = 1; bool stopped = true; //machine stopped unsigned long lastButtonPress = 0; // avoid rebounce when button is pressed bool green = false; // green side of the machine is used bool red = false; // red side of the machine is used const int GAP = 50; // gap between the end of machine and mobile part;

void setup() { Serial.begin(115200); pinMode(ROTARY_ENCODER_A_PIN, INPUT_PULLUP);

power unit a

Figure

This chapter explains how to build the power unit a.

Figure

Parts list

QtyPartDescriptionMaterial
1housing3D printedPLA
1driverTB6600-
1microcontrollerArduino Uno-
1plug 10 pinsdelivered with Arduino Uno-
2plug 6 pinsdelivered with Arduino Uno-
1voltage regulatorLM2596-
1socket2.1/5.5-
1nutM8-
6screwM2 x 5brass
2driver screw2.9 x 13stainless steel
1motor cable clamp2.5nylon (cable tie)
1remote cable clamp2.5nylon (cable tie)
1power supply110-220V/24V 6A-
1power supply cableplug depends on country 110 V or 220 V-

Drawing

.

Figure

Required Tools and Components

  • 1x 3D printer ;
  • 1x PLA ;
  • 1x STL file housing ;
  • 1x STL file drillator ;
  • 1x file ;
  • 1x 3.5 mm drill bit ;
  • 1x chamfer mill ;
  • 1x screw driver ;
  • 1x drill press ;
  • 1x driller ;
  • 1x clamp.

Manufacturing Instructions

  1. 3D print the housing.
  2. 3D print the drillator.
  3. Clamp the drillator on the driver (see section Drawing).
  4. On a drill press, drill a 3.5 mm hole.
  5. File or chamfer the hole.
  6. Wire all connection (see section wiring).
  7. Tighten the motor cable clamp and the remote cable clamp.
  8. Assemble the voltage regulator, the microcontroller, the socket and close the housing with the driver.

Wiring

Wiring diagram

Figure

Parts list

QtyPartDescriptionMaterial
1power supply cableplug depends on country 110 V or 220 V-
1motor cable4 poles 0.5mm2 length : 1 m ( If the motor is not supplied with its own cable, refer to the Appendix, for instructions on how to attach it.}
1wire0.5mm2 length : 1 mcooper
1wire0.75mm2 length : 0.50 mcooper
1RJ-45 cable8 cores length : 2.5 m3 mm diameter

Required Tools and Components

  • 1x wire cutter ;
  • 1x wire stripper ;
  • 1x terminal crimping tool ;
  • 1x multimeter (voltmeter) ;
  • 1x soldering iron ;
  • 1x solder ;
  • 1x gauge ;
  • 1x screwdriver 0 ;
  • 1x water pump pliers ;
  • 1x electrical tape.

Wiring Instructions

The lengths and cross-sectional areas of the wires are listed in table , page .

Wire the components before installing them into the housing.

  1. Adjust the DIP switches on the driver to set the desired micro-step resolution and output current, referring to the driver's tables for the correct settings:
  • Micro-step resolution: 1600 → S1 = OFF, S2 = ON, S3 = OFF
  • Current: 3.5A (peak 4A) → S4 = OFF, S5 = OFF, S6 = OFF
  1. Solder four wires to the socket (see Terminals Connection and Wire Details in Table , page , and Wiring Diagram, page).
  2. Secure the socket to the housing.
  3. Connect the socket to the voltage regulator (IN- and IN+).
  4. Use a multimeter to adjust the output of the voltage regulator to 5V.
  5. Solder the four wires to the corresponding pins on the voltage regulator :
  • Connect a wire from the socket to IN+ (input positive).
  • Connect a wire from the socket to IN- (input negative).
  • Connect a wire to OUT+ (output positive).
  • Connect a wire to OUT- (output negative).
  1. If the motor does not already have a cable installed, solder four wires to the motor. See Appendix: Attach the motor cable , page , for instructions on how to attach it. (It is much easier if you can get a motor with the cable already wired.)
  2. Complete all wiring connections (see Terminals Connection and Wire Details in Table , page , and Wiring Diagram, page).
  3. Wire the remote-controller-a (if not yet done).
  4. Secure all components inside the housing.
  5. Upload the firmware (see Section ...).

Terminals Connections and Wires details

QtyPartDescriptionMaterial
+_socket - IN+_voltage regulator...0.25
+_socket - VCC_driver...0.75
-_socket - IN-_voltage regulator...0.25
-_socket - GND_driver...0.25
OUT+_voltage regulator - VIN_plug 6 pins...0.25
OUT-_voltage regulator - ENA-_driver...0.25
ENA-_driver - GND_plug 6 pins...0.25
ENA-_driver - PUL-_driver...0.25
PUL+_driver - D9_plug 10 pins...0.25
DIR+_driver - D8_plug 10 pins...0.25
A+_driver - black_motor...0.75
A-_driver - green_motor...0.75
B+_driver - red_motor...0.75
B-_driver - blue_motor...0.75
A0_plug 6 pins - middle-pin_remote speed2500.15
A1_plug 6 pins - middle-pin_remote stroke2500.15
GND_plug 6 pins - left-pin_remote stroke and speed2500.15
5V_plug 6 pins - right-pin_remote stroke and speed2500.15

Firmware

After all components have been installed and wired inside the housing, it is time to upload the firmware to the microcontroller.

m1

The firmware source code for the machine m1 is located in the **firmware** directory. A portion of the firmware code is shown below.

To upload the firmware, please follow the steps described in the Appendix.

// Comme le fait de lire la vitesse du potentiom\`etre prend relativement beaucoup de temps, 
// cela r\'eduit la vitesse de pulsation de la pin 9. Pour parer \`a ceci le programme a \'et\'e adapt\'e
// pour lire la vitesse tous les 300 it\'erations \`a basse vitesse.
// Lorsque la vitesse du potentiom\`etre d\'epasse v\_max\_inv qui est la vitesse maximale \`a laquelle
// le moteur ne d\'ecroche pas \`a l'inversion du sens de rotation, des boucles d'acc\'el\'erations et de
// d\'ec\'el\'eration sont requises pour ne pas faire d\'ecrocher le moteur lors des inversions de sens de
// rotations. (avec ceci, il est possible de diminuer le d\'elai entre pulse \`a haute vitesse ce
// qui augmente la vitesse) Comme la vitesse est rapide la vitesse est alors lue apr\`es un cycle
// complet de va-et-vient. Pour simplifier, la course n'est lue qu'apr\`es un cycle complet de va-et-vient.
// Un autre point important est de lire la vitesse souvent \`a basse vitesse : 
// par exemple si la vitesse est au mini et la course est grande, alors cela prendra une \'eternit\'e
// pour que le va-et-vient se termine jusqu'\`a la prochaine lecture de vitesse.
// L'acc\'el\'eration et la d\'ec\'el\'eration est lin\'eaire (apr\`es un cycle de pulse, le d\'elai est soustrait pour
// l'acc\'el\'eration ou additionn\'e de 1 pour la d\'ecc\'el\'eration).

#define step_pin 9 // Pin 9 connected to Steps pin on ST-M5045 ou ... c'est la pin du pulse // (un pulse c'est un pas en mode full // ou en mode 1600pas/rev : 8 pulses pour un pas avec un motor de 1.8deg // ou 200pas/rev) #define dir_pin 8 // Pin 8 connected to Direction pin #define home_switch 12 // Pin 12 connected to Home Switch (MicroSwitch) #define ref 0 // c'est le 0 ici l'inversion est faite en mode basse vitesse // (sans acc'el'eration ni d'ec'el'eration)

//PARAMETRES MODIFIABLES**********************************

#define v_max 40 // C'est la vitesse maximale lue par le potentiom`etre de vitesse (d'elai en // microseconde entre deux pulses) 30 50 45 55 65 70 65 Valeur original 50. #define v_min 1200 // C'est la vitesse minimum lue par le potentiom`etre de vitesse (d'elai en // microseconde entre deux pulses) #define v_max_inv 200 // C'est la vitesse maximale `a laquelle le moteur ne d'ecroche pas 200 280 // Valeur pr'ec'edente=200 `a l'inversion de sens de rotation (200 pour Gecko // et 200 pour 1600pas/rev?). En dessous de cette vitesse, l'acc'el'eration // et la d'ec'el'eration ne sont pas requises. C'est pourquoi la course peut ^etre // plus petite car il n'y a pas besoin de distance de freinage. `A cette petite // course le va-et-vient est tellement rapide que ca vibre. On retrouve ici // le mode vibro. #define course_max 2968 // C'est la course maximale lue par le potentiom`etre de course 2150 2125 // 2100 2080 origine 2320 2500 Cette valeur d'epende de la longueur de la // machine.

#define marge 30 // C'est la marge ou d'ecalage de la r'ef'erence par rapport `a la position du // bras `a la mise sous tension de la machine en principe en but'ee du c^ot'e // vert ou c^ot'e rouge. Ceci assure que la partie mobile ne vienne cogn'er // sur l'un des c^ot'es. Valeur originale = 50. //****************************************************************************************************

int course_min = 296; // C'est la course minimum lue par le potentiom`etre de course. Qui corresond // `a la course minimum pour l'acc'el'eration et la d'ec'el'eration `a haute vitesse. // (vitesse `a laquelle la distance de freinage/acc'el'eration est requise). // Soit course_min > 2*(v_max_inv - v_max) = distance max de freinage ou // d'acc'el'eration.

m2

The firmware source code for the machine m2 is located in the **firmware** directory. A portion of the firmware code is shown below.

To upload the firmware, please follow the steps described in the Appendix.

// Comme le fait de lire la vitesse du potentiom\`etre prend relativement beaucoup de temps, 
// cela r\'eduit la vitesse de pulsation de la pin 9. Pour parer \`a ceci le programme a \'et\'e adapt\'e
// pour lire la vitesse tous les 300 it\'erations \`a basse vitesse.
// Lorsque la vitesse du potentiom\`etre d\'epasse v\_max\_inv qui est la vitesse maximale \`a laquelle
// le moteur ne d\'ecroche pas \`a l'inversion du sens de rotation, des boucles d'acc\'el\'erations et de
// d\'ec\'el\'eration sont requises pour ne pas faire d\'ecrocher le moteur lors des inversions de sens de
// rotations. (avec ceci, il est possible de diminuer le d\'elai entre pulse \`a haute vitesse ce
// qui augmente la vitesse) Comme la vitesse est rapide la vitesse est alors lue apr\`es un cycle
// complet de va-et-vient. Pour simplifier, la course n'est lue qu'apr\`es un cycle complet de va-et-vient.
// Un autre point important est de lire la vitesse souvent \`a basse vitesse : 
// par exemple si la vitesse est au mini et la course est grande, alors cela prendra une \'eternit\'e
// pour que le va-et-vient se termine jusqu'\`a la prochaine lecture de vitesse.
// L'acc\'el\'eration et la d\'ec\'el\'eration est lin\'eaire (apr\`es un cycle de pulse, le d\'elai est soustrait pour
// l'acc\'el\'eration ou additionn\'e de 1 pour la d\'ecc\'el\'eration).

#define step_pin 9 // Pin 9 connected to Steps pin on ST-M5045 ou ... c'est la pin du pulse // (un pulse c'est un pas en mode full // ou en mode 1600pas/rev : 8 pulses pour un pas avec un motor de 1.8deg // ou 200pas/rev) #define dir_pin 8 // Pin 8 connected to Direction pin #define home_switch 12 // Pin 12 connected to Home Switch (MicroSwitch) #define ref 0 // c'est le 0 ici l'inversion est faite en mode basse vitesse // (sans acc'el'eration ni d'ec'el'eration)

//PARAMETRES MODIFIABLES**********************************

#define v_max 40 // C'est la vitesse maximale lue par le potentiom`etre de vitesse (d'elai en // microseconde entre deux pulses) 30 50 45 55 65 70 65 Valeur original 50. #define v_min 1200 // C'est la vitesse minimum lue par le potentiom`etre de vitesse (d'elai en // microseconde entre deux pulses) #define v_max_inv 200 // C'est la vitesse maximale `a laquelle le moteur ne d'ecroche pas 200 280 // Valeur pr'ec'edente=200 `a l'inversion de sens de rotation (200 pour Gecko // et 200 pour 1600pas/rev?). En dessous de cette vitesse, l'acc'el'eration // et la d'ec'el'eration ne sont pas requises. C'est pourquoi la course peut ^etre // plus petite car il n'y a pas besoin de distance de freinage. `A cette petite // course le va-et-vient est tellement rapide que ca vibre. On retrouve ici // le mode vibro. #define course_max 2968 // C'est la course maximale lue par le potentiom`etre de course 2150 2125 // 2100 2080 origine 2320 2500 Cette valeur d'epende de la longueur de la // machine.

#define marge 30 // C'est la marge ou d'ecalage de la r'ef'erence par rapport `a la position du // bras `a la mise sous tension de la machine en principe en but'ee du c^ot'e // vert ou c^ot'e rouge. Ceci assure que la partie mobile ne vienne cogn'er // sur l'un des c^ot'es. Valeur originale = 50. //****************************************************************************************************

int course_min = 296; // C'est la course minimum lue par le potentiom`etre de course. Qui corresond // `a la course minimum pour l'acc'el'eration et la d'ec'el'eration `a haute vitesse. // (vitesse `a laquelle la distance de freinage/acc'el'eration est requise). // Soit course_min > 2*(v_max_inv - v_max) = distance max de freinage ou // d'acc'el'eration.

power unit e

Figure

This chapter explains how to build the power unit e.

Figure

Parts list

QtyPartDescriptionMaterial
1housing3D printedPLA
1driverTB6600-
1microcontrollerESP32 30 pins-
1voltage regulatorLM2596-
1socket2.1/5.5-
1nutM8-
6screwM2 x 5brass
2driver screw2.9 x 13stainless steel
1motor cable clamp2.5nylon (cable tie)
1remote cable clamp2.5nylon (cable tie)
1power supply110-220V/24V 6A-
1power supply cableplug depends on country 110 V or 220 V-

Drawing

.

Figure

Required Tools and Components

  • 1x 3D printer ;
  • 1x PLA ;
  • 1x STL file housing ;
  • 1x STL file drillator ;
  • 1x file ;
  • 1x 3.5 mm drill bit ;
  • 1x chamfer mill ;
  • 1x screw driver ;
  • 1x drill press ;
  • 1x driller ;
  • 1x clamp.

Manufacturing Instructions

  1. 3D print the housing.
  2. 3D print the drillator.
  3. Clamp the drillator on the driver (see section drawing).
  4. On a drill press, drill a 3.5 mm hole.
  5. File or chamfer the hole.
  6. Wire all connection (see section Wiring).
  7. Tighten the motor cable clamp and the remote cable clamp.
  8. Assemble the voltage regulator, the microcontroller, the socket and close the housing with the driver.

Wiring

Wiring diagram

Figure

Parts list

QtyPartDescriptionMaterial
1motor cable4 poles 0.5mm2 length : 1 m ( If the motor is not supplied with its own cable, refer to the Appendix, for instructions on how to attach it.}
1wire0.5mm2 length : 1 mcooper
1wire0.75mm2 length : 0.50 mcooper
1RJ-45 cable8 cores length : 2.5 m3 mm diameter

Required Tools and Components

  • 1x wire cutter ;
  • 1x wire stripper ;
  • 1x terminal crimping tool ;
  • 1x multimeter (voltmeter) ;
  • 1x soldering iron ;
  • 1x solder ;
  • 1x gauge ;
  • 1x screwdriver 0 ;
  • 1x water pump pliers ;
  • 1x electrical tape.

Wiring Instructions

The lengths and cross-sectional areas of the wires are listed in table , page .

Wire the components before installing them into the housing.

  1. Adjust the DIP switches on the driver to set the desired micro-step resolution and output current, referring to the driver's tables for the correct settings:
  • Micro-step resolution: 1600 → S1 = OFF, S2 = ON, S3 = OFF
  • Current: 3.5A (peak 4A) → S4 = OFF, S5 = OFF, S6 = OFF
  1. Solder four wires to the socket (see Terminals Connection and Wire Details in Table , page , and Wiring Diagram, page).
  2. Secure the socket to the housing.
  3. Connect the socket to the voltage regulator (IN- and IN+).
  4. Use a multimeter to adjust the output of the voltage regulator to 5V.
  5. Solder the four wires to the corresponding pins on the voltage regulator :
  • Connect a wire from the socket to IN+ (input positive).
  • Connect a wire from the socket to IN- (input negative).
  • Connect a wire to OUT+ (output positive).
  • Connect a wire to OUT- (output negative).
  1. If the motor does not already have a cable installed, solder four wires to the motor. See Appendix: Attach the motor cable , page , for instructions on how to attach it. (It is much easier if you can get a motor with the cable already wired.)
  2. Complete all wiring connections (see Terminals Connection and Wire Details in Table , page , and Wiring Diagram, page).
  3. Wire the remote-controller-d (cut the RJ-45 plug and use only the cable) (if not yet done).
  4. Secure all components inside the housing.
  5. Upload the firmware (see Section Firmware).

Terminals Connections and Wires details

QtyPartDescriptionMaterial
+_socket - IN+_voltage regulator...0.25
+_socket - VCC_driver...0.75
-_socket - IN-_voltage regulator...0.25
-_socket - GND_driver...0.25
OUT+_voltage regulator - VIN_microcontroller...0.25
OUT-_voltage regulator - ENA-_driver...0.25
ENA-_driver - GND_microcontroller...0.25
ENA-_driver - PUL-_driver...0.25
PUL+_driver - D33_microcontroller...0.25
DIR+_driver - D25_microcontroller...0.25
A+_driver - black_motor...0.75
A-_driver - green_motor...0.75
B+_driver - red_motor...0.75
B-_driver - blue_motor...0.75
D13_microcontroller - CLK_encoder stroke2500.15
D14_microcontroller - SW_encoder stroke2500.15
D27_microcontroller - CLK_encoder speed2500.15
D26_microcontroller - DT_encoder speed2500.15
D32_microcontroller - SW_encoder speed2500.15
D35_microcontroller - DT_encoder stroke2500.15
3V3_microcontroller - +_encoder stroke and speed2500.15
GND_microcontroller - GND_encoder stroke and speed2500.15

Firmware

After all components have been installed and wired inside the housing, it is time to upload the firmware to the microcontroller.

m1

The firmware source for the machine m1 code is located in the **firmware** directory. A portion of the firmware code is shown below.

To upload the firmware, please follow the steps described in the Appendix.

//speed rotary encoder
#define ROTARY_ENCODER_A_PIN 27 //CLK
#define ROTARY_ENCODER_B_PIN 26 //DT
#define ROTARY_ENCODER_BUTTON_PIN 32 //SW
#define ROTARY_ENCODER_STEPS 4
#define ROTARY_ENCODER_ACCELERATION 2000 //30000 3000
AiEsp32RotaryEncoder rotaryEncoder = AiEsp32RotaryEncoder(ROTARY_ENCODER_A_PIN, ROTARY_ENCODER_B_PIN, ROTARY_ENCODER_BUTTON_PIN, -1, ROTARY_ENCODER_STEPS);

// stroke rotary encoder #define ROTARY_ENCODER2_A_PIN 13 //CLK #define ROTARY_ENCODER2_B_PIN 35 //DT #define ROTARY_ENCODER2_BUTTON_PIN 14 //SW #define ROTARY_ENCODER2_STEPS 4 #define ROTARY_ENCODER2_ACCELERATION 7000 AiEsp32RotaryEncoder rotaryEncoder2 = AiEsp32RotaryEncoder(ROTARY_ENCODER2_A_PIN, ROTARY_ENCODER2_B_PIN, ROTARY_ENCODER2_BUTTON_PIN, -1, ROTARY_ENCODER2_STEPS);

void IRAM_ATTR readEncoderISR() { rotaryEncoder.readEncoder_ISR(); rotaryEncoder2.readEncoder_ISR(); }

// IO pin assignments const int MOTOR_STEP_PIN = 33; const int MOTOR_DIRECTION_PIN = 25;

m2

The firmware source code for the machine m2 is located in the **firmware** directory. A portion of the firmware code is shown below.

To upload the firmware, please follow the steps described in the Appendix.

//speed rotary encoder
#define ROTARY_ENCODER_A_PIN 27 //CLK
#define ROTARY_ENCODER_B_PIN 26 //DT
#define ROTARY_ENCODER_BUTTON_PIN 32 //SW
#define ROTARY_ENCODER_STEPS 4
#define ROTARY_ENCODER_ACCELERATION 2000 //30000 3000
AiEsp32RotaryEncoder rotaryEncoder = AiEsp32RotaryEncoder(ROTARY_ENCODER_A_PIN, ROTARY_ENCODER_B_PIN, ROTARY_ENCODER_BUTTON_PIN, -1, ROTARY_ENCODER_STEPS);

// stroke rotary encoder #define ROTARY_ENCODER2_A_PIN 13 //CLK #define ROTARY_ENCODER2_B_PIN 35 //DT #define ROTARY_ENCODER2_BUTTON_PIN 14 //SW #define ROTARY_ENCODER2_STEPS 4 #define ROTARY_ENCODER2_ACCELERATION 7000 AiEsp32RotaryEncoder rotaryEncoder2 = AiEsp32RotaryEncoder(ROTARY_ENCODER2_A_PIN, ROTARY_ENCODER2_B_PIN, ROTARY_ENCODER2_BUTTON_PIN, -1, ROTARY_ENCODER2_STEPS);

void IRAM_ATTR readEncoderISR() { rotaryEncoder.readEncoder_ISR(); rotaryEncoder2.readEncoder_ISR(); }

// IO pin assignments const int MOTOR_STEP_PIN = 33; const int MOTOR_DIRECTION_PIN = 25;

remote control d

This is the digital remote control named remote control d (the letter d stands for digital). It can be used either with the power unit p or the power unit e.

Note that the power unit p uses a cable with an RJ-45 plug, while the power unit e does not, as its plug has been removed (cut off).

Figure

Parts list

QtyPartDescriptionMaterial
1housing3D printedPLA
1cover3D printedPLA
2encoderwith switch
2knob14 x 16.5 mmaluminium
1cable3 x 2500 mm LAN RJ45-
1cable clamp2.5 mmnylon
10screw2 x 10 mmbrass
1stroke inscriptionmolded into cavitypigmented white epoxy
1speed inscriptionmolded into cavitypigmented white epoxy
1min inscriptionmolded into cavitypigmented green epoxy
1max inscriptionmolded into cavitypigmented red epoxy

Drawing

Figure

Required Tools and Components

  • 1x 3D printer ;
  • 1x PLA ;
  • 1x STL file housing ;
  • 1x file ;
  • 1x chamfer mill ;
  • 1x screw driver ;
  • ..g resine ;
  • ..g hardener ;
  • ..g pigmented white epoxy ;
  • ..g pigmented green epoxy ;
  • ..g pigmented red epoxy ;
  • water sandpaper 80 ;
  • water sandpaper 150 ;
  • water sandpaper 220 ;
  • water sandpaper 400.

Manufacturing Instructions

  1. 3D print the housing.
  2. 3D print the cover.
  3. Prepare :
  • pigmented white epoxy;
  • pigmented green epoxy;
  • pigmented red epoxy.
  1. Fill the cavities with the corresponding epoxy colors for the inscriptions.
  2. Allow to cure for 24 hours.
  3. Wet-sand the top of the cover up to 400-grit sandpaper.
  4. Install both potentiometers.
  5. Wire all connections (see Section , page ).
  6. Tighten the remote cable clamp.
  7. Close the housing using the cover.

remote control a

This is the digital remote control (the letter a stands for analogic). It is used with the power unit a (It can be use also with power unit e or p) but not showed in this documentation.

Note that the power unit a uses a remote cable without an RJ-45 plug, so just cut it off.

Figure

Parts list

QtyPartDescriptionMaterial
1housing3D printedPLA
1cover3D printedPLA
2encoderwith switch
2knob14 x 16.5 mmaluminium
1cable3 x 2500 mm LAN RJ45 (without plug)-
1cable clamp2.5 mmnylon
4screw2 x 10 mmbrass
1stroke inscriptionmolded into cavitypigmented white epoxy
1speed inscriptionmolded into cavitypigmented white epoxy
1min inscriptionmolded into cavitypigmented green epoxy
1max inscriptionmolded into cavitypigmented red epoxy

Drawing

Figure

Required Tools and Components

  • 1x 3D printer ;
  • 1x PLA ;
  • 1x STL file housing ;
  • 1x file ;
  • 1x chamfer mill ;
  • 1x screw driver ;
  • ..g resine ;
  • ..g hardener ;
  • ..g pigmented white epoxy ;
  • ..g pigmented green epoxy ;
  • ..g pigmented red epoxy ;
  • Wet sandpaper, grit 80;
  • Wet sandpaper, grit 150;
  • Wet sandpaper, grit 220;
  • Wet sandpaper, grit 400.

Manufacturing Instructions

  1. 3D print the housing.
  2. 3D print the cover.
  3. Prepare :
  • pigmented white epoxy;
  • pigmented green epoxy;
  • pigmented red epoxy.
  1. Fill the cavities with the corresponding epoxy colors for the inscriptions.
  2. Allow to cure for 24 hours.
  3. Wet-sand the top of the cover up to 400-grit sandpaper.
  4. Install both potentiometers.
  5. Wire all connections (see Section , page ).
  6. Tighten the remote cable clamp.
  7. Close the housing using the cover.

Shaped Tools

In this chapter, I introduce the tools required to build all the machines described in this building plan. I present the perpendiculator—a tool used to make the ends or faces of a tube, or any part, perfectly perpendicular.

perpendiculator

Figure

In this section I introduce how to build the perpendiculator. This tool has two assemblies the plane and the slider. They have both a paragraph in which all details are explained. In the paragraph Assemblies the whole tool are assembled with the sub-assemblies plane and slider. And in the paragraph Normalized parts are showed all the normalized parts which are used for the plane and the slider (for example wooden glue, nails).

Roadmap

In this section we can find the roadmap to build the perpendiculator. It's not necessary to follow straight all these points after another, but I think it's the most logical to do it like this :

  1. prepare all stuff in the Parts-list with the tools showed in the Tools-list ;
  2. assemble the slider ;
  3. assemble the base.

Parts list

In this section we can find the whole list of parts that the perpendiculator needs, like :

  • 1x base size 133x400x19 in MDF ;
  • 1x rectangular-wooden-list size 15x20x1000 in beech for :
    • 2x guide.
  • 1x sandpaper ;
  • 1x face-1 size 100x250x16 in MDF ;
  • 1x face-2 size 116x250x16 in MDF ;
  • 1x nails (box) size 1.4x30 ;
  • 1x wooden glue ;
  • 1x amidon glue.

Tools list

In this section we can find the list of tools that we need to build the perpendiculator, like :

  • 1x hammer ;
  • 1x drill press ;
  • 1x 1.4mm diameter drill ;
  • 2x clamps ;
  • 1x ruler ;
  • sandpager.

Shaped parts

In this paragraph we can find all the shaped parts of the perpendiculator, like :

  • base ;
  • guide ;
  • sandpaper ;
  • face-1 ;
  • face-2.
base

Here is shown the information for the shaped part base.

  1. order in a carpentry.

That's all for this part.

Figure
  • quantity: 1 ;
  • material: MDF ;
  • provider: carpentry ;
  • price: ?.
guide

This section shows how to build the guide of the perpendiculator tool.

  1. order the rectangular-wooden-list see section , ;
  2. ask at the carpentry to cut it at the good length (see the length on the figure , page ) ;
  3. drill the holes with diameter 1.4mm (for the positions).
Figure
  • quantity: 2 ;
  • material: beech ;
  • provider: ironmongery ;
  • price: ? .
sandpaper
Figure
  • quantity: 1 ;
  • material: emery granularity : 80 ;
  • provider: ironmongery ;
  • price: ?.
face-1
  1. order the part in a joinery for dimensions.
Figure

This is how the face-1 looks at the end.

Figure
  • quantity: 1 ;
  • material: MDF ;
  • provider: joinery ;
  • price: ?.
face-2
  1. order the part in a joinery for dimensions ;
Figure
  1. drill the holes for dimension of the hole and positions .
Figure
  • quantity: 1 ;
  • material: MDF ;
  • provider: ironmongery ;
  • price: ?.

Normalized parts

In this paragraph the normalized parts of the perpendiculator are showed. Like :

  • sandpaper ;
  • nails.
rectangular-wooden-list

Here are some information of the rectangular-wooden-list which are used to build the perpendiculator.

Figure
  • quantity: 1 ;
  • material: beech ;
  • provider: ironmongery ;
  • price: 5.20frs.
sandpaper

Here are some information of the sandpaper which are used for the perpendiculator.

  • Size: ? ;
  • Provider: any ironmongery ;
  • Price: ?
nails

Here are some information of the nails which are used to build the perpendiculator.

Figure
  • quantity: 1 box ;
  • material: steel ;
  • provider: ironmongery ;
  • price: ?.
amidon-glue
  • quantity: a bit ;
  • provider: any ironmongery ;
  • price: ?

Assemblies

Figure

After built all the Shaped-parts and get all Normalized-parts, it's time now to assemble the sub-assemblies :

  • plane ;
  • slider.
Roadmap
  1. assemble the plane ;
  2. assemble the slider ;
  3. assemble the perpendiculator with plane and slider.
plane
Figure

In this section we explain how to assemble the plane which is a sub-assemblie of the perpendiculator.

  1. with amidon glue glue the sandpaper at the right position () ;
Figure
  1. align the guide to the edge of the base ;
  2. once well aligned, clamp with two clamps ;
  3. put the nails in the holes of the guide ;
  4. hammer the nails maybe 2 or 3mm inside the base ;
  5. make a mark to know the direction of guide on the base ;
  6. remove the clamps and the guide from the base ;
  7. put some wooden glue on the guide ;
  8. then align the guide with the holes made with the nails in the base ;
  9. hammer the nails deep into the base to tight the guide ;
  10. repeat these steps for the second guide ;
slider
Figure

In this section we explain how to assemble the slider which is a sub-assemblie of the perpendiculator.

  1. put the nails in the holes of face-2 ;
  2. align the face-2 on the face-1 ;
  3. press both parts with a clamp ;
  4. hammer the nails 3 to 4mm into the face-1 ;
  5. remove the clamps and unjoin face-1 and face-2 ;
  6. put some wooden-glue on the face-2 ;
  7. join both part again taking care that that the nails go into the hole of 3 to 4mm depth done at the previous point ;
  8. hammer the whole length of the nails so that both parts are pressed for glueing.

How to upload firmware

  1. Install the Arduino IDE from https://www.arduino.cc/en/software.

  2. In the Arduino IDE, go to File → Preferences, and in the ``Additional Board Manager URLs'', add:

    https://raw.githubusercontent.com/espressif/arduino-esp32/\\ gh-pages/package\_esp32\_index.json

  3. Go to Tools → Board →> Boards Manager, search for esp32, and install the board package by Espressif Systems.

  4. Connect your ESP32 board via USB and select the correct board from Tools → Board, e.g., ESP32 Dev Module.

  5. Select the correct COM port under Tools → Port.

  6. Open the firmware source code from the code directory.

  7. Click the Upload button. If it fails to connect, press and hold the BOOT button on the ESP32 during the upload process.

Attach the motor cable

Figure

This appendix explains how to attach a motor cable to a motor that does not come with one pre-installed.
While I do not recommend purchasing a motor without a pre-installed cable—since the final result often appears less professional. This method can be useful if a longer cable is required than what is typically provided.

A detailed walkthrough of the steps below is available in the following video :\

  1. Make an aluminium tube with the following dimensions: 10/8 × 60 mm ().
Figure
  1. Unpack and test the motor. Connect the 4 wires to the power unit and make the motor rotate.
    This step is essential before proceeding with the remaining instructions.

Remark: There are two types of motors: 3 A and 4.2 A.
Each type uses different wire color codes. Depending on your motor's current rating, cut the wires as follows: (See also Figure ,
page )

  • Motor 3 A:
    • Red wire: 47 mm
    • Yellow wire: 57 mm
    • Blue wire: 67 mm
    • Green wire: 77 mm
  • Motor 4.2 A:
    • Red wire: 47 mm
    • Green wire: 57 mm
    • Black wire: 67 mm
    • Blue wire: 77 mm
Figure
  1. Strip, twist, and tin-plate the motor wires over a length of 5 mm.
  2. Cut a piece of heat shrink tube to 37 mm and tighten it using an industrial hot air gun.
    Ensure the red wire protrudes by approximately 5 mm.
  3. Cut the 4-core silicone cable to a length of 2.2 m.
  4. Strip the outer sheath of the 4-core silicone cable to a length of 45 mm.
  5. Cut the inner wires of the 4-core silicone cable to the following lengths:
  • Red: 40 mm
  • Yellow: 30 mm
  • Black: 20 mm
  • Green: 10 mm
  1. Strip, twist, and tin-plate each of the inner wires to a length of 5 mm.
  2. Cut four pieces of heat shrink tube, each 13 mm long.
  3. Slide the 13 mm heat shrink tubes and the cable holder tube onto the silicone cable.
    Pay attention to the orientation of the chamfer (1 × 45°). Then solder the connections.
  4. Degrease the cable holder tube, the silicone cable, and the motor using acetone.

**Warning for :
If the motor is not yet fixed to the machine, remember to insert the screw into the motor’s threaded hole (see picture below). 12. Inject silicone glue into the 4 mm diameter hole until it exits from both sides of the cable holder tube.
Use any excess to seal around the motor groove where the M5 × 40 hex-head Allen screw is located.
Rotate the cable holder so the injection hole is hidden against the motor.
Install a cable tie around the silicone cable, and attach the cable holder using the clamp ().
If needed, inject more glue at the chamfered end of the tube and apply silicone on the motor to cover any wires that extend slightly beyond the heat shrink tubing.

Figure
  1. Allow the assembly to harden. Clean up and remove any glue residue or excess from the tube.