The PRIMO CORE is a compact device, using a Nordic nrf52832 chip with Bluetooth smart (BLE 4.0) and NFC-A tag functions, and also integrated motion and environmental sensors. The low power consumption permits powering the Primo Core with a coin cell battery. The Arduino PRIMO CORE can be mounted on a breakout board to extend its functionalities.
The Arduino Primo Core can be powered using the integrated slot for an external battery.
The battery used in the slot is the button cell CR2032 of 3V.
Furthermore it is also possible to use an external power supply to the Vin pin.
The nRF52832 has 512 KB of Flash memory and 64 KB of SRAM. There is no onboard EEPROM memory.
Input and Output
Each of the 10 digital pins on the Arduino Primo Core can be used as an input or output, using pinMode(), digitalWrite(), and digitalRead() functions. They operate at 3.3V. Each pin can provide or receive a maximum current of 14 mA.
In addition, some pins have specialized functions:
Serial: RX and TX: these pins are used to receive (RX) and transmit (TX) TTL serial data.
External Interrupts: all pins can be used as external interrupts. Keep in mind that you can’t use more than eight interrupt pins at the same time. These pins can be configured to trigger an interrupt on a low value, a rising or falling edge, or a change in value. See the attachInterrupt() function for details.
PWM: pulse width modulation is available on all pins. The 12-bit PWM output resolution can be adjusted using the analogWriteResolution() function.
SPI: a Serial Peripheral Interface (SPI) bus is available using pins 4 (MOSI), 5 (MISO), and 6 (SCK) and 7 (SS) but it is possible to change them and use other pins. For more information about it visit the SPI library.
TWI: Two-wire interface (TWI) communication is available from the serial data line (SDA) and serial clock line (SCL) pins. TWI communication is supported using the Wire library.
RESET. Bringing the reset line LOW will reset the microcontroller.
NFC1 and NFC2 for NFC communication
The Primo Core has also 8 analog inputs, labeled D0 through D7, each of which provide up to 14 bits of resolution (i.e., 16384 different values). By default they measure from ground to 3.3 volts, though it is possible to change the upper end of their range using the analogReference() function.
Onboard there are some sensors and actuators:
A Led managed using the macro USER_LED or LED_BUILTIN. When the pin is HIGH value, the LED is on, when the pin is LOW, it's off.
A RGB managed using the macro RED_LED, BLUE_LED and GREEN_LED.
Temperature and Humidity sensor (ST HT221)
Accelerometer and Gyroscope (ST LSM6DS3)
The Arduino Primo Core has a number of facilities available for communicating with other devices.
In particular it has a Bluetooth interface 4.0 that allows to communicate with PC, tablet and smartphone and to program the board. This interface is managed from the BLE library. This library is contained in the nRF52 platform, downloadable from Board Manager of the Arduino IDE 1.8.x or later.
The board supports also the NFC communication until to 106 kbps as bit rate and 13,56 MHz of frequency. It needs only to connect the NFC antenna in the corresponding connector. The NFC is managed from NFC library and also this is contained in the nRF52 platform.
Furthermore the nRF52832 supports also the I2C (TWI) communication. The Arduino software includes a Wire library to simplify use of the I2C bus.
In the Arduino Primo Core is also possible to use the SPI communication, using the default configuration (MOSI=4, MISO=5, SCK=6, SS=7) or defining the pins that you use directly in the sketch. For more information visit the SPI library.
The Arduino Primo Core can be programmed in different ways, using: