check-firmware.ino
Many MKR WiFi 1010 WiFi disappointments come from a too-old WINC1500 firmware: this sketch reads the version, compares it to the WiFi101 library minimum, and prints the update procedure. It also prints the MAC address, handy for DHCP filters.
Hardware
An Arduino MKR WiFi 1010 (SAMD21 microcontroller, WINC1500 Wi-Fi module, no Bluetooth, USB or LiPo power on J6). MKR WiFi 1010 and Internet access on the PC for the firmware upload.
Wiring
No wiring; the update goes through the SketchFWUpdate example, which makes the module download the firmware.
How it works
WiFi.firmwareVersion() returns a comparable string; library/firmware must stay paired (0.16.x requires 19.6.3). macAddress reads the factory-burned identifier.
Running it
Install Arduino SAMD Boards and the WiFi101 library, select the board, upload. Wi-Fi runs on 2.4 GHz only: check that your access point is not 5 GHz only.
Variants
In production, log the version at every boot to spot boards that lost their update (rare but real flash wipe).
check-firmware.ino
// Firmware WINC1500 : verifier la version minimale (WiFi101 0.16+).
#include <SPI.h>
#include <WiFi101.h>
void setup() {
Serial.begin(9600);
while (!Serial);
if (WiFi.status() == WL_NO_MODULE) {
Serial.println(F("Pas de WINC1500 detecte"));
while (true);
}
String v = WiFi.firmwareVersion();
Serial.println("Firmware courant : " + v);
if (v < "19.6.3") {
Serial.println(F("MISE A JOUR NECESSAIRE :"));
Serial.println(F(" 1. IDE > Outils > WiFi101 Firmware Updater"));
Serial.println(F(" 2. Exemple WiFi101 > SketchFWUpdate, televerser"));
Serial.println(F(" 3. Relancer ce controle apres redemarrage"));
} else {
Serial.println(F("Firmware OK, connexion possible"));
}
Serial.print(F("Adresse MAC : "));
uint8_t mac[6];
WiFi.macAddress(mac);
for (int i = 5; i >= 0; i--) {
if (mac[i] < 0x10) Serial.print('0');
Serial.print(mac[i], HEX);
if (i) Serial.print(':');
}
Serial.println();
}
void loop() {}