check-firmware.ino
Muchas desilusiones WiFi de la MKR WiFi 1010 vienen de un firmware WINC1500 demasiado antiguo: este sketch lee la versión, la compara con el mínimo de la librería WiFi101 e imprime el procedimiento de actualización. También saca la dirección MAC, útil para filtros DHCP.
Hardware
Una Arduino MKR WiFi 1010 (microcontrolador SAMD21, módulo Wi-Fi WINC1500, sin Bluetooth, alimentación USB o LiPo en J6). MKR WiFi 1010 y conexión a Internet en el PC para la subida del firmware.
Cableado
Sin cableado; la actualización pasa por el ejemplo SketchFWUpdate, que hace al módulo descargar el firmware.
Funcionamiento
WiFi.firmwareVersion() devuelve una cadena comparable; librería/firmware deben ir a la par (0.16.x exige 19.6.3). macAddress lee el identificador grabado de fábrica.
Ejecución
Instala Arduino SAMD Boards y la librería WiFi101, selecciona la placa y carga. El Wi-Fi funciona solo en 2,4 GHz: comprueba que tu punto de acceso no sea solo de 5 GHz.
Variantes
En producción, registra la versión en cada arranque para detectar placas que perdieron la actualización (borrado de flash raro pero real).
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() {}