Project to enable Bosch + Garmin integration

I finally dusted off my various files and filings and posted what I know so far to Github - GitHub - Soarcer/bosch-garmin-bridge: Bridge app for displaying Bosch e-bike data on Garmin cycling computers.

Key Requirements:
• Phone must be previously paired with Bosch Flow app (secret key exchange prevents standalone ESP32/Arduino solutions)
• If BLE sensor mode is needed, the phone needs to be able to run a software BLE peripheral (limits target phones)
• Uses paired phone as intermediary to capture and relay data

Data Transmission Methods:
Standard cycling data (speed, cadence, power) → Phone acts as BLE peripheral for native Garmin datafield display
○ More work on app and less phones can do this, but natively supported in Garmin device, captured data files and fitness sites like Strava
E-bike specific data (assist level, battery, other?) → Garmin Connect IQ custom data fields
○ Separate implementation needed and data is stored as add-on to native fields, will need custom visualizer or after the fact parsing / merging to be visible in most sites / apps

Protocol Progress So Far:
• Bluetooth primary service: 00000010-eaa2-11e9-81b4-2a2ae2dbcce4
• Bluetooth data characteristic: 00000011-eaa2-11e9-81b4-2a2ae2dbcce4


Assist Level (high confidence): 30-04-98-09-08-XX where XX = level 0-4
• Assist Mode Names (medium confidence): 30-22-18-0D-C0-80-12-0A-03-[ASCII_NAMES]
Power (low confidence): A2-43-XX-YY-ZZ where YY = watts, ZZ = additional data for >255W ?
• Battery/Cadence: Still investigating

Data Collection Methodology
Next up is collecting proper test data. My methodology is:

Setup sequence:


  • Start the bike
  • Launch Bosch Flow app and begin an activity
  • As soon as the activity starts, switch to NRF Connect
  • Connect to the bike's primary service and subscribe to the data characteristic
  • Start logging data
Controlled testing:

  • Plan specific tests beforehand (works much better than random data collection)
  • Example - Assist level testing: Pedal at assist level 1 for 10 seconds, switch to level 2 for 10 seconds, continue cycling through all modes at known intervals
  • This makes correlation much easier during analysis
Data analysis:

  • Download the .FIT file from Bosch Flow app
  • Export raw Bluetooth logs from NRF Connect
  • Compare both datasets against current protocol understanding to identify patterns and validate findings
  • Every iteration of AI improvements makes this easier, Claude Sonnet 4 is my current favorite.
  • Do not be tempted or fooled by high confidence analysis! :) The AIs love to pretend to be right, smugly so. Run it though different chats or different AIs to get cross verification.
This controlled approach makes it much easier to correlate Bluetooth data patterns with known bike states and verify protocol accuracy.

Questions, comments and any other feedback welcomed!
Total ignorant in IT/App thing, so here comes a question of someone who's still in the IT middle ages: Would it be possible to check the code on Flow App?
PS: Yes I understand thar Apps must be super hard (close to impossible) to crack, but wouldn't help?
 
⚡ EMTB Pro Go Pro — exclusive discounts & ad-free Peaty's 25% off & more · Ad-free browsing · Pro badge See the deals →
I've not done much on this for a while as I started a new job.

From my point of view, I don't think there's much to be gained from looking at the Flow app. I've decoded all the bluetooth data already, just need to send it out!

Someone mentioned running this on PC? I don't think that will worth, the Flow app needs to do the authentication

Once Flow App authenticates, the Bosch Smart System appears as a "bonded" device in Android (I've just updated the github repo to check for bonded devices, rather than searching for discoverable bluetooth devices)

There is a slight issue in that there appear to be not standard bluetooth ebike profile for sending the data out. Manufacturers seem to have done hteir own propriertary thing (e.g. Shimano) or used ANT+

I think it's possible to broadcast using cadence and power profiles though. I might bodge the battery percentage by broadcasting as cadence
 
It seems that Bulcan already offers a device that fully downloads data from the Bosch Smart motor (4th and 5th generation) and sends data to ANT+ and BT bike computers.

Quoting the manufacturer:
Bulcan – Connect your Bosch to GPS and control your electric bike like never before. If you have an electric bike with a Bosch motor and still can't see real-time riding data on your bike computer or smartwatch... you're not doing it right. Bulcan is a device that connects your Bosch Gen 4 or 5 Smart System motor to your favourite GPS, smartwatch or bike computer. In real time. Hassle-free. No complicated installation. You can install it in less than a minute, without tools or complicated cables.
And suddenly, all the information about your electric bike appears exactly where you need it:

Assistance level: Check how much the motor is helping you with every pedal stroke.
Battery charge level and voltage: Monitor the charge level and condition of your electrical system in detail.
Cyclist power: Measure your effort in watts and improve your performance.
Cadence: Pedal better with accurate data.
Ambient and motor/battery temperature: Protect your components in extreme conditions.
Remaining kilometres: Plan exactly how many kilometres you have left.
Motor assistance: Find out how your electric bike performs on each section.
All this combined with maps on one screen. No need to switch devices or views. Compatible with Bluetooth and ANT+. Connects to Garmin (Edge, Fenix, Venu...), Wahoo, Hammerhead Karoo, COROS, IGPSPORT and many others.

The price remains unchanged at €199. It may not be cheap, but it provides much more information than a Bosch subscription.

Bulcan Smart system installation manual
Bulcan Smart system user manual

All that remains is to order, install and test.


OK, I had some doubts about Bulcan Smart, so I asked the manufacturer some questions:

  1. Compatibility with the latest Bosch Smart software: currently LED Remote 16.12.1, CX motor 16.19.0 – does Bulcan work with this and any future versions of Bosch software?
  2. Assistance mode: the manual lists 7 modes: Off -> Eco -> Tour -> eMTB -> Turbo. I currently use Off -> Eco+ -> Auto -> EMTB-> Turbo, or alternatively Off -> Eco+ -> Auto -> Sport -> EMTB+. What happens when these assistance modes are used?
  3. Bulcan uses the SELECT LED Remote button as the Edge Remote button. However, in addition to Garmin Edge/Fenix devices, I use Kiox 500 and the Select button is useful for me to operate Kiox. Will the Select LED Remote button still operate Kiox after installing Bulcan? I use Edge Remote and would not necessarily use Select as the Edge Remote button, but I understand that as an alternative to Edge Remote, it makes sense. However, if connecting Bulcan would prevent me from using Select with Kiox, it would be a significant hindrance in operating Kiox. Hence my question: will the Select button continue to work with Kiox (and possibly as an Edge Remote button)? The inability to work with Kiox (I use them interchangeably and simultaneously) would be a significant inconvenience.

I received the following reply:

Hello, Bulcan is compatible with Gen 4 Smart System engines and all
their software versions. If there is a future version for this engine
and it affects you, we will provide support.

Cycle computers have preset speeds (7), no matter what modes you use on
your ebike, they will increase/decrease in order within these 7.

The "REMOTE" only works with Garmin devices that support it for page
turning.

Your Kiox will continue to function as usual. Bulcan has no effect. The
only thing is that it will also turn the page on your Garmin if you have
them linked.

We hope we've answered your questions and hope you enjoy Bulcan and your
cycle computer.


If these explanations are true, then I will most likely order one copy.

One more thing – the Garmin Remote Bulcan function in the Standard version (not Smart) requires pressing the "Walk" button. The Smart version uses the Select button, hence my question no. 3. Unlike the Standard version, the Remote button should work without delay – in the Standard version, each change requires a 4-second delay.
 
@robbydobs

I don't think there's much to be gained from looking at the Flow app
I don't think that will worth, the Flow app needs to do the authentication
That is the point: to crack authentication so that I can get rid of the Flow app and run clients on any platform :)
For instance, my use-case would be to write a Home Assistant integration that connects directly to the bike via BLE. Useful to extract statistics.
 
OK, I had some doubts about Bulcan Smart, so I asked the manufacturer some questions:

  1. Compatibility with the latest Bosch Smart software: currently LED Remote 16.12.1, CX motor 16.19.0 – does Bulcan work with this and any future versions of Bosch software?
  2. Assistance mode: the manual lists 7 modes: Off -> Eco -> Tour -> eMTB -> Turbo. I currently use Off -> Eco+ -> Auto -> EMTB-> Turbo, or alternatively Off -> Eco+ -> Auto -> Sport -> EMTB+. What happens when these assistance modes are used?
  3. Bulcan uses the SELECT LED Remote button as the Edge Remote button. However, in addition to Garmin Edge/Fenix devices, I use Kiox 500 and the Select button is useful for me to operate Kiox. Will the Select LED Remote button still operate Kiox after installing Bulcan? I use Edge Remote and would not necessarily use Select as the Edge Remote button, but I understand that as an alternative to Edge Remote, it makes sense. However, if connecting Bulcan would prevent me from using Select with Kiox, it would be a significant hindrance in operating Kiox. Hence my question: will the Select button continue to work with Kiox (and possibly as an Edge Remote button)? The inability to work with Kiox (I use them interchangeably and simultaneously) would be a significant inconvenience.

I received the following reply:

Hello, Bulcan is compatible with Gen 4 Smart System engines and all
their software versions. If there is a future version for this engine
and it affects you, we will provide support.

Cycle computers have preset speeds (7), no matter what modes you use on
your ebike, they will increase/decrease in order within these 7.

The "REMOTE" only works with Garmin devices that support it for page
turning.

Your Kiox will continue to function as usual. Bulcan has no effect. The
only thing is that it will also turn the page on your Garmin if you have
them linked.

We hope we've answered your questions and hope you enjoy Bulcan and your
cycle computer.


If these explanations are true, then I will most likely order one copy.

One more thing – the Garmin Remote Bulcan function in the Standard version (not Smart) requires pressing the "Walk" button. The Smart version uses the Select button, hence my question no. 3. Unlike the Standard version, the Remote button should work without delay – in the Standard version, each change requires a 4-second delay.
I got mine like a week ago, works perfect (with Fenix 7pro and pivot shuttle am/bosch cx 4 smart). A bit expensive but wanted to support their work because bosch will never do this 🤬.

If want to know more let me know, in general you get power, cadence and others directly into your Garmin connect activity, device is paired as 4 sensors (ebike, power meter, cadence and temperature sensor) and connects automatically (like HR sensor or others) when starting activity , see below (one comment here, L/R balance shows support % as far as I read in manual). I'm super happy with it!

Screenshot 2025-08-26 at 19.39.55.png

Screenshot 2025-08-26 at 19.40.29.png
 
Just found a 30% off coupon code - ordered just now and it works:


1756237488515.png
 
Just found a 30% off coupon code - ordered just now and it works:


View attachment 166974
This sounds interesting. Would like to use it with my Bosch Gen 5. Wondering how it works. Kindly keep us updated
 
Just found a 30% off coupon code - ordered just now and it works:


View attachment 166974
Thanks, I just used it:
1757542393594.png

Shipping to Poland costs €13.79, but with a €60.69 discount, the total cost is €155.39, which is a much more acceptable price.

Well, now I'll be waiting for the delivery ;)

Alas, no shipping to USA. 😢

Probably thanks to extra duties on products shipped to the US. Thank you, Mr. Trump.
 
Mine arrived a week ago.. Works great - all power/cadence stats in Garmin Connect. Cycling V02 max as well if you use HR strap. Totally recommend. Bosch Smart System Gen 5 motor.

PS. L/R balance is in fact the %age of rider (L) vs motor (R) input. All documented in Bulcan's Manual.

1757582515321.png
 
Are you getting this displayed on the Garmin unit?
And most importantly, the battery percentage?
 
Mine arrived a week ago.. Works great - all power/cadence stats in Garmin Connect. Cycling V02 max as well if you use HR strap. Totally recommend. Bosch Smart System Gen 5 motor.

PS. L/R balance is in fact the %age of rider (L) vs motor (R) input. All documented in Bulcan's Manual.
Did you wait a long time for the delivery?
I wonder (this is not mentioned in the manual) whether Bulcan supports the ANT+ eBike profile only for sending data, or perhaps two-way ANT+ Lev – which would make it possible to change, for example, the assistance level from the Edge screen. It is rather unlikely, but it is worth checking.
On the other hand, I plan to use the field: CIQ Edge eBike (PDF-guide)
Zrzut ekranu 2025-09-11 125314.png

Compared to the original ANT+ field, LEV has extensive configuration and usage options. It is recommended that you read the user manual.
Adds the ability to calculate range from saved journeys (disabled by default) or range based on energy consumption from the current journey.
Log values to the FIT Activity file and show them in Garmin Connect:
- Battery Charge and Assist Mode (are written to the fit file without doing anything in settings)
These options must be enabled in the setup:
-Edge Battery Status in %
-Shift index for front and rear
-Ebike Energy data (summary page)
Zrzut ekranu 2025-09-11 141257.png

Zrzut ekranu 2025-09-11 130850.png

Of course, standard data such as power, cadence, etc. are recorded as usual.

Displaying ANT+ LeV data is, of course, possible within standard Garmin fields, but these fields have limitations (and are probably not recorded, e.g. in the form of data graphs).

Available standard Garmin fields for ANT+ LeV: Assist Mode (current eBike assistance mode), eBike Battery (remaining battery power of an eBike), Shifting Advice (recommendation to shift up or down based on your current effort. Your eBike must be in manual shifting mode), Travel Range (estimated distance you can travel based on the current eBike settings and remaining battery power) and Smart Travel Range (estimated remaining distance the eBike will provide assistance, taking into account the local terrain).

Alternatively, you can use other CIQ fields/applications available in the Garmin store. However, keep in mind that only one field on a given screen has access to ANT+ LeV. In practice, this is either a set of standard fields - restrictions deliberately introduced so that communication is possible between one motor controller and one display (with the ability to transfer data in both directions). This does not apply to other data such as power, cadence, speed, and temperature.

Hammerhead Karoo:
EBike data fields:
  1. Bike battery - eBike battery level (Numeric, Visual)
  2. Estimated range remaining - Estimated eBike range in 
current assist mode.
  3. Assist level - Current bike assist mode/level (Numeric, Visual)
  4. Burn rate - Rate of energy consumption, 
in wh/km or wh/mi (Numeric, Visual)
  5. 20min burn rate - Average rate of energy consumption over the last 20 min.
  6. Bike motor power - Current bike motor power output
in watts.
  7. Combined power - Current combined rider and 
motor power in watts.
  8. Range vs route distance - Current estimated range remaining compared to distance remaining on route. (Visual)
  9. Battery vs elevation - Current battery remaining compared to elevation (Visual)
  10. Bike vs rider power:
    • Smoothing 0 Seconds - Current bike motor power compared to current rider power (Visual)
    • Smoothing 3 Seconds - 3-second rolling avg. (Visual)
    • Smoothing 10 Seconds - 10-second rolling avg. (Visual)
    • Smoothing 30 Seconds - 30-second rolling avg.(Visual)
As you can see, Karoo has a pretty good, sometimes unique set of data fields.

Wahoo:
  1. Current speed
  2. Distance traveled
  3. Remaining battery life and range
  4. Current assistive mode information
  5. Charge Cycle Count
  6. Reported errors
Additionally, after the ride, Specialized E-Bikes also provide:
  1. Total Consumption
  2. Average Support Level
Wahoo records the assistance modes used, which can be viewed in the app after the ride (similar to Flow).

Bulcan provides assistance levels from 0 to 7, just like Giant motor controllers (off and 7 assistance levels). I am curious to see how it handles the eMTB+ and Eco+ displays... Probably the same as in Karoo – numerically from 1 to 7.

I know that this thread concerns 'Project to enable Bosch + Garmin integration', but I think that the most optimal solution is to use an additional CAN->ANT+ interface. The downside is the cost of purchasing it. Bosch should include this type of transmitter in its motors as a common standard used by a large number of eBike motor manufacturers (exception: Bosch and Shimano...). The Flow app is sufficient for most amateurs, but even a Flow+ subscription does not provide anything meaningful in terms of performance data – recording the % motor/human ratio is not very useful. If I want to have full data in Connect (as I have on my road bike, CX bike or trainer), I need to add power measurement to my eBike. And that's 'a bit' more expensive than Bulcan. Without power measurement, performance monitoring is based only on heart rate measurement, which doesn't give me much.

The 'Project to enable Bosch + Garmin integration' would make sense if someone actually managed to intercept the communication data between the Bosch controller and the smartphone. In fact, not only intercept it (because that's easy), but fully utilise it and convert it into data that can be sent to external devices, preferably in ANT+ and BTLE. The problem is that currently, smartphones are practically incapable of sending data in ANT+, leaving only BTLE. Here, a limited set of data (e.g. power, speed, cadence) can be sent in relation to ANT+ LEV. It is possible to use an intermediary smartphone for this purpose.

Whether the data sent by Bulcan (and recordable in, for example, Garmin Edge) is important to someone or not is a personal matter. For me, it is, hence my decision to purchase Bulcan (especially at a 30% discount). I would probably have bought it even if Flow+ had made this data available as part of a subscription – I strongly disagree with making the full capabilities of the device available only after paying additional fees. Similarly, the fact that eMTB is only available to someone as part of a Flow+ subscription is strange to me, to say the least. In addition, Flow(+) does not even record heart rate, so the data sent to Strava does not include HR records.

Given the above, it should come as no surprise that more advanced eBike users would like to have access to as much useful data as possible during and after their ride. Unfortunately, Flow(+) does not provide this, hence the need to use other solutions.
 
Mine arrived a week ago.. Works great - all power/cadence stats in Garmin Connect.
Do you see any anomalies with speed?

I read two comments from German users who see a non-zero speed even when stationary. This breaks the auto pause function on their Garmin. Turnes out Bulcan does not provide a dedicated speed sensor but according to the manual uses ebike speed. I wasn't aware that the ebike data fields provide a speed display.

How does that work for you?
 
Just my personal opinion but I much prefer my Garmin watch for Mountain biking as when following a course it vibrates and bleeps at each junction .
If you ride remotely technical trails Having Hundreds of pounds worth of computer attached to a Mountain bike is just plain silly IMHO
The other option is using a gpx file to guide you around and have it in your pocket using voice prompts to tell you what direction to turn at junctions .
 
Bulcan provides assistance levels from 0 to 7, just like Giant motor controllers (off and 7 assistance levels). I am curious to see how it handles the eMTB+ and Eco+ displays
Bulcan uses numerical values 0 for OFF and 1, 3, 5 and 7 for the max. four modes you can configure on a Bosch drive. 1 being the lowest and 7 the highest support mode of the four you have configured to use. The ascending order follows the order on your Bosch controller/display.
 
Are you getting this displayed on the Garmin unit?
And most importantly, the battery percentage?
Yes, you can have it displayed. Both power and battery %. I don't use it on Garmin since also have Purion 400 on my bike. Battery % differes by 2-3% from Purion (it's mentioned in the Bulcan manual).
 
Just my personal opinion but I much prefer my Garmin watch for Mountain biking as when following a course it vibrates and bleeps at each junction.
If you ride remotely technical trails Having Hundreds of pounds worth of computer attached to a Mountain bike is just plain silly IMHO
The other option is using a gpx file to guide you around and have it in your pocket using voice prompts to tell you what direction to turn at junctions.
Different strokes for different folks. Personally I intentionally remove my Garmin Fenix 51 mm watch for riding. First it's heavy on the wrist and while riding chattery sections it adds additional discomfort for me. Second - in my opinion if you crash it's much more likely to break the watch on your hand than Edge mounted on a bike. Third it prevents from wearing the gloves comfortably.
Lastly - my Edge 840 is half the price of my Fenix 8
Garmin Edge attached to mount in the top cap. If I ride sth super gnarly I also have additional mount on top tube. Had several crashes and never broke the Edge. Riding like that for the last 5 years.
 
Last edited:
Do you see any anomalies with speed?

I read two comments from German users who see a non-zero speed even when stationary. This breaks the auto pause function on their Garmin. Turnes out Bulcan does not provide a dedicated speed sensor but according to the manual uses ebike speed. I wasn't aware that the ebike data fields provide a speed display.

How does that work for you?
I don't use speed sensor from Bulcan. Have my own on the front wheel which I mounted prior to buying Bulcan so didn't feel like switching if off. You can always fall back to speed sensor from Garmin (based on GPS data). I also don't use auto-pause so not a real problem for me. Auto-pause was more problematic for me in steep sections where I had to push the bike up the hill for several minutes/meters as it was deactivating only when reaching 3-4 kph again. As a result the plotted track was just showing a straight line from the moment of activating till the moment of deactivation so just turned it off. Perhaps Garmin fixed it by now but I was never bothered to experiment with it again.
 
Last edited:
Did you wait a long time for the delivery?
I wonder (this is not mentioned in the manual) whether Bulcan supports the ANT+ eBike profile only for sending data, or perhaps two-way ANT+ Lev – which would make it possible to change, for example, the assistance level from the Edge screen. It is rather unlikely, but it is worth checking.
On the other hand, I plan to use the field: CIQ Edge eBike ( PDF-guide )
View attachment 167861
Compared to the original ANT+ field, LEV has extensive configuration and usage options. It is recommended that you read the user manual.
Adds the ability to calculate range from saved journeys (disabled by default) or range based on energy consumption from the current journey.
Log values to the FIT Activity file and show them in Garmin Connect:
- Battery Charge and Assist Mode (are written to the fit file without doing anything in settings)
These options must be enabled in the setup:
-Edge Battery Status in %
-Shift index for front and rear
-Ebike Energy data (summary page)
View attachment 167863
View attachment 167862
Of course, standard data such as power, cadence, etc. are recorded as usual.

Displaying ANT+ LeV data is, of course, possible within standard Garmin fields, but these fields have limitations (and are probably not recorded, eg in the form of data graphs).

Available standard Garmin fields for ANT+ LeV: Assist Mode (current eBike assistance mode), eBike Battery (remaining battery power of an eBike), Shifting Advice (recommendation to shift up or down based on your current effort. Your eBike must be in manual shifting mode), Travel Range (estimated distance you can travel based on the current eBike settings and remaining battery power) and Smart Travel Range (estimated remaining distance the eBike will provide assistance, taking into account the local ground).

Alternatively, you can use other CIQ fields/applications available in the Garmin store. However, keep in mind that only one field on a given screen has access to ANT+ LeV. In practice, this is either a set of standard fields - restrictions deliberately introduced so that communication is possible between one motor controller and one display (with the ability to transfer data in both directions). This does not apply to other data such as power, cadence, speed, and temperature.

Hammerhead Karoo:
EBike data fields:
  1. Bike battery - eBike battery level (Numeric, Visual)
  2. Estimated range remaining - Estimated eBike range in current assist mode.
  3. Assist level - Current bike assist mode/level (Numeric, Visual)
  4. Burn rate - Rate of energy consumption, in wh/km or wh/mi (Numeric, Visual)
  5. 20min burn rate - Average rate of energy consumption over the last 20 min.
  6. Bike motor power - Current bike motor power output in watts.
  7. Combined power - Current combined rider and motor power in watts.
  8. Range vs route distance - Current estimated range remaining compared to distance remaining on route. (Visual)
  9. Battery vs elevation - Current battery remaining compared to elevation (Visual)
  10. Bike vs rider power:
    • Smoothing 0 Seconds - Current bike motor power compared to current rider power (Visual)
    • Smoothing 3 Seconds - 3-second rolling avg. (Visual)
    • Smoothing 10 Seconds - 10-second rolling avg. (Visual)
    • Smoothing 30 Seconds - 30-second rolling avg.(Visual)
As you can see, Karoo has a pretty good, sometimes unique set of data fields.

Wahoo:
  1. Current speed
  2. Distance traveled
  3. Remaining battery life and range
  4. Current assistive mode information
  5. Charge Cycle Count
  6. Reported errors
Additionally, after the ride, Specialized E-Bikes also provide:
  1. Total Consumption
  2. Average Support Level
Wahoo records the assistance modes used, which can be viewed in the app after the ride (similar to Flow).

Bulcan provides assistance levels from 0 to 7, just like Giant motor controllers (off and 7 assistance levels). I am curious to see how it handles the eMTB+ and Eco+ displays... Probably the same as in Karoo – numerically from 1 to 7.

I know that this thread concerns 'Project to enable Bosch + Garmin integration', but I think that the most optimal solution is to use an additional CAN->ANT+ interface. The downside is the cost of purchasing it. Bosch should include this type of transmitter in its motors as a common standard used by a large number of eBike motor manufacturers (exception: Bosch and Shimano...). The Flow app is sufficient for most amateurs, but even a Flow+ subscription does not provide anything meaningful in terms of performance data – recording the % motor/human ratio is not very useful. If I want to have full data in Connect (as I have on my road bike, CX bike or trainer), I need to add power measurement to my eBike. And that's 'a bit' more expensive than Bulcan. Without power measurement, performance monitoring is based only on heart rate measurement, which doesn't give me much.

The 'Project to enable Bosch + Garmin integration' would make sense if someone actually managed to intercept the communication data between the Bosch controller and the smartphone. In fact, not only intercept it (because that's easy), but fully utilize it and convert it into data that can be sent to external devices, preferably in ANT+ and BTLE. The problem is that currently, smartphones are practically incapable of sending data in ANT+, leaving only BTLE. Here, a limited set of data (eg power, speed, cadence) can be sent in relation to ANT+ LEV. It is possible to use an intermediate smartphone for this purpose.

Whether the data sent by Bulcan (and recordable in, for example, Garmin Edge) is important to someone or not is a personal matter. For me, it is, hence my decision to purchase Bulcan (especially at a 30% discount). I would probably have bought it even if Flow+ had made this data available as part of a subscription – I strongly disagree with making the full capabilities of the device available only after paying additional fees. Similarly, the fact that eMTB is only available to someone as part of a Flow+ subscription is strange to me, to say the least. In addition, Flow(+) does not even record heart rate, so the data sent to Strava does not include HR records.

Given the above, it should come as no surprise that more advanced eBike users would like to have access to as much useful data as possible during and after their ride. Unfortunately, Flow(+) does not provide this, hence the need to use other solutions.
Delivery time was ~1 week. You can't change the assist mode from Garmin (Edge activates eBike specific data screen when connected to Bulcan and was trying to change assist mode from there but nothing happened). Doesn't sound like a must have function to me anyways.
My main goal for getting Bulcan was to have power data which coupled with HR data gives me real VO2/FTP data as I do more biking than running and wanted to have more complete health/training stats. Not really geeking out much on the rest of it.
 
Last edited:
I don't use speed sensor from Bulcan. Have my own the front wheel which I mounted prior to buying Bulcan so didn't feel like switching if off.

I currently have a speed sensor on the front wheel and a cadence sensor on the crank. When I bought Bulcan, I wanted to get rid of these sensors and collect data from the Bosch motor. Bulcan, of course, does not have its own speed sensor, but transmits data from the motor controller, including wheel rotation pulses – in my case, the magnet is mounted on the rim, and I don't think it generates false wheel rotation pulses. Kiox shows zero speed when the bicycle stops.

You can always fall back to speed sensor from Garmin (based on GPS data).

Not really. In this case, the speed data (wheel rotation) is transmitted not as a speed sensor, but in the ANT LEV profile:
Zrzut ekranu 2025-09-12 092414.png

It is, of course, possible to disconnect the eBike from the cycle computer (watch), in which case speed data will be retrieved from the GPS, but we will be deprived of all additional data such as assistance mode, battery status, etc.

You can use an additional speed sensor on the wheel (as I have done so far or as you have done), but you should test whether the sensor will be given priority by a cycle computer, e.g. Garmin Edge, i.e. whether the speed will be calculated from the wheel rotation and not from the eBike profile. This is very easy to check: just lift the front wheel with the rotation sensor while stationary and turn the wheel. If Edge (or another bike computer) shows the speed, then the wheel rotation sensor is given priority over the eBike speed data (GPS speed in Edge is only active when there is no speed sensor or when the sensor data disappears).

I wasn't aware that the ebike data fields provide a speed display.

After pairing with Bulcan or directly with the ANT+ LEV motor controller, a bike computer (or watch, e.g. Fenix) retrieves speed data (wheel rotation) directly from this profile.


Zrzut ekranu 2025-09-12 083531.png

As you can see, ANT+ LEV is a two-way system, so it is generally only possible to communicate between two devices at the same time (e.g. bike <-> Edge). Some of this is optional, but Bulcan collects engine temperature data and transmits it not in the LEV profile, but as TEMPE – probably because the standard Garmin LEV fields (and others) do not display engine temperature, adding temperature fields (min/max).

It is strange that the LEV profile does not transmit (even optionally) cadence data. Therefore, Bulcan retrieves and sends cadence data as an additional cadence sensor.

As I suspected, Bulcan only transmits data in one direction, which I can accept (I have to use the Bosch LED Controller anyway). Of course, for this reason, options such as Change gear, travel mode, control lights, are not available in this case.

As far as I remember, Wahoo bike computers have a separate page with the above-mentioned data that can be displayed, hence the information about 'Current speed' in the eBike profile, e.g. Wahoo Bolt. The speed (wheel rotation data?) is then retrieved not from GPS, but directly from the motor controller via ANT+ LEV.

Delivery time was ~1 week. You can't change the assist mode from Garmin (Edge activates eBike specific data screen when connected to Bulcan and was trying to change assist mode from there but nothing happened). My main goal for getting Bulcan was to have power data which coupled with HR data gives me real VO2/FTP data as I do more biking than running and wanted to have more complete health/training stats. Not really geeking out much on the rest of it.

Thanks, they just sent it, maybe I'll get it for assembly next weekend. I have almost identical needs for using Bulcan – actually, it was supposed to be a power data transmission device, and that will be its main use. However, I personally like to use all possible data obtained from devices, hence my interest in CIQ fields and the possibility of recording and visualising this data.
 
Last edited:
Different strokes for different folks. Personally I intentionally remove my Garmin Fenix 51 mm watch for riding. First it's heavy on the wrist and while riding chattery sections it adds additional discomfort for me. Second - in my opinion if you crash it's much more likely to break the watch on your hand than Edge mounted on a bike. Third it prevents from wearing the gloves comfortably.
Lastly - my Edge 840 is half the price of my Fenix 8
Garmin Edge attached to mount in the top cap. If I ride sth super gnarly I also have additional mount on top tube. Had several crashes and never broke the Edge. Riding like that for the last 5 years.
Good points ,I think the instinct is the price point for me that I'd be willing to risk getting smashed
I shall follow this post with interest to see what develops .
 
After pairing with Bulcan or directly with the ANT+ LEV motor controller, a bike computer (or watch, e.g. Fenix) retrieves speed data (wheel rotation) directly from this profile.
From the Garmin Edge 1040 user manual I got the notion that Garmin has limited support for ebike data and needs a sensor registering as dedicated speed sensor to display speed. That is how it works with my wife's TQ50 motor.
Bildschirmfoto 2025-09-12 um 18.16.08.png
You can always fall back to speed sensor from Garmin (based on GPS data). I also don't use auto-pause so not a real problem for me. Auto-pause was more problematic for me in steep sections where I had to push the bike up the hill for several minutes/meters as it was deactivating only when reaching 3-4 kph again.
That behaviour is due to GPS speed which doesn't register while going at very slow speeds. Auto pause always works with sensor based speed.

The Bulcan implementation for speed seams to be very problematic. Meanwhile there are three different users in a German forum reporting this as useless. The speed never drops to zero even when stationary but stays at around 2.6 kph. There is a very noticeable lag of about 2 seconds between data coming from Bulcan shown on a Garmin and the same data coming directly from Bosch shown on the Bosch display next to the Garmin. This is also true for cadence. Makes one wonder how reliable the power data is.

Bulcan is investigating the errors and has already offered to return the modules for a full refund. Even if they find a fix it wouldn't help because the modules have no update capability.
 
From the Garmin Edge 1040 user manual I got the notion that Garmin has limited support for ebike data and needs a sensor registering as dedicated speed sensor to display speed. That is how it works with my wife's TQ50 motor.
View attachment 167910

That behaviour is due to GPS speed which doesn't register while going at very slow speeds. Auto pause always works with sensor based speed.

The Bulcan implementation for speed seams to be very problematic. Meanwhile there are three different users in a German forum reporting this as useless. The speed never drops to zero even when stationary but stays at around 2.6 kph. There is a very noticeable lag of about 2 seconds between data coming from Bulcan shown on a Garmin and the same data coming directly from Bosch shown on the Bosch display next to the Garmin. This is also true for cadence. Makes one wonder how reliable the power data is.

Bulcan is investigating the errors and has already offered to return the modules for a full refund. Even if they find a fix it wouldn't help because the modules have no update capability.

Perhaps Bulcan (and all engines transmitting data in ANT+ LEV) transmits speed and distance information rather than wheel rotation pulses, and Garmin (and other companies) require this information, which represents the wheels based on GPS measurements, and use it to determine distance and speed. I now also have a speed (wheel rotation) sensor, as GPS speed is not very accurate in more difficult terrain and at lower speeds.

Most likely, the motor controller transmits converted speed data to Kiox instead of raw wheel rotation pulses. As a result, we get the transmitted speed, also in the ANT+ LEV profile. And here's the problem, because cycle computers need wheel rotation pulses and wheel circumference to calculate speed. Wahoo displays eBike speed and distance in the eBike field, taken directly from ANT+ LEV. Similarly, Garmin CIQ fields available at apps.garmin.com are clearly marked as Speed LEV.

Bulcan most likely transmits speed as Speed LEV, but the problem is with the bike computers themselves, which may ignore this speed and display the speed calculated from GPS. And that is most likely the case. As long as the Speed LEV field is not displayed, the speed will not be transmitted from the motor itself. As I mentioned, this field is on the Wahoo data screen, but does Wahoo synchronise the Speed eMTB field with the Speed field? Unfortunately, I do not know, as I do not currently have access to a Wahoo device to verify this. Garmin devices certainly do not do this – they need a wheel rotation sensor and wheel circumference (or automatic calculation of circumference based on distance measurements from GPS). If there is no wheel rotation sensor, the speed is taken from the GPS signal. The result is that the speed after stopping may not be zero, because the GPS signal is not that accurate.

Bulcan is unlikely to be able to calculate wheel rotation pulses to be transmitted in the same form as cadence pulses. Perhaps if it were possible to enter the wheel circumference into the calculation, then it would be easy to calculate the rotation pulses from the speed, but as far as I am concerned, without communication with Bulcan (e.g. a BT smartphone app), this option does not exist and is unlikely to exist in the future.You cannot use a fixed wheel circumference value, because almost every wheel has a different circumference depending on both the tyre (different sizes) and the pressure.

What is the solution? Primitively simple – a wheel rotation sensor on the wheel. Perhaps not an ideal solution, but rather the only one possible.

Yes, it's a theory, but a very likely one. If it is confirmed (which I think it will be), then after installing Bulcan, I will only get rid of the cadence sensor; the front wheel rotation sensor will remain ;)

A slight delay in transmission (and processing by Garmin, etc.) is acceptable to me. In the case of cadence, it may also result from the principle of measurement in crank rotation pulses - here, the pulse is transmitted after each crank rotation (with a slight delay), whereas in the motor, sampling may be at a much higher frequency and there the cadence may, or rather certainly is, calculated at a much higher frequency so that the motor can be controlled correctly. Bulcan, on the other hand, collects cadence data and sends it most likely at a specific frequency. Whether this is at every change, or 1Hz or 0.5Hz, or proportional to the cadence (e.g. 120 rpm is 0.5Hz?), is something only Bulcan's programmers know.
 
Last edited:
From the Garmin Edge 1040 user manual I got the notion that Garmin has limited support for ebike data and needs a sensor registering as dedicated speed sensor to display speed. That is how it works with my wife's TQ50 motor.
View attachment 167910

That behaviour is due to GPS speed which doesn't register while going at very slow speeds. Auto pause always works with sensor based speed.

The Bulcan implementation for speed seams to be very problematic. Meanwhile there are three different users in a German forum reporting this as useless. The speed never drops to zero even when stationary but stays at around 2.6 kph. There is a very noticeable lag of about 2 seconds between data coming from Bulcan shown on a Garmin and the same data coming directly from Bosch shown on the Bosch display next to the Garmin. This is also true for cadence. Makes one wonder how reliable the power data is.

Bulcan is investigating the errors and has already offered to return the modules for a full refund. Even if they find a fix it wouldn't help because the modules have no update capability.
Good to know - thanks for detailed reposne. I'll test my Bulcan speed sensor this weekend and will report back.
 
If I would need an additional wheel based speed sensor and maybe even a crank based cadence sensor to get all the data I want into a Garmin on a Bosch bike, what do I pay 200 Euros to Bulcan for?

All those sensors are built into the Bosch motor and the whole idea of Bulcan is to make the data available to an external non Bosch Computer. This clearly doesn't work as advertised.

Anyhow, there was a new answer from Bulcan to one of the German users. They have given all information to their developers to reproduce the errors and will work on a fix. The good news is that they now said the model can be updated over Bluetooth. In case the user doesn't want to wait for a fix they are still prepared to take the module back for a full refund.
 
Quick update: I turned my wheel speed sensor off and can confirm that there's no separate Bulcan speed sensor to pair with. Garmin takes speed data directly from Bulcan's 'eBike' sensor (I switched the Bulacan's cadance sensor off just in case). The speed stays on 2.6/2.8 kph after the wheel stops. Left it like this for a minute to see if it drops to zero but it doesn't. Only once I turn the bike power off and on again it resets to 0.
I'll record a short ride tomorrow with my Garmin Edge paired with Bulcan's speed and cadance sensor and my Fenix paired with my wheel speed and cadence sensors (still have it on my crank arm as I was to lazy to remove it after installing Bulcan) and will post here data comparison.
When it comes to Bulcan's power sensor reliability the only way I can compare it is to record a ride in the Flow app and compare with Garmin recorded Bulcan output. Don't have powermeter pedals (as the whole point of getting Bulcan was to save on buying these for ~EUR 800).

1757701626400.png
 
Last edited:
Hi guys,
I've found that thread just a yesterday . It's very interesting reading . I have speedbox with BT on my bike and i was so disappointed when I've installed it and found that I cannot export any collected data which was the main reason why I've bought it. I've done some research and BT sniffing a half year ago and then stop. While I'm using speedbox enabled I can't connect by flow app due to Bosch tamper detection. I've took my sniffer again, made some analyses again but not flow app but speedbox app. The device is connected to CAN bus and have very simple communication which could be used to request any available information from any unit on bus.

The communication works like :
connection secured with PIN - no problem
Bike type detection and setting request for CAN addresses for BT notifications - I have location from app only

'1280,152,9', // mode
'1280,152,90', // cadence
'1280,152,91', // human power
'1280,152,93', // motor power
'1282,128,188', // battery level

Here is a place where I could add other location but I need to find it somewhere, flow app is very messy for searching .

After getting all required data I could export it as gpx or any other format .
Or pass it via BLE as bridge if i will have specification for garmin .

If you have any idea where I could find CAN locations it will be great.
 
If I would need an additional wheel based speed sensor and maybe even a crank based cadence sensor to get all the data I want into a Garmin on a Bosch bike, what do I pay 200 Euros to Bulcan for?

All those sensors are built into the Bosch motor and the whole idea of Bulcan is to make the data available to an external non Bosch Computer. This clearly doesn't work as advertised.

Anyhow, there was a new answer from Bulcan to one of the German users. They have given all information to their developers to reproduce the errors and will work on a fix. The good news is that they now said the model can be updated over Bluetooth. In case the user doesn't want to wait for a fix they are still prepared to take the module back for a full refund.

Please report this to Bulcan support so that they know this is a general problem and not only some crazy Germans.

This is not a Bulcan problem, it is an ANT+ LEV specification problem. The ANT+ LEV specification does not include wheel rotation pulse transmission!

After all, I explained EVERYTHING in my post.#113 -This is the specific feature of ANT+ LEV. It transmits LEV speed and distance, but does NOT transmit wheel rotation pulses for Garmin to calculate speed. That is why Garmin behaves as if it did not have a wheel rotation sensor (because it does not), and there is no LEV speed in the factory fields. Wahoo bike computers and some Garmin CIQ have such a field, e.g. the LEV+ or E-Bike Edge MultiField field
10Fields.png
6FieldsA.png


And here, the speed should be exactly the same as displayed on Kiox. Assuming that Bulcan transmits ANT+ LEV speed (which is likely the case).

Of course, the display of a given field depends on whether the LEV transmits this data – in the case of Bulcan, the engine temperature is transmitted in the TEMPE profile, so this data is most likely not available in the LEV. The rest is to be verified (I am waiting for my Bulcan).

However, using these fields will not cause Garmin to calculate speed according to LEV Speed – this is only a data field displaying the speed retrieved from the LEV engine. I don't know if Wahoo Bolt/Roam behaves differently.

A speed sensor is required for Garmin devices (and probably Karoo devices). Without it, speed is calculated from the GPS signal, which is not very accurate, especially when stationary or in difficult terrain.

If it were possible to update the software in Bulcan via BT so that the wheel circumference could be determined, then it would be possible to calculate the wheel rotation pulses from the LeV speed and transmit this as an additional wheel rotation sensor. I do not know if this will be possible, but it is not very important to me. At most, I will continue to have a wheel rotation sensor installed on the front wheel in order to obtain an accurate speed value (although this is not very important to some people).

"What do I pay 200 Euros to Bulcan for?" -The answer is simple – for power measurement data. Power measurement in Garmin devices is used to calculate many indicators of physical performance, and for this reason alone it is worth having. Without power measurement in eBike, my performance statistics calculated on a road bike and trainer are no longer accurate (within Garmin Connect statistics). Purchasing additional power measurement for eBike does not make sense – even Favero Assioma PRO MX-2 single-sided pedals cost at least twice as much as purchasing Bulcan. Additionally, it is possible (albeit after using CIQ fields) to record power data, the ratio of cyclist and motor power, and E-Bike Assist (which assistance modes were used while riding) without having to pay for FLOW+.

Of course, the transmission of additional ANT+ LEV data – ebike battery level or alternative range estimation (without Kiox or alternatively to what is on Kiox) – can be considered a bonus. Or anything else. But for me, it's primarily about power measurement. And the need to use a wheel rotation sensor is acceptable to me – I have one anyway, so at most I won't dismantle it.
 
Would anyone know if you are able to connect the power and cadence sensors to an Apple Watch? Assume as it broadcasts BLE it should be possible, but I’d like to know for sure before pulling the trigger on purchasing one.
 
Keep reading
    Browse all

    Similar Threads

    Community Stats

    Since 2018
    668K
    Messages
    40,733
    Members
    Join 30,000+ Riders, it's free!
    Back
    Top