Arduino Primo and Primo Core
The Arduino Primo and Arduino Primo Core are two boards built around the nRF52832 from Nordic, featuring BLE and NFC.
The Arduino Primo adds WiFi with a classic ESP8266, infra-red communication with diode and photo-transistor, a programmer-debugger with standard 2 x 5 0.05" SWD connector, a user LED, a user button, and a buzzer.
The Arduino Primo Core includes different sensors: a 3-axis accelerometer and gyroscope, and a thermometer.
The Arduino Primo displays on the Serial port all the instructions to configure it and send commands to the pins. As the Arduino Primo is configured as an access point, just connect to LAN of the board to set the parameters and connect it to the home WiFi network.
The Arduino Primo Core out-of-the-box demo allows to command the LED from a smartphone using BLE and the Nordic nRF Toolbox application for Android and iOS.
The Arduino Primo offers two ways for programming:
The Arduino Primo Core doesn't include any USB port, but features a 2x5 0.05" SWD connector instead. However, the connector isn't fool-proof and worse, pin 1 isn't marked.
The dedicated libraries for the Arduino Primo and Arduino Primo Core boards include the
Tutorials are available for both boards, Arduino Primo Tutorials and Arduino Primo Core Tutorials, with examples.
However, the examples are pretty basic and do not illustrate how to use the two boards together. As examples,
The Arduino Primo includes a STM32F103 used as a service micro-controller for USB/UART converter and CMSIS-DAP programmer-debugger. Thank to the standard 2 x 5 0.05" SWD connector, this programmer-debugger can be used with the Arduino Primo Core.
The service micro-controller provides debugging with the standard tools like GDB as client and OpenOCD as server. Below,
Those two windows were obtained in command line.
At the time of the review, the Arduino IDE 1.8.3 doesn't support the Arduino Primo Core yet.
However, a beta release is available:
Compared with other boards built around the same nRF52 MCU, the Arduino Primo and Arduino Primo Core boards excel in providing libraries that are available and that work for all the features of the boards.
I really enjoy the OpenOCD and GDB compatible programmer-debugger.
The main challenge is now to tame the long list of BLE profiles. As mentioned before, the only limitation is the absence of more advanced examples leveraging the two boards working together.
Posted: July 31, 2017
Updated: August 1, 2017