Microsoft MVP성태의 닷넷 이야기
사물인터넷: 2. 넷두이노 - 4.2.0 펌웨어 업데이트 방법 [링크 복사], [링크+제목 복사],
조회: 29746
글쓴 사람
정성태 (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 버전입니다.
정성태

... 151  152  153  154  155  156  157  [158]  159  160  161  162  163  164  165  ...
NoWriterDateCnt.TitleFile(s)
1099정성태8/15/201128201오류 유형: 132. 어느 순간 갑자기 접속이 안 되는 TFS 서버
1098정성태8/15/201150231웹: 24. 네이버는 어떻게 로그인 처리를 할까요? [2]
1097정성태8/15/201121544.NET Framework: 235. 메서드의 메타 데이터 토큰 값으로 클래스를 찾아내는 방법
1096정성태8/15/201125680디버깅 기술: 42. Watson Bucket 정보를 이용한 CLR 응용 프로그램 예외 분석 - (2)
1095정성태8/14/201126126디버깅 기술: 41. Windbg - 비정상 종료된 닷넷 프로그램의 StackTrace에서 보이는 offset 값 의미
1094정성태8/14/201130504오류 유형: 131. Fiddler가 강제 종료된 경우, 웹 사이트 방문이 안되는 현상
1093정성태7/27/201124117오류 유형: 130. Unable to connect to the Microsoft Visual Studio Remote Debugging Monitor ... Access is denied.
1092정성태7/22/201126515Team Foundation Server: 46. 코드 이외의 파일에 대해 소스 제어에서 제외시키는 방법
1091정성태7/21/201125515개발 환경 구성: 128. WP7 Emulator 실행 시 audiodg.exe의 CPU 소모율 증가 [2]
1089정성태7/18/201131096.NET Framework: 234. 왜? Button 컨트롤에는 MouseDown/MouseUp 이벤트가 발생하지 않을까요?파일 다운로드1
1088정성태7/16/201124224.NET Framework: 233. Entity Framework 4.1 - 윈도우 폰 7에서의 CodeFirst 순환 참조 문제파일 다운로드1
1087정성태7/15/201126861.NET Framework: 232. Entity Framework 4.1 - CodeFirst 개체의 직렬화 시 순환 참조 해결하는 방법 - 두 번째 이야기파일 다운로드1
1086정성태7/14/201128309.NET Framework: 231. Entity Framework 4.1 - CodeFirst 개체의 직렬화 시 순환 참조 해결하는 방법 [1]파일 다운로드1
1085정성태7/14/201128771.NET Framework: 230. Entity Framework 4.1 - Code First + WCF 서비스 시 EndpointNotFoundException 오류 - 두 번째 이야기파일 다운로드1
1084정성태7/11/201134067.NET Framework: 229. SQL 서버 - DB 테이블의 데이터 변경에 대한 알림 처리 [4]파일 다운로드1
1083정성태7/11/201128112.NET Framework: 228. Entity Framework 4.1 - Code First + WCF 서비스 시 EndpointNotFoundException 오류
1082정성태7/10/201127670.NET Framework: 227. basicHttpBinding + 사용자 정의 인증 구현 [2]파일 다운로드1
1081정성태7/9/201126981VC++: 53. Windows 7에서 gcc.exe 실행 시 Access denied 오류 [2]
1080정성태7/8/201125489웹: 23. Sysnet 웹 사이트의 HTML5 변환 기록 - 두 번째 이야기파일 다운로드1
1079정성태7/6/201129924오류 유형: 129. Hyper-V + Realtek 랜카드가 설치된 시스템의 BSOD 현상 [2]
1078정성태7/5/201137446VC++: 52. Chromium 컴파일하는 방법 [2]
1077정성태6/24/201135071.NET Framework: 226. HttpWebRequest 타입의 HaveResponse 속성 이야기파일 다운로드1
1076정성태6/23/201129222오류 유형: 128. SQL Express - User Instance 옵션을 사용한 경우 발생하는 오류 메시지 유형 2가지
1075정성태6/21/201124831VS.NET IDE: 69. 윈폰 프로젝트에서 WCF 서비스 참조할 때 Reference.cs 파일이 비어있는 경우
1074정성태6/20/201124915.NET Framework: 225. 닷넷 네트워크 라이브러리의 트레이스 기능파일 다운로드1
1073정성태6/20/201127138오류 유형: 127. Visual Studio에서 WCF 서비스의 이름 변경 시 발생할 수 있는 오류
... 151  152  153  154  155  156  157  [158]  159  160  161  162  163  164  165  ...