$10 Quick Shifter! Kazeshifter Arduino Adjustable Quick Shifter




About: I love making something about electronics, making something awesome and cool that I've never make before!

Hi Superbike or motorcycle lovers!

On this instructable, I'll share how to make your own Quick Shifter for cheap!

For people who lazy to read this instructable, just watch my video!

Note : For some bikes that already using Fuel Injection System, sometimes Check Engine indicator light up. just turn off the ignition key and turn it on again. but it's so infrequently so it will be okay

Enough intro just go to the steps!

Last updated : September 30 at 9:25PM UTC+7:00 or GMT+7:00

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: 1. What You Will Need? How About the Schematic?


So here is the parts that you will need :

  • Schematic
  • Arduino Nano, or anything smaller
  • ON OFF Switch (for bypass switch)
  • 16x2 I2C LCD Display
  • 2N2222 Transistor or any NPN Transistor
  • 12V Relay rated 10A at 24VDC or more
  • PCB (small is enough)
  • Small Multipurpose Box
  • 2 Small Switch Push Buttons
  • 1N4007 Diode or any kind of
  • Rear Brake Switch with the spring,
  • Steel Bar for making the spring holder
  • Pin Headers

for the brake switch, I'm using switch for Honda Grand because it's cheap

and don't use MOSFET instead of Relay. If you want to use Solid State one, use IGBT instead.

Step 2: 2. Code? Here Is..

I've made some revisions on this code, just check up my Github Gists page!

If you don't wanna use any display, You can use this Code.
If you want to use LCD Display, please use this Code.

Sorry for giving the code on other website :(
Asking for the libraries? Links are inside the code.

if you got an error when setting the timing, just make a EEPROM write code with value 70 on block 256 and 257

Step 3: 3. Solder All Components Into the Board!

for the LCD and push button, I make it separately.

LCD and buttons used for remote control for setting the timing of the module so you can use the LCD for other projects!

you just need to set the timing once.

on this pict, you might notice it that I'm using MOSFET. but please don't use MOSFET

Step 4: 4. Sensor/Switch Mounting

(Update) First things! You need to lubricate the brake switch, so it won't stuck if it's get wet and dry many times and keeps it smooth. Any lubricating liquid will work fine.

For the spring holder, I used the steel bar and you can place the spring holder anywhere do you want, or just mount it on the bolt that near on the footrest.

but I'll mount it and use the spring holder under the footrest

and route the spring behind the pedal rod linkage. (am I right?)

anyway, for the placement of the switch, i mount it on the shift linkage rod and I fix it with Zip Ties after I set the sensitivity

ah, you need an LED (12v or whatsoever) to know where the sensitivity is, just connect the LED to the switch and begin setting the sensitivity.

you might need to reset the sensitivity when you test it on the road. don't too sensitive or it might ruin your day (but for what I made the bypass switch?)

when routing the cable, give it a small excess of the cable or whatever it called. don't tighten the cable or you won't be able to downshift

Step 5: 5. Connect Everything!

First thing is place the module under the seat and remove bolts from the tank, route the cables from the relay on the module under the tank, make sure isn't pinched by the tank and keep away from it. then find the ignition coil.

after you found the coil, unplug 1 cable from the coil, then connect 1 cable from the relay on the module to the coil. and connect other cable from coil that has been unplugged from the coil to the other cable from the relay on the module

Route positive (VCC) and clutch cables from the module under bike frame, make sure isn't pinched by seat.

For the positive input (VCC) I connect it to the blinker relay, because it goes directly to the ignition key and every motorcycle is different wiring so you should search the nearly power source from the ignition key

and clutch cable (from the module) I connect it to the Clutch Relay

Negative cable? just connect it directly to the battery or the bolt on the bike frame (Ground)

don't forget to connect the switch relay! or it might not work

Step 6: Test It!

User Manual :

  • Press UP and DOWN buttons to unlock the settings
  • Press UP to increase the value
  • Press DOWN to decrease the value
  • Press UP and DOWN buttons again for Next / Lock & Save the settings

Microcontroller Contest

Participated in the
Microcontroller Contest

Be the First to Share


    • Made with Math Contest

      Made with Math Contest
    • Multi-Discipline Contest

      Multi-Discipline Contest
    • Robotics Contest

      Robotics Contest

    37 Discussions


    2 months ago

    Have you found a solution why you MOSFET died? I kinda guess is has to do with the voltage levels of the pick up. The pickup isnt referenced to the ground, so im not sure what the V_GS would be.
    What im still wondering, Did you put a 7805 etc. between the Clutch and shifting sensors and the Arduino Inputs? both are 12V output i guess?.

    1 reply

    Reply 2 months ago

    You might need to add some diodes from power supply, but I think that's already grounded. and D7 or clutch switch pin is protected with diode, so 12v positive will not flowing through.
    And for the Mosfet, I'm not touching this project since last update, because relay still worth it for long term use. (And yes, mine still working fine) also, working for another projects.


    10 months ago

    hi..why when i complete the circuit, the relay keep switch on it self..??

    9 replies

    Reply 10 months ago

    Do you mean that don't use that low level relay? What if i just use normal relay?


    Reply 10 months ago

    If you want to use low level relay module, you need to change digitalWrite command from LOW to HIGH, and HIGH to LOW on the bottom. If you're using relay with transistor (not a module) it will run correctly.


    Reply 10 months ago

    iam using arduino pro mini.. the code is still the same as your code.. i have test with normal relay SRA-05VDC-CL relay also tried with relay module and the result still the same... the relay will trigger when i put jumper wire into the digital pin 2... please help


    Reply 10 months ago

    Did you follow the schematic? Make sure you connect everything correctly and the relay shouldn't turned on if pin 2 not connected to the ground pin. I'll give you pict that shows you what should you change on the code if using relay module. This is the code for no display out.


    Reply 10 months ago

    yes i had follow the schematic..just change from nano to pro mini.. i also change the code as your picture but the result is still same.. i use code for no display out. when i slot the jumper wire to the pin 2, the relay will trigger by it self..when i pull out the jumper wire from the pin 2 it will stop trigger..


    Reply 5 months ago

    Where did you add the resistor? I have similar problem


    Reply 3 months ago

    output from Arduino to relay (I forgot maybe pin 5) add resistor to it and to ground


    Question 6 months ago on Step 2

    sketch_apr07a:20: error: 'LiquidCrystal_I2C' does not name a type
    sketch_apr07a.ino: In function 'void setup()':
    sketch_apr07a:96: error: 'lcd' was not declared in this scope
    sketch_apr07a.ino: In function 'void loop()':
    sketch_apr07a:247: error: 'lcd' was not declared in this scope
    sketch_apr07a:256: error: 'lcd' was not declared in this scope
    sketch_apr07a:285: error: 'lcd' was not declared in this scope
    sketch_apr07a:330: error: 'lcd' was not declared in this scope
    sketch_apr07a:345: error: 'lcd' was not declared in this scope
    sketch_apr07a:362: error: 'lcd' was not declared in this scope
    sketch_apr07a:377: error: 'lcd' was not declared in this scope
    sketch_apr07a:398: error: 'lcd' was not declared in this scope
    sketch_apr07a:412: error: 'lcd' was not declared in this scope
    sketch_apr07a.ino: In function 'void cutoffengine()':
    sketch_apr07a:434: error: 'lcd' was not declared in this scope
    what am i doing wrong carnt get the code to work


    6 months ago

    I made it but i have one question....clutch cable i will connect it to negative side of clutch switch or positive?


    Reply 1 year ago

    hi..may i know..do you still need to use the Voltage Regulator LM7805 from 12v battery to power up the arduino board? in the previous version of the schametic i can see it.. but not in this new version..please advice


    Reply 1 year ago

    Does it works? Hopefully it have long life sir!


    Question 10 months ago

    Hi, how are you? very good project
    I have a doubt. When in the carburetor scheme, does it say "sensor" of which sensor does it speak?
    (by pass switch I think it is the change sensor) right? thank you!

    1 answer

    Answer 10 months ago

    I can not understand the button D2 in the circuit that works meets :(