I welcome you to this part of my review about Arduino Nano 33 BLE Sense. My review is split into multiple blog posts. You can find all my thoughts about this Arduino and related parts in chapters with name beginning with "Review" like this one. There are also articles describing test projects which I have done for gathering experiences with board and some tutorials. Main page of review contains summary and final score. Following Table of Contents contains links to other parts of my roadtest review.
Table of Contents
- Introduction
- Review of Development Board (this article)
- Review of Onboard Sensors
- Review of Microcontroller and BLE Module
- Review of Software
- Review of Documentation
- Tutorial 01: Accessing Sensor Values
- Tutorial 02: nRF52840 Application without Arduino IDE
Review of Development Board
Welcome to my review about Arduino Nano 33 BLE Sense development board. In this article I will describe board itself. I will not describe onboard sensors, details about MCU and other related parts like software and documentation. They are described in deep details in another chapters. In this chapter I will point to design of board, its features and I will compare with other development boards within Arduino family and boards outside Arduino world.
Arduino offer multiple new Arduinos Nanos. I will refer to them multiple time in this article. All of them are pin compatible with original Arduino Nano and differs with MCU type, connectivity options and onboard sensors. One of them is previously roadtested Arduino Nano 33 IoT which brings Wi-Fi connectivity to Arduino family. Second entry to Arduino Nano family is Arduino Nano Every which is successor of original Arduino Nano. It has newer ATMega used as main MCU but has no connectivity and finally, it is very cheap. This roadtest is about Arduino Nano 33 BLE which brings BLE connectivity but has no Wi-Fi. Main MCU is ARM Cortex-M4 in nRF52840 chip. There are two variants of this board. One of them has no “SENSE” in name and second has “SENSE” in name. Boards have same PCB, but SENSE variant has soldered additional 4 sensors onto it. You can see footprints of sensors on non-SENSE board, but sensors are not soldered onto it.
Overview and Board Hierarchy
Structure of Arduino Nano 33 is little bit more complicated to understand than structure of most common Arduinos like Uno or Mega but it has lot of benefits and brings new features like Wi-Fi (on Arduino Nano 33 IoT) or Bluetooth in case of road-tested unit. Board does not contain soldered microcontroller directly and MCU is not a an old AVR. Board contains soldered module. In case of roatested unit, module is u-blox Nina B306. MCU is inside this module and is covered by shield. Bluetooth antenna is also part of this module. Except u-blox Nina B306 module board contains 5 sensors, reset button, power led, two user controllable LEDs, one user controllable RGB LED, power regulator and micro USB connector which can be used for both programming and communication with PC over emulated serial port. Custom USB communication is also possible.
In my review I will refer whole Arduino 33 Nano 33 BLE Sense as “development board”. It is thing in red box on following picture:
Onboard u-blox Nina B306 module I will refer as “BLE module” and it is following thing on board.
As I have mentioned MCU is on module under the shield. I will refer nRF52840 as “MCU” in this review.
There are lot of interesting sensors on board. At the first look it is hard to determine which one correspond to specific chip on board because there are no or only few letters on them due to small size. Following picture shows HTS221HTS221 temperature sensor from ST:
Following picture show barometric pressure LSP22 sensor from ST:
Following picture show MP34DT06J microphone from ST:
Following picture show LSM9DS1 gyroscope, accelerometer, and magnetometer from ST. This sensor is only sensor which is also present on non-SENSE variant of board.
And finally, there are APDS9960 proximity, ambient light, RGB and gesture sensor shown on following picture. This is only sensor which does not come from ST. It comes from Broadcom but originally was designed by Avago technologies. Stories about merging Broadcom and Avago are complicated so simply expect that datasheet is available at Broadcom website but contains Avago logo and copyright notices.
Now you may notice that I skipped biggest black chip. It is voltage regulator MPM3610 from Monolithic Power Systems. Chip is large because it contains integrated inductor and two capacitors which are usually included as external components next to smaller regulator on other boards. Power regulator is highlighted on following image:
Except mentioned components there are passive components like capacitors, resistors, diodes and easily determinable components like LEDs, button, and USB connector.
There is one unsoldered component. From the schematics we can determine that it is probably U4 which is referred as “Crypto Auth” in schematics. On Arduino Nano 33 IoT (not BLE) there is ECC608 chip with cryptographic features. The reason why the chip is present on IoT board and it is not present on BLE board is different main MCU. IoT board has Atmel SAMD21 chip as main MCU and SAMD21 has no integrated cryptography engine or secure storage. In opposition BLE board has nRF52840 as main MCU and this MCU contains integrated cryptography engines so it does not make lot of sense to use external one. I am not sure why they did not remove it completely from board. Sometimes development boards contains unsoldered optional advanced or less used components which you can solder manually if you want to use them, but in this case it completely does not make sense to soldering it and it is waste of PCB space. For example, this space could be used by placing some interesting 6th sensor.
Jumpers and Test Points
There are some interesting features of board. All components are soldered on top side of board and board has castellated pins on sides which means that you can easily solder this Arduino on your own PCB. At the bottom side, board contains jumpers for changing powering source to battery, connecting NFC antenna, jumper for connecting 5V to GPIO port, test points for SWD programmer/debugger and two test points with exposed USB D+ and D- signals. You can solder wires on these pads if you want. You can probably reliably use them also in case of using board on your own PCB by placing the same solder pad and applying solder mask to this space.
Power Regulator Bypass
Board contains power supply regulator to convert input voltage (usually 5V from USB) to 3.3V which is needed for running main MCU. There is jumper for bypassing power regulator. By default, it is connected, and you can cut them to disconnect regulator from powering board. After cutting the jumper you can connect external power supply to 3V3 pin. I have not tried this. Remember that any modifications on your board you do on your own risk and always check schematic before doing anything, especially when connecting external power supply.
NFC Antenna
You can connect NFC antenna to board if you want to use it as dynamic NFC Tag. NFC Tag should be used for example for BLE pairing. If you want to use it, you must solder NFC antenna to following pins.
Also, I have not tried it, so you can do that on your own risk and always check schematic before doing anything.
5V Power
Last jumper is used for connecting 5V to GPIO. By default, 5V from USB is not connected to GPIO port. I think it is because chip is 3.3V so exposing 5V may be dangerous. But if you want to expose 5V on connector you can solder it. Note that 5V comes directly from USB so it usually won’t be exactly 5V and when you power your board externally (with USB disconnected) there are no voltage even if you solder this jumper.
Similarly, as previous examples – I have not tried it, so do it on your own risk and always check schematic before doing anything.
SWD
You can solder wires which you can connect to SWD Debug Probe. SWD is exposed on the bottom side of board. You can use these pins for flashing firmware to the board or for debugging your application in development environment which supports debugging.
How to use this feature I will show in tutorial later in this review.
USB Test Points
There are two test points exposing USB D+ and D- signals. Because board come with flashed bootloader you can use this test points to program board over USB but without need to attach USB cable if you do not want to use SWD for some reason. These test points are useful when you want to flash lot of boards soldered onto your own PCB in mass production. You can also use them for troubleshooting USB communication using logic analyser.
Silkscreen and Onboard Labels
I have multiple notes about board silkscreen and onboard labels. My first notice is that pin labels are written only on bottom side and no labels are on the top side. This makes sense because there is no free space for labels on the top side. Depending on your use case bottom labels may be useful to you, otherwise you can use pinout available online. Pin labels on bottom side are very near to pins. If you solder pinhead, they will be partially hidden by pinhead from the most angles of view. I also worry about silkscreen quality. At some places it looks like cream on pie. Some letters are deformed. It is very hard to read “ROHS COMPLIANT” and “DESIGNED AND ASSEMBLED IN ITALY” because font is small, and silkscreen is not so good. Also, vias are not covered by silkscreen and there are lot of vias under letters. For example, label RX0 completely mises quarter of X letter because of via placement. Label “D13” is also very hard to determine. Currently I have on the desk some other development board (Azure Sphere, Raspberry Pi and Digilent Basys 3) and all of them have silkscreens significantly better. If someone who designed this Arduino reads this review, consider do not placing vias and silkscreen labels on the sample place or choose better PCB house. This issue probably does not affect all boards because photos of board on official website shows board with vias covered by silkscreen. I think this apply only to boards manufactured in some factory. Due to high demand on Arduinos I expect their PCBs are manufactured in multiple PCB houses and their quality vary.
There is also good thing about silkscreen. GND pins were visualised and they were visualised on both sides of board. It is very useful and prevents you from doing connection mistakes.
My last note is about visible mouse bits on the borders of board. They are used to separate and make breakable multiple boards on panelised PCB in factory. They are very visible in comparison with other boards. You can also see them on previous image.
Power Regulator
Board has integrated power regulator which converts input voltage to 3.3V. It is very good that allowed range for input voltage is very high. It is up to 21V so you can use 5V, 9V or even 12V common power supply if you do not want to power board from USB. You can also use battery with voltage varying based on charge level. Power regulator is not an LDO, but it is synchronous step-down converter. As I already mentioned it has integrated inductor which was probably main reason for his selection. Maximum output current from regulator (not a board!) is 1.2A. Interesting is efficiency of regulator. Efficiency is visualised in regulator datasheet and ranges between 55 to about 90 percent and (mainly) depends on regulator load. In normal usage expect efficiency about 60% which is not so good but is also not so bad. Efficiency is better than you can get from any LDO in this use case. The main reason for selection of this regulator probably was integrated inductor rather than efficiency at low loads. Interesting is that while regulator can output 1.2A only 0.025A (25mA) is prohibited by pinout document. I think you can source more current from power pin (not a I/O pin!) to power external sensors or something else. On forum I found the someone tried experiment with sourcing 0.67A from the same regulator on IoT (not BLE) board and he noticed that there are no issues with it. I personally think that current up to 250mA is OK, but I still recommend trying to comply with documentation as much as possible even in case when it is so strict.
If you want to bypass regulator, you can do that using already mentioned jumper. Then you must properly power board with voltage between 2.4V (module and most sensors need 1.8V, but APDS-9960APDS-9960 requires 2.4V) to 3.3V. I have not tried this modification of board, so (as always) do it on your own risk.
Onboard Signals and Wires
Arduino Nano 33 BLE Sense has 5 sensors. All of them are connected over one shared I2C bus to the main MCU. Some sensor outputs also some interesting signals like data ready signal or interrupts. At the beginning let’s say that MCU has limited amount of GPIO ports. There are (only) 48 GPIO ports but not all of them are exposed from BLE module. BLE module expose only 41 of them. As expected, some pins are reserved for special uses and there are some limitations on some pins. I analysed pin usage in schematic, and I found some small issues.
My first note is about sensors powering. Most sensors are not powered directly by 3.3V from regulator (+3V3 in schematic) but they are powered from GPIO pins (signals VDD_ENV and MIC_PWR). This usually works but can violate maximum current drawn from I/O pin. MCU and BLE module datasheet restrict maximum current drawn from single GPIO port to 14 mA. So, current consumption of 9-axis IMU, Barometric pressure and temperature sensor must not exceed 14 mA in total. Similar restriction is to PDM microphone which is powered from dedicated GPIO pin. According to sensors and microphone datasheets all restrictions are met, and sensors should not consume more than 5mA in total so technically the design is fine, but I am still surprised by it a little. This design enables you to power down sensors but because of low power consumption (except 9-axis IMU they consume current about 10 uA), there is no need for this, I think. This approach made powering signal routing more complicated and consumed valuable GPIO pins. Another interesting thing on it (and this is probably design bug/mistake) is that the same approach was designed to power APDS-9960APDS-9960 sensor (ambient light, proximity, colour, and gesture). Schematic contains wire connected to GPIO named as APDS_PWR but this wire is never used. APDS9960 is powered directly from +3V3 rail.
I checked that all interesting signals of all sensors are connected to MCU and I found that some of them are not. It is for example DRDY (data ready) signal of HTS221HTS221 temperature and humidity sensor. You must poll status register to check if measurement and conversion has finished yet. Similarly 9-asix IMU signals DRDY_M (data ready for magnetometer), INT_M (interrupt of magnetometer), INT1_A/G (accelerometer and gyroscope interrupt), INT2_A/G and DEN_A/G (data enable for accelerometer and gyroscope) signals are not connected. You (or library you have used) must use polling method of checking availability of data. Microphone has all signals connected. LR signal of microphone is connected to high. APDS-9960APDS-9960 is only sensor with connected interrupt signal to MCU.
Similarly, to APDS_PWR wire there are second unconnected wire (Eagle show warning in error checking window for both wires). It is REF wire on expansion header which is reference input for ADC. But this is not a mistake. nRF52840 in opposition to other Arduinos Nanos does not support external voltage reference for ADC measurements. It supports only VCC and internal reference. Both sources can be reconfigured using gain. So, on this Arduino you must configure ADC reference in software from limited options instead of using external reference of any value you want.
Expansion header
Expansion header on Arduino Nano 33 BLE Sense is theoretically compatible with GPIO header on any other Arduino Nano. I already mentioned some restrictions like need for soldering solder bridge to get 5V on expansion header.
The good thing is that you can map any peripheral to any port. For example, on original Arduino Nano you can use MISO signal of SPI bus only at D12. On Arduino Nano 33 BLE Sense you can (with some software stuff) remap any feature to any pin you want. You may know this approach if you have worked with PIC microcontrollers. It is similar concept. This has also another benefit. You can use more peripherals of the same type at once. For example, usually there are only one SPI bus exposed on header, but on this Arduino, you can theoretically use all 4 SPI buses and map their signals to any pin you want.
There is one very bad thing about expansion port pin mapping. Except A0, A1, D7, D8, D9 and D12 all pins have mentioned special note in MCU datasheet that recommended usage of pins is “Standard drive, low frequency I/O only”. This restriction applies to lot of pins of MCU but not to all. There are also note describing what “low frequency I/O” means. Low-frequency signals are signals with frequency less than 10kHz. First time I have no idea what the purpose for this restriction is. On the Nordic forums I found the answer https://devzone.nordicsemi.com/f/nordic-q-a/49383/nrf52840-gpio-drive-strength-how-to-interprete-standard-drive-low-frequency-i-o-only. Non-recommended usage may cause interference between high frequency signal and RF part of MCU. In other words, BLE performance may decrease. In different thread some users also mentioned that non-recommended usage may lead to BLE certification failure. Double check this if you want to do this kind of certification for your final device. This is very strange part of Arduino Nano 33 in comparison with other Arduino Nanos, I think. You can use these pins for example for UART at speed 9600 bauds (because 9.6 kHz < 10 kHz), but you cannot use them for UART with baudrate 115200 (because 115.2 kHz > 10 kHz) or normal I2C (100kHz or 400kHz). Similarly, you should not use these pins for driving LEDs because “Standard drive” mode has significantly limited output current compatibility. If you want to design your app with compliance to Nordic recommendation, you can freely use only A0, A1, D7, D8, D9 and D12. These pins are connected to GPIOs without this restriction. Onboard signals like SDA and SCL of I2C are also connected using pins without this limitation. In fact, you can completely ignore it and use pins for whatever you want If you do not worry about compliance with datasheet. Pins technically supports all drive modes and all signals, but it is just not recommended. I worry about GPIO pin choice because while most pins exposed on expansion header have this restriction. Board does not utilize pins P0.07, P0.11, P0.12 and P0.20 of BLE module (and MCU) and all these pins has no restrictions. Instead of them, Arduino exposed pins with restriction. If I take in account that additional pins (without this restriction) are “wasted” for powering sensors, I think that Arduino could spend more time with selecting which pins to expose. But most probably selection was limited by space of board and signals routing on PCB.
Missing features
One big missing feature of this Arduino is missing onboard debugger. Most development boards with ARM Cortex-M MCU has onboard debugger which enables you debug your application without need to use external debugger (like dedicated J-link). This enables you insert (hardware) breakpoints to your code and stepping in code. Arduino never supported this but there are exposed SWD pins for connecting external debugger at the bottom of board. Support for debugging using external probe is implemented in beta version of Arduino IDE at the time of writing this review.
Comparison with Other Arduinos
In the following sections I will briefly compare with other Arduinos. Following sections are very long so I recommend skipping sections you are not interested in. I will briefly compare with AVR based and non-AVR based Arduino. I will also compare with non-Arduino boards with nRF52840 chip and with some other non-Arduino non-nRF52840 sensors-oriented development boards. I cannot compare with all boards on the market because there are thousands of it, and it is impossible to make thorough comparison with every existing development board. I will target boards with BLE connectivity, boards with lots of sensors and combination of both. I briefly browsed over internet and found some boards from some vendors, but I did not research extremely deep. Probably you can find lot of better or even worse boards than Arduino Nano 33 BLE Sense, but I compared to only boards mentioned in this article. I do not own any of boards mentioned here so it is only feature and basic info comparison.
At the beginning I will compare with Arduino Nano family. I will compare with Nano 33 IoT, Nano Every and original Nano.
Comparison with Arduino Nano 33 IoT
Arduino Nano 33 IoT has the same form factor and pinout as roadtested BLE SENSE but it has different MCU and BT/Wi-Fi Chip structure. Arduino Nano 33 BLE has one single chip (nRF52840) but IoT variant of Arduino Nano has functionality split to the two chips. One of them is SAMD21 which acts as main MCU. Second MCU is part of Wi-Fi module and it is ESP32. ESP32 is not designed to be user accessible on this Arduino but if you are experienced enough you can flash it with your own firmware and use them as secondary (or even as primary) MCU on this board. ESP32 on this board was designed to provide Wi-Fi connectivity (most probably it is controlled by AT commands on UART on this board) to the main MCU (SAMD21). Except Wi-Fi It also supports BLE. It also supports Bluetooth in BR/EDR modes. These modes also known as Bluetooth classic are not supported by Arduino Nano 33 BLE Sense because nRF52840 does not support this. SAMD21 is Cortex-M0 in comparison with M4 in nRF52840 and it is clocked on lower frequency (48 MHz on SAMD vs 64 MHz on nRF). Expect that Arduino Nano 33 BLE is about 1.5x faster and much faster when processing floats because SAMD21 has no floating-point unit. Because Arduino Nano 33 BLE has less chips, less space is occupied by chips and that saved space was used for placing sensors. This means that on the IoT there are no space for sensors which are on BLE board. There are no SENSE or non-SENSE variants of Arduino IoT because no IoT Arduino can have any onboard sensors. In opposition there are external security chip. Reasons why Arduino Nano 33 BLE do not need to have external crypto sensors I mentioned above. Only sensor available on Arduino Nano is Accelerometer and Gyroscope IMU. Chip used on Arduino Nano 33 IoT is different from chip used on Arduino Nano 33 BLE and lacks magnetometer. 6 or 9-axis IMU is present on all three Arduino Nano 33 IoT, BLE SENSE and also on BLE non-SENSE.
Now I will switch from ARM to AVR Arduinos, but still within Nano family.
Comparison with Arduino Nano Every
Next entry in Arduino Nano family is Arduino Nano Every. Every is successor of original Arduino Nano. It contains newer ATMega MCU. Newer MCU is ATMega4809 which is part of the new generation of AVRs built after Atmel was acquired by Microchip. It does not follow design of old AVRs (this is very sad information to users who remember ATMega registry by heart) but has new features, usually can run on slightly higher frequencies, has lower power consumption, and there are lot of other advantages over old AVRs. As expected, performance of ATMega running at 20 MHz is significantly worse than Cortex-M4 with integrated floating-point unit running at 64 MHz in Arduino Nano 33 BLE. Arduino Every has no connectivity module but it has additional SAM11D which is used for programming ATMega4809 from USB interface over UPDI interface (this is new programming interface of new ATMegas like 4809). While there is some space on board, board has no sensors. It also does not have any 6 or 9-axis IMU which is present on all newer Arduino Nano 33 boards. The biggest advantage of this board is its price.
Comparison with Arduino Nano
Original Arduino Nano has similar properties like newer Every but featured original ATmega328 which was programmed over serial by bootloader. There were no sensors and no additional chip (except USB to UART converter). While Every is newer and better then original Nano, Nano have more than 2x higher price than Every. There is no need to buying original Nano (except some 2USD clones on Aliexpress) and his official site also recommend buying newer models or Arduino Micro.
Comparison with Other AVR based Arduinos
Comparison is very similar to comparison with Arduino Every and original Nano. Arduino Nano 33 BLE differs from legends like Uno and Mega in many things. It uses newer much more performant ARM MCU, enables you to make BLE application and have 5 modern onboard sensors. Very few of these features you can find on these (pretty) old Arduinos.
I am leaving description of Arduino world and will briefly compare with non-Arduino boards. I point three categories of these non-Arduino boards:
- nRF52840 development boards
- boards with BLE support with different chip
- development boards with lot of sensors, even without any BLE support
Comparison with other nRF52840 Devboards
There are multiple boards which usually evaluates some module and nRF52840 is part of this module. You can find them usually by searching “nRF52840” in your favourite store. Generally, there are one significant benefits of Arduino Nano 33 BLE SENSE in comparison with any of these boards. It is Arduino environment. Most boards are designed to programming without Arduino Stuff and are not compatible with Arduino Studio. Theoretically you can flash them with Arduino Bootloader after some hacking (and possibly violating Arduino licenses).
For example, there are recently roadtested Panasonic PAN 1780 Bluetooth LE Eval Kit. You can read additional detailed reviews of this platform. As a biggest advantage of this board I consider integrated onboard debugger (J-Link OB) on this board. Board has no sensors in comparison with Arduino Nano 33 BLE Sense. There are multiple expansion ports, but they look incompatible with any Arduino connector.
Next interesting source for evaluating nRF52840 is Nordic themselves. They produce two evaluation boards with nRF52840. One of them is simple USB dongle NRF52840-DONGLE, which is very basic board with no module onto it, but it has chip soldered directly onto it. It has no onboard debugger similarly to Arduino Nano 33 BLE Sense and it has no sensors. It is probably cheapest way how to evaluate nRF52840 platform. Nordic also offers advanced development kit with lot of expansion ports, onboard debugger, but no sensors. This kit has also advanced options for powering and measure power consumption using their advanced expansion board.
Another board with nRF52840 and similar (but not the same) form factor to Arduino Nano 33 BLE Nano is XENNKIT from Particle. It is similar board to Arduino Nano 33 BLE Sense, but without sensors. Instead of sensors there are additional external 2 MiB FLASH memory which you can use for storing program (or data) if it does not fit into integrated 1 MiB FLASH. There are also integrated LiPo battery charger and connector for LiPo battery. While the board has less sensors and only benefits are native battery support and additional FLASH, board is little bit more expensive at Farnell. It is also unavailable at the time of writing this review. If you need battery it may be better choice, otherwise I recommend Arduino Nano 33 BLE (Sense) rather.
Except XENNKIT there are more advanced kits from Particle, but they are more expensive. Interesting is Boron LTE kit, which except Bluetooth brings you LTE connectivity, has LiPo charger and connector and is available at Farnell (at the time of writing this review).
Comparison with other non-nRF52840 BLE Devboards
Now I move outside Arduino world and outside nRF5280 based devboards. Most of boards mentioned in this section are boards with module with some other MCU. In last years there were announced many MCUs with BLE support and almost all big vendors offer them.
At the beginning of this section I stay near AVR world. Microchip offers AVR-BLE development board which combines new generation ATMega MCU (similarly to Arduino Nano Every) and BLE module similarly to Arduino nano 33 BLE. Concept of dedicated MCU and module is like concept used on Arduino nano 33 IoT and board also features ECC chip. Board has no sensors, but it has onboard debugger. BLE module is RN4870 also from Microchip.
Near to Arduino environment you may know about ESP32. There are plenty non-Arduino devboards featuring ESP32. Some of them are just basic boards with ESP32 and pinhead only but you may find lot of boards with display, battery support, and also sensors. Lot of these boards are available on Chinese shopping sites like Aliexpress or ebay only. ESP32 also features Wi-Fi connection. ESP32 is big competitor of Arduino Nano 33 BLE and IoT because it can technically beat lot of chips by price and performance and have actively maintained Arduino port. Many of other board which beats by performance (or price) has very weak Arduino support and this can be classified as big disadvantage by most users. ESP32 also supports Bluetooth classic and do not support other common 2.4 GHz protocols like Thread or Zigbee.
If we go back to ARM world, we can mention Cypress PSoC 63 series and their prototyping boards. For example CY8CPROTO-063-BLE. These boards usually have no sensors but have onboard debugger (I provided review of the same debugger as part of my previous roadtest PSoC 6 Pioneer Kit Roadtest - Review of Programmer and Debugger ). Board and module follow similar concept to nRF52840. BLE is part of MCU and both are inside one chip and module. PSoC 63 is significantly more performant than nRF82540. It has two cores. One of them is Cortex-M4 clocked at maximum 150 MHz and there are one Cortex-M0 secondary core which can be clocked up to 100 MHz. On this chip you can offload BLE stack to Cortex-M0 core and leave CM4 free for your application or vice versa. This is quite common approach on BLE MCUs but nRF52840 has only one core. Nordic offers newer chip nRF5340 which is dual core. nRF82540 can beat PSoC 63 by software and support for non-bluetooth protocols like Zigbee and Thread. Cypress has great stack for developing applications, but I have not seen any support for other 2.4 GHz protocols.
On the market we can find lot of boards from MCU vendors basically evaluating their solutions. We can find boards from Texas Instruments, ST, and many others. These boards usually evaluate only that chip and very rarely adds some additional peripherals like sensors. Performance of these solutions vary and usually is comparable to nRF52840. Maximum working frequency is usually about 48 MHz and core types vary between Cortex-M0 and Cortex-M4. You can also find solutions with newer Cortex-M33 – for example it is DA1469x family from Dialog semiconductor. Newer Cortex-M cores can bring you new features like TrustZone for enhanced security which may be very useful in connectivity-oriented applications.
Comparison with sensor oriented Devboards
In previous sections I was targeted mainly on MCUs. At last, I found interesting board from Silicon Labs. Its Thunderboard Sense 2 board. This board also features EFR32 BLE chip from Silicon Labs. In fact, this board also matches criteria of previous section. But in opposition to boards mentioned in previous section this board also features lot of sensors. It contains 7 sensors. Board can sense temperature, humidity, ambient light, pressure, motion (gyroscope and accelerometer only) and sound. In opposition to Arduino Nano 33 BLE Sense there are air quality sensor, gas sensor and hall-effect sensor. Board has also onboard debugger. Next thing on board is external 1MiB flash extending MCU’s 1MiB internal flash. This external flash is use useful when you need to store large machine learning models as part of program. Finally, there are coil for CR2032 battery and connector for external battery. The biggest advantage of board is their price. Board price listed at official size is 20 USD and (which is about 7 USD lower than Arduino Nano 33 BLE Sense) but in real price in stores are even better than Arduino Nano 33 BLE Sense. I did not find it on fanell/Newark but competitor store lists Arduino Nano 33 BLE Sense for 34 USD and this board for 21 USD only. Disadvantage of board may be MCU which is significantly slower than nRF52840. This may limit performance of complex machine learning algorithms if you use them extensively. Second disadvantage is that board is not supported by Arduino environment. For me, it is not an issue but for most Arduino users it is.
Packaging and default software
Board is packed in paper box. Except development board, package contains handout with warranty and compliance information, stickers with Arduino logo and similar related terms. And finally, there are some antistatic foam. Package do not contain any microUSB cable. Board itself is not protected by any antistatic bag and it is also not fixed and can move freely inside box. Onboard sensors inside sensitive packages with holes probably cannot be damaged because height of BLE module and USB connector prevents touching sensors with box.
Arduino is preprogramed by bootloader and blinky app. Application uses PWM over all three RGB channels on start-up and then only user controllable orange LED blinks. I tried access its serial port, but it does not print anything, so I think it is just blinky. App is probably designed to easily verify that new device is working.
Price
Official listed price is 27 EUR without VAT for board with sensors (Arduino Nano 33 BLE SENSE) and 17.5 EUR for board without sensors (Arduino Nano 33 BLE). I think that both boards are slightly overpriced similarly to other Arduinos but in overall, price is acceptable.
Summary
Arduino Nano 33 BLE Sense is good board with lot of possibilities to make BLE and sensor intensive application. Board has good powering options and contains powerful MCU, but there are some design mistakes.
Top Comments