개발 동기

글쓴이는 그닥 규칙적이고 바른 생활을 하지 못하기에 아침에 익숙한 알람소리는 무의식적으로 무시하고 자버리는 경우가 많아 알리에서 구매한 FM라디오 알람시계를 사용하고 있다, 그런데 불만은 음질이 별로 좋지 않고 디자인이 별로인데다 FM밖에 지원하지 않는다는 것이다.


기획

제미나이에게 부품구성을 맏기고 감성을 위해 E-ink 디스플레이와 모종의 필라멘트를 사용하는 전구를 사용하고자 했으나 구현 단계에서 무산된다.


부품 주문

메인 컨트롤러 ESP32 DevKit V1 Wi-Fi(인터넷 라디오), 블루투스 제어, 전체 시스템 연산
오디오 DAC PCM5102A (I2S 방식) 디지털 오디오 신호를 고음질 아날로그(AUX)로 변환
FM 라디오 RDA5807M 실제 FM 주파수 수신 (I2C 통신)
디스플레이 WeAct 2.13” BLACK WHITE RED E-ink display 주파수, 곡 정보, 현재 시간 표시
시간 유지(RTC) DS3231 RTC 모듈 전원이 꺼져도 알람 시간을 유지하기 위한 정밀 시계
리모컨 수신 IR 적외선 수신 모듈 (VS1838B) 리모컨 신호 수신 및 알람 제어

납땜에 필요한 지식과 장비

글쓴이는 납땜을 경험해본적 없기에 유튜브의 도움을 많이 받았다, 납땜의 기본 장비는 납땜기, 납땜기 거치대, 집게발, 실납, 플럭스, 솔더윅, 니퍼가 있다, 이것 없이 납땜을 하는것을 사실상 불가능하며, 가능하다면 납 연기 흡입기가 있는것이 매우 좋을것이다, 납 연기는 유해하다.

작은 프로젝트 치고 꽤 많은 실습을 해봤다고 생각하는데 거기서 느낀 점을 공유한다.

  1. 최대한 작은 납땜기 팁(끝부분)을 같이 구매하는것이 좋을것 같다 작은 부품들 사이에 정확히 남땜기를 짚어야 안정적인 납땜이 가능하다.

  2. 사용되는 부품들의 핀 간격 및 크기를 미리 확인하자, 범용기판의 구멍 간격에 맞지 않는다면 사용할수 없거나, 거추장스러운 전선 연장을 통해서 연결해야 한다.

  3. 핀 헤더 및 전선은 생각보다 쉽게 녹는다, 부품 배치에 공을 들이는게 오히려 시간이 절약된다.

부품 도착후 검증

알리익스프레스 특성상 저렴한 부품의 포장상태가 매우 불량해 파손된 부품이 꽤 있었다, 그리고 모든 부품을 결합한후 테스트 하는것은 매우 비효율적이기에 브레드보드에서 ESP32 모듈을 시작으로 하나씩 테스트를 진행했다, 다행이 모든 부품이 불량인 모듈은 없었다.

소프트웨어 프로그래밍

구글 Antigravity를 활용해 vibe코딩… platformio IDE VS확장 기능과 프레임워크는 arduino를 사용했다, 아직 아두이노가 가장 대중적인 라이브러리 풀을 가지고 있는것 같다.

가장 핵심적인 라이브러리인 audio I2S의 최신버전 호환성 문제와 함께 부품 선정의 오류를 발견했다, 실시간 오디오 스트리밍과 최신 스트리밍 규격을 지원하기 위해서 PSRAM 버전 보드가 필요하다는것이었다, 이 문제는 제품의 사용성을 크게 떨어뜨렸다. 단순 mp3 스트리밍 링크는 지원하지만 M3U8과 같은 더 무거운 규격은 지원하지 않았기 때문이다. 게다가 램?의 부족이 다른 영역 전반에서 문제를 일으켰다.

디스플레이 부분에서도 부품 구매의 실패가 드러났다, 일반 BLACK/WHITE E-ink 모델은 부분 리프레싱이 가능했지만 빨간색이 추가된 버전은 그러지 못할 뿐더러 전체 리프레싱 시간도 매우길었기 때문에 시간 표시의 기능도 초는 고사하고 5분간격으로 새로고침 하는 선으로 양보해야만 했다.

오디오 신호 처리 또한 난관이었다, 앞선 ESP32 보드 선택 실수로 인해 FM모듈의 출력을 ESP가 받아서 다시 DAC모듈로 출력하는 작업의 부하를 감당하지 못했기 때문에 FM모듈의 아날로그 오디오 신호를 DAC모듈의 것과 합쳐야 했지만 나는 전자과가 아니고 컴퓨터공학과이기 때문에 관련 지식 없이 제미나이가 시키는 대로 저항 믹서라는 구조로 vibe납땜 해버렸다 그 때문인지 잡음이 발생한다 더 답답한것은 납땜 경험의 부재로 작은 기판을 사버려서 아주 꽉 끼는 배치로 인해 다른 어디가 합선되어서 그런지 이것만의 문제인지 확인하지 못한다는 것이다.

picture of assembled esp32 and modules
picture of assembled esp32 and modules