Hardware | ESP-01 or ESP8266 사용기 - 4

|

이 포스트와 관련된 ESP8266 글이 있습니다.


* Hardware | ESP-01 or ESP8266 사용기 - 1

https://chocoball.tistory.com/entry/Hardware-ESP01-or-ESP8266-using-1


* Hardware | ESP-01 or ESP8266 사용기 - 2

https://chocoball.tistory.com/entry/Hardware-ESP01-or-ESP8266-using-2


* Hardware | ESP-01 or ESP8266 사용기 - 3

https://chocoball.tistory.com/entry/Hardware-ESP01-or-ESP8266-using-3


ESP8266 은 지속적으로 개선된 버전을 firmware 업데이트를 통하여 적용하고 있습니다.

그러나, 요즘 나오는 새로운 firmware 는 16Mbit = 2MByte 이상 되는 용량이 있어야 update 가 가능합니다.

그 만큼 다양한 명령어와 프로그램이 추가되는 것이겠죠.





1. Flash Size


기존에 가지고 있는 ESP8266 의 메인칩 옆을 확인해 보면, 메인칩과 비슷한 크기의 Flash chip 이 붙어 있습니다.



제품 코드를 보니 Berg Miro 제품의 Flash memory 네요.


* BergMicro

https://www.elnec.com/en/device/Berg+Micro/BG25Q80A+(ISP)/



25Q80SCP datasheet 는 못 찾았지만, 타 제조사 들과 비슷한 제품 코드를 사용하고 있으며,

그 사양서에 따르면 8M-bit/1M-byte 라고 되어 있네요. 즉, 위 부품도 1MiB 실장으로 보입니다.





2. Upgrade Chip


우선 업그레이드 할 Flash Chip 용량의 크기를 정해 봅시다.

32Mbit = 4MByte 정도면 충분할 것 같네요.


AliExpress 를 검색하던 중, 32M-bit/4M-byte 버전이 아래와 같이 두가지가 있습니다.

그 차이를 정확히 알지 못하니 일단 두개 모두 구입해 봅니다.


* 5PCS W25Q32BVSSIG SOP-8 W25Q32 SOP 25Q32BVSIG SMD W25Q32BVSIG 25Q32

https://www.aliexpress.com/item/10PCS-W25Q32BVSSIG-SOP-8-W25Q32-SOP-25Q32BVSIG-SMD-W25Q32BVSIG-25Q32-free-shipping/32727772232.html



* 5PCS W25Q32FVSSIG SOP8 25Q32 SOP 25Q32FVSIG SOP-8 W25Q32FVSIG SMD W25Q32 new and original IC

https://www.aliexpress.com/item/5PCS-W25Q32FVSSIG-SOP8-25Q32-SOP-25Q32FVSIG-SMD-new-and-original-IC-free-shipping/32541803919.html






3. W25Q32


두 가지 chip 의 차이를 확인해 봅시다. 일단 datasheet 를 첨부해요.


* W25Q32BV

w25q32bv_revi_100413.pdf


* W25Q32FV

w25q32fv_revi_10202015.pdf


사양서를 다 읽어보지는 못했지만, FEATURE 섹션만 비교해 보면,

SPI clockdata transfer rate 에서 F 버전이 더 성능이 좋습니다.

그래서 조금 더 비쌌던것 같습니다.


* W25Q32BV



* W25Q32FV



잘 도착해서 실물을 하나씩 꺼내 사진을 찍어 봤습니다.






4. Flash Chip 교환


기판에서 flash chip 만을 이쁘게 제거해야 합니다.

열풍기가 있으면 좋겠지만, 아직 가지고 있지 않으므로, 다른 방법으로 제거해 봅니다.



솔더윅 이구요. 기판에서 납을 빨아들여 제거해 주는 역할을 합니다.



액체 플럭스 이구요. 납을 쉽게 녹여주는 역할을 합니다.

SMD 칩의 쪼만한 다리들을 그냥 납땜하는건 힘든데, 이걸 발라 놓으면 납들이 쉽고 이쁘게, 알아서 붙어줍니다.



액체 플럭스와 솔더윅으로 지지고 있으니, 톡 하고 분리되네요.

음후후, 이걸 하기 위해 기다렸어!



플럭스의 찌꺼기를 깨끗하게 씻어내기 위해, 일반 약국에서 파는 에탄올을 바르고 칫솔로 쓱싹쓱싹.

95% 이상의 에탄올을 구입하고 싶은데, 쉽지 않네요. 일단 83% 라도 만족. 참고로 1000원에 구입.



훗, 깨끗해 졌군요.

새로운 칩을 자리 잘 잡아서 얹힌 다음, 액체 플럭스 바르고, 납땜하면 끝.



역시 마무리는 에탄올로 쓱싹쓱싹.



제거된 친구들. 잘가~.



ESP8266 은 총 3개를 가지고 있지만, 그 중 2개만 교환해 봤습니다.

RobotDyn 제품은 FV 버전으로.



Ai-Thinker 제품은 BV 버전으로 교환했습니다.





5. Flash 용량 확인


ESP FLASH DOWNLOAD TOOL 을 띄웁니다.



기존 Flash chip 교환 전 정보는, Vendor : GD, QUAD : 8Mbit 으로 표시됩니니다.



교체된 Flash chip 정보는, Vendor : WBQUAD : 32Mbit 으로 표시됩니니다.

Ai-Thinker 버전은 납땜 하다가, 쪼만한 SMD 저항 하나가 날라가 버려, 그걸 찾아서 다시 붙이는데 애를 먹였으나, 잘 동작 하는군요.





6. Espressif 버전 firmware upgrade


Espressif 에서 제공되는 최신 firmware 로 업그래이드 해봅니다.


그런데 계속 제대로 동작하지 않더군요. 뭐가 문제일까...

그러다가 아래 링크를 찾게 됩니다.


* Flashing AT 1.7.0 binary firmware in 32m-c1 mode not working

https://github.com/espressif/ESP8266_NONOS_SDK/issues/179


요지는, 32Mbit-C1 버전을 사용할 수 있어야 하지만 뭔가의 문제로 정상 동작하지 않고,

chip selection 에서 16Mbit-C1 을 선택해야 한다는 군요. 이렇게 되면, 32Mbit 의 넓은 영역을 다 활용하지 못할 터인데...

bug 가 고쳐지지 않는 이상 16Mbit-C1 으로 구워야 할 것 같습니다.



또한, 최신 Espressif 의 1.7 binary 버전은 only '1024+1024 flash map' 만에 대응한다 합니다.

어차피 '512+512 flash map' 은 찾을 수 없었습니다.


다운로드는 아래 두 군대에서 받을 수 있습니다.

하나는 AT command 버전은 1.7 이고, 다른 하나는 Non-OS SDK 가 3.0 입니다.


ESP8266 AT Bin V1.7.0

https://www.espressif.com/en/support/download/at?keys=&field_type_tid%5B%5D=14

ESP8266_AT_Bin_V1.7.zip


ESP8266 NONOS SDK V3.0.0

https://www.espressif.com/en/support/download/sdks-demos?keys=&field_type_tid%5B%5D=14

ESP8266_NONOS_SDK-3.0.zip


위의 두 파일 중 어떤것을 사용해도 상관 없습니다. 동일합니다.


위에서 이야기 했다 싶이, 기껏 32Mbit-C1 이지만, 설정에서는 16Mbit-C1 으로 해야 합니다.

또한 address 도 16Mbit-C1 에 맞춰서 해줘야 정상으로 동작합니다. (아래는 READ.me 파일 일부)


# BOOT MODE

## download

### Flash size 16Mbit-C1: 1024KB+1024KB

    boot_v1.2+.bin              0x00000

    user1.2048.new.5.bin        0x01000

    esp_init_data_default.bin   0x1fc000

    blank.bin                   0xfe000 & 0x1fe000


결과적으로 아래 파일들을 다음과 같이 address 에 맞춰 설정하면 됩니다.


- boot_v1.7.bin : 0x00000

- user1.2048.new.5.bin : 0x01000

- esp_init_data_default_v08.bin : 0x1fc000

- blank.bin : 0xfe000

- blank.bin : 0x1fe000



특별히 문제 없이 flashing 되었습니다.



putty 를 이용해 serial 접속 후, 기본적인 AT 명령어를 날려 봅니다. 문제 없군요.

최신 버전인 AT version:1.7.0.0 과 SDK:3.0.0 이 표시됩니다.



아쉽지만, 16Mbit(1024KB+1024KB) 로 설정됨을 확인할 수 있습니다.





7. Ai-Thinker 버전 firmware upgrade


Ai-Thinker 버전은 단순히 최신 버전을 다운로드 하여 flash memory 에 입히면 됩니다.


* ESP8266 latest SDK release

https://wiki.ai-thinker.com/esp8266/sdk

ai-thinker_esp8266_dout_32mbit-c1_v0.0.0.7s_20170804.rar


또한 address 는 0x00000 한개로 끝납니다.


- AiThinker_ESP8266_DOUT_32M-C1_0.0.0.7s_20170804.bin : 0x00000



32Mbit-C1 을 선택해도 특별히 문제 없습니다. (이게 정상)

Flashing 후에, putty 를 이용하여 Serial 로 연결해 봤습니다.



후훗. 32Mbit(1024KB+1024KB) 으로 잘 표시 되네요.



최신버전임을 보여 줍니다.

Ai-Thinker 는 특별히 Web Server 가 ESP8266 에서 돌아갑니다.


WiFi 에 접속 후, 할당받은 IP 로 접근해 보면, 아래와 같은 설정 UI 화면을 볼 수 있습니다.



한번 WiFi 를 통해 IP 를 받아 놓으면 Serial 통신을 하지 않더라도, web browser 를 통해서 간단한 설정을 할 수 있다는게 매력적입니다.


다만, internet 상에서 접근할 수 있으면, 그 만한 보안 대책도 마련되어야 하는데,

조그마한 firmware 에 보안 대책용 code 까지 집어 넣었을 수 없을 터이니, 사용하지 않는 편이 나은것 같습니다.





6. 주의점


ESP8266 은, reboot 이나, firmware update 후에는 꼭! serial 접속을 완전히 끊어서 재접속 하거나,

USB connection 마저도 끊었다가 다시 연결해야 합니다.


그렇지 않으면, 원활하게 동작 확인이 불가능할 때가 많습니다.


Reset 버튼 누르고 전원을 새롭게 인가했다 한들, serial connection 자체도 reset 하지 않으면,

AT command 가 먹히지 않아 제대로 동작하지 못한다고 생각할 수 있습니다.

이런 경우, 정상 동작 하지 않는다고 생각하여 다른 version 으로 flashing 해보는 등, 삽질이 길어질 수 있습니다.


Reset 할 때 마다, 매번 Serial connection 자체도 재연결 해야 하나 (엄청 귀찮음),

최대한 삽질을 적게 하고싶으면 Serial connection 도 같이 reset 하세요.


ESP8266 은 전원을 따로 확보해야 하고, Reset 할 때마다 connection 도 동시에 reset 해야 하는 등,

참 까다로운 디바이스인것 같습니다.





FIN


가지고 있는 ESP8266 의 Flash memory chip 까지 upgrade 해 봤으니,

이 다음으로는, 이 드넓은 메모리 영역을 활용해 보겠습니다.


아! 마지막으로, FV 버전이 flashing 할 때, 약 4배정도 더 빠릅니다.

부품은 비싼걸 구입하는 것이 정답이네요.




Update - 20200224


CO2 측정 결과 값을 ThingSpeak 에 올리기 위해, 다시금 가지고 있는 ESP-01 을 꺼냈습니다.

혹시나 해서 최신 firmware 를 확인해 봤더니, 새로운 버전 1.7.2 가 올라와 있네요.


ESP8266_NonOS_AT_Bin_V1.7.2_0.zip


위의 zip 파일에는 SDK 도 최신인 3.0.2 도 포함되어 있었습니다.





Update - 20200812


포름 알데히드 센서를 ESP-01 을 가지고 GPIO 를 확장하여 테스트 해보려다가 하나를 망가트렸습니다.


* Hardware | ZE08-CH2O Formaldehyde 센서 사용해보기

https://chocoball.tistory.com/entry/Hardware-ZE08-CH2O-Formaldehyde-sensor-using


예비를 위해 하나 추가 구매.


* ESP8266 ESP-01 ESP-01S ESP-07 ESP-12E ESP-12F remote serial Port WIFI wireless module intelligent housing system Adapter 2.4G

https://www.aliexpress.com/item/32339917567.html



Flash 메모리는 8Mbit = 1MiB 용량입니다.



32Mbit = 4MiB 로 확장해 줍니다.



붙어있는 flash memory 를 분리해 내기 위해, 이번에는 납물을 많이 뭍히는 방법으로 제거 했습니다.

납물을 많이 뭍히면, 열을 조금 오랜동안 머금고 있으므로, 다른 한쪽에 인두를 가져다 댈 때까지 유지해주니 chip 이 쉽게 떨어집니다.



교체 완료.



32Mbit 으로 잘 인식합니다.



다만, 다른 캐패시터를 건드렸는지, 어디에선가 쇼트가 나는 듯 합니다. 전원에 연결하면, 전원쪽 regulator 가 엄청 뜨거워지네요.

SMD 납땜은 인두기로 작업하다 보면 옆의 부품을 건드리게 되니, SMD 납땜은 열풍기가 답인 듯 합니다.


And