'micro'에 해당되는 글 2건

  1. 2017.07.24 Hardware | Flash ROM 복구기 10
  2. 2017.07.23 Hardware | Arduino Micro 구입기

Hardware | Flash ROM 복구기

|

1. 시작

PC 의 BIOS 를 업데이트 했습니다.

기종은 "IPMSB-H61-PEGA".


찾아보니 유통업체에서 바이오스를 공개하고 있더군요.


헤헤헷~ 하면서 다운로드 받았습니다.

뭐 항상 하던거... 하면서 실행했죠.


뭔가 잠깐 주의사항이 있었던것 같은데, 신나게 엔터를 두둘기다 보니 어느새 주의 문구는 지나가 버리고 실행이 되어버렸죠.


뜨헉!!!

부팅이 안되네요~!!!


눈 튀어나올 상황을 진성시키며... 아까의 주의사항이 뭔지를 잠깐 떠올려 봤습니다.

"용량이... " 어쩌고 했던것 같아요.


내가 뭘 실행시킨거지? 하면서 다른 컴으로 다운로드를 받은 링크를 확인해 봤습니다.



그랬습니다.

동일한 보드이지만, 하나는 8M 짜리고, 하나는 4M 짜리의 BIOS.

즉, 보드명은 같지만 용량의 차이가 있었네요.


이걸 어떻게 처음부터 아냐고...




2. 어떻게 하지?

PC가 벽돌이 된건 작년 2016년 11월 25일.

그 동안, 용산으로 가서 수리를 의뢰할까, Flash Rom 굽는 제품을 살까, 동일 보드를 살까 (아니 왜?) 등을 고민했습니다.


그렇게 시간이 흘러간 후, Arduino 를 가지고 놀다가 흠칫 생각이 떠올랐습니다.

Arduino 로 못할게 없는데, 혹시 Flash Rom 굽는게 가능할까?


검색을 하니, 여러가지 Arduino sketch 가 있네요!

이때가 올해 2017년 3월입니다.


아래는 그 여러 사례들 입니다.


* Unbricking the MSI 890FXA-GD70 after BIOS flashing failure with an Arduino

https://sinetek.io/2011/05/27/unbricking-the-msi-890fxa-gd70-after-bios-flashing-failure-with-an-arduino/


ArduinoでSPIシリアルフラッシュメモリW25Q64を使ってみる(1)

http://nuneno.cocolog-nifty.com/blog/2014/03/arduinospiw25q6.html


* SPI Flash programmer

https://github.com/nfd/spi-flash-programmer


* SPIFlash

https://github.com/Marzogh/SPIFlash


하늘이 무너져도 쏟아날 구멍은 있네요.




3. Flash Chip


우선 보드에서 BIOS 칩을 분리합니다.



사진을 찍으니 제품은 Winbond 사의 "25Q32BV" 입니다.

Datasheet 정보는 다음과 같습니다.


- w25q32bv_datasheet.pdf


Pin Configuration 은 아래와 같이 되어 있네요.


이게 제가 마주해야 할 Flash Chip 입니다.




4. Layout

Arduino 와 flash chip 의 배선 정보 입니다.


  W25Q32BV | Arduino Nano
---------------------------
    Pin 1  |     D10
    Pin 2  |     D12
    Pin 3  |     3.3V
    Pin 4  |     GND
    Pin 5  |     D11
    Pin 6  |     D13
    Pin 7  |     3.3V
    Pin 8  |     3.3V
---------------------------


동일한 칩은 아니지만,

일본 어떤 분이 winbond 사의 8M 짜리 flash chip 을 가지고 read/write 실험을 하신 분이 제작한 배선도 입니다.


- http://nuneno.cocolog-nifty.com/blog/2014/03/arduinospiw25q6.html



사양서와 동일한 Pin 배열인 것을 보니, 이 구성이 틀림이 없는것 같습니다.






5. Serprog/Arduino flasher

꽤 많은 분들이 Arduino로 flashrom 하고 있었습니다.


* Flashing a bios chip with an Arduino

https://tomvanveen.eu/flashing-bios-chip-arduino/


가장 깔끔한 방법은,

Linux 상에서 "frser-duino" 라는 어플을 이용하는것 같습니다.


* frser-duino

https://www.flashrom.org/Serprog/Arduino_flasher


위에 열거 했던 SPI Flasher 를 사용하면, read/write/erase 등이 모두 되지만,

ROM 파일을 address 0 번지부터 flashing 해주지는 못했습니다.


"소스코드를 분석하여 Windows 용 frser-duino 를 만들어 볼꺼야!" 라고 했지만,

저에게는 너무 어려웠습니다.

좀더 공부가 필요합니다.




6. Linux 머신을 만들자

Windows 용이 없으니, "frser-duino" 를 돌리기 위하여 우선 Linux 용 머신이 있어야 합니다.

PC의 여분은 없으나, 괜찮은 성능의 laptop 이 있어, Windows 10 상에서 Oracle Virtualbox 를 설치하고 Ubuntu 16.04 를 올립니다.


"frser-duino" 에서 설명된 대로 모든 패키지를 깔고 실행을 시키면,


"Reading old flash chip contents ..."


여기서 막혀 도저히 그 앞으로 진행이 되지 않습니다.


뭐가 문제일까 구글링 하다가 어느 사이트에선가 이런 문구를 보게 됩니다.

"CH340 칩을 쓴 Arduino clone 중국 제품은 buffer 에 문제가 있다..." 그래서 flashrom 을 성공시킨 사례가 없다.


그럼 정품 Arduino 를 구입해야 겠네? 정품을 구입합니다.


* Hardware | Arduino Micro 구입기

http://chocoball.tistory.com/entry/Hardware-Arduino-Micro-purchase


자 제품도 도착했고 준비가 모두 끝났으니 추가 진행을 서두릅니다.


음... make 명령을 이용하여 frser-duino 를 컴파일 하는 과정에서 뭔가 진행이 잘 되지 않습니다.

특히 Virtualbox 에서는 USB 연결시 미리 꽂아놓고 Windows 상의 설정에서 등록 후 Linux 를 띄워야 제대로 동작했죠.


그러던 중, 응? 주위를 둘러보니 MediaWiki 를 돌리는 Raspberry Pi 3 가 있네요 !!!!!!!!!

이것도 Linux 잖아! 참... 머리가 나쁘면 손발이 고생입니다.


바로 Raspberry Pi 3 의 Ubuntu Mate 에서 "frser-duino" 실행 준비를 합니다.

결과는...


성공 !!!


입니다. ㅠㅠ

그것도 그냥 Arduino Nano 의 중국 Clone 으로요.


Virtualbox 를 통한 Linux 에서는 외부 기기와의 buffer 문제가 있었던것 같습니다. 

문제의 원인은 CH340 이 아니였어요. ㅠㅠ




7. Flashrom 진행

여기서부터는 Raspberry Pi 3 에서 진행한 command 중심으로 기록을 남겨 봅니다.


먼저 필요한 package 들을 인스톨 합니다.



그 다음, frser-duino 를 git 으로 땡겨 옵니다.



USB 에 Arduino Nano clone 을 꼽습니다.

여러 site 들에서는 따로 driver 를 잡아줘야 한다고 하지만, Raspberry Pi 3 + Ubuntu Mate 에서는 자동으로 잡아줍니다.



device 로는 /dev/ttyUSB0 로 잡히는 것을 알 수 있습니다.

참고로 Arduino Micro 는 /dev/ttyACM0 로 잡힙니다.



Makefile 에서 device target 을 USB0 로 변경해 줍니다.



make 를 통하여 컴파일 및 Arduino 에 구동 프로그램을 밀어 넣어 줍니다.



필요한 ROM 파일을 다운로드 받습니다.



이제 대망의 마지막 단계인 flashrom 명령어로 Flash ROM 에 write 합니다.



위에서처럼 마지막에 "VERIFIED" 라고 뜨면 정상적으로 끝이 납니다.


아래 사진은 writing 시에 Arduino 의 RX LED 가 지속적으로 점등되는 모습입니다.

얼마나 감격스럽던지.



writing 시에 위에서 한컷.

궂이 Arduino Micro 는 필요가 없었습니다. ㅠㅠ



아쉬우니 동영상으로도 찍었습니다.





8. Commands

위에서 실시한 command 의 모음 입니다.

ROM 파일을 다운로드 하는 것은 PC 보드 기종에 따라 다르므로, 그 부분만 뺐습니다.


apt-get install flashrom gcc-avr binutils-avr gdb-avr avr-libc avrdude git

git clone --recursive git://github.com/urjaman/frser-duino

make ftdi
make flash-ftdi

flashrom -p serpgrog:dev/dev/ttyUSB0:115200 -w 2210.ROM




9. 부활한 PC 메인보드

이제부터는 승리의 기쁨인 부활한 보드 사진들 입니다.


Flash ROM 을 뽑았던 소켓입니다.



위아래를 알 수가 없어, 해당 보드를 판매했던 회사 홈피에서 이쪽 부분이 나와있는 사진을 참고 했습니다.

1번 pin 이 밑으로 가 있네요.



위의 사진 그대로 똑같이 꼽아 줍니다.



전원을 넣어 봅니다. 두둥!!!

오~~~~~ 켜졌습니다. 이때의 짜릿함을 위해 7개월을 기다렸습니다.



DEL 키를 눌러서 BIOS 진입합니다.

모두 정상으로 동작되네요. ㅠㅠ



참고로, 벽돌되기 전에 찍어 놓은 BIOS 화면이 아래 사진 입니다.

최신버전으로 구웠더니 자동으로 upgrade 가 되었습니다.



여기까지 온 김에 Windows 10 을 인스톨 해봅니다.

언제 고장났냐는 듯 잘 깔렸습니다.



CPU-Z 결과 입니다.



시스템 기본 정보 입니다.

이 화면을 봄으로써 이 작업은 종료입니다.





FIN

Arduino 생활은 즐겁습니다!

And

Hardware | Arduino Micro 구입기

|

1. CH340

Arduino Nano 를 두개 구입합니다.


* Hardware | Arduino 구입기

- http://chocoball.tistory.com/entry/Hardware-Arduino-%EA%B5%AC%EC%9E%85%EA%B8%B0


* Hardware | Arduino nano 조립기

- http://chocoball.tistory.com/entry/HardwareArduinonanoassamble


Arduino Nano 의 clone 제품을 AliExpress 에서 구입해서 잘 쓰고 있었습니다.

전혀 문제가 없었죠.


다만, CH340 이라는 interface 칩이 오리지널과 가장 다른 점이고,

여러 사이트에서 보면, 중국 클론 제품을 활용하려면 이 "CH340" 드라이버가 문제의 많은 부분이었습니다.


그러던 중, PC 의 BIOS 날려먹고 Arduino로 복구하고자 여러가지 시도를 합니다.


* Hardware | Flash ROM 복구기

http://chocoball.tistory.com/entry/Hardware-flashROM-fix


그러나, 어느 사이트에선가 이 "CH340" 칩이 문제의 원인이라고 나와 있더군요.

또한 중국 클론 제품을 이용하여 BIOS 복구 프로그램인 "flashrom" 프로그램을 제대로 돌린 케이스를 찾을 수가 없었습니다.


이쯤해서 결론은, BIOS 복구하는 flashrom 을 돌리려면 정품 Arduino 이 필요하다는 결론이 납니다.


이제 Arduino 정품을 구할 때가 되었습니다.




2. Micro

정품 Arduino Nano 를 구입하려고 시도합니다.

한국에서는 중국 클론 제품만 팔고 있고, 정식 사이트 가면 22 USD 입니다.



이럴꺼면 Flashrom 기계를 사겠어요.

혹시나 Taobao 에서 구매 가능한지 알아 봅니다.



2만 8천원.

배송비까지 포함하면 배보다 배꼽이 더 커집니다.


폭풍 검색 중, 오잉?!!!

AliExpress 에서 CH340 을 쓰지 않는 Arduino Micro 정품을 팔고 있네요?


그건 다름아닌 "Arduino Micro" !!!


https://ko.aliexpress.com/item/Hot-Sale-High-Quality-Micro-R3-ATmega32u4-Microcontroller-Board-With-USB-Cable-For-Arduino/32645790480.html


Arduino 계열 정품을 팔지 않는 AliExpress 에서 빙고 입니다.

(너무 잘만든 카피품 일 수도 있지만)


가격도 7 USD 정도. 1/3 가격 이하네요.

바로 주문합니다.





3. 도착

도착은 1주만에 왔습니다. 조금 가격이 있다보니 air mail 로 왔네요.

도착샷 입니다.



뽁뽁이에 잘 포장되어서 왔습니다.



정말 정품처럼 잘 포장되어 왔네요.

USB 연결은 안드로이드 연결하는데 많이 쓰이는 Micro-B 5 Pin 입니다.

참고로 Arduino Nano 클론 제품은 Mini-B 5 Pin 였습니다.



다행이 케이블이 동볼되어 있어서 바로 확인할 수가 있네요.



보드 위에 프린팅도 선명하게 잘 되어 있습니다.



뒷면도 인터넷에서 보이는 것과 완벽히 동일해 보입니다.


굿 shopping.




4. IDE 에 연결해 보기

Windows 에 연결하면 자동으로 driver 를 찾아 줍니다.



IDE 에서 "Tools > Board" 에서는 "Arduino/Genuino Micro" 를 선택합니다.



Port 는 아까 드라이버 인스톨시 보였던 "COM9 (Arduino/Genuino Micro)" 를 선택해 줍니다.



Tools > Get Board Info 를 보면 잘 인식하네요.



Windows 장치 관리자에서도 잘 인식합니다.



Linux 에서도 인식이 잘 되나 꼽아 봤습니다.



"Arduino LLC Arduino Micro" 로 검색되고,

USB device 로는 "/dev/ttyACM0" 로 연결 되었습니다.


참고로 Arduino Nano clone 제품은 "/dev/ttyUSB0" 로 인식하는 것이 다른 점 입니다.



특이한 점은 보드 밑부분에 전원 연결 확인용 푸른 LED 가 켜진다는 점입니다.


아래는 동작 동영상 입니다.

기본으로 fade 되는 LED 점등 sketch 가 upload 되어 있었습니다.

참 멋지게 점등되었는데, 다른 sketch 실험하느라 지워져 버렸네요.


할수 없이 IDE 들어가 있는 기본 blink sketch 를 동작시키는 동영상 입니다.





FIN

중국 Arduino 정식 제품도 파네요 !!!

And
prev | 1 | next