Skip to content


Folders and files

Last commit message
Last commit date

Latest commit


Repository files navigation

Arduino NINA-W102 firmware

This firmware uses Espressif's IDF


  1. Download the ESP32 toolchain
  2. Extract it and add it to your PATH: export PATH=$PATH:<path/to/toolchain>/bin
  3. Clone v3.3.1 of the IDF: git clone --branch v3.3.1 --recursive
  4. Set the IDF_PATH environment variable: export IDF_PATH=<path/to/idf>
  5. Run make to build the firmware (in the directory of this read me)
  6. Load the Tools -> SerialNINAPassthrough example sketch on to the board
  7. Use esptool to flash the compiled firmware


If updating the NINA firmware for an Arduino UNO WiFi Rev. 2 or Arduino Nano RP2040 board via SerialNINAPassthrough sketch, then the esptool invocation needs to be changed slightly:

-  --baud 115200 --before default_reset
+  --baud 115200 --before no_reset


The make command produces a bunch of binary files that must be flashed at very precise locations, making esptool commandline quite complicated. Instead, once the firmware has been compiled, you can invoke script to produce a monolithic binary that can be flashed at 0x0.


This produces NINA_W102.bin file (a different name can be specified as parameter). To flash this file you can use

Build a new certificate list (based on the Google Android root CA list)

git clone
cp nina-fw/tools/ ca-certificates/files
cd ca-certificates/files
cp roots.pem ../../nina-fw/data/roots.pem

Check certificate list against URL list

cd tools
./ -c ../data/roots.pem -l url_lists/ -e


Copyright (c) 2018-2019 Arduino SA. All rights reserved.

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA