'esp-12'에 해당되는 글 3건
- 2021.02.02 Hardware | ESP-12 사용기 6
- 2021.01.08 Hardware | ESP-07 사용기 2
- 2020.08.17 Hardware | ESP-03 사용기
ESP-01 부터 시작한 ESP8266 시리즈 중, 이번에는 ESP-12 사용기 입니다.
* Hardware | ESP-07 사용기
- https://chocoball.tistory.com/entry/Hardware-ESP07-using
* Hardware | ESP-03 사용기
- https://chocoball.tistory.com/entry/Hardware-ESP03-using
* Hardware | ESP-01 or ESP8266 사용기 - 5
- https://chocoball.tistory.com/entry/Hardware-ESP01-or-ESP8266-using-5
* Hardware | ESP-01 or ESP8266 사용기 - 4
- https://chocoball.tistory.com/entry/Hardware-ESP01-or-ESP8266-using-4
* Hardware | ESP-01 or ESP8266 사용기 - 3
- https://chocoball.tistory.com/entry/Hardware-ESP01-or-ESP8266-using-3
* Hardware | ESP-01 or ESP8266 사용기 - 2
- https://chocoball.tistory.com/entry/Hardware-ESP01-or-ESP8266-using-2
* Hardware | ESP-01 or ESP8266 사용기 - 1
- https://chocoball.tistory.com/entry/Hardware-ESP01-or-ESP8266-using-1
1. 구입
일전에 구입한 ESP-07 와 동일한 업자에게서 구입.
* 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
도착 샷.
Pinout 정보가 새겨진 뒷면.
2. Pinout
ESP8266EX 칩을 충분히 활용할 수 있는 Pinout 구성으로 되어 있습니다.
3. Breakout 보드
중간의 0 ohm 을 제거해 주면, 뒷 면의 Voltage Regulator 를 사용할 수 있게 됩니다.
이는 ESP-07 에서도 다루었던 내용이라, 자세한 내용은 생략합니다.
4. Diagram
Programming (Flashing) 하는 연결도와 Normal (구동) 하기 위한 연결도는 다릅니다. 아래 사이트에서 정보를 얻었습니다.
* Programming ESP8266 ESP-12
- https://www.instructables.com/Programming-ESP8266-ESP-12/
* Programming Mode
Flash 메모리에 새로은 firmware 나 source 를 올리기 위한 mode 입니다.
차이는 IO0 / 18 번 pin 을 pull-up 해주냐 마냐의 차이.
* Normal Use Mode (after Upload)
위의 Programming 모드와 Normal 모드를 결합한 연결 구성 입니다.
이 Programming mode 로 진입하기 위해서는, 스위치 버튼 눌러주면서 전원을 on 하면 됩니다.
실제 구성 사진은 다음과 같습니다.
사실은 Breakout 보드에 ESP-12 를 결합해 놨으므로, Breakout 보드상에 이미 장착된 저항을 이용하면, 추가로 저항 2개만 필요합니다.
위 / 아래 연결 구성은 Breakout 보드가 없을 때의 모습이지만, 필요한 Pin 에 Voltage/Ground 가 연결되어 있으므로 문제 없이 동작합니다.
ESP2866 계열에서는 그나마 끝판왕인 ESP-12 가 연결된 모습.
5. 기본 확인
기본으로 올려진 Firmware version 과 몇 가지 명령어 시험.
기본 버전은 2016년의 1.3.0.0 이군요.
AT+RST 를 이용하여 rebooting. 사용된 Flash Chip 정보를 알 수 있습니다. QIO 모드이면서 32Mbit (512KB+512KB) 라고 나옵니다.
32Mbit 면 1024KB+1024KB 일 듯 한데... 일단 넘어 갑니다.
Internet 에 연결하여 AT+CIUPDATE 실행을 통하여 원격 update 를 시도해 봤으나, ERROR 를 냅니다. 역시나 옛날 버전.
Flash Chip 은 QUAD : 32Mbit 로 문제 없이 확인 됩니다.
6. Programming
일단은 문제가 없는 듯 하니, source 를 올려 봅니다. 테스트 해볼 소스는 Blink 와 CheckFlashConfig.
CheckFlashConfig 소스는 다음과 같습니다.
/* ESP8266 CheckFlashConfig by Markus Sattler This sketch tests if the EEPROM settings of the IDE match to the Hardware */ void setup(void) { Serial.begin(115200); } void loop() { uint32_t realSize = ESP.getFlashChipRealSize(); uint32_t ideSize = ESP.getFlashChipSize(); FlashMode_t ideMode = ESP.getFlashChipMode(); Serial.printf("Flash real id: %08X\n", ESP.getFlashChipId()); Serial.printf("Flash real size: %u bytes\n\n", realSize); Serial.printf("Flash ide size: %u bytes\n", ideSize); Serial.printf("Flash ide speed: %u Hz\n", ESP.getFlashChipSpeed()); Serial.printf("Flash ide mode: %s\n", (ideMode == FM_QIO ? "QIO" : ideMode == FM_QOUT ? "QOUT" : ideMode == FM_DIO ? "DIO" : ideMode == FM_DOUT ? "DOUT" : "UNKNOWN")); if (ideSize != realSize) { Serial.println("Flash Chip configuration wrong!\n"); } else { Serial.println("Flash Chip configuration ok.\n"); } delay(5000); }
QIO 및 4MiB 네요. 지금까지 완성품을 구입한 ESP8266 계열에서는 가장 좋은 Flash Chip 을 사용한 모듈 입니다.
소스가 업로드 되는 과정에 있어서도 문제 없습니다. 순탄한 흐름.
esptool.py v2.8 Serial port COM3 Connecting.... Chip is ESP8266EX Features: WiFi Crystal is 26MHz MAC: 50:02:91:78:d3:60 Uploading stub... Running stub... Stub running... Configuring flash size... Auto-detected Flash size: 4MB Compressed 267104 bytes to 196785... Wrote 267104 bytes (196785 compressed) at 0x00000000 in 17.5 seconds (effective 122.3 kbit/s)... Hash of data verified. Leaving... Hard resetting via RTS pin...
보드상에 장착된 LED 를 깜빡이는 소스 입니다.
/* ESP8266 Blink by Simon Peter Blink the blue LED on the ESP-01 module This example code is in the public domain The blue LED on the ESP-01 module is connected to GPIO1 (which is also the TXD pin; so we cannot use Serial.print() at the same time) Note that this sketch uses LED_BUILTIN to find the pin with the internal LED */ void setup() { pinMode(LED_BUILTIN, OUTPUT); // Initialize the LED_BUILTIN pin as an output } // the loop function runs over and over again forever void loop() { digitalWrite(LED_BUILTIN, LOW); // Turn the LED on (Note that LOW is the voltage level // but actually the LED is on; this is because // it is active low on the ESP-01) delay(1000); // Wait for a second digitalWrite(LED_BUILTIN, HIGH); // Turn the LED off by making the voltage HIGH delay(2000); // Wait for two seconds (to demonstrate the active low LED) }
예상한 것과 달리 문제 없이 동작.
지금까지 ESP8266 가지고 놀았던 과정 중, 전혀 문제 없이 여기까지 왔습니다.
ESP8266 을 Flashing 하는 작업은 이제 통달 한 듯 한 느낌.
7. Firmware Update
최신 firmware 를 사용합니다. 2020년에 공개된 Non-OS SDK 3.0.4 를 이용합니다.
Firmware upload 에 필요한 BIN 파일 및 Address 는, 최신 문서에 잘 나와 있습니다.
4a-esp8266_at_instruction_set_en.pdf
32 Mbit (4 MiB) 버전이므로, 아래 section 을 찾아 BIN / Address 정보를 그대로 사용합니다.
--------------------------------------------------------------------------------------------- | BIN | Address | Description | --------------------------------------------------------------------------------------------- | boot_v1.7.bin | 0x00000 | In /bin/at. | --------------------------------------------------------------------------------------------- | user1.2048.new.5.bin | 0x01000 | In /bin/at/1024+1024. | --------------------------------------------------------------------------------------------- | blank.bin | 0x3FB000 | Initializes RF_CAL parameter area. | --------------------------------------------------------------------------------------------- | esp_init_data_default_v08.bin | 0x3FC000 | Stores default RF parameter values, | | | | has to be downloaded into flash at least once. | | | | If the RF_CAL parameter area is initialized, | | | | this bin has to be downloaded too. | --------------------------------------------------------------------------------------------- | blank.bin | 0xFE000 | Initializes Flash user parameter area, | | | | more details in Appendix. | --------------------------------------------------------------------------------------------- | blank.bin | 0x3FE000 | Initializes Flash system parameter area, | | | | more details in Appendix. | ---------------------------------------------------------------------------------------------
Flash chip 용량이 크고, SPI Mode 도 빠르기 때문에, 1024 KB + 1024 KB (32 Mbit-C1) 버전으로 입혀 봅니다.
별다른 문제 없이 성공. 최신 버전인 AT - 1.7.4 / SDK - 3.0.4 가 올라 갔습니다.
AT+RST 를 이용하여 rebooting sequence 를 보면, QIO / 32Mbit(1024KB+1024KB) 로 잘 동작 합니다.
참고로, "SpiAutoSet" 을 키고 업로드 하면, 강제로 32Mbit 으로 변경됩니다.
1024 KB + 1024 KB (32 Mbit-C1) 버전용 BIN / Address 를 사용하고 있으므로, 메뉴얼로 32Mbit-C1 을 선택해 줘야 합니다.
8. AT Command 확인
Internet 접속 및 전번적인 확인 작업. 특별히 문제 없슴.
* AT+CWMODE_CUR : Sets the Current Wi-Fi mode; Configuration Not Saved in the Flash
- 1: Station mode
- 2: SoftAP mode
- 3: SoftAP+Station mode
* AT+CWLAP : Lists Available APs
* AT+CWJAP_CUR : Connects to an AP; Configuration Not Saved in the Flash
* AT+CIFSR : Gets the local IP address
* AT+PING="www.google.com" : Ping packets
* AT+CIPSTATUS : Gets the connection status
* AT+CIPBUFSTATUS : Checks the status of TCP-send-buffer
* AT+CWQAP : Disconnects from the AP
AP 와 연결을 끊으면, internet 연결 정보가 깔끔하게 reset 되지 않고 일정 시간동안 남아 있습니다.
시간이 지나고 다시 확인하면 reset 되어 있슴.
* AT+CIUPDATE : Upgrades the software through network
역시 최신 firmware 라 그런지, FOTA - 인터넷을 통한 firmware update 가 가능합니다.
Firmware update 하면서 LED 가 깜빡거리는 모습이 좋아, 동영상으로 담아 봤습니다.
* AT+RESTORE : Restores the Factory Default Settings
모든 확인이 끝났습니다. 앞으로 sensor 들과 같이 활용할 기회에 사용하면 되겠네요.
FIN
중국 제조사 답게 WeChat 관련한 옵션이 새로 추가되었습니다.
'Hardware' 카테고리의 다른 글
Hardware | CJMCU-103 Rotary Angle Sensor (6) | 2021.02.16 |
---|---|
Hardware | 보조배터리 분해해 보기 (0) | 2021.02.11 |
Hardware | Digi-Key 에서 전자부품 주문해 보기 (2) | 2021.02.01 |
Hardware | TIMER 수리기 (6) | 2021.01.21 |
Hardware | JLCPCB 에서 PCB 주문을 해보자 (2) | 2021.01.19 |
ESP8266 시리즈를 사용해 보면서, ESP-01 부터 시작하여 ESP-03 을 사용해 보았습니다.
* Hardware | ESP-03 사용기
- https://chocoball.tistory.com/entry/Hardware-ESP03-using
* Hardware | ESP-01 or ESP8266 사용기 - 5
- https://chocoball.tistory.com/entry/Hardware-ESP01-or-ESP8266-using-5
* Hardware | ESP-01 or ESP8266 사용기 - 4
- https://chocoball.tistory.com/entry/Hardware-ESP01-or-ESP8266-using-4
* Hardware | ESP-01 or ESP8266 사용기 - 3
- https://chocoball.tistory.com/entry/Hardware-ESP01-or-ESP8266-using-3
* Hardware | ESP-01 or ESP8266 사용기 - 2
- https://chocoball.tistory.com/entry/Hardware-ESP01-or-ESP8266-using-2
* Hardware | ESP-01 or ESP8266 사용기 - 1
- https://chocoball.tistory.com/entry/Hardware-ESP01-or-ESP8266-using-1
이번에는 ESP-07 입니다.
1. 구입
아래 AliExpress 링크에서 구입 했습니다.
ESP-12 도 함께 구입 했으니, 이 글 다음에는 ESP-12 에 대해서도 다뤄 보도록 하겠습니다.
* 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
도착 샷. 깡통 쉴드로 전자파 차폐가 되어 있습니다.
PCB 밑부분은 IO Pin 정보가 기재되어 있습니다.
제조는 DOITING 이라는 회사인 듯 한데, PCB 는 AI-Thinker 로 보이네요. 설계가 동일한지라 완전 짬뽕.
Pinout 정보 입니다.
2. Breakout Board
ESP-03 때도 사용 했었지만, EPS-07 / ESP-12 도 Breakout 보드에 올렸습니다.
이 Breakout 보드가 없으면, 2.54mm 의 Pin 간격이 맞지 않아 빵판에서 그 대로 사용할 수 없게 되어 있습니다.
주의해야 할 사항으로는, Voltage Regulator 를 추가로 장착시에는 중간에 보이는 "0" resistor 를 제거해야 정상 동작 됩니다.
* Adding Wi-Fi telemetry to the Pixhawk flight controller with an ESP8266 module
혹시 모를 전압 문제를 방지하고자, Voltage Regulator 를 장착 했습니다.
사실 3.3V 만 제대로 넣어 주면 상관 없는 것이긴 한데, 기판에 활용을 할 수 있게 해 놨으니 사용해 봅니다.
5V 를 인가하면, 3.3V 로 바꿔서 ESP-07 에 전압을 인가해 줍니다.
중간에 보이는 "0" ohm 저항은 이쁘게 제거.
그 위에 ESP-07 을 얹어 줍니다.
CH_PC 을 측정해 보면, 자동으로 전압이 Pull-down 되어 있는 것을 알 수 있습니다.
3. Diagram
Pinout 정보를 기반으로 연결해 보면 아래와 같이 됩니다.
다만, Breakout 보드에 Voltage Regulator 이외에, 필요한 Pull-down 저항이 구비되어 있으니, 연결은 좀 더 간단하게 할 수 있습니다.
* How to prepare your ESP8266 (ESP-12) for flashing
- https://www.sensate.io/tutorial-how-to-prepare-your-esp8266-esp-12-for-flashing
아래는 Breakout 보드가 없는 경우의 생 연결도 입니다.
아래는 Breakout 보드를 사용 했을 때의 연결도 입니다. (저의 경우)
Breakout 보드가 있더라도 Breakout 보가 없는 연결 방법을 해도 문제는 없으나,
이왕이면 정식 + 간단한 방법인 연결을 사용하면 되겠습니다.
실제 연결 모습은 아래와 같습니다.
4. 기본 Firmware 확인
기본 firmware 이 장착된 상태 이니, 어떤 version 인지 확인해 봅니다.
1.1.0.0 이고, 2016년 병신년 버전이네요.
AT+RST 하면, 보통 Flash Chip 정보도 나옵니다만, 예전 버전이라서 그런지 그딴거 없습니다.
Internet 연결 후, AT+CIUPDATE 를 해봐도 ERROR 만 반겨 줍니다.
5. 삽질의 향연
새로운 Firmware 를 올리고 시험해 봤으나, 아래와 같이 err 만 내 뱉습니다.
또한, BAUD Rate 가 74880 baud 의 변태적인 설정에서만 문자가 보이는 것이 맘에 들지 않더군요.
ESP8266 DOWNLOAD TOOL 에서 ERASE 후, firmware 올려도 동일한 현상입니다.
* 문제 1 : 적절한 Board 선택
첫 번째 문제는, Flash Chip 확인 위한 소스를 올릴 때, Generic ESP8266 Module 이 아니라,
먼저 테스트 했던 ESP-12 Module 용으로 설정 했던 것이 원인이었습니다.
ESP-12 용으로 소스가 입혀지다 보니, memory address 의 시작 지점부터 꼬였었던 것이 아닌가 추측해 봅니다.
* 문제 2 : 적절한 Flash Chip 의 SPI Mode 선택
Flash Chip 의 SPI Mode 가 Q 로 시작하는 QIO / QOUT 으로 설정한 것이 문제였습니다.
Flash Chip 은, ESP8266 DOWNLOAD TOOL 에서 "SpiAutoSet" 을 이용하여 자동 인식을 사용하면 QUAD 로 인식됩니다.
그리하여, 비슷한 QIO 또는 QOUT 로 설정하면 될 것 같으나, 사실은 DOUT 로 설정해야 정상 동작 합니다.
정상적일 때, Flash Chip 인식 소스를 이용하여 확인해 봐도, DOUT 으로 확인이 가능합니다.
File > Examples > ESP8266 > CheckFlashConfig
/* ESP8266 CheckFlashConfig by Markus Sattler This sketch tests if the EEPROM settings of the IDE match to the Hardware */ void setup(void) { Serial.begin(115200); } void loop() { uint32_t realSize = ESP.getFlashChipRealSize(); uint32_t ideSize = ESP.getFlashChipSize(); FlashMode_t ideMode = ESP.getFlashChipMode(); Serial.printf("Flash real id: %08X\n", ESP.getFlashChipId()); Serial.printf("Flash real size: %u bytes\n\n", realSize); Serial.printf("Flash ide size: %u bytes\n", ideSize); Serial.printf("Flash ide speed: %u Hz\n", ESP.getFlashChipSpeed()); Serial.printf("Flash ide mode: %s\n", (ideMode == FM_QIO ? "QIO" : ideMode == FM_QOUT ? "QOUT" : ideMode == FM_DIO ? "DIO" : ideMode == FM_DOUT ? "DOUT" : "UNKNOWN")); if (ideSize != realSize) { Serial.println("Flash Chip configuration wrong!\n"); } else { Serial.println("Flash Chip configuration ok.\n"); } delay(5000); }
DOITING 사의 원가 절감이나, Fake Chip 을 이용한 Flash 메모리 구성이 이런 결과를 초래한 것 같습니다.
6. Firmware 최신
하루 동안의 삽질을 끝내고, 겨우 최신 firmware 로 업데이트가 가능 했습니다.
아래 사이트에서 최신 버전의 firmware 를 다운로드 받습니다.
* ESPRESSIF
2021년 1월 기준, V3.0.4 가 최신입니다.
관련 문서를 보면, 8 Mbit = 1MiB Flash 를 update 와 관련한 address 와 해당 파일에 잘 나와 있습니다.
4a-esp8266_at_instruction_set_en.pdf
사용될 파일과 Address 정보는 다음과 같습니다.
--------------------------------------------------------------------------------------------- | BIN | Address | Description | --------------------------------------------------------------------------------------------- | boot_v1.7.bin | 0x00000 | In /bin/at. | --------------------------------------------------------------------------------------------- | user1.2048.new.2.bin | 0x01000 | In /bin/at/512+512. | --------------------------------------------------------------------------------------------- | blank.bin | 0xFB000 | Initializes RF_CAL parameter area. | --------------------------------------------------------------------------------------------- | esp_init_data_default_v08.bin | 0xFC000 | Stores default RF parameter values, | | | | has to be downloaded into flash at least once. | | | | If the RF_CAL parameter area is initialized, | | | | this bin has to be downloaded too. | --------------------------------------------------------------------------------------------- | blank.bin | 0x7E000 | Initializes Flash user parameter area, | | | | more details in Appendix. | --------------------------------------------------------------------------------------------- | blank.bin | 0x3FE000 | Initializes Flash system parameter area, | | | | more details in Appendix. | ---------------------------------------------------------------------------------------------
ESP8266 Download Tool 을 이용하여 Flashing 합니다.
짜잔~~ 최신 버전으로 update 되었습니다.
7. 최신 Firmware 확인
AT+RST 를 통해 booting sequence 를 확인해 봅니다.
SPI Mode 가 DOUT 이며, 8Mbit (512KB+512KB) 버전이라는 것을 알 수 있습니다.
Internet 연결을 위한 AT 명령어들을 차례로 확인해 봅니다.
* AT+CWMODE_CUR=3 : Sets the Current Wi-Fi mode. Configuration Not Saved in the Flash.
-- 1: Station mode
-- 2: SoftAP mode
-- 3: SoftAP+Station mode
* AT+CWLAP : Lists Available APs
* AT+CWJAP_CUR : Connects to an AP; Configuration Not Saved in the Flash
* AT+CIFSR : Gets the local IP address
* AT+PING="www.google.com" : Ping packets
* AT+CIPSTATUS : Gets the connection status
* AT+CIPBUFSTATUS : Checks the status of TCP-send-buffer
* AT+CIUPDATE : Upgrades the software through network
최신버전이라서 그런지, 인터넷을 통한 업데이트도 잘 됩니다.
신기한건, 분명 동일한 소스인데, 이렇게 인터넷을 통해 업데이트 하면 compile time 이 3초 (17초에서 20초로 변경) 정도 차이 납니다.
또한, jump to run user2 @ 81000 이라고 뜨면서, user 와 그 뒤의 숫자가 변경됩니다. 아마 모드가 바뀌면서 그런 듯.
* AT+RESTORE : Restores the Factory Default Settings
RESTORE 를 사용하면, 공장 초기화 및 rebooting 을 합니다.
궁금하여, AT+CIUPDATE 를 한번 더 했더니만, user 와 숫자가 원래 대로 되돌아 왔습니다.
Running 과 Control 모드, 두 개가 각각 번갈아 가면서, 동작을 관장 하는 것 같네요.
참고로, AT+CIUPDATE 동작하는 동영상을 올립니다. 다운로드 > Flashing > rebooting 의 일련의 과정이 한 번에 일어납니다.
8. Source 확인
Blink 소스를 올려 봤습니다.
File > Examples > ESP8266 > Blink
/* ESP8266 Blink by Simon Peter Blink the blue LED on the ESP-01 module This example code is in the public domain The blue LED on the ESP-01 module is connected to GPIO1 (which is also the TXD pin; so we cannot use Serial.print() at the same time) Note that this sketch uses LED_BUILTIN to find the pin with the internal LED */ void setup() { pinMode(LED_BUILTIN, OUTPUT); // Initialize the LED_BUILTIN pin as an output } // the loop function runs over and over again forever void loop() { digitalWrite(LED_BUILTIN, LOW); // Turn the LED on (Note that LOW is the voltage level // but actually the LED is on; this is because // it is active low on the ESP-01) delay(1000); // Wait for a second digitalWrite(LED_BUILTIN, HIGH); // Turn the LED off by making the voltage HIGH delay(2000); // Wait for two seconds (to demonstrate the active low LED) }
이쁘게 잘 동작 합니다.
FIN
'Hardware' 카테고리의 다른 글
Hardware | TIMER 수리기 (6) | 2021.01.21 |
---|---|
Hardware | JLCPCB 에서 PCB 주문을 해보자 (2) | 2021.01.19 |
Hardware | 필립스 HR2195 믹서기 수리기 (0) | 2021.01.07 |
Hardware | bGeigie Nano 충전을 wireless 로 바꿔보자 (0) | 2021.01.06 |
Hardware | Anker PowerConf 간단 사용기 (0) | 2020.11.04 |
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 |