We actually do this on the production line (for Netduino 3 Wi-Fi), and firmware upgrades can happen manually or automatically in-field as well.
Here is a quick snapshot from the reflashing procedure (from the Output window).
*** Version info before upgrade ***
ChipID: 0x4000000
fwVersion: 1.2.0.2
phyVersion: 1.0.3.23
nwpVersion: 2.2.0.1
romVersion: 13107
Creating service pack file.
Writing service pack at offset: 0
Writing service pack at offset: 1024
Writing service pack at offset: 2048
Writing service pack at offset: 3072
Writing service pack at offset: 4096
Writing service pack at offset: 5120
Writing service pack at offset: 6144
Writing service pack at offset: 7168
Writing service pack at offset: 8192
Writing service pack at offset: 9216
Closing service pack file.
Service pack successfully written.
*** Version info after upgrade ***
fwVersion: 1.3.0.1
If you want to verify the Wi-Fi firmware on your board is up to date, you can actually call into the upgrade function via reflection like this:
Type.GetType("Netduino.IP.LinkLayers.CC3100SocketNative, Netduino.IP.LinkLayers.CC3100").GetMethod("UpgradeFirmware", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static).Invoke(null, new object[] { });
Since we can automatically upgrade CC3100 firmware in code (during radio initialization) there's no technical reason you need to do this manually...but I thought you guys would enjoy this deeper detail.
Chris
- Matt Isenhower likes this