ARDUINO NANO 33 BLE SENSE - Review

Table of contents

RoadTest: ARDUINO NANO 33 BLE SENSE

Author: misaz

Creation date:

Evaluation Type: Development Boards & Tools

Did you receive all parts the manufacturer stated would be included in the package?: True

What other parts do you consider comparable to this product?: Arduino Nano 33 IoT and other development boards with ARM Cortex-M MCU.

What were the biggest problems encountered?: Improperly calibrated temperature sensor.

Detailed Review:

Introduction

Welcome to reading my review about Arduino Nano 33 BLE Sense. In this review I point multiple aspects of Arduino Nano 33 BLE Sense, nRF52840 microcontroller present on this board, onboard sensors, available development environment, available software and libraries, documentation, and some others. This review is separated to multiple blog post presented in following table of contents. There are three kinds of article – tutorial, project, and review. Tutorial is written as detailed step by step tutorial which show how to use this Arduino in some ways. Projects show and describe projects which I have done for testing purposes. And finally, there are “Review” chapters which described aspects of board and contains my thoughts about this board.

 

Table of Contents

 

 

 

Summary

Arduino Nano 33 BLE Sense is good development board with many onboard sensors. It is ideal if you want to develop Bluetooth Low Energy application or application with some of included sensor. Ideally combination of both. It has no Wi-Fi. If you need Wi-Fi, you must take Arduino Nano 33 IoT instead and take in account that Arduino Nano 33 IoT has no sensors. Arduino development environment is very easy. Even complicated things like BLE are wrapped into very user-friendly libraries. Disadvantage of Arduino environment is lack for debugging support, extremely slow compilation and uploading to board. Board have microcontroller from Nordic, and you can develop without Arduino stuff if you want. Board has exposed Serial Wire Debug pins so you can utilize debugging and fast programming in this way If you have sufficient knowledge. It is big contrast. You can develop in extremely simple environment with Arduino tools or in extremely complicated environment with Nordic tools. There is nothing in middle. To summarize: I like this board very much and recommends it to everyone interested in designing with modern generation of Arduinos.

 

Score

CategoryProsConsScore

Development board

  • Form factor
  • Castellated holes

  • Possibility for connecting NFC antenna

  • SWD pins exposed

  • Pins for NFC antenna exposed

  • No onboard SWD/JTAG programmer
  • Most of exposed GPIOs operation interfere with BLE radio
  • Interrupt signals from sensors are disconnected.
  • Bugs in schematic
  • Inefficient GPIOs connection
  • Limited use of many GPIOs
7/10
MCU
  • Consistent peripheral design
  • EasyDMA
  • Arm CryptoCell 310
  • Dynamic NFC tag
  • Excellent BLE support
  • Only single core
  • Lot of GPIOs cannot be fully utilized
  • No secure storage for cryptography keys
9/10
Sensors
  • Number of sensors
  • High accuracy and reliability of gesture sensor
  • Temperature sensor improperly calibrated (probably apply to only my board)
8/10
Software
  • Ease of development on Arduino Platform
  • Consistent libraries design
  • Segger Embedded Studio
  • Good integration of OpenOCD in SES
  • Consistent design of SDKs
  • Support for all drivers in SDKs
  • Slow compilation in Arduino IDE
  • Slow uploading firmware to board from Arduino IDE
  • Very few debugging opportunities on Arduino platform
  • nRF SDK is hard to understand
  • No low-level API for accessing peripherals (only registry level, and then HAL)
  • nRF connect SDK compilation for Arduino Nano 33 BLE does not work
  • No CryptoCell library from Arm
6/10
Documentation
  • User friendly documentation for Arduino
  • Comprehensive documentation for sensor
  • Mostly complete and useful documentation for MCU
  • Insufficient and hard to find documentation for Nordic SDKs
8/10

 

Roadtest Score Mapping

CategoryIncluded sectionWeightScoreFinal score
Product Performed to ExpectationsDevelopment board0.40.798/10
MCU0.3
Sensors0.3
Specifications were sufficient to design withDocumentation0.80.768/10
Software0.2
Demo Software was of good quality110/10
Product was easy to useDevelopment board0.20.77/10
Software0.4
Documentation0.4
Support materials were availableDocumentation10.88/10
The price to performance ratio was good0.99/10
Anonymous
  • Nice explanation.

    Arduino also have a Command Line Interface to help compile, link and deploy application:

    https://blog.arduino.cc/2020/03/13/arduino-cli-an-introduction/

    https://github.com/arduino/arduino-cli

  • Hi, thank you for reading my review, feedback and comment.

     

    When using SWD/JTAG there are no bootloader needed. SWD/JTAG controller is hardware part of ARM core. They are no implemented in software and works under all circumstances without any bootloader needed. You can use this method for controlling target MCU no matter if it runs any bootloader or it just run native application and no bootloader or it runs program which crashes at first instruction. This method will almost always works. Using this approach, flash memory contains application binary stored directly and there are no booting related code. First executed instruction when MCU starts is first instruction in your application (instruction at adress defined by reset vector).

     

    Nordic provides MCUboot (https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/mcuboot/index.html) bootloader which is opensource, used by many vendors including Nordic and I consider it industry standard. It is standard part of their Connect SDK. It supports many more features than just flashing firmware onto chip. It supports for example checking digital signatures of firmware before boot for preventing booting malformed or corrupted firmware. I am not sure if it supports UART deployment only but most probably there are some USB support.

     

    I think It is possible use Arduino bootloader to deploy non-Arduino compiled application, but this most probably requires some linker script modification because some addresses would differ due to different placement in flash memory. This also apply for using MCUboot. While these requirements are documented for MCUboot well (and you can find examples of valid linker scripts as part of Connect SDK) Requirements for Arduino bootloader are most probably non documented by Arduino (because almost nobody is interested in it), so I recommend using MCUboot if you want develop using SES and deploy code with bootloader instead of SWD/JTAG interface.

  • Very nice overview of how to get started with the SES IDE and the nrf SDK with the nano BLE 33.

     

    One question I have is regarding the uploading of the new application code onto the nano BLE 33, using the nrf Bootloader that you used (which requires soldering to use the J-link or equivalent).

     

    Would it not be possible to find a different bootloader that will work with the USB port to upload the new (non-Arduino) application code one creates with SES/nrfSDK - sort of a similar concept to the one used with the Arduino IDE?  Of course this would not allow the real-time debugging that you demonstrated but it seems to me there must be an easier way (with the correct "USB-capable" bootloader) to upload new "code generated by the SES/nrf tools", preferably using the USB interface. Or maybe one could even use the Arduino bootloader to install the new "non-Arduino" application?

     

    As you obviously have a good understanding of the different alternatives, maybe you could comment on whether there are any other possibilities to upload "non Arduino" (ie created by SES / nrf SDK toolchain) applications.

     

    I would love to hear your views / comments on this.

     

    Regards

     

    Gerard

  • Good coverage of the (many) features of this small board.  I've been playing with this board and will review your documents to see what I've missed.  The combination of the m4 chip and the number of sensors included gives a lot of options for using this.

  • Nice test report.

     

    I would like to see some more detailed testing using each sensor.

     

    I am curious how well the magnetometer, gyroscope and accelerometer work to keep track of 3D space dynamics.

     

    DAB

  • Since 2021-04-10 my review and all it's parts are final and complete. I updated links in table of contents in every blog post.

     

    I welcome any (even negative) feedback about my review or recomendations for making future reviews better.