I have a project that uses the BlueSMiRF and Sparkfun 9Dof Razor IMU M0. At the recommendation of a person, I am attempting to migrate over to the nRF52840. It looks a little overwhelming and the documentation seems complex/sparse, at least for me. Just understanding the Bluetooth on the 52840 seems crazy complex compared to the BlueSMiRF. Anyway, i will post my progress on here and try to make 10 or so posts, hopefully I can provide something that will help others, and vice versa.
here is my approach so far: I have ordered the Sparkfun Pro nRF52840 mini, the Adafruit Feather nRF52840 Express, the Nordic nRF52840 Development Kit, and the Arduino Nano 33 BLE. My reasoning is that the documentation is kind of circular, so I figured if i could come at this from 4 different angles, maybe I can make some progress.
Status to date: The first board I tried was the Adafruit. It was DOA, and fortunately I bought two. The second one worked. I was able to update the bootloader following the adafruit instructions, and load a couple programs using the Arduino IDE. The last program is the BLEUART example. I can find the device and pair to it with my phone. i can’t understand the code enough to modify it.
Next I worked with the Nordic DK. i made it through 6 of the 7 steps in the getting started guide. the 7th step is to connect the DK to your phone using NFC. I had no idea what NFC is, but i found out that none of the 3 phones that I have have NFC, so I ordered one from ebay. I should have it Friday.
The Sparkfun and Arduino boards have been ordered and should arrive this week.
As a note of clarification, I really like Sparkfun products and support, and always try their stuff first. i buy their boards at least 10 to 1 over anyone else. And they always answer my support requests.
Thank you so much for your bravery charging into the great beyond. These kind of projects and information for others is AWESOME! I wish you the best of luck and it sounds like you’re headed in the right direction.
lots of reading this week and feeling a little overwhelmed. I spent about 4 hours on the Nordic site reading on the nRF52840, and a bunch more time digging for info in other places.
I also received the Arduino Nano 33 BLE and added it to the Arduino IDE. Once I added the ArduinoBLE library, some examples showed up in the Arduino IDE. I also just received my Sparkfun nRF52832 breakout and the nRF52840 mini breakout.
So after a week, this is what I figured out.
Devices (phone, nRFboards, etc) are generally viewed as either central or peripheral. In my case, where I want to use a phone to connect to a device that uses a nRF52840, the phone is central and the device is peripheral. if you dig around on the Nordic site, they will give you info explaining 4 types of devices, but the peripheral and central are the most common. When you add a board to the Arduino IDE and look at the examples they will be categorized as peripheral and central (and sometimes others depending upon the board). For my first project I am trying to replace a BlueSMiRF with the nRF52480, so I am focusing on peripheral.
Each peripheral device has a Service and one or more Characteristics specific to the service. Each service and each characteristic has a unique UUID. I’m not clear on the UUIDs. On one hand it looks like they are standardized by the BLE SIG (special interest group), for things like a heart rate monitor, but I am assuming there are some generic UUIDs for use in a project like mine. I don’t have a need to let whatever phone connects to my device to automatically know what my device is by reading a specific UUID. So I am trying to figure out what is the minimum code I need to make the nRF52840 replace the BlueSMiRF and what if any UUID I need.