Datafield to read & control Forumslader (Bicycle Dynamo Power Bank)

The forumslader.de is one if the most powerful and versatile bicycle dynamo power bank. It has a BLE API which can be used to gather data like speed, temperature, voltage, etc. from the power bank's internal controller.

I would be useful to get and show this data on a Garmin bicycle computer like Edge1030.

Forumslader BLE is based on a Nordic nRF52832 chipset, which has Bluetooth 5.0 single mode and acts as an advertising sensor. Thus, it should be possible to pair it with an CIQ program, acting as datafield.

I am an experienced C# / C++ programmer, but not aware with Monkey C.

Anyone here who is interested to start a github open source repo for this project, together?

Or anyone who is willing to do the heavy lifting for a tbd budget?

Thanks for sharing your thoughts on this idee here!

Klaus,

Berlin/Germany

  • Yes, i changed the UUIDs in ProfileManager.mc and entered the UUID values of my device, as identified with nRFconnect app. But still no show.

    The strange thing here is: I can see the device's advertising with Android BLE scanning apps like nRFconnect or LightBlue. And also i can connect to the device with these apps, and browse the device's UUIDs.

    But neither your CIQ BLEscan app, nor CIQ NordicThingy52 app show the device's UUID while scanning. It seems the device advertising is ignored by Garmin CIQ scan for some reason.

    Is there a way with CIQ to enforce a connection to a (known) BLE device without having it scanned before?

    Can i peek into the source code of your BLEscann CIQ app somewhere?

    class ProfileManager {

        public const THINGY_ENVIRONMENTAL_SERVICE = BluetoothLowEnergy.stringToUuid("0000ffe0-0000-1000-8000-00805f9b34fb");
        public const TEMPERATURE_CHARACTERISTIC   = BluetoothLowEnergy.stringToUuid("0000ef38-0000-1000-8000-00805f9b34fb");
  • The source for BLEscan isn't available, but it is based on the Nordic Samples.  If you can't see the advertisemsnts, there might be something with the flags in the advertisement,  That's why I first suggested the blescan app, to see if CIQ could see your device. Seems it can't

  • Well, i get deeper in step by step. I figured out that the biycycle power charger is using a "HM" bluetooth stack by Jinan Huamao Tech Co Ltd., running on a Texas instrument CC2541 BLE SoC. I found the description of that "HM" stack, and i think i found the reason why this device does not behave standard while advertising:

    In iOS system you can’t get module MAC address directly. So, we put MAC
    address information into advert packet. You can use CBAdvertisementDataManufactureDataKey property to get it, MAC address information string format like follow:
    Total length is 8 Bytes, first of two bytes is identify string, it always is 0x48 and
    0x4D, the rest 6 bytes is MAC address string
    For example: 0x48, 0x4D, 0xB4, 0x99, 0x4C, 0xXX, 0xXX, 0xXX
    0x48 and 0x4D is “HM” string.
    0xB4: 0x99: 0x4C: 0xXX: 0xXX: 0xXX is BLE MAC Address.

    That means i need to catch this kind of advertisement data record somehow by my CIQ app, parse the device's MAC address from the raw data, and then connect to the device via MAC address.

    Is that possible with CIQ Toybox BlueToothLowEnergy API?

    Catching and parsing the MAC could be possible by using

    getManufacturerSpecificData(manufacturerId as Lang.Number)

    but how can i connect to the device by MAC address, without having it in a scanning record?

  • Meanwhile, i got the heavy lifting done and things up and running. Now on the way to develop the App. Your support was very helpful to get and keep me on this track, thank you very much!

  • Great idea. I recently received my new Forumslader (V6) and I'm very happy with it. Also got a new Garmin 830. If you are able to get the IQ app to work would be great. I can also do some tests. I'm a (database) programmer and have some general experience in testing software

    Greetings

      Marco (Hürth/Germany)

  • you find the current state of development here:

    www.velomobilforum.de/.../index.php

  • The app is now finished and was published today:

    apps.garmin.com/.../7f8ae207-a5a3-4175-9b65-ea710256ba80

    Thanks for all help and hints here!