Although this is NOT really intended to be a DIY project. I'm putting this information up here, in the interest of being part of the greater community and sharing with others that may be interested in what I have done.
Background
In Australia it has always been legal to "modulate" a motorcycle headlight. The most obvious reason is for visibility and safety to the motorcycle rider. My initial headlight modulator circuit that I designed way back in the '90s, used 2 x 555 timers (actually 1 x 556 dual timer).
With my introduction into micro-controllers, I decided to implement the headlight modulator design, using the good ol' Microchip PIC. This was the digital answer to my analogue world...
Overview
The original PIC design was a multi-function hybrid device, incorporating a gear position indicator (remember the days when you had to remember what gear you were in) and a shift light. It proved to be a somewhat reliable design. After getting my new S1000RR last year, this was an opportunity to finally update the original design.
Below is the schematic of the revised headlight modulator:
Below is the printed circuit board (PCB) design that I end up with. It needed to be as compact as possible (45x45mm) and made from aluminium to dissipate the heat from the power MOSFET that controls the low-beam headlight. The overall size of the design could be further reduced, by using surface mount components (SMD), instead of the standard through-hole components.
(Note: If you are interested and feeling a tad adventurous, then check out the link below. The linked .ZIP file contains all the files (PCB design, schematic diagram, parts BOM and PIC program) needed to build the headlight modulator.
Download Link
Headlight Modulator Files v1.6
How you use it
Turn Low-beam Light - Off
Turn Low-beam Light - On
Toggle Headlight Modulator Mode:
Installation
Below is the wiring diagram of the S1000RR K46 2017/2018 that I have made up to assist with identifying the wires.
Download Link
BMW S1000RR-K46 2018 KOMBI Headlight - Wiring Diagram
This is a relatively simple, but fiddly task and will require a fair deal of patience.
The enclosure can be mounted literally anywhere. I decided to mount it in the front fairing for easy access. A big shout out to Georges de Menstral for bringing Velcro into the world.
Note: The enclosure does get warm with normal operation.
Conclusion
The headlight modulator works as expected and a lot of fun was had in designing and building it. But considering the BMW S1000RR is centered around CAN-BUS technology, is any of this design possible by using the CAN-BUS?
Well yes it can (pardon the pun). I have a preliminary working design and micro-controller code that uses the CAN-BUS data to read the high-beam/pass button state and ambient light level from the clusters light sensor. I have put in a few other tricky features, but more on that later...
DISCLAIMER: As always, I take no responsibility for the accuracy of the information contained in the files from the link(s) above. Use the information provided at your own risk.
Background
In Australia it has always been legal to "modulate" a motorcycle headlight. The most obvious reason is for visibility and safety to the motorcycle rider. My initial headlight modulator circuit that I designed way back in the '90s, used 2 x 555 timers (actually 1 x 556 dual timer).
With my introduction into micro-controllers, I decided to implement the headlight modulator design, using the good ol' Microchip PIC. This was the digital answer to my analogue world...
Overview
The original PIC design was a multi-function hybrid device, incorporating a gear position indicator (remember the days when you had to remember what gear you were in) and a shift light. It proved to be a somewhat reliable design. After getting my new S1000RR last year, this was an opportunity to finally update the original design.
Below is the schematic of the revised headlight modulator:

Below is the printed circuit board (PCB) design that I end up with. It needed to be as compact as possible (45x45mm) and made from aluminium to dissipate the heat from the power MOSFET that controls the low-beam headlight. The overall size of the design could be further reduced, by using surface mount components (SMD), instead of the standard through-hole components.

(Note: If you are interested and feeling a tad adventurous, then check out the link below. The linked .ZIP file contains all the files (PCB design, schematic diagram, parts BOM and PIC program) needed to build the headlight modulator.
Download Link
Headlight Modulator Files v1.6
How you use it
Turn Low-beam Light - Off
- Whenever the headlight system is first active, the high-beam switch must be in the low-beam (off) position for more than 2secs
- The LED will begin to blink at a 10Hz rate
- Within 50secs, turn the high-beam switch to the on position, or press and hold the high-beam flasher switch for 5secs
- The low-beam headlight and LED will turn off. Note: If the high-beam switch is still on or the headlight flasher is still being pressed, the low-beam headlight will remain off
- Turn the high-beam switch to low-beam (off) or release high-beam flasher
- In this mode the low-beam will follow the high-beam state. This means that whenever the high-beam is turned on/off the low-beam will be turned on/off at the same time
Turn Low-beam Light - On
- Whenever the headlight system is active, the high-beam switch must be initially in the low-beam (off) position for more than 2secs
- Press the high-beam flasher x5 times
- The headlight will come back on and the headlight modulator will be enabled
Toggle Headlight Modulator Mode:
- Press the high-beam flasher x5 times to toggle modulator on/off. LED indicates modulator state
- Modulator Enabled:
- LED Off = Light conditions dark
- LED On (Solid) = Light conditions light and not in modulation state
- LED Flashing (4Hz) = Modulation period
- Modulator Disabled:
- LED: Pulse (1Hz) = Modulator disabled
Installation
Below is the wiring diagram of the S1000RR K46 2017/2018 that I have made up to assist with identifying the wires.
Download Link
BMW S1000RR-K46 2018 KOMBI Headlight - Wiring Diagram
This is a relatively simple, but fiddly task and will require a fair deal of patience.
The enclosure can be mounted literally anywhere. I decided to mount it in the front fairing for easy access. A big shout out to Georges de Menstral for bringing Velcro into the world.

- Run three wires from the headlight modulator plug to the right side where the low-beam (E208*1B) connector is located. The first wire goes to the low-beam relay side (K48*1B, pin 7 - Yellow/GE), the second wire goes to the low-beam headlight connector side (E208*1B pin 3 - Yellow/GE) and the third wire is to ground of the low-beam connector (E208*1B pin 1 - Brown)
- On the right side where the low-beam (E208*1B) connector is located. Cut the Yellow/GE wire about 2" or 50mm from the connector end
- Join all wires, solder and check for any sharp wire strands that may penetrate neighboring wires. Use heat shrink or wrap insulation tape to protect soldered wires. Finish off with cloth tape etc
- Run one wire from the headlight modulator plug to the left had side where the high-beam (E356*1B) connector is located. This wire goes to the high beam connector (E356*1B, pin 3 -White/GS)
- Join all wires, solder and check for any sharp wire strands that may penetrate neighboring wires. Use heat shrink or wrap insulation tape to protect soldered wires. Finish off with cloth tape etc
- Run two wires (I used small figure eight speaker wire) down the left had side to the ignition switch for the light sensor. I used a DC plug and jack and soldered the LDR in one end with a LED diffuser
- Plug the headlight modulator in and start the bike (Note: The engine will need to be running, as the headlight modulator is powered from the low-beam circuit)
- If all is good and no smoke was let out of the LBT (Little Black Things), the low-beam headlight should come on and the LED will start flashing fairly fast (10Hz rate). After about 50 seconds the LED should stop flashing, indicating the feature timeout has been reached (see How you use it section above)
- Unplug the light sensor plug from the light sensor jack. This gives you access to the centre pin of the jack and it also simulates a dark condition
- Adjusting the light level is done via the trim-pot on the board. For good baseline light levels, measure the voltage at the light sensor jack. The voltage should be approximately 1v5
- Plug the light sensor back in and have the bike positioned in an area that is fairly bright (a torch may be easier). When the appropriate light level is detected, the LED should turn on solid and after 10 seconds the headlight should start to modulate as expected. The LED should flash at the same rate (4Hz) as the modulation rate. If you cover the sensor with your hand, the LED should turn off and the modulation should stop at the same time
- Adjust up or down depending on individual light levels required
Note: The enclosure does get warm with normal operation.
Conclusion
The headlight modulator works as expected and a lot of fun was had in designing and building it. But considering the BMW S1000RR is centered around CAN-BUS technology, is any of this design possible by using the CAN-BUS?
Well yes it can (pardon the pun). I have a preliminary working design and micro-controller code that uses the CAN-BUS data to read the high-beam/pass button state and ambient light level from the clusters light sensor. I have put in a few other tricky features, but more on that later...
DISCLAIMER: As always, I take no responsibility for the accuracy of the information contained in the files from the link(s) above. Use the information provided at your own risk.