Microsoft MVP성태의 닷넷 이야기
사물인터넷: 2. 넷두이노 - 4.2.0 펌웨어 업데이트 방법 [링크 복사], [링크+제목 복사]
조회: 22893
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
(연관된 글이 3개 있습니다.)

넷두이노 - 4.2.0 펌웨어 업데이트 방법


넷두이노를 연결하고, "C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.1\Tools\mfdeploy.exe" 파일을 실행합니다. Device 란에 "USB"를 선택하고, 우측에 넷두이노 플러스 장치를 선택한 다음 "Target" / "Device Capabilities (Ctrl+Shift+C)" 메뉴를 선택하면 다음과 같은 식으로 넷두이노 정보가 출력됩니다.

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

이 중에서, SolutionReleaseInfo.solutionVersion 란에 해당하는 값이 현재 넷두이노 기기에 설치된 펌웨어 버전입니다. (제 경우에는 4.1.0.6이라는 것이죠. ^^)

이 글에서는 펌웨어를 4.2로 업데이트 하는 방법을 설명할 텐데요. 사실 방법은 다음의 비디오에서 잘 설명해 주고 있습니다.

Netduino Firmware Upgrade Tutorial 
; http://www.youtube.com/watch?feature=player_embedded&v=RkjAmrXIRuo

글로는 다음의 포럼에 잘 정리되어 있습니다.

Netduino Firmware v4.2.0
; http://forums.netduino.com/index.php?showtopic=5115

검색해 보니 한글로 된 자료는 없는 것 같아서 이번 기회에 제가 한번 써봤습니다. ^^




우선, 지난번 글에서 설치했던 "Netduino SDK v4.1"과 ".NET Micro Framework SDK v4.1"을 제어판의 "프로그램 추가/삭제"를 이용해 제거합니다.

그리고 나서 다시 넷두이노 다운로드 사이트를 방문하여 ".NET Micro Framework SDK v4.2"와 "Netduino SDK v4.2.1.0"을 다운로드 받습니다.

tools and documentation
; http://netduino.com/downloads/

.NET Micro Framework SDK v4.2 
; http://www.netduino.com/downloads/MicroFrameworkSDK_NETMF42_QFE2.msi

Netduino SDK v4.2.1.0 (32-bit) - http://www.netduino.com/downloads/netduinosdk_32bit_NETMF42.exe
Netduino SDK v4.2.1.0 (64-bit) - http://www.netduino.com/downloads/netduinosdk_64bit_NETMF42.exe

설치를 완료한 다음, 4.2 버전의 펌웨어를 다운로드 받습니다. (netduino.com에 회원가입이 필요합니다.)

Netduino_Firmware_4.2.0.0.zip (349.27K) 
; http://forums.netduino.com/index.php?app=core&module=attach&section=attach&attach_id=2058

압축을 해제하면 다음과 같은 구조로 파일이 생성됩니다.

TinyBooterDecompressor.bin (파일)
\tinyclr.hex\              (폴더)
             ER_CONFIG     (파일)
             ER_FLASH      (파일)

그다음, "Atmel SAM-BA In-system Programmer" 프로그램을 다운로드 받습니다. (회원 가입을 하거나 Guest 권한으로 임시 다운로드가 가능합니다.)

Atmel SAM-BA In-system Programmer
; http://www.atmel.com/tools/ATMELSAM-BAIN-SYSTEMPROGRAMMER.aspx

SAM-BA 2.12 for Windows (XP, Vista, Seven editions)
; http://www.atmel.com/System/BaseForm.aspx?target=tcm:26-42282

SAM-BA 2.12 Patch 2a (Windows XP, Vista, Seven editions)
; http://www.atmel.com/System/BaseForm.aspx?target=tcm:26-44859

SAM-BA는 다운로드 후 설치를 완료합니다. 이것으로 다운로드 및 설치 준비 작업이 모두 완료됩니다.




그럼, 펌웨어 업그레이드 작업을 해볼까요?

이를 위해 넷두이노 리셋작업을 먼저 해야 합니다. 넷두이노를 USB 케이블로 컴퓨터에 연결한 상태에서 점퍼 와이어 같은 걸로 3V3 Power와 "gold ERASE pad"를 건드려 줍니다. 3V3 Power는 아래의 그림에서 하단에 나오는 단자이고, "ERASE pad" 영역은 상단에 0번 단자 바로 아래에 있는 황금색의 조그만 영역입니다.

netduino_firm_update_1.gif

위의 2가지 접촉점을 연결해 주면 넷두이노가 리셋되는데, 외관상으로는 별다른 이펙트가 없으므로 단지 건드려 주기만 하면 됩니다. 그다음 USB 연결을 해제하고 다시 연결합니다. 그럼, 넷두이노 플러스 보드의 경우 PWR, LED, ACT에 불빛이 계속 켜져 있게 되고, 윈도우의 장치 관리자에는 "Ports" 영역에 "GPS Camera Detect(COM3)"으로 인식됩니다. (COM3 번호는 상황에 따라 다를 수 있습니다.)

이전에 설치해 두었던 SAM-BA 2.12 프로그램을 실행시키면 COM3에 연결된 넷두이노는 인식하지만 보드 종류는 알 수 없어서 "no_board"로 선택되어 있습니다.

netduino_firm_update_2.png

보드 종류는 넷두이노의 중앙 칩을 자세하게 들여다 보면 확인할 수 있습니다.

netduino_firm_update_3.png

제 넷두이노 플러스 보드도 위의 이미지와 종류가 같았기에 at91sam7x512-ek를 선택한 다음 "Connect" 버튼을 누릅니다. 정상적인 경우 아래와 같은 창이 뜹니다.

netduino_firm_update_4.png

여기서 크게 2가지 작업을 해주어야 합니다.

첫번째로, "Scripts" 그룹 상자의 항목을 "Boot from Flash(GPNVM2)"로 선택하고 "Execute" 버튼을 눌러 줍니다. 그럼 하단 박스에는 다음과 같은 식의 상태 메시지가 출력됩니다.

FLASH::ScriptGPNMV 4
-I- GPNVM2 set
(sam-ba_2.12) 1 % 

1%라고 되어 있지만 모두 끝난 것이므로 더 기다릴 것이 없습니다. 이어서 "Enable Flash access"를 선택하고 다시 "Execute" 버튼을 누르면 다음의 상태 메시지가 출력됩니다.

FLASH::Init
-I- Loading applet applet-flash-at91sam7x512.bin at address 0x202000
-I- Memory Size : 0x80000 bytes
-I- Buffer address : 0x202B44
-I- Buffer size: 0x1D300 bytes
-I- Applet initialization done
(sam-ba_2.12) 1 % 

두번째로, "Download / Upload File" 그룹 상자의 "Send File Name"으로 이전에 다운로드 받아 두었던 TinyBooterDecompressor.bin 파일을 선택한 후 "Send File" 버튼을 눌러 줍니다. 그럼, 다음의 메시지가 출력된 후에,

send_file {Flash} "D:/.../Netduino_Firmware_4.2.0.0/TinyBooterDecompressor.bin" 0x100000 0
-I- Send File D:/.../Netduino_Firmware_4.2.0.0/TinyBooterDecompressor.bin at address 0x100000
 first_sector 0 last_sector 2 
-I-     Writing: 0xA0F4 bytes at 0x0 (buffer addr : 0x202B44)
-I-     0xA0F4 bytes written by applet
(sam-ba_2.12) 1 % 

"Do you want to lock involved lock region(s) (0 to 2)?"라는 질문창이 뜨는데 여기서 "No" 버튼을 눌러서 계속해 줍니다. 파일 전송은 빠르게 끝나고 메시지 창에는 다음의 글이 나옵니다.

Do not lock 
(sam-ba_2.12) 1 % 

SAM-BA 프로그램을 종료하고 넷두이노와 컴퓨터를 연결한 USB를 끊고 다시 연결합니다. 장치 관리자에서 확인해 보면, "Ports" 영역의 "GPS Camera Detect(COM3)" 항목이 없어지고 예전처럼 "Universal Serial Bus controllers" 영역에 "Netduino" 항목이 생긴 것을 확인할 수 있습니다.

다음으로 "C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.2\Tools\mfdeploy.exe" 프로그램을 실행하고 "Device"를 "USB"로 맞춘 후 연결된 넷두이노를 선택한 다음 "Ping" 버튼을 누릅니다. 그럼 다음과 같아 v4.2.0.0 문자열을 확인할 수 있습니다.

netduino_firm_update_5.png

이제, 펌웨어를 업데이트 할 텐데요. mfdeploy.exe 프로그램에서 "Image File" 우측의 "Browse..." 버튼을 눌러 이전에 다운로드 받았던 ER_CONFIG, ER_FLASH 2개의 파일을 선택하고 "Deploy" 버튼을 눌러 줍니다.

netduino_firm_update_6.png

정상적으로 완료되면 상태 창에 다음과 같은 메시지를 확인할 수 있습니다.

Chk signature 
Signature PASS

다시 넷두이노의 USB 연결을 해제하고 연결해 줍니다.

끝!!!




잘 되었는지 확인해 볼까요? ^^

이전의 글에서,

.NET Micro Framework - 넷두이노 플러스
; https://www.sysnet.pe.kr/2/0/1392

넷두이노 보드의 스위치 값이 거꾸로 반환되어서 다음과 같이 프로그램을 했었는데요.

public static void Main()
{
    OutputPort led = new OutputPort(Pins.ONBOARD_LED, false);
    InputPort sw1 = new InputPort(Pins.ONBOARD_SW1, false, Port.ResistorMode.Disabled);
    bool switchState = false;

    while (true)
    {
        switchState = sw1.Read();
        led.Write(!switchState);
    }
}

LED에 쓰는 코드를 이제 원래 예상했던 대로 변경시켜 줍니다.

led.Write(switchState);

그다음, 이 때의 프로젝트가 ".NET Micro Framework 4.1" 기준으로 만들어진 것이기 때문에 프로젝트 속성 창에서 "4.2" 버전으로 맞춰준 후 빌드하고 실행합니다.

netduino_firm_update_7.png

이제부터는 보드의 스위치를 누를 때만 LED에 불빛이 들어오는 것을 확인할 수 있습니다. ^^




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 7/5/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 



2013-06-08 02시21분
넷두이노 포럼에 회원가입이 안된다고 펌웨어 파일을 요청하셨네요. ^^ 그래서 이 글에 첨부해 두었습니다. 4.2.0.0 버전입니다.
정성태

[1]  2  3  4  5  6  7  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
13606정성태4/24/202444닷넷: 2247. C# - tensorflow 연동 (MNIST 예제)파일 다운로드1
13605정성태4/23/2024312닷넷: 2246. C# - Python.NET을 이용한 파이썬 소스코드 연동파일 다운로드1
13604정성태4/22/2024320오류 유형: 901. Visual Studio - Unable to set the next statement. Set next statement cannot be used in '[Exception]' call stack frames.
13603정성태4/21/2024502닷넷: 2245. C# - IronPython을 이용한 파이썬 소스코드 연동파일 다운로드1
13602정성태4/20/2024787닷넷: 2244. C# - PCM 오디오 데이터를 연속(Streaming) 재생 (Windows Multimedia)파일 다운로드1
13601정성태4/19/2024836닷넷: 2243. C# - PCM 사운드 재생(NAudio)파일 다운로드1
13600정성태4/18/2024845닷넷: 2242. C# - 관리 스레드와 비관리 스레드
13599정성태4/17/2024861닷넷: 2241. C# - WAV 파일의 PCM 사운드 재생(Windows Multimedia)파일 다운로드1
13598정성태4/16/2024882닷넷: 2240. C# - WAV 파일 포맷 + LIST 헤더파일 다운로드2
13597정성태4/15/2024855닷넷: 2239. C# - WAV 파일의 PCM 데이터 생성 및 출력파일 다운로드1
13596정성태4/14/20241049닷넷: 2238. C# - WAV 기본 파일 포맷파일 다운로드1
13595정성태4/13/20241050닷넷: 2237. C# - Audio 장치 열기 (Windows Multimedia, NAudio)파일 다운로드1
13594정성태4/12/20241068닷넷: 2236. C# - Audio 장치 열람 (Windows Multimedia, NAudio)파일 다운로드1
13593정성태4/8/20241079닷넷: 2235. MSBuild - AccelerateBuildsInVisualStudio 옵션
13592정성태4/2/20241216C/C++: 165. CLion으로 만든 Rust Win32 DLL을 C#과 연동
13591정성태4/2/20241193닷넷: 2234. C# - WPF 응용 프로그램에 Blazor App 통합파일 다운로드1
13590정성태3/31/20241078Linux: 70. Python - uwsgi 응용 프로그램이 k8s 환경에서 OOM 발생하는 문제
13589정성태3/29/20241150닷넷: 2233. C# - 프로세스 CPU 사용량을 나타내는 성능 카운터와 Win32 API파일 다운로드1
13588정성태3/28/20241261닷넷: 2232. C# - Unity + 닷넷 App(WinForms/WPF) 간의 Named Pipe 통신 [2]파일 다운로드1
13587정성태3/27/20241168오류 유형: 900. Windows Update 오류 - 8024402C, 80070643
13586정성태3/27/20241324Windows: 263. Windows - 복구 파티션(Recovery Partition) 용량을 늘리는 방법
13585정성태3/26/20241111Windows: 262. PerformanceCounter의 InstanceName에 pid를 추가한 "Process V2"
13584정성태3/26/20241060개발 환경 구성: 708. Unity3D - C# Windows Forms / WPF Application에 통합하는 방법파일 다운로드1
13583정성태3/25/20241194Windows: 261. CPU Utilization이 100% 넘는 경우를 성능 카운터로 확인하는 방법
13582정성태3/19/20241447Windows: 260. CPU 사용률을 나타내는 2가지 수치 - 사용량(Usage)과 활용률(Utilization)파일 다운로드1
[1]  2  3  4  5  6  7  8  9  10  11  12  13  14  15  ...