====== n-PRO-30======
~~CLOSETOC~~
//**n-PRO-30**//
{{:nblocks:n-pro-30-10.jpg}}
n-PRO-30
| License | GPL 2.0 |
| Status | Tested-Blink |
| Buy at: | |
| Categories | |
| Hardware repo | [[https://bitbucket.org/nimbus_it/pcba-n-pro-30|Bitbucket]] |
| Firmware repo | |
n-PRO-30 is an mbed-enabled Bluetooth Low Energy development board from the n-Blocks family, in the standard [[nblocks:formfactor|n-Blocks pro form factor]].
{{:nblocks:n-pro-30-01.jpg?300|}}
===== Overview=====
[[nblocks:n-ble|n-PRO-30]] is a simple Bluetooth Low Energy board based on Nordic nRF58232. It consists of temperature/humidity sensor, acceleration sensor and ambient light sensor which can be used to collect data and transmit it over bluetooth. The board supports the standard Nordic Software Development Tool-chain using Keil, IAR and GCC. It also supports ARM mbed tool-chain for rapid prototyping and development using mbed’s IDE and tool-chain with an extensive range of open-source software libraries.
\\
\\
===== MCU Features ====
* 2.4 GHz transceiver
* -96 dBm sensitivity in Bluetooth® Low Energy mode
* Supported data rates: 1 Mbps, 2 Mbps Bluetooth Low Energy mode
* -20 to +4 dBm TX power, configurable in 4 dB steps
* On-chip balun (single-ended RF)
* 5.3 mA peak current in TX (0 dBm)
* 5.4 mA peak current in RX
* RSSI (1 dB resolution)
* ARM® Cortex®-M4 32-bit processor with FPU, 64 MHz
* 215 EEMBC CoreMark score running from flash memory
* 58 μA/MHz running from flash memory
* 51.6 μA/MHz running from RAM
* Flexible power management
* 1.7 V–3.6 V supply voltage range
* Fully automatic LDO and DC/DC regulator system
* Fast wake-up using 64 MHz internal oscillator
* 0.3 μA at 3 V in System OFF mode
* 0.7 μA at 3 V in System OFF mode with full 64 kB RAM retention
* 1.9 μA at 3 V in System ON mode, no RAM retention, wake on RTC
* Memory
* 512 kB flash/64 kB RAM
* 256 kB flash/32 kB RAM
* Nordic SoftDevice ready
* Support for concurrent multi-protocol
* Type 2 near field communication (NFC-A) tag with wakeup-on-field and touch-to-pair capabilities
* 12-bit, 200 ksps ADC - 8 configurable channels with programmable gain
* 64 level comparator
* 15 level low power comparator with wakeup from System OFF mode
* Temperature sensor
* 32 general purpose I/O pins
* 3x 4-channel pulse width modulator (PWM) unit with EasyDMA
* Digital microphone interface (PDM)
* 5x 32-bit timer with counter mode
* Up to 3x SPI master/slave with EasyDMA
* Up to 2x I2C compatible 2-wire master/slave
* I2S with EasyDMA
* UART (CTS/RTS) with EasyDMA
* Programmable peripheral interconnect (PPI)
* Quadrature decoder (QDEC)
* AES HW encryption with EasyDMA
* Autonomous peripheral operation without CPU intervention using PPI and EasyDMA
* 3x real-time counter (RTC)
* Single crystal operation
\\
\\
===== n-PRO-30 Features =====
* Tayio module integrates nRF52832 and antenna
* Simple and Low Power
* Additional "industry standard" [[nblocks:rfmodulesocket|RF module socket]]
* Miniature Li-Ion battery connector (optional)
* [[https://developer.mbed.org/platforms/?tvend=11|mbed]] compatibility supports BLE and easy development (use [[https://developer.mbed.org/platforms/Nordic-nRF51822/|Nordic nRF52-DK]] platform)
* [[https://www.nordicsemi.com/eng/Products/Bluetooth-low-energy/nRF5-SDK-for-Mesh |nRF5 SDK for Mesh]]
* [[https://www.nordicsemi.com/eng/Products/Bluetooth-low-energy/nRF5-SDK-for-IoT |IoT SDK for applications using IPv6 over Bluetooth low energy]]
\\
=====Board Pinout=====
n-PRO-30 is a **HOST** board with four Hirose DF30-series 60-pin low profile connectors at bottom side, following the [[nblocks:nproformfactor|n-Blocks PRO form factor]].\\
{{:nblocks:n-pro-30-02.jpg?300|}}
{{:nblocks:n-pro-30-nbusa.jpg|}}
{{:nblocks:n-pro-30-nbusb.jpg|}}
{{:nblocks:n-pro-30-nbusc.jpg|}}
{{:nblocks:n-pro-30-nbusd.jpg|}}
\\
\\
\\
===== Getting started=====
===Blinky using Nordic SDK===
*Follow the first part of this [[https://devzone.nordicsemi.com/tutorials/7/|tutorial]]
*Download and install [[https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads | GNU Arm Embedded Toolchain]]
*Update the PATH variable(s) to include the GNU tools, something like:
C:\Program Files (x86)\GNU Tools ARM Embedded\7 2017-q4-major\bin
*Test the path by typing
arm-none-eabi-gcc --version
*Download and UNZIP in a convenient directory [[https://www.nordicsemi.com/eng/Products/Bluetooth-low-energy/nRF5-SDK |nRF5 SDK Software Development Kit for the nRF51 Series and nRF52]]
*Download and UNZIP in a convenient directory the build tools from [[https://github.com/gnu-mcu-eclipse/windows-build-tools/releases | here]]
*Update the PATH to include Build Tools directory, or copy the .exe files from .bin directory to blinky project directory
*Set the toolchain path in **makefile.windows**, located in
/components/toolchain/gcc
*It should be something like:
GNU_INSTALL_ROOT := $(PROGFILES)/GNU Tools ARM Embedded/4.9 2015q3 // Toolchain path
GNU_VERSION := 4.9.3
GNU_PREFIX := arm-none-eabi
* Copy the .exe files from .bin directory to blinky project directory
* Edit main.c, changing the GPIO line that is connected to the LED:
#include
#include
#include "nrf_delay.h"
#include "boards.h"
int main(void)
{
NRF_GPIO->DIRSET = (1 << 17); // GPIO17 output,n-DAP LED
/* Toggle LED */
while (true)
{
NRF_GPIO->OUTSET = (1 << 17); // GPIO17 HIGH
nrf_delay_ms(100);
NRF_GPIO->OUTCLR = (1 << 17); // GPIO17 LOW
nrf_delay_ms(100);
}
}
* Open command-line and change directory to
\examples\peripheral\blinky\pca10040\blank\armgcc
*Run
make
*Program the Flash Memory n-BLE with the created ''.bin'' file:
F:\prj_soft\nRF5_SDK_12.3.0_d7731ad\examples\peripheral\blinky\pca10040\blank\armgcc\_build\nrf52832_xxaa.bin
\\
\\
===Blinky with mbed online compiler===
* Select target ''Nordic nRF52-DK''
* Create a blinky program like below
#include "mbed.h"
DigitalOut led1(P0_17);
// main() runs in its own thread in the OS
int main() {
while (true) {
led1 = !led1;
wait(0.05);
}
}
* Program the Flash memory with the created ''.hex'' file
\\
\\
=====Flash Memory Programming=====
====Programming with Nordic nRF52-DK board====
* [[https://www.nordicsemi.com/eng/Products/Bluetooth-low-energy/nRF52-DK |nRF52-DK]] can be used as SWD programmer.\\
* A DIY adaptation cable is needed.\\
{{n-pro-30-15.jpg?600}}\\
* nRF52-DK appears as a USB DISK. Just drag and drop the file created from compiler to the disk.\\
* nRF52-DK can use both ''.hex'' and ''.bin'' files.\\
* mbed on-line compiler produces ''.hex'', while GCC produces ''.bin'' and ''.hex''
\\
=====USE-CASE examples=====
*BLE Beacon Humidity & Temperature Sensor
*BLE Beacon Environmental Sensor
*LoRa Sensor with BLE Commisioning
*BLE simple Beacon for Localisation
\\
=====Related articles in this Wiki=====
*[[ ]]
{{tag> RF CPU nblock BLE nsensorRF}}