Firmware Update 1.2.1 - available now, with BLE mode

Hi @jomoengineer,

It's supports both WiFi and BLE.

I just tried the WiFiWebClient example here and all was fine. If you could provide more details on your setup that would be great.

Thanks for the confirmation that the FW works with WiFi as well.

For me, it has been a bit hit and miss with regards to whether or not the 1010 connects to my router; maybe just once or twice thus far with FW 1.2.1. The same basic example under WiFi101 with a MKR1000 and the same router credentials ( I literally copied and pasted the values in arduino_secrets.h) works fine and the MKR1000 connects without issue. The MKR WiFi 1010 only connects periodically but certainly not consistently.

The router is not broadcasting the SSID, but that should not be an issue since this is being hard coded in the arduino_secrets.h. I've tried this with Windows 10 as well as 64-bit Ubuntu 16.04 with the same results; the Attempting to connect message just keeps cycling through.

"Attempting to connect to SSID: MySSID"

:) Thanks for this V1.2.1 update. It saved my broken 1010 which was broken by by firmware updater...BTW. When update is done, there is always a error hint of "verify failed!" I ignored it and reboot the 1010 and it works. So, I guess there is some timing issue during vefification? Anyway, it works!

Hello All,

I was going to ask - it isn't possible to brick the 1010 is it?

When it comes to u-Blox and bricking - I seem to have a knack for that - Ha-ha.

But I think the previous post answered that.

I suppose a similar process is to be followed for the Vidor and Uno Rev2 - correct? I will look in those forums.

Thanks, John W.

It is possible to SEMI brick it but patience and attention to detail seems to get them going again.

Take Care and all will be fine.

I've updated my MKR 1010's and the Vidor 4K; the Uno is updating now. I saw Vidor is only rev 1.1.0 - but I had kicked off the update on that before seeing it only went to 1.1.0 - I thought since the NINA device is common across these boards that the 4K had 1.2.1 available also.

Thanks, John W.

there are examples only for peripheral mode. Is the central mode supported ? if not, do you have any plan to support central mode in the future ? Thanks, Eric.

I would also like to know if there is a central mode we can use instead of peripheral mode. After digging in the source code a bit, I found the BLEDevice class which seems to be what is referred to as "central mode" and the BLEService class which I believe is associated with "peripheral mode".

What I want to do: I would like my laptop computer to connect to my Arduino MKR1010 which would be acting as a server. I want the computer to recognize the Arduino as a regular bluetooth device (similar to a bluetooth speaker), then after connection, I want the MKR1010 to stream sensor data to my laptop (this will most likely be setup in a polling mechanism where the computer polls the Arduino for sensor data).

Is there a way I could use the BLEDevice class to achieve this?

Thanks, Tim

Hi @TimArt,

I would also like to know if there is a central mode we can use instead of peripheral mode.

Currently the ArduinoBLE library only supports peripheral mode, central mode support will be added in a later release.

I would like my laptop computer to connect to my Arduino MKR1010 which would be acting as a server. I want the computer to recognize the Arduino as a regular bluetooth device (similar to a bluetooth speaker), then after connection, I want the MKR1010 to stream sensor data to my laptop (this will most likely be setup in a polling mechanism where the computer polls the Arduino for sensor data).

It seems like you want the board to act as a peripheral device.

Note the board only supports BLE and not bluetooth classic.

Got a new MKR WIFI 1010 today. Getting it set-up to go. Ran FW version checker...out of date...got the warning. Loaded the updater util, pressed the plugin button, all good so far...shows success.

Loaded the checker again and looked in the monitor to see:

WiFiNINA firmware check.

Firmware version installed: 1.2.1
Latest firmware version available : 1.2.0

Check result: NOT PASSED
 - The firmware version on the module do not match the
   version required by the library, you may experience
   issues or failures.

Now, since I am .1 ahead of the game, and I see a BLE build was released, I ass-u-me this will not be a problem, and soon a new code library update will be out in a day or so that makes this all better. If that is not the case, please let me know! ( I am having other IDE issues, so far affecting only ESP32 boards, and I have to wonder if this is related somehow. )

Edit: OOPS...sorry now I see the answer above. Also ran the WiFi Scanner without issue.

Thanks! -fab

looking forward for the next release of the library with support for central mode... when is expected to be avaiable?

Since no one is willing to help diagnose module not present error. Here it is:

The firmware .bin packaged in all of the nightly images IS corrupted, it is 264192 bytes where a valid firmware is 880640 bytes, I would not expect firmware adding a whole new radio stack to be less than half the size of the previous version.

You can confirm this when running the NINA updater as it will show No. of bytes being written.

A valid firmware file can be found under the {ur_arduino_dir}/tools/WiFi1010/tool/firmwares/NINA/1.2.1/NINA_W102.bin right where you expect it to be. However the updater tool will ALWAYS use the firmware at {ur_arduino_dir}/tools/WiFi101/tool/firmwares/NINA/1.2.1/NINA_W102.bin regardless of the chosen board, whether you update your libraries or not.

If you copy the image from the 1010 directory to the 101 directory it will flash it and fail on the verification step, this is also incorrect and can confirm it is working without issue including some preliminary BLE tests.

All builds seem to be broken like this with the exception of linux32 which doesn’t include the 1.2.1 version at all.

sandeepmistry: WiFi functionality (using the WiFiNINA library) cannot be used at the same time as BLE.

This is disappointing. Is this possible on other ESP32 boards?

@DryRun

Please explain "other ESP" boards as not all ARDUINO examples will work with common "esp" boards.

Bob.

ballscrewbob: @DryRun

Please explain "other ESP" boards as not all ARDUINO examples will work with common "esp" boards.

Bob.

For example, the Adafruit HUZZAH ESP8266 and HUZZAH ESP32, or the Sparkfun ESP32 Thing.

Well none of those are the MKR series so best guess in NO.

At least not at this moment.

Bob.

Is there a working version that works with the Vidor 4000 I tried it and got the following error message:

\utility\HCIUartTransport.cpp:95:40:

note: suggested alternative: 'SerialUSB'

HCIUartTransportClass HCIUartTransport(SerialHCI, 912600);

^~~~~~~~~

SerialUSB

exit status 1 Error compiling for board Arduino MKR Vidor 4000.

We used device arduino MKR WIFI 1010 BLE by using this we tested with one central and one peripheral with help of arduino library BLE, We need to connect more then six peripherals and one central through BLE, How to connect and any library is there ?

We used device arduino MKR WIFI 1010 BLE by using this we tested with one central and one peripheral with help of arduino library BLE, We need to connect more then six peripherals and one central through BLE, How to connect and any library is there ?

I tried it, but after click the "Update Firmware" button I get this error:

Arduino: 1.8.13 (Mac OS X), Board: "Arduino Uno"

ESP32BootROM.cpp:335:32: error: 'SerialNina' was not declared in this scope
 ESP32BootROMClass ESP32BootROM(SerialNina, NINA_GPIO0, NINA_RESETN);
                                ^~~~~~~~~~
sketch/ESP32BootROM.cpp:335:32: note: suggested alternative: 'Serial'
 ESP32BootROMClass ESP32BootROM(SerialNina, NINA_GPIO0, NINA_RESETN);
                                ^~~~~~~~~~
                                Serial
ESP32BootROM.cpp:335:44: error: 'NINA_GPIO0' was not declared in this scope
 ESP32BootROMClass ESP32BootROM(SerialNina, NINA_GPIO0, NINA_RESETN);
                                            ^~~~~~~~~~
ESP32BootROM.cpp:335:56: error: 'NINA_RESETN' was not declared in this scope
 ESP32BootROMClass ESP32BootROM(SerialNina, NINA_GPIO0, NINA_RESETN);
                                                        ^~~~~~~~~~~
exit status 1
'SerialNina' was not declared in this scope