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

... 91  92  93  94  95  96  97  98  99  100  101  [102]  103  104  105  ...
NoWriterDateCnt.TitleFile(s)
11382정성태12/4/201721862오류 유형: 436. System.Data.SqlClient.SqlException (0x80131904): Connection Timeout Expired 예외 발생 시 "[Pre-Login] initialization=48; handshake=1944;" 값의 의미
11381정성태11/30/201718251.NET Framework: 702. 한글이 포함된 바이트 배열을 나눈 경우 한글이 깨지지 않도록 다시 조합하는 방법(두 번째 이야기)파일 다운로드1
11380정성태11/30/201718297디버깅 기술: 109. windbg - (x64에서의 인자 값 추적을 이용한) Thread.Abort 시 대상이 되는 스레드를 식별하는 방법
11379정성태11/30/201719033오류 유형: 435. System.Web.HttpException - Session state has created a session id, but cannot save it because the response was already flushed by the application.
11378정성태11/29/201720491.NET Framework: 701. 한글이 포함된 바이트 배열을 나눈 경우 한글이 깨지지 않도록 다시 조합하는 방법 [1]파일 다운로드1
11377정성태11/29/201719777.NET Framework: 700. CommonOpenFileDialog 사용 시 사용자가 선택한 파일 목록을 구하는 방법 [3]파일 다운로드1
11376정성태11/28/201724116VS.NET IDE: 123. Visual Studio 편집기의 \r\n (crlf) 개행을 \n으로 폴더 단위로 설정하는 방법
11375정성태11/28/201718940오류 유형: 434. Visual Studio로 ASP.NET 디버깅 중 System.Web.HttpException - Could not load type 오류
11374정성태11/27/201724030사물인터넷: 14. 라즈베리 파이 - (윈도우의 NT 서비스처럼) 부팅 시 시작하는 프로그램 설정 [1]
11373정성태11/27/201723023오류 유형: 433. Raspberry Pi/Windows 다중 플랫폼 지원 컴파일 관련 오류 기록
11372정성태11/25/201726070사물인터넷: 13. 윈도우즈 사용자를 위한 라즈베리 파이 제로 W 모델을 설정하는 방법 [4]
11371정성태11/25/201719680오류 유형: 432. Hyper-V 가상 스위치 생성 시 Failed to connect Ethernet switch port 0x80070002 오류 발생
11370정성태11/25/201719570오류 유형: 431. Hyper-V의 Virtual Switch 생성 시 "External network" 목록에 특정 네트워크 어댑터 항목이 없는 경우
11369정성태11/25/201721694사물인터넷: 12. Raspberry Pi Zero(OTG)를 다른 컴퓨터에 연결해 가상 키보드 및 마우스로 쓰는 방법 (절대 좌표, 상대 좌표, 휠) [1]
11368정성태11/25/201727281.NET Framework: 699. UDP 브로드캐스트 주소 255.255.255.255와 192.168.0.255의 차이점과 이를 고려한 C# UDP 서버/클라이언트 예제 [2]파일 다운로드1
11367정성태11/25/201727348개발 환경 구성: 337. 윈도우 운영체제의 route 명령어 사용법
11366정성태11/25/201719003오류 유형: 430. 이벤트 로그 - Cryptographic Services failed while processing the OnIdentity() call in the System Writer Object.
11365정성태11/25/201721260오류 유형: 429. 이벤트 로그 - User Policy could not be updated successfully
11364정성태11/24/201723157사물인터넷: 11. Raspberry Pi Zero(OTG)를 다른 컴퓨터에 연결해 가상 마우스로 쓰는 방법 (절대 좌표) [2]
11363정성태11/23/201723100사물인터넷: 10. Raspberry Pi Zero(OTG)를 다른 컴퓨터에 연결해 가상 마우스 + 키보드로 쓰는 방법 (두 번째 이야기)
11362정성태11/22/201719651오류 유형: 428. 윈도우 업데이트 KB4048953 - 0x800705b4 [2]
11361정성태11/22/201722426오류 유형: 427. 이벤트 로그 - Filter Manager failed to attach to volume '\Device\HarddiskVolume??' 0xC03A001C
11360정성태11/22/201722234오류 유형: 426. 이벤트 로그 - The kernel power manager has initiated a shutdown transition.
11359정성태11/16/201721720오류 유형: 425. 윈도우 10 Version 1709 (OS Build 16299.64) 업그레이드 시 발생한 문제 2가지
11358정성태11/15/201726494사물인터넷: 9. Visual Studio 2017에서 Raspberry Pi C++ 응용 프로그램 제작 [1]
11357정성태11/15/201726965개발 환경 구성: 336. 윈도우 10 Bash 쉘에서 C++ 컴파일하는 방법
... 91  92  93  94  95  96  97  98  99  100  101  [102]  103  104  105  ...