Smart Bike Lights (Data Field) / Bike Lights Control (Widget)

I've made two open source CIQ applications to control ANT+ lights:

- Smart Bike Lights (data field): https://apps.garmin.com/en-US/apps/0d9fd828-c932-4470-9c37-fd2828881888
- Bike Lights Control (widget): https://apps.garmin.com/en-US/apps/fa3c2332-76e3-4ba1-8528-32a0fd617ab1

Smart Bike Lights features:
- Automatic light control (Smart mode) based on the configured filters (sunset, sunlight, speed, ...)
- Manual light control (only for Edge devices with a touch screen or devices with CIQ 3.2 and more than 32KB memory)
- Records lights modes that are displayed in Garmin Connect

Bike Lights Control features:
- Manual light control (available to all devices)

Both applications can be installed on the same device, which can be useful for low end devices (e.g. Edge 520) where "Bike Lights Control" can be used to change light modes manually and "Smart Bike Lights" for automatic light control.

Currently registered ANT+ lights:
- Bontrager Ion Pro RT
- Bontrager Ion 200 RT
- Bontrager Flare RT
- Garmin Varia RTL500
- Garmin Varia RTL510
- Garmin Varia RTL515
- Garmin Varia HL500
- Garmin Varia UT800

in case your ANT+ light is not on the list you can help by doing the following:

1. Install Bike Lights Control
2. Pair your bike light with your Garmin device
3. Open the widget:
- Edge with a touch screen: post which numbers are displayed on the buttons and what mode each button represents when pressed
- Other devices: Select the "Light modes" menu and post which numbers are displayed in the menu and what mode each menu item represents when selected

Example for Bontrager Ion Pro RT:


1 -> High steady beam
2 -> Medium steady beam
5 -> Low steady beam
63 -> Day flash
62 -> Night flash

There are some features that could be possible to add in the future, but would require Garmin to add them to the CIQ api. In case you are interested in any of the below features, consider upvoting their feature request thread:

1. Control lights based on the ambient light sensor available on some devices:
https://forums.garmin.com/developer/connect-iq/i/bug-reports/ambient-light-sensor-api-access 

2. Control light modes and control modes (Smart, Manual, Network) by using Garmin Varia Remote or Bontrager Transmitr:
https://forums.garmin.com/developer/connect-iq/i/bug-reports/allow-creating-master-channels-on-ant-network 

  • No problem. Currently I don't have anything set up for tips, maybe I will add an option in the future. 

  • Unbelieveable piece of work all of this, impressive. I do have a question though. It must be me, but I can't figure out this (de-) activation delay option. I am trying to achieve that when running an Ion 200RT in daily flash mode, I want it to switch off whenever I stop, at a 10sec delay and pick it up immediately when I start moving again. How do I best achieve this?

  • Here is one example how you can achieve this:

    #4587520,196641::1#2,2!STOP:1:0:0:10C=0!:1:63:0:0D=1###7,6:Ion 200 RT:0:16777215!2,:-1,Off:0!1,High:1!1,Medium:2!1,Low:5!1,Day Flash:63!1,Night Flash:62##0::#0:0#123!:123!#0#B3570#2##0#0

    With the above configuration the light will be in "Day Flash" mode when moving and it will turn off after stopping more than 10 seconds. After moving again, the light will switch back to "Day Flash".

  • Thanks, much appreciated. I got this far myself as well, but when you add a night mode to the mix, then when stopping in night mode, it first jumps to the default mode instantly (day flash) and only then after 10sec to the stop mode. I couldn’t figure out how to prevent this. Any suggestions? To me it felt like the delay isn’t really a delay but rather an additional filter (counter based) but I could be wrong.

  • In case you want to add the night mode you can your this configuration:

    #4587520,196641::1#4,4!STOP:1:0:0:10C=0!NIGHT:1:2:0:0Es0,r0!DAY:1:63:0:0Er0,s0!:1:0:0:0D=1###7,6:Ion 200 RT:0:16777215!2,:-1,Off:0!1,High:1!1,Medium:2!1,Low:5!1,Day Flash:63!1,Night Flash:62##0::#0:0#123!:123!#0#B3570#2##0#0

    The above configuration will turn off the light from "Medium" in nighttime and from "Day Flash" during daytime. It should not switch to the default mode before the stop filter group. In the above configuration the "Default mode" will only be used until the GPS location is found as it is required for the "Sunset/Sunrise" filter to work. In case you do not want to be "Off" when indoor, just change the "Default mode".

    For preventing the STOP filter to turn off the light during nighttime, just move the "NIGHT" filter group at the top of the list.

  • Great, thanks, this seems to be working ok, i will do some testing. Thanks for your help as well ad pointing out that it doesn’t make sense to switch off the lights during night time…..

  • This is a long shot but does garmin let you also change the tone on/off for the radar? 

    I’d love to have it so it never warns me in parts of the city but it does alert me when I’m out of that zone. 

  • Unfortunately it does not, there is no API for changing the radar tone.

  • hi, first of all: nice piece of work! Thx

    I enjoyed the bike lights widget with a Bontrager Ion Pro RT and a Garmin Varia RTL515. It worked great until I added another taillight to my light network on my Garmin. This taillight is a Bontrager Flare RT. (Reason I added this to the mix is that I mainly want to use the Varia as a radar and spare the battery of it by using another taillight for light). 

    Anyway, no matter what kind of configuration string I load , I always get an Error 3 thrown at me. Any ideas of how to get this setup working? 

    I already did a restart of my Garmin Edge 1030 Plus but to no avail 

    Thx, Paul

  • In order to configure three lights you need to:
    1. Install another widget (Bike Lights Control #2) where you configure Flare RT. Make sure to set the serial number in the configuration.
    2. Update the current configuration by setting serial numbers for both Ion RT Pro and Varia 515

    Setting the serial number for each light is important so that the widget knows which light to control.