DIY Shifter Build - StephenDone/kickr_shifters GitHub Wiki
Introduction
This page details how to build your own shifter module.
The KICKR bike has three shifter ports, two of which are used by the standard shifters. It turns out that you can plug a third shifter into the remaining port. This can be another left or right shifter.
All you need is an Adafruit TCA4818 Module , some 10k resistors and your choice of SPST normally open, non-latching switches - like a door bell switch!
Wacky Idea Note:
You cannot plug more than one shifter into a single port by using any kind of simple cable splitter etc - don't try this. Whilst the shifters use an I2C bus to communicate, and I2C supports multiple slave devices (i.e. shifters), due to the chip used all shifters have the same I2C address. This is because the key scan chip uses a fixed address that cannot be changed. If you don't get out much (quite possible, since it's literally why you bought a KICKR bike!), you could make this work by emulating the keyboard scan chip in software with with say a PI Pico as I2C slave, then connect two shifters to the PI Pico on separate I2C connections with the PI as master. You would then parallel the shifters 'virtually' in software. Or maybe I am just coming up with excuses to not do that long zone 2 ride :hot_face:
Specification
There need to be 10k pull-up resistors on pins C8, C9 and R2 to R7. The shifter switches are connected between each of R2-R7 and ground. Pins C0 to C7 and R0 & R1 are not used.
Pin C9 Function
| C9 State | Function |
|---|---|
| High | Right Shifter |
| Low | Left Shifter |
Pin C8 Function
I would love to know! This needs to be pulled high for proper operation.
My guess is that this is reserved as a secondary 'ID' pin for a future shifter product - tri-bar shifters for that third shifter port perhaps?
Switch Configuration
| Pin | Left Shifter | Right Shifter |
|---|---|---|
| R2 | Brake | Brake |
| R3 | Hood Top Forward | Hood Top Back |
| R4 | Hood Top Back | Hood Top Forward |
| R5 | Gear Inner | Gear Inner |
| R6 | Gear Outer | Gear Outer |
| R7 | Hood Inner | Hood Inner |
Note that the connection to the hood top buttons is reversed between left and right shifters. I think this is because the same switch PCB is used on both shifters, but due to the mirror image of the shifter layout, the PCB is upside down on the right shifter - probably reduces the number of parts on the BOM.
Prototype
Below is an image of this module on a breadboard.
In this image, C9 is grounded, so this board behaves as a left shifter.
R5 is also grounded, so this is equivalent to the smaller, inner gear shift paddle being pressed.
Soldered Version 1
Below is an image of this module on a pcb. The pull-up resistors are underneath the chip socket and dip switches have been added to configure C8 and C9.
Soldered Version 2
Whilst version 1 is quite small, ideally I would like to fit the PCB inside the tri-bar.
I think that using a SIL resistor, a right angle header and a bare module, I should be able to do this...