Introduction: A Helping Hand Motorcycle Chain Cleaner.

This instructable was created in fulfillment of the project requirement of the Makecourse at the University of South Florida (

This instructable will provide a background in the motorcycle cleaning process, a list of required materials, a review of Arduino micro-controlers, the needed Arduino code, the control logic, and a step by step wiring and assembly instructions.

Step 1: The Motorcycle Cleaning Process.

When cleaning a motorcycle chain you need three things, a cleaning or lubricating spray, a brush to remove debris, and a way of moving the chain to the next section of chain after you have cleaned your current part of the chain. The goal of this project was to help and assist in the chain cleaning process so that a single person can effectively clean a chain in a timely manor. To do this my motorcycle chain cleaner has two main functions, one is to serve as the driving force behind moving the chain during the cleaning process and the other is to assist in brushing and removing debris from the chain.

Step 2: List of Required Materials

For this motorcycle chain cleaner you will need to gather some ready made materials listed below (photos are listed in order with the only exception of the jumper wires):

1. Project Box (Any to Fit All Components)

2. Drive Sprocket (Any to Match Chain Being Cleaned)

3. High Torque Gear Motor (Tsiny TS-40GZ495-218 35 RPM 12 Volt or Similar)

4. (x8) Soft Bristle Brush Mounted Wheel (Grobet 1 inch Diameter 3/32 inch Arbor Hole)

5. (x2) One Inch Sections of 3/32 inch Solid Brass Rod

6.12-24 Volt Input to 5 Volt Output Regulator (Tobsun EA25-5V)

7. Adruino Nano (Any)

8. Touch Sensor (or Any Other Input Sensor)

9. (x2) Continuous Micro Servos (Fitec FS90R or Similar)

10. 10 Amp Relay With 5 Volt Trigger (Tongling JQC-3FF-S-Z or Similar)

11. Various Jumper Wires (no picture)

Also you will need to have four parts 3D printed are listed below: (.STL files will be uploaded to this step)

1. 3D Case Insert (Mine is made from three colors of the same PLA plastic, one color is fine) (Two Shells, 20% Infill)

2. 3D 8mm Motor 20 Spline Hub (Four Shells, 30% Infill)

2. (x2) 3D Brush Hubs (Two Shells, 10% Infill)

Step 3: Arduino Nano Micro-controller

For this project an Arduino Nano micro-controller was used (1st photo). This micro-controller was configured to use one input in the form of a touch sensor (2nd photo) to start the cleaning process. This micro-controller was configured to have three outputs, two continuous micro-servos (3rd photo) and a single relay (4th photo). The relay is used to send 12 volt power to the gear motor (5th photo). The entire assembly is powered with a 12-24 volt input to 5 volt output DC-DC voltage regulator (6th photo). Step by step instructions for the entire assembly (7th photo) shown later in the instructable.

Step 4: Arduino Code

Attached to this step is the Arduino code I used. This code will need to be uploaded to the Arduino Nano before the first time it is assembled. Once the code has been uploaded by the Arduino Nano, the Nano will remember the code and it is no longer needed (although I would keep a copy on your computer). I have comments throughout the code to explain what is happening line by line. Take note of the wiring pin-out I include at the beginning of the code. Arduino is opensource so feel free to copy or modify my code in any way.

Step 5: Control Logic

My motorcycle chain cleaner is controlled by an Arduino Nano micro-controller. This micro-controller uses a touch sensor as its input that will trigger two continuous micro-servos and a relay. The micro-servos are attached to the cleaning brushes and the relay sends power to the gear motor that drives the sprocket and chain assembly.

Step 6: Assembly

Below are the steps for assembling my motorcycle chain cleaner.

1. Upload the Arduino Code to the Arduino Nano.

2. Attach four positive and four negative jumper wires to the 5 Volt side of the regulator (1st photo).

3. Wire the four sets of 5 Volt power wires to provide power for the Arduino Nano (wired on top of the board), two Micro-Servos, and relay (2nd photo). If you use the power wires on the top of the board to provide input power, the touch sensor can be wired all from one side of the board. Additionally, attach a set of 12 Volt input wires to the 12 Volt side of the regulator and wire to the 12 Volt gear motor using the common and normally open connections inline for the positive motor lead (effectively acting as an open circuit until the relay is triggered closing the circuit).

4. Place the 3D printed case insert into the black box and place the gear motor and micro-servos in their slots (3rd photo). The 3D printed case insert should be pushed so that the gear motor shaft is closest to the upper edge. Connect 12 Volt power temporally and touch the input touch sensor to verify witch micro-servo goes where (if they are spinning backwards with the chain motion either flip the micro-servo data pins or swap the micro-servo themselves).

5. Once the micro-servos have been verified to be in the correct orientation (spinning agents the direction of the moving chain), place the touch sensor agents the back wall of the black box and make note of the approximate location on the outside (so you know where to press, I recommend a sticker). Conceal any additional wires in the lower area of the black box (4th photo).

6. Assemble the two brushes as shown in photo 5, I used hot glue to keep the brushes from sliding on the brass rod. Use more brushes for a wider chains (i.e. 525, 530 ext.)

7. Attach the two brushes and sprocket (6th photo).

8. Drill any holes needed in the lid and attach the lid to the motorcycle cleaner (7th photo).

9. Provide 12 Volt power to the motorcycle chain cleaner and press the marked area (or sticker) on the back of the unit to start cleaning chains.