いままで特に問題もなく動作していた複数台の Netduino Plus が突如応答を返さなくなる不具合が頻発しだし、いまさらながらファームウェアのアップデートを行ったのでメモしておく。
なお、下記の手順は Netduino 1 シリーズ (Netduino と Netduino Plus) のものであり、Netduino 2 や Netduino 3 には適用できない。
バージョンの確認
スタートメニューの .NET Micro Framework 4.2 → Tools から MFDeploy.exe を実行
Target → Device Capabilities でバージョンを確認しておく。
HalSystemInfo.halVersion: 4.1.2821.0
HalSystemInfo.halVendorInfo: Netduino Plus by Secret Labs LLC
HalSystemInfo.oemCode: 34
HalSystemInfo.modelCode: 177
HalSystemInfo.skuCode: 4097
HalSystemInfo.moduleSerialNumber: 00000000000000000000000000000000
HalSystemInfo.systemSerialNumber: 0000000000000000
ClrInfo.clrVersion: 4.1.2821.0
ClrInfo.clrVendorInfo: Netduino Plus by Secret Labs LLC
ClrInfo.targetFrameworkVersion: 4.1.2821.0
SolutionReleaseInfo.solutionVersion: 4.1.0.6
SolutionReleaseInfo.solutionVendorInfo: Netduino Plus by Secret Labs LLC
SoftwareVersion.BuildDate: Feb 14 2011
SoftwareVersion.CompilerVersion: 400902
FloatingPoint: True
SourceLevelDebugging: True
ThreadCreateEx: True
LCD.Width: 0
LCD.Height: 0
LCD.BitsPerPixel: 0
AppDomains: True
ExceptionFilters: True
IncrementalDeployment: True
SoftReboot: True
Profiling: False
ProfilingAllocations: False
ProfilingCalls: False
IsUnknown: False
以後の手順は基本的に下記を参考にした。
How to update Netduino with 4.2 firmware on Windows 8 and VS 2012 | Geekality
http://www.geekality.net/2013/01/02/netduino-firmware-update/
ダウンロード
Atmel SAM-BA In-system Programmer のダウンロード
Atmel SAM-BA In-system Programmer
http://www.atmel.com/tools/atmelsam-bain-systemprogrammer.aspx
上記のページから、 sam-ba_2.15.exe をダウンロード(2.x系で最新のものでOK)
ダウンロードには情報の送信が必要。必要項目を入力するとメールが送られてくるので、記載された URL をクリックするとダウンロードできる。
ファームウェアのダウンロード
Netduino 1 Firmware v4.2.0 (update 1) -> Attachments – Netduino Forums
http://forums.netduino.com/iNdex.php?app=forums&module=forums§ion=attach&tid=5583
上記のページから Netduino_Firmware_4.2.0.1.zip をダウンロードする。
ここもログインしないとダウンロードできないので、面倒だが、 [Create Account] からアカウント登録を行って、サインインしてからダウンロードする。
.NET Micro Framework 4.2 SDK のダウンロード
Netduino :: Netduino : Downloads
http://www.netduino.com/downloads/
上記のページから MicroFrameworkSDK_NETMF42_QFE2.msi をダウンロードする。これは簡単にダウンロード可能。
消去
電源が入った状態で Netduino の D0 ピンの横にある金のランドと 3V3 端子をショートさせる。
※これを行った時点でブートローダーが消えるので以後の処理を完了しなければ Netduino として利用できないので注意。
TinyBooter の書き換え
USBケーブルを抜き、少し置いてから再度接続するとデバイスマネージャーの COM ポートのところに GPS なんとかが表示される(なんとか Port のときもある)。
※表示されないときはPCを再起動したほうがいい。
インストールした Atmel SAM-BA 2.xx を起動する。なお、一部の PC では SAM-BA が起動しなかった。そのときはあまりこだわらずさっさと違う PC で作業したほうがよい。
デバイスマネージャーで確認した COM ポートを選び、ボード名 at91sam7x512-ek を選んで Connect を押す。
下記の画面が表示されるので Scripts から Boot from Flash (GPNVM2) → [Execute] した後、同様に Enable Flash access → [Execute]
Send File Name のフォルダを開くボタンを押して、 Netduino_Firmware_4.2.0.1 に含まれている TinyBoooterDecompressor.bin を選択し、[Send File] をクリック
下記の画面が表示されたら必ず [いいえ(N)] をクリック
ファームウェアのアップデート
TinyBooter の書き換えが終了したら、Netduino を抜き差しして、MFDeploy.exe を起動し、Ping してみる。
Image File のところで [Browse…] をクリックして Netduino_Firmware_4.2.0.1 の tinyclr.hex フォルダにある ER_CONFIG と ER_FLASH を一緒に選択して開き、 [Deploy] ボタンを押す。
接続しなおして、MFDeploy の Device Capabilities で 4.2.0.1 に変わっていれば OK
HalSystemInfo.halVersion: 4.2.0.0
HalSystemInfo.halVendorInfo: Netduino (v4.2.0.1) by Secret Labs LLC
HalSystemInfo.oemCode: 34
HalSystemInfo.modelCode: 177
HalSystemInfo.skuCode: 4096
HalSystemInfo.moduleSerialNumber: 00000000000000000000000000000000
HalSystemInfo.systemSerialNumber: 0000000000000000
ClrInfo.clrVersion: 4.2.0.0
ClrInfo.clrVendorInfo: Netduino (v4.2.0.1) by Secret Labs LLC
ClrInfo.targetFrameworkVersion: 4.2.0.0
SolutionReleaseInfo.solutionVersion: 4.2.0.0
SolutionReleaseInfo.solutionVendorInfo: Netduino (v4.2.0.1) by Secret Labs LLC
SoftwareVersion.BuildDate: Sep 19 2012
SoftwareVersion.CompilerVersion: 410894
FloatingPoint: True
SourceLevelDebugging: True
ThreadCreateEx: True
LCD.Width: 0
LCD.Height: 0
LCD.BitsPerPixel: 0
AppDomains: True
ExceptionFilters: True
IncrementalDeployment: True
SoftReboot: True
Profiling: False
ProfilingAllocations: False
ProfilingCalls: False
IsUnknown: False
MAC アドレスの再設定
MAC アドレスが消えているので FIle → Connect して Configure → Network から MAC アドレスを設定しておく(MACアドレスは Netduino 裏面のシールを参照)。