Possible code errors for running Arduino Primo

While several sketches in the Arduino Examples/BLE/Peripheral section work, there are a few with common characteristics that don't work.

Looking at the code, the line where the desired processing does not complete
(the discovery message does not get printed out in the Serial.print) is

void blePeripheralRemoteServicesDiscoveredHandler(BLECentral& central) argument is false

Serial.print(F("Remote services discovered event, central: ")) never printed out

Since the Arduino Primo is "Retired", there is probably pretty low interest in committing Arduino staff manpower to this, but if someone could point me in the right directions, maybe I can get this to work and share it with the community.

Note: I have a Case on the NordicZone addressing this issue from their side, but since the sketch "remote_test" does not require any GATT services, seems to me the problem is on this side.

Device under discussion: Arduino Primo
IDE Version : .8.2
iPhone 5s with nRF Connect, nRF Toolbox and nRF Beacons

Perhaps the problem is in the iPhone 5s. Have you tried it with any other BLE equipment? Take it to an electronics store and see if it discovers any remote services there.

You have the sources to the Arduino cores and libraries. With that and the datasheets for the chips on the board you should be able to figure out what is going wrong.

Ah, wouldn't life be wonderful if it were it just that easy. You clearly over-estimate my programming skills and ability to absorb information from data sheets (assuming I knew the right ones to look at).

Should I lower my "Uno proficient" claim to "got the kit sketches to run and modified some"? Guess it gave you the wrong impression.

I can read straight C code pretty good, but this object-oriented stuff blows my mind. :frowning:

I can read straight C code pretty good, but this object-oriented stuff blows my mind. :frowning:

Have you encountered the "struct" data type? It's a way of lumping a bunch variables together. A "class" is a lot like a "struct" except that it includes functions as well as variables. Just like you can use a variable inside a struct with "structureInstance.variableA = 5;" you can call a member function with "classInstance.functionB(5);". Now you know most of what you need to know about object oriented programming. :slight_smile:
The beauty is that nobody but the class needs to know what data the class contains and how it is arranged. A library that implements a class can be changed without breaking existing code that uses the class.