Skip to content

RadioStreamer: TV Fiber/DR LYD for Vintage Beolab

RadioStreamer is one small board between an LG TV and the speakers, playing two sources: the TV's optical output and Danish DR radio over Ethernet.

sophia

Published October 23, 2026

Original author: Carsten Bøgh Poulsen · DenmarkOriginal source (new tab)

RadioStreamer: TV Fiber/DR LYD for Vintage Beolab

Components

Hardware components

x 1


WIZnet parts

Project description

How Does RadioStreamer Feed Vintage Beolab Speakers with TV Audio and Danish Radio over a W5500?

Source: https://hackaday.io/project/206915-radiostreamer-tv-fiberdr-lyd-for-vintage-beolab — created 2026-10-08 by Carsten Bøgh Poulsen, 10 project logs dated 2026-10-08. No files or repository are attached; this post is written from the project description and logs.

RadioStreamer is a small board that sits between an LG TV and a pair of Bang & Olufsen Beolab 4000 active speakers. It plays the TV's TOSLINK output when the TV has sound and otherwise streams Danish DR radio (five channels, 128 kbps MP3 over HTTPS) through a W5500 wired Ethernet connection. There is no source switch and no app: the TV takes over automatically, the TV remote's volume is read out of the S/PDIF channel-status bits, and an iPhone-friendly web page served by the ESP32-S3 handles radio channel and volume. The logs read like a debugging diary, covering an RMT-based S/PDIF decoder, a ring buffer that slowly fell behind, a watchdog storm caused by a false MP3 sync word, and a 40-second DHCP wait traced to spanning tree on the switch.

[COMPONENTS]

- ESP32-S3 DevKitC-1 (clone), N16R8 module — Main controller, ESP-IDF in C. 16 MB flash, 8 MB octal PSRAM (PSRAM uses GPIO35–37); socketed on a carrier PCB
- WIZnet W5500 — Wired Ethernet (MAC + PHY + RJ45 side). SPI through the GPIO matrix, up to 40 MHz; the only network interface; driven by ESP-IDF's esp_eth W5500 driver with lwIP on the ESP32-S3
- Cliff FCR684205R — TOSLINK optical receiver. Output to GPIO42; 100 nF on supply, 22 pF on output; replaced a planned TI DIR9001
- PCM5102A — I2S stereo DAC → Beolab 4000. 2.1 Vrms full scale; no control bus, so mute/volume/switching are done in software
- I2C OLED (4-pin) — Status display. Replaced an SPI module that shipped mis-configured
- Status LED — On the DevKit (GPIO48 RGB LED on the clone). Frees GPIO38 for rev2 soft-mute
- Carrier PCB (KiCad) — Hosts DevKit, Ethernet and audio sheets. Rev2 adds MIC5205 LDO + ferrite bead for the DAC analog rail, TSOP38438 IR receiver on GPIO4, corrected RCA footprints
- Software — ESP-IDF, libhelix-mp3 (ESP Component Registry), esp_http_client, mbedTLS. S/PDIF decoder described as portable C with no IDF dependency

[PROJECT DESCRIPTION]

▶ Overview

The design goals in the first log are blunt: one box, two sources, zero buttons. The TV must play automatically, volume for both sources must be handled in software, and the box must not use Wi-Fi; a W5500 wired link replaces it. Radio channels are a name-plus-URL table in firmware, and the web UI is plain HTML, CSS and JS served by the ESP32. Everything that a DAC with a control bus would normally do (mute, gain, source selection) happens in software before the I2S peripheral, because the PCM5102A has no control interface.

▶ Decoding S/PDIF with a remote-control peripheral

There is no S/PDIF receiver chip. The TOSLINK receiver's raw pulse train goes into the ESP32-S3's RMT peripheral running at 40 MHz, where 48 kHz S/PDIF produces pulse widths of about 6.5 ticks (SHORT), 13 (LONG) and 19.5 (SYNC). Calibration collects 2000 pulse widths, takes the 20th percentile as one unit interval, and rejects the result unless LONG lands between 10 and 21 ticks. An early preamble model was wrong and produced 75 % parity failures on the real TV; after fixing it, with the CPU at 240 MHz, -O2 and the decoder placed in IRAM, the decoder sustains 48,000 frames per second with about one parity error per million frames.

A second bug appeared as distortion every 70–90 s. The IDF RMT driver keeps a DMA ring of 9 nodes (about 0.43 ms each); when interrupts were delayed the driver lagged the DMA and handed over half-written data. The fix restarts RMT receive when parity errors show up in two chunks within 20 ms, which cut each incident from roughly 1,900 parity errors to 2, and creating the RMT channel from the decode task on core 1 reduced events to one every 4–5 minutes.

▶ Two sources, one clock, too little RAM

TV audio arrives at 48 kHz and radio at 44.1 kHz, but both must leave through one I2S output, so the I2S clock is reconfigured on source change. The TV path works in 2 ms blocks and keeps 4–12 blocks queued, adding roughly 40 ms of latency, with drift corrections limited to one per 40 ms. RAM was the constraint: moving mbedTLS buffers into PSRAM fixed TLS allocation failures, the TOSLINK buffers stayed in internal RAM, and internal DMA-capable RAM is now kept above about 29 KB. The radio side decodes 128 kbps MP3 with libhelix-mp3 from a 128 KB PSRAM buffer (about 8 s of audio) that a network task keeps filled with forever-reconnect logic.

The most dramatic failure was a watchdog storm: after a TLS read timeout left corrupted data in the buffer, the MP3 decoder repeatedly found a false sync word and consumed nothing, logging 123,000 errors in 7 minutes while pinning core 0, firing the watchdog 88 times and starving the network task. The fix skips one byte past a false sync, rate-limits error logging to once per second and yields after 32 consecutive errors.

▶ Volume from the light, and volume done properly

Enabling LG's "Sound Sync" setting makes the TV encode volume and mute into the S/PDIF channel-status bits (bytes 7 and 8: volume in bits 4–10, mute in bit 11), so the TV remote controls the Beolabs without any IR hardware; the web slider greys out while the TV plays. Gain follows the square of volume/100 times a per-source trim. To keep precision at low levels the output moved to 32-bit I2S slots, so around −32 dB of attenuation still leaves 24-bit resolution. Volume runs from off and −39 dB to 0 dB in 1 dB steps, ramped over 10 ms, with separate trims for radio and TV. The author's A/B test against a PC source found no audible difference, and a scope FFT of a 1 kHz tone showed nothing above the noise floor. Starting I2S first in app_main with zero samples removed a power-on hum caused by floating BCK, LRCK and DIN pins.

▶ W5500 architecture: why the network side stayed boring

The W5500 is the only network interface, chosen so the box has no Wi-Fi at all. In an ESP-IDF design like this one the chip is attached through the esp_eth SPI-Ethernet driver, which runs the W5500 in MACRAW mode: the W5500 supplies the 10/100 MAC, PHY and packet buffers over SPI, and lwIP on the ESP32-S3 handles IP, TCP and DHCP, with mbedTLS and esp_http_client on top. The W5500's own hardwired socket stack is not what the logs rely on; what the project buys from the chip is a wired, deterministic link that needs none of the ESP32-S3's radio, PSRAM or CPU budget that the audio path was fighting for. The SPI link at up to 40 MHz through the GPIO matrix is far above what a 128 kbps stream needs. The one network problem in the logs was not the chip: a ~40 s wait for an IP address turned out to be the switch port holding the link in spanning-tree listening/learning for ~30 s, and enabling Edge mode on the port brought DHCP down to 5–6 s. For an always-on audio box behind a TV, the wired path also removes the Wi-Fi roaming and interference failure modes that a continuous HTTPS stream would otherwise have to buffer against.

▶ Status

Rev1 hardware is built and running; the logs end with a rev2 PCB plan (LDO for the DAC analog rail, soft-mute on GPIO38, IR receiver on GPIO4, corrected RCA footprints). Schematics, Gerbers and firmware are described but not published on the project page as of this writing.

[Related Maker Reading]

RadioStreamer (this project)
 - MCU: ESP32-S3 (N16R8)
 - WIZnet chip: W5500, SPI up to 40 MHz
 - Network role: HTTPS MP3 client, web UI server
 - Audio input: TOSLINK S/PDIF decoded by RMT + MP3 stream
 - Output: PCM5102A I2S DAC
 - Notable feature: Automatic TV/radio switching, volume from S/PDIF channel status, no Wi-Fi

ESP32 WebRadio + DLNA Player (W5500-Based) (https://maker.wiznet.io/Hannah/projects/esp32-webradio-plusdlna/)
 - MCU: ESP32
 - WIZnet chip: W5500
 - Network role: Internet radio + DLNA client
 - Audio input: Network streams
 - Output: I2S DAC
 - Notable feature: DLNA renderer

Sonocotta HiFi-ESP32 + W5500: Wired Audio Streaming IoT Gateway (https://maker.wiznet.io/irina/projects/sonocotta-hifi-esp32-w5500-wired-audio-streaming-iot-gateway/)
 - MCU: ESP32
 - WIZnet chip: W5500
 - Network role: Audio streaming client / gateway
 - Audio input: Network streams
 - Output: I2S DAC / amp
 - Notable feature: Product-grade ESP32 audio board

Streamer audio Ethernet multicast/multiroom 48 kHz/24 bits (https://maker.wiznet.io/lawrence/projects/streamer-audio-ethernet-multicast-multiroom-48-khz-24-bits-sans-compression/)
 - MCU: (see post)
 - WIZnet chip: Ethernet module (see post)
 - Network role: Multicast audio sender/receiver
 - Audio input: Uncompressed 48 kHz/24-bit over Ethernet
 - Output: Network multicast
 - Notable feature: Multiroom sync without compression

[FAQ]

Q. Why not a dedicated S/PDIF receiver IC?
The author planned a TI DIR9001 and dropped it; the final design decodes the TOSLINK receiver's pulses directly with the ESP32-S3 RMT peripheral at 40 MHz, reaching about one parity error per million frames after calibration and preamble fixes.

Q. How does the TV remote control the volume if there is no IR receiver on rev1?
LG's Sound Sync option puts volume and mute into the S/PDIF channel-status bytes 7–8; the firmware reads them and applies gain in software. Rev2 adds a TSOP38438 IR receiver on GPIO4 as a further input.

Q. What does the W5500 actually do here?
It is the sole network interface: the Ethernet MAC/PHY behind the HTTPS radio streams and the web UI, attached over SPI through ESP-IDF's esp_eth driver. The design explicitly excludes Wi-Fi, so the ESP32-S3's radio stays off and its RAM and CPU go to the audio path.

Q. Why did DHCP take 40 seconds at first?
Not a W5500 issue: the switch port was not in Edge/PortFast mode, so spanning tree held it for about 30 s. With Edge mode the box gets an address in 5–6 s.

Q. Can I build one?
Not yet from the page alone. The carrier PCB (KiCad) and ESP-IDF firmware are described in the logs, but no files or repository link had been published at the time of writing.

[Korean]

RadioStreamer는 어떻게 W5500으로 빈티지 Beolab 스피커에 TV 오디오와 덴마크 라디오를 공급하나?

출처: https://hackaday.io/project/206915-radiostreamer-tv-fiberdr-lyd-for-vintage-beolab — 2026-10-08 생성, 작성자 Carsten Bøgh Poulsen, 2026-10-08자 프로젝트 로그 10편. 첨부 파일·저장소 없음. 이 글은 프로젝트 설명과 로그를 바탕으로 작성했다.

RadioStreamer는 LG TV와 Bang & Olufsen Beolab 4000 액티브 스피커 사이에 놓이는 작은 보드다. TV에 소리가 있으면 TV의 TOSLINK 출력을 재생하고, 그렇지 않으면 W5500 유선 이더넷으로 덴마크 DR 라디오(5개 채널, HTTPS 128 kbps MP3)를 스트리밍한다. 소스 선택 스위치도 앱도 없다. TV가 자동으로 우선권을 가지며, TV 리모컨의 볼륨은 S/PDIF 채널 상태 비트에서 읽어내고, ESP32-S3가 제공하는 아이폰용 웹 페이지로 라디오 채널과 볼륨을 조절한다. 로그는 디버깅 일지에 가깝다. RMT 기반 S/PDIF 디코더, 서서히 뒤처지던 링 버퍼, 잘못된 MP3 싱크 워드가 일으킨 워치독 폭주, 스위치의 스패닝 트리 때문이던 40초 DHCP 대기까지 다룬다.

[COMPONENTS]

- ESP32-S3 DevKitC-1 (클론), N16R8 모듈 — 메인 컨트롤러, ESP-IDF C. 16 MB 플래시, 8 MB 옥탈 PSRAM(GPIO35–37 사용); 캐리어 PCB에 소켓 장착
- WIZnet W5500 — 유선 이더넷 (MAC + PHY + RJ45 측). GPIO 매트릭스 경유 SPI, 최대 40 MHz; 유일한 네트워크 인터페이스; ESP-IDF esp_eth W5500 드라이버 + ESP32-S3의 lwIP로 구동
- Cliff FCR684205R — TOSLINK 광 수신기. 출력 GPIO42; 전원에 100 nF, 출력에 22 pF; 당초 계획한 TI DIR9001 대체
- PCM5102A — I2S 스테레오 DAC → Beolab 4000. 풀스케일 2.1 Vrms; 제어 버스가 없어 뮤트/볼륨/전환을 소프트웨어로 처리
- I2C OLED (4핀) — 상태 표시. 설정이 잘못 출하된 SPI 모듈 대체
- 상태 LED — DevKit 내장 (클론의 GPIO48 RGB LED). rev2 소프트 뮤트용으로 GPIO38 확보
- 캐리어 PCB (KiCad) — DevKit, 이더넷, 오디오 시트 탑재. rev2: DAC 아날로그 전원용 MIC5205 LDO + 페라이트 비드, GPIO4에 TSOP38438 IR 수신기, RCA 풋프린트 수정
- 소프트웨어 — ESP-IDF, libhelix-mp3 (ESP Component Registry), esp_http_client, mbedTLS. S/PDIF 디코더는 IDF 의존성이 없는 이식 가능한 C로 설명됨

[PROJECT DESCRIPTION]

▶ 개요

첫 로그의 설계 목표는 단순하다. 상자 하나, 소스 둘, 버튼 없음. TV는 자동으로 재생돼야 하고, 두 소스의 볼륨은 소프트웨어로 처리하며, Wi-Fi는 쓰지 않는다. 대신 W5500 유선 링크를 쓴다. 라디오 채널은 펌웨어 안의 이름+URL 테이블이고, 웹 UI는 ESP32가 제공하는 순수 HTML·CSS·JS다. 제어 버스가 있는 DAC라면 했을 일(뮤트, 게인, 소스 선택)은 PCM5102A에 제어 인터페이스가 없으므로 모두 I2S 이전 단계의 소프트웨어에서 이뤄진다.

▶ 리모컨용 주변장치로 S/PDIF 디코딩하기

S/PDIF 수신 칩은 없다. TOSLINK 수신기의 원시 펄스열이 40 MHz로 동작하는 ESP32-S3 RMT 주변장치로 들어가며, 48 kHz S/PDIF는 약 6.5틱(SHORT), 13틱(LONG), 19.5틱(SYNC)의 펄스 폭을 만든다. 보정은 펄스 폭 2000개를 모아 20번째 백분위수를 단위 간격으로 삼고, LONG이 10~21틱 범위에 들지 않으면 결과를 기각한다. 초기 프리앰블 모델이 틀려 실제 TV에서 75 % 패리티 실패가 났고, 수정 후 CPU 240 MHz, -O2, 디코더 IRAM 배치로 초당 48,000 프레임을 유지하며 패리티 오류는 100만 프레임당 약 1회다.

두 번째 버그는 70~90초마다 생기는 왜곡이었다. IDF RMT 드라이버는 9개 노드(각 약 0.43 ms)의 DMA 링을 쓰는데, 인터럽트가 지연되면 드라이버가 DMA보다 뒤처져 반쯤 쓰인 데이터를 넘겼다. 20 ms 안에 두 청크에서 패리티 오류가 나오면 RMT 수신을 재시작하도록 고쳐 사건당 약 1,900건이던 패리티 오류를 2건으로 줄였고, RMT 채널을 코어 1의 디코드 태스크에서 생성하자 발생 빈도가 4~5분에 한 번으로 줄었다.

▶ 두 소스, 하나의 클럭, 부족한 RAM

TV 오디오는 48 kHz, 라디오는 44.1 kHz로 들어오지만 둘 다 하나의 I2S 출력으로 나가야 하므로 소스가 바뀔 때 I2S 클럭을 재설정한다. TV 경로는 2 ms 블록 단위로 4~12개 블록을 유지해 약 40 ms 지연을 더하고, 드리프트 보정은 40 ms에 한 번으로 제한한다. 제약은 RAM이었다. mbedTLS 버퍼를 PSRAM으로 옮겨 TLS 할당 실패를 해결했고, TOSLINK 버퍼는 내부 RAM에 두었으며, 내부 DMA 가능 RAM은 약 29 KB 이상으로 유지한다. 라디오 쪽은 네트워크 태스크가 무한 재접속 로직으로 채우는 128 KB PSRAM 버퍼(약 8초 분량)에서 libhelix-mp3로 128 kbps MP3를 디코딩한다.

가장 극적인 고장은 워치독 폭주였다. TLS 읽기 타임아웃으로 버퍼에 손상된 데이터가 남자 MP3 디코더가 잘못된 싱크 워드를 반복해서 찾고 아무것도 소비하지 않아 7분간 123,000건의 오류를 기록했고, 코어 0을 독점해 워치독이 88번 발동하고 네트워크 태스크가 굶주렸다. 수정은 잘못된 싱크 뒤 1바이트를 건너뛰고, 오류 로그를 초당 1회로 제한하며, 32회 연속 오류 후 양보하는 것이다.

▶ 빛에서 꺼낸 볼륨, 그리고 제대로 된 볼륨

LG의 "Sound Sync" 설정을 켜면 TV가 볼륨과 뮤트를 S/PDIF 채널 상태 비트(바이트 7, 8: 볼륨은 비트 4~10, 뮤트는 비트 11)에 실어 보낸다. 덕분에 IR 하드웨어 없이 TV 리모컨으로 Beolab을 제어하고, TV 재생 중에는 웹 슬라이더가 비활성화된다. 게인은 (볼륨/100)²에 소스별 트림을 곱한다. 낮은 레벨에서 정밀도를 지키기 위해 출력을 32비트 I2S 슬롯으로 옮겨 약 −32 dB 감쇠에서도 24비트 해상도를 유지한다. 볼륨은 꺼짐과 −39 dB부터 0 dB까지 1 dB 단위로, 10 ms에 걸쳐 램프하며 라디오와 TV에 별도 트림을 둔다. 작성자의 PC 소스 대비 A/B 테스트에서는 청감상 차이가 없었고, 1 kHz 톤의 오실로스코프 FFT에서 노이즈 플로어 위로 아무것도 보이지 않았다. app_main에서 I2S를 0 샘플로 먼저 시작하자 BCK, LRCK, DIN 핀이 떠 있어 생기던 전원 투입 험이 사라졌다.

▶ W5500 아키텍처: 네트워크 쪽이 조용했던 이유

W5500은 유일한 네트워크 인터페이스이며, 상자에 Wi-Fi를 아예 두지 않으려고 선택했다. 이런 ESP-IDF 설계에서는 칩이 esp_eth SPI 이더넷 드라이버로 연결되고 W5500은 MACRAW 모드로 동작한다. 즉 W5500이 SPI 너머로 10/100 MAC, PHY, 패킷 버퍼를 제공하고, IP·TCP·DHCP는 ESP32-S3의 lwIP가, 그 위에 mbedTLS와 esp_http_client가 처리한다. 로그가 기대는 것은 W5500 자체의 하드웨어 소켓 스택이 아니다. 이 프로젝트가 칩에서 얻는 것은 오디오 경로가 다투던 ESP32-S3의 무선, PSRAM, CPU 예산을 전혀 쓰지 않는 유선의 결정적인 링크다. GPIO 매트릭스를 거치는 최대 40 MHz SPI 링크는 128 kbps 스트림에 필요한 대역폭을 크게 웃돈다. 로그의 유일한 네트워크 문제는 칩 탓이 아니었다. IP 주소를 받는 데 약 40초가 걸린 원인은 스위치 포트가 스패닝 트리 listening/learning 상태로 약 30초를 붙잡은 것이었고, 포트를 Edge 모드로 바꾸자 DHCP가 5~6초로 줄었다. TV 뒤에 상시 가동되는 오디오 박스라면, 유선 경로는 연속 HTTPS 스트림이 버퍼로 버텨야 했을 Wi-Fi 로밍·간섭 고장 모드도 함께 제거한다.

▶ 현황

rev1 하드웨어가 제작돼 동작 중이며, 로그는 rev2 PCB 계획(DAC 아날로그 전원용 LDO, GPIO38 소프트 뮤트, GPIO4 IR 수신기, RCA 풋프린트 수정)으로 끝난다. 회로도·거버·펌웨어는 설명돼 있으나 작성 시점 기준 프로젝트 페이지에 공개되지 않았다.

[Related Maker Reading]

RadioStreamer (이 프로젝트)
 - MCU: ESP32-S3 (N16R8)
 - WIZnet 칩: W5500, SPI 최대 40 MHz
 - 네트워크 역할: HTTPS MP3 클라이언트, 웹 UI 서버
 - 오디오 입력: RMT로 디코딩한 TOSLINK S/PDIF + MP3 스트림
 - 출력: PCM5102A I2S DAC
 - 특징: TV/라디오 자동 전환, S/PDIF 채널 상태에서 볼륨 추출, Wi-Fi 없음

ESP32 WebRadio + DLNA Player (W5500 기반) (https://maker.wiznet.io/Hannah/projects/esp32-webradio-plusdlna/)
 - MCU: ESP32
 - WIZnet 칩: W5500
 - 네트워크 역할: 인터넷 라디오 + DLNA 클라이언트
 - 오디오 입력: 네트워크 스트림
 - 출력: I2S DAC
 - 특징: DLNA 렌더러

Sonocotta HiFi-ESP32 + W5500: 유선 오디오 스트리밍 IoT 게이트웨이 (https://maker.wiznet.io/irina/projects/sonocotta-hifi-esp32-w5500-wired-audio-streaming-iot-gateway/)
 - MCU: ESP32
 - WIZnet 칩: W5500
 - 네트워크 역할: 오디오 스트리밍 클라이언트/게이트웨이
 - 오디오 입력: 네트워크 스트림
 - 출력: I2S DAC/앰프
 - 특징: 제품급 ESP32 오디오 보드

이더넷 멀티캐스트/멀티룸 오디오 스트리머 48 kHz/24비트 (https://maker.wiznet.io/lawrence/projects/streamer-audio-ethernet-multicast-multiroom-48-khz-24-bits-sans-compression/)
 - MCU: (해당 글 참조)
 - WIZnet 칩: 이더넷 모듈 (해당 글 참조)
 - 네트워크 역할: 멀티캐스트 오디오 송수신
 - 오디오 입력: 이더넷 위 무압축 48 kHz/24비트
 - 출력: 네트워크 멀티캐스트
 - 특징: 무압축 멀티룸 동기화

[FAQ]

Q. 왜 전용 S/PDIF 수신 IC를 쓰지 않았나요?
작성자는 TI DIR9001을 계획했다가 뺐습니다. 최종 설계는 TOSLINK 수신기의 펄스를 ESP32-S3 RMT 주변장치가 40 MHz로 직접 디코딩하며, 보정과 프리앰블 수정 후 100만 프레임당 약 1회 패리티 오류 수준에 도달했습니다.

Q. rev1에는 IR 수신기가 없는데 TV 리모컨으로 어떻게 볼륨을 조절하나요?
LG의 Sound Sync 옵션이 볼륨과 뮤트를 S/PDIF 채널 상태 바이트 7~8에 실어 보내고, 펌웨어가 이를 읽어 소프트웨어로 게인을 적용합니다. rev2에는 추가 입력으로 GPIO4에 TSOP38438 IR 수신기가 붙습니다.

Q. 여기서 W5500이 실제로 하는 일은?
유일한 네트워크 인터페이스입니다. HTTPS 라디오 스트림과 웹 UI 뒤의 이더넷 MAC/PHY로, ESP-IDF esp_eth 드라이버를 통해 SPI로 연결됩니다. 설계가 Wi-Fi를 명시적으로 배제하므로 ESP32-S3의 무선은 꺼져 있고 RAM과 CPU는 오디오 경로에 쓰입니다.

Q. 처음에 DHCP가 40초나 걸린 이유는?
W5500 문제가 아닙니다. 스위치 포트가 Edge/PortFast 모드가 아니어서 스패닝 트리가 약 30초 동안 포트를 붙잡았습니다. Edge 모드에서는 5~6초 만에 주소를 받습니다.

Q. 직접 만들 수 있나요?
페이지만으로는 아직 어렵습니다. 캐리어 PCB(KiCad)와 ESP-IDF 펌웨어가 로그에 설명돼 있지만, 작성 시점에 파일이나 저장소 링크는 공개되지 않았습니다.

[Documents]

- Project page (description, gallery, 10 logs) — https://hackaday.io/project/206915-radiostreamer-tv-fiberdr-lyd-for-vintage-beolab
- Log: hardware and parts — https://hackaday.io/project/206915/log/251655-the-hardware-and-the-parts-that-fought-back
- Log: S/PDIF decoding with RMT — https://hackaday.io/project/206915/log/251657-decoding-spdif-with-a-remote-control-peripheral
- Log: two sources, one clock — https://hackaday.io/project/206915/log/251659-two-sources-one-clock-too-little-ram
- Log: volume from S/PDIF channel status — https://hackaday.io/project/206915/log/251661-hacking-the-tv-remotes-volume-out-of-the-light
- Log: lessons and rev2 (switch Edge mode, DHCP) — https://hackaday.io/project/206915/log/251663-lessons-and-rev2
- W5500 datasheet / documentation — https://docs.wiznet.io/Product/iEthernet/W5500
- libhelix-mp3 (ESP Component Registry) — https://components.espressif.com/components/chmorgan/esp-libhelix-mp3

Original author: Carsten Bøgh Poulsen (hackaday.io). All figures above come from the project logs; values not stated there (e.g. total latency, power draw) are intentionally omitted.

Comments

Similar projects you might like

Comments