NordicThingy52 Crashes - ConnectIQ SDK 4.2.4

I've just started developing an app for the Garmin to use Bluetooth Low Energy to communicate with a peripheral on athletic equipment, and I've run into a crash that happens both in my app and the NordicThingy52 sample code available in the ConnectIQ SDK version 4.2.4.

The line of code that causes the crash (from the NordicThingy52 sources) is at line 10 in "ProfileManager.mc":

public const THINGY_ENVIRONMENTAL_SERVICE = BluetoothLowEnergy.longToUuid(0xEF6802009B354933L, 0x9B1052FFA9740042L);

The error message in the debug console, when I run with debugging, is:

Error: Symbol Not Found Error

Details: Failed invoking <symbol> Stack:

- <init>() at .../SampleCode/ConnectIQSDK4.2.4/samples/NordicThingy52/source/ProfileManager.mc:10 0x10000011

- onStart() at .../SampleCode/ConnectIQSDK4.2.4/samples/NordicThingy52/source/NordicThingyApp.mc:27 0x10000277

I am using:

VSCode version 1.90.2

Minimum Supported API level: 4.0.0

Product: venusq2

Permissions: BluetoothLowEnergy

I am unable to tell what the error is - BluetoothLowEnergy for this SDK has the method longToUuid(), so it seems like it should just work. Unless the VenuSQ2 doesn't allow BLE?

Any information about how to resolve this would be very helpful.

Thanks,

Karl G. Kowalski

  • Ok, the 4.2.4 SDK is really old.  First thing, is use the current SDK - 7.2.1, and make sure you are using the latest device files .

    Next thing is I'd try this instead of what you posted:

    var THINGY_CONFIGURATION_SERVICE = Ble.longToUuid(0xEF6801009B354933L, 0x9B1052FFA9740042L);

    For some reason, long ago I changed what you have, and it could be related to the SDK version you are using.  To be honest, I forget why.  But I have a number of apps with CIQ BLE that run fine in the sim as well as on devices.

    If you have crashes, the BLE stack can get confuses, so restart the sim/power cycle the device if you've been crashing.

  • Jim:

    Thanks for all the advice and suggestions. It turns out that my problem was not the code or the SDK or the OS version. The Venu SQ does not support Watch Apps that want to use BLE. 

  • I am having this exact same problem with the NordicThingy52 sample app, and similar issues with the NordicThingy52CoinCollector sample app also.  I have tried running the simulator with all the recommended (checked off in the manifest file) devices with the sample apps.

    I either 'Encounter app crash' with the identical error or the simulator quits unexpectedly when attempting to run the app.

    Updated the SDK to 8.0.0 and still have the issue.

    The simulator is only affected by the sample apps which are using the BLE API.  All the other apps, including my own, run in the simulator just fine.

    Looking to use the BLE API, so trying to understand how everything works through these sample apps. 

  • While I've used the 8.0.0 beta SDK with some of my BLE apps in the sim, if you are just starting with this, I'd stick with 7.4.3.

    In the sim are you using the dongle or the DK for testing? You do need HW connected to your pc/mac, flashed with specific FW,  to use BLE in the sim,  See  https://forums.garmin.com/developer/connect-iq/w/wiki/19/getting-started-with-connect-iq-ble-development

    Last I checked (it's been awhile) the dongle was $12US.

  • Was running SDK 7.4.3 for a few days prior while troubleshooting this problem, still had the identical issue. Only recently updated to 8.0.0 to see if that would help.

    Currently using nRF52840-DK with the nRF52-DK firmware installed (did try the nRF52840 Dongle firmware just to be thorough).  Tomorrow I will be getting a nRF52832 to test as well.  

    I can see the nRF52840-DK in the nRF Connect for Desktop Bluetooth Low Energy Standalone v4.0.4.

    Running everything on Mackbook Air macOS 15.1.1.  Running the sample apps in Visual Studio Code.

    Looking to write code for a separate CIQ app to connect to custom BLE hardware later.  Only looking to get these sample apps working to understand the CIQ BLE API better.

    Also tried uninstall/reinstall nRF connect a couple times now, restarting vscode, reloading the sample app, and attempting to run the sample apps on the different approved devices.

    Error code and crashes are inconsistent as well.  Below is the current Timeout message associated with attempting to run the NordicThingy52 on the Forerunner 645.

     

    Earlier the Forerunner 645 was giving me the original error messages.  When attempting to run on any of the Fenix simulation devices the simulator just crashes.

  • Restart the sim.  That timeout is a sim issue.

  • That fixed the Timeout.

    Back to the original issue:

    The Simulator screen looks like the following:

  • The fr645 doesn't support CIQ BLE.  The fr645 Music does,  Which are you trying?

  • checking the manifest.xml, it was the fr645.  Will try some of the Fenix options now.

  • The Fenix devices just crash the simulator when attempting to run