Been using BGLib for several years - from the Bluegiga days - and using a new module which we are trying to get going. We've always used Crossworks and run FreeRTOS, integrating BGLib in very nicely.
It seems we need an updated version of BGLib where for some seemingly unecessary reason we have to add gecko_ to the beginning of all the function calls. I can't find where to download the latest library to integrate with all our existing software. Would someone be able to advise where I can find it please? I don't need (and indeed want) the awful Simplicity Studio, just the BG Lib in its Gecko format.
Many thanks :)
BGLib is part of the Bluetooth SDK which you have to download using Simplicity Studio. That's the best way to go as you also get easy access to all the documentation and code examples.
@DiBosco what module are you working with? The Bluetooth stack is completely different in BLExxx modules (released under the Bluegiga brand) and BGMxxx based modules (featuring the EFR32BG Blue Gecko SoC inside).
There is also two versions of BGLib: one intended for the legacy modules (BLExxx) and another for the Blue Gecko based parts (BGMxxx, EFR32xGxx). There are lot of similarities between the old/new BGAPI, but at binary level they are not compatible. And they are delivered totally separate from each other - for BLExxx it is included in the standalone Bluetooth SDK that does not require Studio. For BGMxxx the Bluetooth SDK is installed on top of Simplicity Studio.
Hi Jaakko. We are using a BGM11s. Are you telling me we have a massive amount of work to change existing Bluegiga BGLib stuff to what we ued on BG121?
We used to use a couple of small c files: cmd_def.c, commands.c and four header files. It was lightweight, simple and worked a treat. All I want to do is change our Crossworks based stuff to work with the BGM11s, I don't want Simplicity or the gigabytes of data associated with it, Just a few k of very, very simple code to talk to the module.
I searched around and could not find how to download the Bluetooth SDK without having to install Simnplicity.
We don't have such module as BG121, but possibly you meant BLE121LR ? Or some other part from the BLExxx series?
The file names that you mentioned clearly indicate that you have been working with the (standalone) SDK intended for BLExxx parts.
The new BGLIB implementation is also quite lightweight, but unfortunately there is no way to download it without Simplicity Studio. However, you will need to build some firmware for the BGM11S, too, unless you plan to go into production with whatever firmware becomes pre-installed at factory (not a good idea ). To build the NCP target project for BGM11S, you need Simplicity Studio and the Bluetooth SDK (latest version is now 2.7.0).
This application note will help you figuring out what are some of the key API differences between the BLE and BGM modules:
Some of the parts in AN1036 are no longer valid because we have discontinued support for BGScript.
Another recommended document to familiarize yourself with how NCP works with the Blue Gecko modules:
Yes, sorry I meant BLE121, the old Bluegiga stuff.
Many thanks for the links. A colleague has done the NCP stuff, I don't have to worry about that.
I have to say, having to install terrible, slow, bloaty Eclipse-based nonsense just to get a few k of source code really hacks me off and is totally unecessary. Java is the work of the devil and I will never understand how people can live with just how dog-slow Eclipse is.
Again, thanks for the pointers and the help, much appreciated, even if clogging up my hard drive with bloat isn't! ;)
@tmonte, why would you make us download over a gig of stuff and take up a gig and half on the HDD just for a few k of source code? :(
I recommend you taking that feedback to the studio part of the forum so it can routed to the correct product marketing group.
Sorry, me again. Do you have any documentation for getting stuff going when you're using BGLib only on your own micro and how it relates to the new stuff vs the old stuff? The API seems just completely and utterly different, as does the BGLib itself.
That doc you pointed me to seems to be when you're using the module as a micro.
Seems to me like this is a huge job going from BLE to BGM!
The AN1042 is specifically meant for NCP customers, meaning that the application runs on external host (not inside the module).
AN1036 compares the API calls of old vs new BGAPI. The BGAPI calls are the same whether you run the application inside the module, or on an external MCU.
The basic structure of the BGAPI commands is very similar: there is a four byte header, the length is encoded the same way. There are two bytes for command class and command ID. It is not binary compatible, but there are lots of similarities.
Some commands have almost one-to-one mapping, such as starting advertising with gap_set_mode(x,x)
Have you already checked the BGAPI reference manual that comes with SDK 2.7.0? If you haven't installed the SDK yet you can find a copy of the documentation in following thread:
@Jeff if you read carefully the thread, DiBosco was using BLE121 earlier and later they have moved to BGM11S.
Hi Jaakko. We are using a BGM11s.
You're correct that Simplicity Studio is only for Blue Gecko parts and for the legacy BLExxx (released by Bluegiga, before being acquired by Silicon Labs) there is a separate standalone SDK, not connected to Studio at all.
Ive read endless posts like this where folk are frustrated with SDK's and hidden downloads. I came looking for BGLib too and its really frustrating that the documentation, downloads and any useful info is totally fragmented. Agree with all the comments above about "Complicity" Bloat Studio.
Im trying to use BGM111A256V2, and all I wanted was API reference and BGLib for this module which is apparently loaded with v1 firmware so cant be UART upgraded to v2 or v3. Theres no API documentation whatsoever that corresponds to v1 firmware so I'm left guessing the entire way - Ive been at this days and nights trying to find resources that aren't broken links or AN documents that stop short of containing any info thats actually useful.
If I cant find something that looks like its actively being maintained and gets me working soon I'm going to switch to another module, and it wont be made by Silicon labs.
So my question is:
Q1. Where is the BGAPI document that corresponds to BGM111A256V2 module v1 firmware?
Q2. Where can I download the BGLib suitable for controlling the same module?