Can the NANO IOT 33 run Full Bluetooth (NOT BLE)?

The Arduino IoT33 is very intresting module. On one small PCB are integrated Cortex M0 SAMD21 microcontroller and communication module NINA W102. In originnal version of ARDUINO NANO IoT33 standard serial Blueotooth is not supported but only BLE (Low Enegy). This is no limited by hardware but only by the software implemented in NINA module.
When I carefully read the datasheet of NINA 102, I've realized that the module is based on ESP32 processor and when I've diged on the web I found the information that it is compatible with ESP32 Dev Module in Arduino IDE.

https://www.u-blox.com/sites/default/files/NINA-W10_DataSheet_(UBX-17065507).pdf

https://www.u-blox.com/sites/default/files/NINA-W1_SIM_(UBX-17005730)_1.pdf

From datasheet: „It is possible to use Arduino electronics platform on the NINA-W10. The Arduino platform and open source community provides the possibility to accessa lot of third party hardware such as displays and sensors.” – good news :slight_smile:

Let's start:

1. First, the ESP32 module should be added to Arduino IDE, please do it according to instructions publicated here:

If you do not have installed Arduino Nano IoT33 in your Arduino IDE please find it in board manager and install.

2. The Arduino NANO IoT33 board is very good designed, tests point of serial Communications with NINA 102 module are led out on the bottom side.

The Eagle Project of it is possible to download from the link below:

https://download.kamami.pl/p576016-Nano33IoT.zip

When you localized all test points, you should connect it for any serial converter to TX and RX line. In my case I used standard CH340 chip, USB to serial converter. The GPIO 0 line should be connected to GND but only for programming (using a switch is good idea).

a) Programming the ESP32 (NINA W102) with Arduino:
From Tools select board: ESP32 DEV MODULE
Rest of settings are here:

2.jpg

As a Communications port you should select the external serial port connected to test points, is not a serial port of Arduino IoT

b) Software for NINA W102
For making a test I suggest using a code from the side listed below:

c) Programming
From Arduino IDE please select „load program” and when you see in the window … connecting:

3.jpg

• PUSH and HOLD RESET on the Arduino NANO IoT33 board
• Connect GPIO 0 to GND all the time

After about 90 seconds the programming is done …. and you can release the RESET and GPIO 0

d) Checking the results of programming

• run from ARDUINO IDE ->TOOLS -> Serial Port Monitor
• PUSH and HOLD RESET on the Arduino NANO IoT33 board

To start NINA module is nedded to push and hold RESET button of IoT33 board becasue the RESET pin of NINA 102 module is controlled directly by CORTEX M0 chip. But in the next part of this tutorial I show you how to program Cortex for cooperation with NINA. On the Serial Port Monitor you should see several messages from ESP32 (NINA) bootloader and from program:
The device started, now you can pair it with bluetooth!
And now is possible to pair BT device „ESP32test” with phone or computer and test it.

3. IoT33 programming to communicate with NINA W102

On this site:

I found some information about pin maps and internal connection between CORTEX M0 and NINA W102.
The next step is a programming CORTEX M0 chip and send data to NINA W102 module.
From Arduino IDE please select Arduino NANO IoT33 compile and load program as below.

void setup() {

     pinMode(NINA_RESETN, OUTPUT);          
     digitalWrite(NINA_RESETN, HIGH);
     Serial.begin(115200);
     SerialNina.begin(115200);
}

void loop() {

  if (Serial.available()) {
  SerialNina.write(Serial.read());}

  if (SerialNina.available()) {
  Serial.write(SerialNina.read());}
}

After successfully programming you can pair with BT device as a serial communication device and read the data sending from CORTEX M0 to NINA W102.

Guys, I know that the tutorial is not a perfect but together we can improve it.
Good luck :slight_smile:

3.jpg

2.jpg