ESP8266 을 사용하면서 GPIO 핀이 많은 모듈이 필요해 졌습니다.
기존 ESP-01 은 arduino 와 연결하여 WiFi 부분을 커버하는 것 외에 sensor 로부터 값을 입력 받을 수 있는 추가 Pin 이 없습니다.
포름알데히드 센서를 이용해 보면서, ESP-01 말고 GPIO 핀이 많은 것을 찾게 되었습니다.
* Hardware | ZE08-CH2O Formaldehyde 센서 사용해보기
- https://chocoball.tistory.com/entry/Hardware-ZE08-CH2O-Formaldehyde-sensor-using
1. ESP-01
처음엔 몰랐지만, ESP2866 이라는 것은 ESP-01 만 뜻하는 것이 아니라, ESP8266EX 을 사용한 WiFi module 의 총칭이었던 것입니다.
지금까지 ESP8266 = ESP-01 로 알고, 입출력 Pin 이 더 필요한 경우, SoftwareSerial 을 어떻게 처리해야 하는지 히고 있었습니다.
위의 도식처럼 ESP8266EX 는, 많은 GPIO 를 지원하고 있었습니다.
단순히, ESP-01 의 pin out 갯수가 적었던 것이였죠. 더 많은 연결을 위해 ESP-01 도 pin out 을 처음부터 늘려 줬으면 어떠했을까 합니다.
어떤 사람이 "it's a shame to have such a small number of GPIOs at ESP-01" 라고 쓴 글을 본것 같습니다.
ESP8266EX chip 의 가느다란 다리에 직접 선을 납땜하면 사용할 수 있습니다. 시도해 봅니다.
실패.
2. ESP-03
ESP8266EX 를 사용하면서 GPIO 핀을 활용할 수 있는 breakout 보드들이 존재 했었습니다. ESP-03 / ESP-07 / ESP-12 등등...
ESP32 를 쓰면 쉽게 문제 해결 되지만, 굳이 어려운 방법으로 도전해 보기로 합니다.
우선 ESP-03 만 보더라도 GPIO 가 8개나 Pinout 으로 구성되어 있습니다.
자세한 Pinout 정보 입니다.
참고로, RST pinout 은 따로 구비되어 있지 않고, 아래 사진처럼 보드 위에 마련되어 있습니다.
Program 을 입힐 때, RST 가 있으면 편하나, 전원을 껐다 키면서 IO 0 (HIGH Run, LOW Flash) 핀을 이용하여 되니, 사용하지 않기로 합니다.
사용 전력을 아끼는 Sleep mode 구현시에는 필요하다 하나, 지금은 필요 없으니 그냥 놔두기로 합니다.
우선 ESP-03 을 구입.
* 1PC ESP8266 serial WIFI model ESP-03 Authenticity Guaranteed esp03 for arduino
- https://www.aliexpress.com/item/32641401163.html
잊어먹고 있으니, 어느새 도착.
ESP8266EX 메인 칩과, 25Q40CT 라고 쓰인 Flash memory 가 보입니다.
사용된 오실레이터는 26MHz 입니다.
3. 어뎁터 보드 구매
ESP-03 의 Pin 들은, 빵판에 바로 연결할 수 있는 2.54mm 간격이 아니고, pin 들 사이가 더 조밀합니다.
이를 해결하기 위해, 자가로 pin header 를 붙일 수도 있고, 직접 선을 연결할 수 있으나 지저분해 집니다.
원래는 ESP-07 / ESP-12 용으로 나와 있는 어뎁터가 있는데, 잘만 하면 맞을 것 같더군요.
어차피 ESP-07 / ESP-12 구매하면 필요할 듯 하여, 5개가 한 묶음인 아래 어뎁터 보드도 구매합니다.
* 5pcs/lot ESP8266 serial WIFI Module Adapter Plate Applies to ESP-07, ESP-12F, ESP-12E
- https://www.aliexpress.com/item/32971304797.html
잊을만 하니 도착.
양쪽에 male pin header 를 연결할 수 있게 되어 있고, ESP-07 / ESP-12 pin 과 맞닿는 부분을 납땜하게 되어 있습니다.
ESP-03 을 얹어 보니, 납땜 부위와 간격이 많이 떨어져 있으나, 납물을 길게 연결하여, 어찌어찌 연결할 수 있을 것 같습니다.
4. ESP-03 을 어뎁터 보드에 납땜
친절하게도 전원 관련된 저항이 어뎁터에 이미 실장되어 있습니다.
뒷면에는 3.3V 용 레귤레이터 자리도 마련되어 있습니다. 전압이 over shoot 나지 않게 안정적인 전원 공급을 위해 있으면 좋은 것이죠.
마침 3.3V regulator 가 있으니 붙여 줍니다.
원래는 ESP-07 / ESP-12 를 위한 저항과 레귤레이터 회로겠으나, 아래를 참고하면서 ESP-03 에서도 활용할 수 있는지 확인해 봅니다.
* MY METHOD FOR BREADBOARDING AN ESP-03
- https://www.esp8266.com/viewtopic.php?p=18369
일반 사용 모드와, flashing 모드를 위해서는 push switch 도 붙여야겠네요.
확인에 또 확인하고 아래와 같이 만들어 봤습니다.
실패...
저항이고 레귤레이터고, 스위치고 점퍼고 다 제거했습니다. 단순하게 사용하는게 최고 입니다.
납땜은 아래처럼 길게 늘여뜨리면, 이 어뎁터를 ESP-03 용으로 사용 가능합니다.
5. Flash memory 크기 확인
25Q40CT 라고 씌인 Flash memory 사양을 검색해 보니 대충 다음과 같은 사양입니다.
- GIGADEVICE [GigaDevice Semiconductor (Beijing) Inc.]
- GD25Q40CTEG : 3.3V Uniform Sector Dual and Quad Serial Flash
- GigaDevice Semiconductor (Beijing) Inc.
- 4M-bit (512K-byte)
4Mbit = 512KiB... 털썩.
FTDI 모듈과 TX/RX 를 연결하여 본격적으로 활용해 봅니다. ESP-03 의 연결 정보는 다음과 같습니다.
전원과 FTDI 그리고 flashing 을 위한 스위치 연결 구성은 다음과 같아요.
가능하면 전원 공급은 FTDI 를 통해서 얻는것 보다, 분리하는 것이 좋습니다.
실재 구현 모습입니다.
FTDI 를 이용하여 PC 에 연결해, 확인해 봅니다. 역시군요.
기본으로 입혀져 있는 firmware 는 AI-Thinker 의 Boot 모드인 듯 합니다.
ESP8266 library 를 인스톨 하면, 기본으로 제공되는 Flash Check 소스를 입혀 봅니다.
File > Examples > ESP8266 > CheckFlashConfig
Flash mode 를 위해, 달아 놓은 스위치를 누르면서 전원을 넣고, flashing 을 해 봅니다. 잘 flashing 되네요.
그렇습니다... 틀림없는 512KiB 네요.
6. firmware update
Flash memory 를 교체하여 용량을 늘릴 예정이지만, 512KiB 에 올릴 수 있는 firmware 를 찾아 봅니다.
찾는 와중에 알게된 용어 정리.
APIs of "ESP8266_RTOS_SDK" are same as "ESP8266_NONOS_SDK"
중국산 모듈에 가장 많이 쓰이는 AI-Thinker.
* Ai-thinker
- v0.9.5.2
- https://wiki.aprbrother.com/en/Firmware_For_ESP8266.html
파일명에 9600 표시가 없는 firmware : one for 9600 baud rate
파일명에 9600 표시가 없는 firmware : one for 115200 baud rate
* Updating ESP8266 Firmware
- https://os.mbed.com/users/sschocke/code/WiFiLamp/wiki/Updating-ESP8266-Firmware
ESP8266_RTOS_SDK_v1.1_512kb.zip
Firmware 파일 못지 않게 중요한 address 정보.
--------------------------------------- | BIN | Address | --------------------------------------- | boot_v1.1.bin | 0x00000 | | user1.bin | 0x01000 | | esp_init_data_default.bin | 0x7C000 | | blank.bin | 0x7E000 | ---------------------------------------
잘 동작함.
* Espressif Systems (SDK V2.0.0 / AT V1.3)
4a-esp8266_at_instruction_set_en.pdf
esp8266_nonos_sdk_v2.0.0_16_08_10.zip
4Mbit = 512KiB 에 SDK V2.0.0 과 AT V1.3 이 올라간다고 메뉴얼에 적혀 있습니다만, 저는 되지 않더군요.
* [SDK Release] ESP8266_NONOS_SDK_V1.4.0_15_09_18
- https://bbs.espressif.com/viewtopic.php?f=46&t=1124
esp_iot_sdk_v1.4.0_15_09_18.zip
많은 firmware 를 테스트 하다 보니, 이 버전의 firmware update 후의 화면인지 기억이 잘... 여튼 성공 했었던것 같아요.
Online 으로 firmware 를 업데이트 하는 FOTA 방식을 테스트 해봤습니다.
만, 마지막까지 문제 없이 진행되더니만 실패. Flash memory 용량이 적어 실패하는 듯.
7. 32Mbit / 4MiB 로 업그레이드
우선 Flash chip 양쪽에 납을 충분히 먹이고 인두로 지지니 쉽게 떨어집니다. 무리해서 힘주지 않는게 포인트.
원래 실장되어 있던 flash memory 와 교체하려는 flash memory 크기만 비교해 봐도 꽤 다릅니다.
32Mbit Flash memory chip 을 납땜합니다. Oscillator 와 사이가 좁아서 힘들었습니다.
512KiB 칩은 조그마한 크기였는데, 4MiB 칩은 좀 큰 편이라, 기존 자리에 납땜 하려면 다리를 안쪽으로 구부려야 합니다.
ESP8266 DOWNLOAD TOOL 로 확인해 보니, 문제 없이 flash memory upgrade 가 완료 되었습니다.
구울 firmware 버전은 Non-OS 중에서 가장 최신 버전.
ESP8266_NonOS_AT_Bin_V1.7.4.zip
Flashing 할 때는, Address 를 정확히 따라야 합니다. V1.7.4 의 32Mbit (1024 KB + 1024 KB) 설정은 다음과 같습니다.
메뉴얼 대로 Address 잘 기입해서 flashing~!
문제 없이 booting 됩니다.
웃긴건, booting 할 때는 76,800 baud rate 로 동작하고 (위의 스샷에서 글씨가 깨지는 부분), 기본 모드에서는 115,200 baud 로 동작합니다.
8. WiFi 기능과 Sensor 값 입력을 동시에 수행
용량도 늘었으니, WiFi 기능을 사용하면서 sensor 값을 GPIO 14 으로 받아 internet 을 통해 값을 쏴주는 과정을, 아래 포스트에서 진행.
* Hardware | ZE08-CH2O Formaldehyde 센서 사용해보기
- https://chocoball.tistory.com/entry/Hardware-ZE08-CH2O-Formaldehyde-sensor-using
Serial Monitor 에서 확인할 결과, GPIO 14 에서 입력 받은 값들도 정상적으로 확인.
인터넷을 통해서도 잘 값들이 전달됨도 확인 하였습니다. (자세한건 위의 포스트에서 확인 가능합니다.)
9. 추가 구매
이참에 ESP8266EX 시리즈를 추가로 구매 했습니다. 가지고 있는 ESP-01 이 납땜 실패로 사용할 수 없으니, ESP-01 도 추가 구매.
* 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
ESP-01
언제 사용해 보겠냐며, ESP-07 도 구매.
ESP-07
ESP8266 chip 의 끝판왕 breakout 보드인 ESP-12F 도 구매.
ESP-12F
다음 포스팅 들은 ESP-07 / ESP-12F 에 대한 이야기가 되겠네요.
'Hardware' 카테고리의 다른 글
Hardware | INSTOCK PD594A 구입기 (0) | 2020.10.12 |
---|---|
Hardware | Fuji Xerox CP116w 수리 성공기 (52) | 2020.10.07 |
Hardware | ZE08-CH2O Formaldehyde 센서 사용해보기 (4) | 2020.08.14 |
Hardware | ROKU 로 화면 미러링 사용해 보기 (0) | 2020.07.29 |
Hardware | SK 스마트미러링 사용해 보기 (2) | 2020.07.28 |