'AMS1117'에 해당되는 글 4건

  1. 2021.02.02 Hardware | ESP-12 사용기 6
  2. 2021.01.08 Hardware | ESP-07 사용기 2
  3. 2020.08.17 Hardware | ESP-03 사용기
  4. 2019.08.04 Hardware | Arduino 를 DIY 해보자 - 2

Hardware | ESP-12 사용기

|

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)


Flash chip 에 업로드한 프로그램을 실행시키기 위한 모드 입니다.


위의 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) 라고 나옵니다.

32Mbit1024KB+1024KB 일 듯 한데... 일단 넘어 갑니다.



Internet 에 연결하여 AT+CIUPDATE 실행을 통하여 원격 update 를 시도해 봤으나, ERROR 를 냅니다. 역시나 옛날 버전.



Flash Chip 은 QUAD : 32Mbit 로 문제 없이 확인 됩니다.





6. Programming


일단은 문제가 없는 듯 하니, source 를 올려 봅니다. 테스트 해볼 소스는 BlinkCheckFlashConfig.



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);
}


QIO4MiB 네요. 지금까지 완성품을 구입한 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 를 이용합니다.


ESP8266_NONOS_SDK-3.0.4.zip



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 관련한 옵션이 새로 추가되었습니다.



And

Hardware | ESP-07 사용기

|

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

https://rays-blog.de/2016/10/21/224/adding-wi-fi-telemetry-to-pixhawk-flight-controller-with-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 ChipSPI 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

https://www.espressif.com/

ESP8266_NONOS_SDK-3.0.4.zip


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 ModeDOUT 이며, 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


And

Hardware | ESP-03 사용기

|

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)


GD25Q40C.PDF


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 = 512KiBSDK V2.0.0AT 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 에 대한 이야기가 되겠네요.


And

Hardware | Arduino 를 DIY 해보자 - 2

|

1. Arduino Nano 를 DIY 해보자


이 글은 아래 포스트에서 이야기한, arduino 를 직접 만들어보기 2탄 입니다.


* Hardware | Arduino 를 DIY 해보자 - 1

http://chocoball.tistory.com/entry/Hardware-Arduino-DIY-itself-1


처음 DIY 대상으로 arduino nano 입니다.

일단, 회로 보는 EAGLE 프로그램에서 뽑은 part list 를 구입에 필요한 것만 정리해 봤습니다.


-------------------------------------------------------------------------------------------------------
|                  name                  | value         | type                                       |
-------------------------------------------------------------------------------------------------------
| C1, C4, C6, C9                         | 100nF         | 0603 SMD                                   |
| C3, C7, C8                             | 1uF           | 0805 SMD                                   |
| C2, C5                                 | 4.7uF 16V     | 0603 SMD Tantalum capacitor                |
-------------------------------------------------------------------------------------------------------
| RP1, RP2                               | 1k Ohm        | CAY16 Network resistor SMD                 |
| L, PWR, RX, TX                         | LED           | 0805 SMD                                   |
-------------------------------------------------------------------------------------------------------
| D1                                     | SS1P3L-M3     | Schottky diodes & rectifier 30V 1A         |
| F1                                     | 500mA 6V      | 0603 SMD MF-FSMF050 Resetable Fuse         |
-------------------------------------------------------------------------------------------------------
| J1, J2                                 | 15 x 2        | single row male 2.54mm pich pin head       |
| J3                                     | USB Mini B    | USB Mini B type female socket              |
| J4                                     | 6             | double row male 2.54mm pitch pinhead       |
| SW1                                    | 157           | SMD tactail switch                         |
-------------------------------------------------------------------------------------------------------
| IC1                                    | FT232RL       | SSOP28 USB UART interface IC               |
| IC2                                    | LM1117IMPX-5.0| SOT223 Linear regulator                    |
| IC3                                    | ATMEGA328P-AU | TQFP32 8-bit Microcontroller               |
| Y1                                     | 16MHz         | SMD Crystal ceramic resonator              |
-------------------------------------------------------------------------------------------------------


0603 SMD 및 CAY16 network resistor 등, 소형화에 특화된 부품들로 구성되어 있습니다.

Oscillator 마저도 SMD 타입 입니다.


정품 arduino nano 의 앞면과 뒷면 사진 입니다.



최신 arduino nano 는 ATmega328 chip 크기가 더욱 작아진 MLF (Micro Lead Frame) 형식으로,

ATmega328-MU 가 실장되어 있습니다.


참고로, 이 ATmega328-MU 의 Package type 은 32M1-A 라고 하네요.

Atmel-42735-8-bit-AVR-Microcontroller-ATmega328-328P_Summary.pdf



아래는 밑면입니다.



맨 왼쪽 밑부분에 0603 크기의 fuse 가 있으며,

중간 부분에 SMD 형식의 network resistor 가 실장되어 있습니다.


공간을 최대한 적게 차지하도록 작은 부품들을 사용되어 있습니다. 다만 구하기 힘든 부품들입니다.





2. 구입 부품 최종 확인


정품 nano 에 사용된 SMD 크기는 0603 이지만, 받은 보드는 0805 SMD 로 수정되었으며,

다른 부붐들도 보다 범용적이고 큰 부품들로 변경되어 있다는 것을 알 수 있습니다. 아래 파일은 그 회로도 입니다.


* BL-386

BL-386.pdf


* BL-386(Silk)

BL-386(Silk).pdf


참고가 될 수 있도록 arduino nano 의 official 자료를 아래에 올려 놓습니다.


* Arduino Nano V3.2

Arduino_Nano-Rev3.2-SCH.pdf


아래는 무료로 받은 보드 윗면입니다.

부품 크기가 0805 SMD 죠? 그리고 reset switch 마저도 큼지막 합니다.



아래는 밑면입니다.



모두 0805 SMD 이며, 왼쪽 윗부분의 diode 도 큼지막 합니다.

특징으로는 oscillator 가 4 pin 이며, 정사각형의 모양입니다. 이런건 처음이네요.


이 보드를 설계하신 분의 배려가 느껴집니다.

Arduino Nano 의 보드 자체 크기가 0805 를 충분히 커버할 수 있으므로, 궂이 0603 SMD 를 쓸 이유는 없는 것이지요.


다음에 준비하고 있는 Duemilanove 에서도 0805 SMD 를 그대로 사용하고 있어,

추가 부품을 그렇게 많이 구입하지 않아도 되어서 다행입니다.


최종적으로 실제 필요한 부품을 다시 정리해 봤습니다.


-------------------------------------------------------------------------------------------------------
|                  name                  | value         | type                                       |
-------------------------------------------------------------------------------------------------------
| C1, C3, C4, C7, C9                     | 0.1uF         | 0805 SMD                                   |
| C5, C6                                 | 22pF          | 0805 SMD                                   |
| C8                                     | 10uF          | 0805 SMD                                   |
-------------------------------------------------------------------------------------------------------
| R1, R2, R3                             | 1k Ohm        | 0805 SMD                                   |
| R4, R5, R6, R7                         | 680 Ohm       | 0805 SMD                                   |
| L, PWR, RX, TX                         | LED           | 0805 SMD                                   |
-------------------------------------------------------------------------------------------------------
| D1                                     | SS14          | Schottky diodes & rectifier 30V 1A         |
-------------------------------------------------------------------------------------------------------
| J1, J2                                 | 15 x 2        | single row male 2.54mm pitch pinhead       |
| J3                                     | USB Mini B    | USB Mini B type female socket              |
| J4                                     | 6             | double row male 2.54mm pitch pinhead       |
| SW1                                    | 3 x 6 x 2.5mm | SMD Tactile switch                         |
-------------------------------------------------------------------------------------------------------
| IC1                                    | FT232RL       | SSOP28 USB UART interface IC               |
| IC2                                    | LM1117IMPX-5.0| SOT223 Linear regulator                    |
| IC3                                    | ATMEGA328P-AU | TQFP32 8-bit Microcontroller               |
| Y1                                     | 16MHz         | 3225 SMD Crystal ceramic resonator         |
-------------------------------------------------------------------------------------------------------



필요한 부품 리스트를 만들면서 알게된, 배려가 깃든 보드의 특징은 다음과 같습니다.


* no network resistor

저항을 한데 모아 회로를 단순화 하기 위한 부품으로 SMD 용으 구하기 힘드나,

위의 보드에서는 모두 0805 SMD 로 변경되었습니다.


* no fuse

Fuse 가 생략되었습니다.

사실 arduino nano 는 과전류에 사용될 목적으로 만들어 진 것이 아니므로, 단순화를 위해 삭제된것 같습니다.


* bigger crystal

좁쌀만한 oscillator 가 아닌, 좀더 큰 resonator 로 변경되었습니다.


* bigger diode

Diode 도 일반적으로 사용되는 큰 부품으로 대체되었습니다.


* bigger switch

RST switch 도 큰걸로 대체되었습니다.


* all 0805 SMD based

그렇습니다. 0603 SMD는 모두 0805 SMD 로 변경되었습니다.


배려가 깃든 보드인 것을 조사하면서 알게 되니 감사한 마음이 저절로 듭니다.

이 자리를 빌어 다시한번 감사의 말씀 드립니다.


이제 각 부품 구입을 정리해 봅니다.





3. Capacitor

필요한 캐페시터의 용량은 다음 세가지 입니다.

- 0.1uF = 100nF
- 22pF
- 10uF

아래 링크에서 구입했습니다.
Duemilanove DIY 할 때도 겹치는 부품들과 nano 에만 사용되는 10uF 를 추가로 구입했습니다.

* MCIGICM 100pcs 0805 smd capacitor ceramic 22pf 100nf 1uf 2.2uf 4.7uf 10uf 47uf 22uf capacitors kit sets 0.5pF-47uF


동시에 다른 arduino 를 준비하다 보니, 겹치는 부품들이 꽤 있습니다.



이런 부품을 공유할 수 있어서 좋네요.



8pin DIP socket 이 필요해서 555 주문할 때, 따로 10uF 을 주문했습니다.



얘만 투명 릴에 왔네요.







4. Resistor

저항은 10K 와 680, 두가지가 필요합니다.

* 20Value * 20PCS =400PCS 0805 SMD Resistor Kit 1% 1/8W (10 ohm~1M ohm) component diy samples kit free shipping


위의 세트에는 다음 저항들이 포함되어 있고, 딱 680 Ohm 은 없습니다.


10R / 22R / 47R / 100R / 220 / 470R / 750R / 1K / 2K2 / 4K7 / 6K8 / 10K

22K / 47K / 75K / 100K / 220K / 470K / 750K / 1M



처음 구매한 제품이구요.


Duemilanove 제작시에 필요할 것 같아서 구입해둔 세트에는 680 Ohm 이 없네요.
그래서 새롭게 한세트 더 구입합니다.

* 2000pcs 0805 SMD Resistor Kit Assorted Kit 1ohm-1M ohm 5% 80valuesX 25pcs=2000pcs Sample Kit


세트 구성품은 다음과 같습니다.

10 / 100 / 1K / 10K / 100K
12 / 120 / 1K2 / 12K / 120K
15 / 150 / 1K5 / 15K / 150K
20 / 200 / 2K / 20K / 200K
22 / 220 / 2K2 / 22K / 220K
27 / 270 / 2K7 / 27K / 270K
30 / 300 / 3K / 30K / 300K
33 / 330 / 3K3 / 33K / 330K
39 / 390 / 3K9 / 39K / 390K
47 / 470 / 4K7 / 47K / 470K
51 / 510 / 5K1 / 51K / 510K
62 / 620 / 6K2 / 62K / 620K
68 / 680 / 6K8 / 68K / 680K
75 / 750 / 7K5 / 75K / 750K
82 / 820 / 8K2 / 82K / 820K
91 / 910 / 9K1 / 91K / 910K


다른 부품 구입시 같이 구입하였습니다.


이제 한동안은 0805 SMD 저항 구입할 일은 없겠네요.




5. LED

Duemilanove 와도 겹치는 부품입니다.

* 100pcs=5colors x 20pcs 5050 5730 1210 1206 0805 0603 LED Diode Assortment SMD LED Diode Kit Green/ RED / White / Blue / Yellow





6. Diode

원래는 SS1P3L-M3 이나, 수정된 보드에선 SS14 로 변경되어 있습니다.
Duemilaove 용으로 구입한 세트에 SS14 가 포함되어 있어서 추가 구매는 필요 없었습니다.

* 7 kinds*10pcs=70pcs/lot SMD diode package / M1 (1N4001) / M4 (1N4004) / M7 (1N4007)/ SS14 US1M RS1M SS34 KIT





7. Switch

Original arduino nano 에서는 대략 1210 SMD 정도 크기의 RST switch 가 큰걸로 2510 SMD 급으로 변경되어 있습니다.

* Smart Electronics 10 Kinds of Tactile Switches Push Button SMD Tact Switch Switch 100pcs


이전에 Wi-Fi 모듈 firmware upgrade 하기 위해 구입한 tactile switch 에 포함되어 있으니,
이번에 추가로 구입하지 않았습니다.

* Hardware | 스위치 부품 구매하기




8. USB female socket

Arduino Nano 사양서 상, Mini USB 이면 됩니다.

* 10PCS Short Type SMD Mini USB Connector Micro USB 5pin B type Female Jack For Mobile Phone Micro USB Jack Connector


잘 도착하여 받아본 부품 입니다.



다만, 요즘 Micro USB 추세라, Micro USB 도 구매합니다.

Mini USB 와 비교시 pin 간의 간격만 다를 뿐, pin 순서는 동일했습니다.


* 10pcs Micro USB connector 5pin seat Jack Micro usb Four legs 5P Inserting plate seat Mini usb connector Free shipping 


역시 Micro USB 가 더 단순하고 깔끔한 느낌을 줍니다.



Pin 간격이 좁을 뿐, 순서는 동일합니다.



혹시 몰라, 조금 높이가 있는 Micro USB 도 구매합니다.

* 10pcs/lot Micro USB 5P Connector Mini USB Jack Socket sink 0.72 FLAT MOUTH Width 1.0


다만, 요놈은 도착까지 3개월이 걸렸네요.






9. Pin head

예전에 male pinheader 가 필요했을 적에 구입해 놓은게 있어, 따로 구입하지 않았습니다.

* Hardware | 2.54mm pin header 구매하기


물론 검정 버전도 같이 가지고 있습니다.







10. ICs

이제 마지막으로 IC 주요 부품들 입니다.

FT232RL
- SSOP28 USB UART interface IC

* 5pcs/lot New FT232RL FT232 FTDI USB FS SERIAL UART SSOP28 serial chips imported original In Stock


Duemilanove 용으로 구입한 세트에 모두 포함되어 있습니다.



LM1117IMPX-5.0
- SOT223 Linear regulator

Regulator 인데, 소형이면서 5V / 800mA 대응의 제품은 많은 업자가 팔지도 않을 뿐더러 조금 비쌉니다.
가잘 적절해 보이는 제품이 밑의 링크라서 구입합니다.

* 10PCS/LOT LM1117IMPX-5.0-NOPB SOT223 IC N06B NO6B REG LINEAR 5V 800MA SOT223-4 LM1117IMP-5.0


사양 대로 LM1117IMPX/5.0 을 받고 싶었으나, 사진과 동일한 제품이 왔군요.



5V/800mA 사양대로라면 특별히 문제될껀 없다고 봅니다.



확대 사진입니다.



가지고 있는 arduino micro 를 확인해 보니, AMS1117 / 5.0 이군요.



ATMEGA328P-AU
- TQFP32 8-bit Microcontroller

워낙 유명한 chip 이라 쉽게 찾을 수 있습니다.
가격도 좀 있고 하니, 이번 프로젝트에 끌어들인 동료에게 구입을 의뢰합니다.

* 1PCS ATMEGA328P-AU QFP ATMEGA328-AU TQFP ATMEGA328P MEGA328-AU SMD new and original IC







16MHz Oscillator
- 3225 SMD Crystal ceramic resonator

Oscillator 는 길쭉한것이 아니라 정사각형 모양에 4개의 접점이 있는 모양입니다.


치수는 대략 2mm 조금 넘는것으로 보입니다.
다른 제조사 spec. sheet 를 찾아본 결과, 한쪽 면의 접점 거리가 2.1mm 인 것이 SMD 3225 형식이라는 것을 알아 냈습니다.


형식만 알면 제품을 선택하는 것은 그리 어렵지 않습니다.

AliExpress 에서 검색하니 바로 나오네요. 그 중에서 16MHz 제품을 선택해 줍니다.


* 10pcs SMD 3225 active crystal oscillator OSC 16MHZ 16M 3.2*2.5 3.3V 25PPM

- https://www.aliexpress.com/item/10pcs-SMD-3225-active-crystal-oscillator-OSC-16MHZ-16M-3-2-2-5-3-3V-25PPM/32776378121.html



잘 도착했구요.



Oscillator 치고는 직사각형으로 생겨서 신기합니다.






11. 조립

열풍기가 없으므로, 액체 플럭스를 이용하여 납땜해 갑니다.



인두 팁으로 납땜을 하다 보니, 아무래도 사용되는 납이 많아져 버립니다.

특히 소자 밑으로 스며들게 해야 하는 oscillator 가 가장 힘들었습니다. (좀 지저분하게 되었죠?)


표면에 안착되지 않은 듯 해서 납을 좀 많이 먹여버리기도 하고, 네 귀퉁이의 소자가 붙어버린 것 같아서 납을 빨아들이기도 하고.



0805 SMD 의 LED 소자는 납땜 하는 열로 인하여 안쪽 구조가 쉽게 망가질 수 있어서 신경이 많이 쓰였습니다.



신기한 것은, anode / cathode 가 쉽게 구분될 수 있도록 띠가 마킹 되어 있었습니다.



위의 사진 처럼, 돌기가 있는 쪽이 + 극이네요.



설계대로라면 USB mini B 이어야 하지만, 요즘은 micro USB 로 통합되는 분위기라서 micro USB 를 장착해 봤습니다.

리드선의 순서는 동일해서, 간극만 맞추고 납땜하면 되었습니다.


잘 안착되게 리드선을 밑으로 구부려서 납땜 해야 하는데, 그러지 않아서 납을 많이 먹여도 떠버리네요. (위 사진)



micro USB 부분의 접점이 잘 되지 않자, 조금 많이 인두로 지졌더랬습니다.

그랬더니 패턴이 나가버렸네요. ㅠㅠ (망함)



micro USB 를 PC 에 연결하면 LED 도 들어왔다 나갔다 뭔가 하는것 같은데, PC 에 인식이 되지 않았습니다.

pinheader 까지 다 납땜 해버렸는데...


이번 작업은 망했어요.

다시 이 기판을 주문하여 도착하면 다시 시작하려 합니다.


그러기 전에 열풍기로 작업해야 겠습니다.

열풍기가 준비 되면, 그 때 다시 arduino DIY 를 시작하겠습니다.


And
prev | 1 | next