Sneak peek: Arduino’s Primo and Primo Core IoT duo
May 20, 2016 — by Rick Lehrbaum 6,194 views[Updated: May 21] — Arduino Srl unveiled a wireless-rich, IoT oriented Arduino Primo SBC and companion Primo Core module at the Maker Faire in San Mateo, Calif. on May 20.
![]() Arduino Industrial 101 |
Arduino Srl is riding the IoT wave with a string of new product introductions this week. On Monday, the company unveiled the Arduino Industrial 101 single board computer, which supplements Arduino circuitry and I/O with a soldered-on WiFi module that runs Linino Linux. On May 20 at the Maker Faire in San Mateo, Calif., the company demonstrated a pair of new IoT oriented products — the “Arduino Primo” and “Arduino Primo Core” — that take wireless capabilities to the next level.


Arduino Primo (left) and Primo Core
(click images to enlarge)
— ADVERTISEMENT —
![]() Nordic nRF52 SoC |
Although neither of the Primo products runs Linux, they differ significantly from previous Arduino boards, in that they don’t run their sketches on the traditional Atmega32 MCU, but instead tap the beefier, ARM Cortex-M4F MPU that’s embedded within the IoT-oriented, Nordic Semiconductor nRF52 wireless system-on-chip that implements most of the boards’ multi-wireless functions. Despite the change in MCU architecture, the Primo and Primo Core run existing Arduino sketches, and are programmed using the familiar Arduino IDE. To this end, Arduino Srl’s software team is busy ensuring that any Arduino sketch will work exactly the same on the new MCU, as on the Atmega32.
The Primo SBC offers a broad spectrum of wireless capabilities, including WiFi, BLE, NFC, and IR, with all but WiFi implemented by the Nordic Semiconductor nRF52 SoC. A second MCU-controlled wireless SoC, the Espressif ESP8266, is responsible for the board’s WiFi connectivity.


Arduino Primo Core module front (left) and back views
(click images to enlarge)
In contrast, the Primo Core dispenses with the WiFi, but offers all of the Nordic SoC’s other wireless functions, as well as the ability to execute Arduino sketches, and more, on the SoC’s internal MCU. Despite both Primo boards’ lack of Linux, the nRF52 wireless SoC imbues the new Arduinos with serious Linux-like wireless capabilities, claims Nordic. For example, the nRF52 can act as a TCP/IP Internet client and server over WiFi, and it enables NFC secure authentication and touch-to-pair. More experienced developers can develop IPv6-based Bluetooth LE applications, according to the company.


Arduino Primo (left) and Primo Core photos from MakerFaire 2016 (Bay Area)
(click images to enlarge)
Arduino Primo details
Although Arduino Srl has yet to post detailed specs and diagrams for the new Primo boards, we managed to obtain a preliminary block diagram of the Arduino Primo SBC, plus some interesting photos showing the circuit boards that make up the 40mm-diameter Primo Core disc.


Arduino Primo SBC (left) and its block diagram
(click images to enlarge)
As indicated by the Primo SBC’s block diagram, above, the Primo implements the following functions:
- Processors:
- Nordic Semiconductor nRF52832 SoC:
- Based on an ARM Cortex-M4F CPU, clocked at 64MHz
- Implements and manages the board’s BLE/NFC/IR wireless functions
- Arduino sketches run here
- Provides the GPIO signals that drive the boards Arduino shield expansion headers
- ST Microelectronics STM32L0 SoC
- Based on an ARM Cortex-M0+ CPU, clocked at 32MHz
- Dedicated to higher-level control and debugging functions
- Espressif ESP8266 SoC:
- Reportedly based on a Tensilica Xtensa 32-bit RISC CPU, clocked at 80MHz
- implements and manages the board’s WiFi radio and communications protocols
- Can be switched off when not in use
- Nordic Semiconductor nRF52832 SoC:
- Arduino shields headers — standard Arduino GPIO generated via the nRF52 SoC
- Other features:
- Micro-USB port; provides DC power input
- Various LEDs
- Various buttons/switches
- DC/DC power conversion
Here are block diagrams of the Arduino Primo’s three SoCs:


Nordic Semiconductor nRF52832 simplified and detailed block diagrams
(click images to enlarge)


Block diagrams: Espressif ESP8266 (left) and ST Microelectronics STM32L0x
(click image to enlarge)
Primo Core details
While a block diagram of the Primo Core is not currently available, it’s essentially a shrunken subset of the Primo SBC, without the ESP8266 (WiFi) and STM32L0 (supervisory) SoCs. And of course it lacks Arduino shields expansion. Below are photos showing the innards of the Primo Core. The disc-like assembly targets wearables and other mobile IoT apps. The functional relationship between the Primo Core and its mother ship, the Primo SBC, is discussed farther below.


The Primo Core’s main PCB (left) and carrier ring (aka “Alicepad”)
(click images to enlarge)
The Primo Core is constructed from several boards that are mated to form the finished disc-like assembly. Above, you can see the two parts to the main electronics assembly. The main PCB (left photo above) has castellated edge vias around its perimeter, and apparently gets soldered to the ring prior to final assembly, as seen in the photo at the left, below.


Assembled Primo Core electronics (left) and a view from the bottom
(click images to enlarge)
Making them do stuff
The Primo and Primo Core are meant to be used in combination. As Kathy Giori, Arduino’s VP of US Operations, explained to us in an email, “A common topology might be to connect several Primo Core modules to a regular Primo, and use the Primo’s WiFi to connect back to other networked devices including the Internet. But you can also connect Primo Core or Primo boards to other devices, not just each other. The Primo Core speaks standard BLE and the regular Primo speaks BLE and WiFi. The beauty of standards is that they can support diversity and interoperability. :)”
“Developing the Arduino IDE for the Primo and Primo Core is our main focus right now,” continues Giori. “In other words, the ‘Hello World’ of Arduino is to blink an LED (blinky sketch) and if you download that same sketch that runs on an Uno to your Primo, it will ‘just work’. The big effort for Arduino software developers is that this board does so much more than an Uno. The number of libraries and APIs has to therefore grow accordingly. Our software developers coordinate with Hernando Barragan, the author of Wiring which became the Arduino IDE, so our goal of course is to maintain the ease-of-use principle as we expand the core libraries.”
Additionally, Primo users are not restricted to using Arduino IDE-based software, since it’s theoretically possible for developers to use Nordic’s standard SDK to program the nRF52 SoC. In fact, other RTOSes could potentially be run on a Primo’s or Primo Core’s nRF52 SoC, targeting “more advanced IoT applications,” adds Giori. “We predict that Primo and Primo Core will be very popular platforms both within the existing Arduino IDE community as well as for prototyping commercial IoT products that take advantage of an alternative RTOS. Lots of users can now explore how easy it is to take advantage of low power BLE to easily connect to these new devices.”
Update (May 20): Open source Apache Mynewt RTOS support
Arduino Srl and Runtime on May 20 unveiled an open source, Bluetooth savvy, Apache Mynewt RTOS for 32-bit MCUs, and revealed that it will be deployed on the new Arduino Primo and STAR Otto. Arduino boards are increasingly tapping higher-end 32-bit MPUs, such as the STM32F469 chip found on the Arduino STAR Otto and the STM32L0 and nRF52832 on the Arduino Primo. Mynewt will also support the Arduino Zero, Arduino Zero Pro, and Arduino M0 Pro. Read our coverage of Apache Mynewt here.
Further information
Arduino Srl has not listed pricing or availability details for the Arduino Primo and Arduino Primo Core at this point. Further information will eventually show up at the company’s Arduino Primo and Arduino Primo Core product pages.
Block diagram seems wrong. I think that the nrf52 only has 1 UART port.
Good point, but it’s actually the diagram from the nrf52’s “product brief.” I added the more detailed diagram that appears in Nordic Semi’s nrf52 “product spec” — which shows the UART and much, much more — alongside the simplified one (above).
Here is what in datasheet:
“The GPIOs used for each UART interface can be chosen from any GPIO on the device and are independently configurable. This enables great flexibility in device pinout and efficient use of board space and signal routing.”
Yes, still only one UART controller.
When is possible to buy primo core?