Go Down

Topic: What Shield is needed get Wifi capabilities with the Nano 33 BLE (Read 1 time) previous topic - next topic

jerteach

I am new to the Arduino world coming from Particle.io (Not open-source enough for me). I need to connect a wifi capable board/shield to the Nano 33 BLE. I know that the Nano 33 IOT has wifi just fairly sure I can't stack the 2 boards, what Arduino Wifi capable shield(s) could I use with the Nano 33 BLE?


First of all, I would like to do some web page communication between the Nano 33 BLE and the Chrome browser, like I have done here with the Particle Photon https://github.com/hpssjellis/particle.io-photon-high-school-robotics/tree/master/a06-web-app. Basically I would like to make a Nano 33 BLE peripheral device (BLE server) that can ALSO communicate with a webpage. This would create some data flow between a BLE network and a Wifi network.


Then I would like to get working, a websocket fast communication nodeJS chat server like I have at https://github.com/hpssjellis/Particle-Spark-Core-Photon-Websocket-Hack  (Note: This websocket is very old, insecure and needs updating). This allows me to send single character commands to the microprocessor with only a 20 ms delay. (Good for controlling toy cars.)


Any suggestions or interest in this project?


Juraj

one option: esp8266 module with AT firmware 1.7.1 and my WiFiEspAT library in Nano BLE.

jerteach

one option: esp8266 module with AT firmware 1.7.1 and my WiFiEspAT library in Nano BLE.

Thanks Juraj, that repo looks amazing, have you tried it yet with the Nano 33 BLE?


The more I research about the Nano 33 IOT the more I wonder if it could be a BLE peripheral device (BLE server)? I don't think it can, but thought I would ask, as that would solve my issue of BLE with Wifi.

...

Just replied to this which seems to suggest that the Nano 33 IOT will solve both issues just using bluetooth 4.2


https://forum.arduino.cc/index.php?topic=634152.msg4385416#msg4385416


Klaus_K

The Nano 33 IoT can be a BLE peripheral device.

The Nano 33 IoT supports both Bluetooth LE and WiFi but not at the same time. For many applications this is not an issue, but it sounds like you want it at the same time.

Having WiFi and BLE running at the same time is possible with the NINA-W15, but Arduino did not choose this one. Even with these boards WiFi and Bluetooth are not sending signals at the exact same time. They have one radio and use the same frequencies, so there would be interference. Bluetooth LE sends packets with large intervals (compared to the packet length), so the module can send the packets "interleaved". Bluetooth LE uses frequency hopping on top of it, to avoid interference with WifFi channels that might be actively sending, so only a packet here and there is lost.

So, your application could switch between WiFi and BLE. It is not as fast as the NINA-15 and might not work for every use case, but you can investigate hiding the fact for the user. After all, do you need to look at the webpage and your phone at the same time?

If you do, you could always add a module or connect the two Nanos via SPI. Then one can handle BLE and the other WiFi.

jerteach

Thanks Klaus_K for the informed reply. I will have to purchase a few Nano 33 IOT's to go with my Nano 33 BLE Sense. The Wifi and BLE not working at the same time might be an issue but it sounds interesting enough that I will have to test it out. If we are talking microsecond delays I don't think it will be a problem, but if one shuts down the other for 2-10 seconds that would be an issue.

I teach robotics and do a fair bit of robot cars with websocket connections to cell phones running Machine Learning Programs see this youtube I am trying to make a more advanced course that uses both BLE and Wifi to offer the best of both worlds for my students to control multiple objects.

These things typically take me a few years to get working.

Juraj

Thanks Juraj, that repo looks amazing, have you tried it yet with the Nano 33 BLE?

yes I tested it with Nano 33 BLE and the esp-01S which requires only 4 wires as you can see on the picture with the MKR

Klaus_K

Microsecond delay will not be possible. This only works with the new NINA modules where the firmware was developed to allow both protocols to run at the same time. If it takes you a few years to get this working you might be able to switch to a board with the NINA-W15 in a years time when somebody creates a new Arduino. Most if not all development you do now can be easily transfered.

Juraj

Microsecond delay will not be possible. This only works with the new NINA modules where the firmware was developed to allow both protocols to run at the same time. If it takes you a few years to get this working you might be able to switch to a board with the NINA-W15 in a years time when somebody creates a new Arduino. Most if not all development you do now can be easily transfered.
the limitation to use only WiFi or Bluetooth is only a problem of the Arduino NINA firmware. directly programmed esp32 can switch between BLE and WiFi.
the NINA-W15 has AT firmware which solved fast switching or is a modified esp32 with two radios

Juraj


@jerteach, if you use the Nano 33 IoT, it has a SAMD MCU and an ESP32 as BLE and WiFi slave.
if you use Nano 33 BLE with esp-01S attached, you have an nRF52 MCU with BLE as master and an esp8266 MCU with WiFi as slave.

jerteach

Thanks Juraj. I will have to try both systems and see which one works best, for my situation. Great to have options.

It will take a bit to get my parts, so if in the mean time anyone wants to setup a chat server that allows webpage control to pass information to and from a BLE network either using a few Nano 33 BLE's one with the esp-01S attached.

The other configuration would be the same chat server on one Nano 33 IOT also setup as a peripheral device (bluetooth server) and another Nano 33 IOT as the central device (bluetooth reader).


If you send a command on the chat server the same thing should show up on both the bluetooth devices. I typical send "A" on my chat server to turn on the built in LED and then "B" on the chat server to turn off the LED.

Also a button push on the central device or peripheral device should be able to send the "A" command, which would then show up on the chat server as an "A"



Go Up