Can an Open Network Protocol Fix Live Audio Control? Proteus, Virgil and W5500
Modular RP2350 live-sound controller with W5500 Ethernet, motorized faders and display modules, built to prototype the Virgil audio-control protocol.
0
Project description
๐ ์ค๋์ค ์ ์ก ๋ค์์ ๋ฌธ์ , โ์ฅ๋น ์ ์ดโ
Proteus๋ live-sound ํ๊ฒฝ์ ์ํ ๋ชจ๋ํ ์ปจํธ๋กค๋ฌ ํ๋ซํผ์ ๋๋ค.
ํ๋ก์ ํธ์ ๋ชฉ์ ์ ๋จ์ํ MIDI controller๋ฅผ ๋ง๋๋ ๊ฒ์ด ์๋๋ผ, ๊ฐ๋ฐ์๊ฐ ๋ณ๋๋ก ์ค๊ณํ๊ณ ์๋ Virgil protocol์ ์ค์ hardware์์ ๊ฐ๋ฐํ๊ณ ๊ฒ์ฆํ๊ธฐ ์ํ prototype์ ๋ง๋๋ ๋ฐ ์์ต๋๋ค. README๋ Behringer X-Touch ๊ฐ์ MIDI controller์ ๋น์ ํ๋ฉด์, ์์ ํ ์คํ์์คยท๋ชจ๋ํ์ด๊ณ MIDI๋ฅผ ์ฐ์ง ์๋๋ค๋ ์ ์ด ๋ค๋ฅด๋ค๊ณ ์ค๋ช ํฉ๋๋ค.
Virgil์ Dante ๊ธฐ๋ฐ audio system์์ gain, phantom power, channel state ๊ฐ์ audio device control information์ ์๋ก ๊ตํํ๊ธฐ ์ํ companion protocol์ ๋ชฉํ๋ก ํฉ๋๋ค. Dante๋ ์ค๋์ค ์ ์ก๋ง ๋ค๋ฃจ๊ณ ์ ์ด packet์ ๋ด์ง ๋ชปํด์, ์ค๋์ค ํ์ฌ๋ง๋ค ๋ ์ ์ ์ด protocol์ ๋ง๋ค์ด ์๋ค๋ ๊ฒ์ด ์ ์๊ฐ ์ง๋ ๊ณต๋ฐฑ์ ๋๋ค.
๋ณ๋์ Virgil repository์์๋ ํ์ฌ protocol์ TCP ์์ JSON message๋ก ์ ์ํ๊ณ ์์ผ๋ฉฐ, controller discovery์๋ mDNS๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋ฐ๋ผ์ ์ ์ฒด ๊ฐ๋ ์ ๋ค์๊ณผ ๊ฐ์ด ๋ณผ ์ ์์ต๋๋ค.
Audio Transport โ Dante
Device Control โ Virgil
Hardware Prototype โ Proteus

๐งฉ 16๊ฐ์ Module Slot์ ๊ฐ์ง Controller
Proteus๋ ๊ณ ์ ๋ ํ๋์ control surface๊ฐ ์๋๋ผ module์ ๋ฐ๊ฟ ์ฌ์ฉํ ์ ์๋ ๊ตฌ์กฐ์ ๋๋ค. Controller์๋ ์ด 16๊ฐ์ module slot์ด ์๊ณ , ์ ๊ธฐ์ ์ผ๋ก ์ฌ๋กฏ์ ๋์ผํ๋ฉฐ ๊ธธ์ด๋ง ๋ค๋ฆ ๋๋ค.
| ์์น | Slot | ํ์ฌ Module |
|---|---|---|
| Upper | 8 | Speculum display/control module |
| Lower | 8 | Cursor motorized fader module |
Speculum
1.14-inch TFT display์ NeoPixel push button, NeoPixel continuous encoder๋ฅผ ํฌํจํ๋ ์ฌ์ฉ์ interface module์ ๋๋ค.
Cursor
B103 motorized fader๋ฅผ ์ฌ์ฉํ๋ motor fader module์ ๋๋ค.
๊ฐ module์ RP2040 ๋๋ RP2350 ๊ณ์ด MCU๋ฅผ ์ฌ์ฉํด์ผ ํ๋ฉฐ Motherboard์๋ SPI๋ก ํต์ ํฉ๋๋ค. README์๋ ๋ฒํผ module์ธ Ordo๋ ์ด๋ฆ์ด ์ฌ๋ผ ์์ต๋๋ค. ์ฆ ํ๋์ ์ค์ MCU๊ฐ ๋ชจ๋ fader์ display GPIO๋ฅผ ์ง์ ์ ์ดํ๋ ๊ตฌ์กฐ๊ฐ ์๋๋ผ:
Motherboard โ SPI Backplane โ Intelligent Modules
ํํ์ ๊ฐ๊น์ต๋๋ค.
๐ง Motherboard: RP2350 + W5500 + Wireless
Proteus์ ์ค์ฌ์ RP2350 ๊ธฐ๋ฐ Motherboard์ ๋๋ค.
| Function | Hardware |
|---|---|
| Main MCU | RP2350 (ํ๋์ 16 MB) |
| Wired Network | WIZnet W5500 |
| Wireless | Raspberry Pi Radio Module 2 |
| External Network Port | EtherCON |
| Storage | microSD via SDIO |
| Module Interface | SPI |
| Programming | USB-C / SWD |
์ฌ๊ธฐ์ WIZnet ๊ด์ ์์ ๊ฐ์ฅ ์ค์ํ ๋ถ๋ถ์ด W5500์
๋๋ค. ํ๋ก๋ Networking.kicad_sch์๋ W5500(LQFP-48), 25 MHz ํฌ๋ฆฌ์คํธ, Neutrik NE8FAH EtherCON ์ญ, PT61018PEL ๋ง๊ทธ๋คํฑ์ค, LINKยทDUPยทACT LED๊ฐ ์๊ณ , PCB์๋ W5500_~{CS}, W5500_~{INT}, W5500_~{RESET} net์ด ์์ต๋๋ค.
Proteus.h์ board definition์์๋ W5500์ฉ pin์ด ๋ช
ํํ๊ฒ ๋ถ๋ฆฌ๋์ด ์์ต๋๋ค.
// Networking SPI
#define PICO_DEFAULT_SPI spi0
#define PICO_DEFAULT_SPI_RX_PIN 0 // NET_MISO
#define PICO_DEFAULT_SPI_TX_PIN 3 // NET_MOSI
#define PICO_DEFAULT_SPI_SCK_PIN 2 // NET_CLK
#define W5500_CS_PIN 45
#define W5500_INT_PIN 46
#define W5500_RST_PIN 47Network SPI(spi0)์ W5500 CS, INT, RESET line์ firmware์ GPIO setup ๊ณผ์ ์์ ์ด๊ธฐํ๋ฉ๋๋ค. module ์ชฝ์ ๋ณ๋์ spi1์ ์ฐ๋ฏ๋ก ์ด๋๋ท traffic์ด faderยทdisplay์ bus๋ฅผ ๊ณต์ ํ์ง ์์ต๋๋ค. ๋ฌด์ module๋ ์์ฒด CS(GPIO 42), ์ธํฐ๋ฝํธ(43), ์ธ์์ด๋ธ(44)์ ๊ฐ์ ธ ๋ network path๋ ์๋ก ๋
๋ฆฝ์ ์
๋๋ค.
์ฆ W5500์ ๋จ์ํ future option์ผ๋ก schematic์๋ง ์กด์ฌํ๋ ๊ฒ์ด ์๋๋ผ Motherboard hardware architecture์ firmware pin definition์ ์ด๋ฏธ ํฌํจ๋์ด ์์ต๋๋ค.
๐ W5500์ Virgil์ Wired Network Path๋ฅผ ์ํ Hardware
Virgil protocol์ TCP connection์ ์ด์ฉํ๋๋ก ์ ์๋์ด ์์ต๋๋ค. Message๋ UTF-8 JSON ํํ์ด๋ฉฐ, ๊ฐ message ์์๋ payload length๋ฅผ ๋ํ๋ด๋ 4-byte unsigned big-endian value๋ฅผ ๋ก๋๋ค. ์๋ฅผ ๋ค์ด Virgil์์๋ ๋ค์๊ณผ ๊ฐ์ message type์ ์ ์ํฉ๋๋ค.
| Message | ์ญํ |
|---|---|
parameterCommand | Parameter ๋ณ๊ฒฝ |
statusUpdate | Parameter ์ํ ๋ณ๊ฒฝ ์ ๋ฌ |
statusRequest | ํ์ฌ ์ํ ์์ฒญ |
channelLink | Audio channel ์ฐ๊ฒฐ |
channelUnlink | Channel ์ฐ๊ฒฐ ํด์ |
deviceInfoRequest | Device information ์์ฒญ |
subscribeMessage | Parameter update subscription |
์ด ๊ตฌ์กฐ๊ฐ Proteus์์ ๊ตฌํ๋ ๊ฒฝ์ฐ wired network path๋ ๋ค์๊ณผ ๊ฐ์ ํํ๊ฐ ๋ ์ ์์ต๋๋ค.
Proteus UI Modules โ RP2350 Motherboard โ Virgil Application โ TCP โ W5500 Ethernet โ EtherCON / Network

W5500์ Hardwired TCP/IP socket architecture๋ ์ด๋ฐ embedded TCP control endpoint๋ฅผ ๊ตฌ์ฑํ๊ธฐ์ ์์ฐ์ค๋ฌ์ด hardware ๊ตฌ์กฐ์ ๋๋ค. ์ ์๊ฐ ์ด์ ๋ฅผ ์ค๋ช ํ ๊ฒ์ ์๋๋ฏ๋ก ์๋๋ ์ฐ๋ฆฌ์ ํด์์ ๋๋ค.
- RP2350์๋ ์ด๋๋ท MAC์ด ์์ด ์ ์ ๋คํธ์ํฌ์๋ ์ธ๋ถ ์ปจํธ๋กค๋ฌ๊ฐ ํ์ํ๊ณ , W5500์ SPI๋ก MAC/PHY์ TCP/IP ์คํ์ ํจ๊ป ๋งก์ ์ค๋๋ค.
- ์ปจํธ๋กค ์ํผ์ค๋ ์ฌ๋ฌ ์ฅ์น์ ์ค๋ ์ ์ง๋๋ TCP ์ฐ๊ฒฐ์ ๊ฐ์ต๋๋ค. ํฅํ W5500์ hardware socket์ ์ฌ์ฉํ๋ค๋ฉด TCP/IP ์ฒ๋ฆฌ๋ฅผ W5500์ ๋งก๊ธธ ์ ์์ต๋๋ค. ๋ค๋ง ํ์ฌ repository์์๋ ํด๋น software architecture๊ฐ ์์ง ์ ์๋์ง ์์์ต๋๋ค
- W5500 INT๊ฐ GPIO46์ ์ฐ๊ฒฐ๋์ด ์์ด firmware์์ ์ง์์ ์ธ polling ๋์ interrupt ๊ธฐ๋ฐ์ผ๋ก network event๋ฅผ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
๋ค๋ง ์ฌ๊ธฐ์ ์ค์ํ ๋ถ๋ถ์ด ์์ต๋๋ค.
ํ์ฌ ๊ณต๊ฐ๋ Proteus firmware์์๋ Virgil-over-W5500 TCP implementation๊น์ง๋ ํ์ธ๋์ง ์์ต๋๋ค.
ํ์ฌ code์์๋ network SPI ๋ฐ W5500 control pin ์ค์ ์ด ํ์ธ๋์ง๋ง TCP socket ๋๋ Virgil message processing ๋จ๊ณ๋ ์์ง ๊ตฌํ ์ค์ธ ๊ฒ์ผ๋ก ๋ณด๋ ๊ฒ์ด ์ ํํฉ๋๋ค. ๋ ์ ์ฅ์๋ ํ๋์จ์ด socket์ ์ธ์ง, MACRAW + lwIP๋ก ๊ฐ์ง๋ ์ ํ์ง ์์์ต๋๋ค. (์๋ ๊ด๋ จ ํ๋ก์ ํธ์์ ๋ ๋ฐฉ์์ ์ฌ๋ก๋ฅผ ๋น๊ตํฉ๋๋ค.)
๐๏ธ Virgil์ ๋ฌด์์ ์ ์ดํ๋ ค ํ๋๊ฐ?
Virgil์ ๋จ์ํ button command protocol๋ณด๋ค ๋ฒ์๊ฐ ๋์ต๋๋ค. ํ์ฌ protocol์๋ audio equipment์์ ํ์ํ ์ฌ๋ฌ parameter๊ฐ ์ ์๋์ด ์์ต๋๋ค.
Gain / Phantom Power / Pad / Polarity / Low-cut / RF Level / Audio Level / Battery State
๋ฑ์
๋๋ค. ๋ Dante์ TX/RX channel์ ๋์๋๋ channel model๊ณผ ๋ณ๋๋ก aux channel ๊ฐ๋
๋ ๋๊ณ ์์ต๋๋ค. ์ด๋ฅผ ์ด์ฉํ๋ฉด Proteus์ ๊ฐ์ control surface๊ฐ ํฅํ ์ฌ๋ฌ audio device์ parameter๋ฅผ ํ๋์ interface์์ ์กฐ์ํ๋ ๊ตฌ์กฐ๋ฅผ ๋ชฉํ๋ก ํ ์ ์์ต๋๋ค.
๐ Backplane: 16๊ฐ Module์ ์ด๋ป๊ฒ ์ฐ๊ฒฐํ ๊น?
Proteus Backplane์ 16๊ฐ์ module slot๊ณผ Motherboard ์ฌ์ด๋ฅผ ์ฐ๊ฒฐํฉ๋๋ค. ํต์ฌ ๊ตฌ์ฑ์ SPI + Power + Reset + Detect + SWD์ ๋๋ค. ๊ทธ ์ธ์ GPIO 1๊ฐ๊ฐ SPI interrupt์ฉ์ผ๋ก ์ปจํธ๋กค๋ฌ์ ์ง๊ฒฐ๋์ด ์์ง๋ง, ํ์ฅ์ฑ์ ์ํด ์ดํ ๋ฒ์ ์์ ์ ๊ฑฐ๋ ๊ฐ๋ฅ์ฑ์ด ํฌ๋ค๊ณ README๊ฐ ์ ๊ณ ์์ต๋๋ค.
16๊ฐ์ module chip-select๋ฅผ ๋ง๋ค๊ธฐ ์ํด CD74HC154M96 demultiplexer๊ฐ ์ปจํธ๋กค๋ฌ์ CS mux 4์ ์ 16์ ์ผ๋ก ๋๋๊ณ , module reset/detect์๋ MCP23017T I/O expander 2๊ฐ๊ฐ ์ฌ์ฉ๋ฉ๋๋ค.
ํนํ ์ฌ๋ฏธ์๋ ๋ถ๋ถ์ SWD์ ๋๋ค. ๊ฐ module์ SWD line์ switchํ ์ ์๋๋ก module๋ง๋ค SN74CBTLV1G125 buffer๋ฅผ ๋๊ณ CS line์ ์ ์ด ์ ํธ๋ก ์จ์, Motherboard์์ ๊ฐ module MCU๋ฅผ ์๋์ผ๋ก programํ ์ ์๋ ๊ตฌ์กฐ๊น์ง ๊ณ ๋ คํ๊ณ ์์ต๋๋ค. module ๊ต์ฒด๋ฟ ์๋๋ผ firmware management๊น์ง ์ค์ controller์์ ์ฒ๋ฆฌํ๋ ค๋ architecture์ ๋๋ค.
โก PoE๊น์ง ๊ณ ๋ คํ Power Architecture
Proteus๋ power board๋ Motherboard์์ ๋ถ๋ฆฌํ๊ณ ์ ์ฐํ์ต๋๋ค. ๋์ค์ ๋ฐฐํฐ๋ฆฌ ์ต์ ์ ๋ฃ๊ณ ์ถ์ง๋ง ์์ง BMS๋ ๋ค๋ฃจ๊ณ ์ถ์ง ์๋ค๋ ์ด์ ์ ๋๋ค.
ํ์ฌ prototype power board๋ PoE + 12 V barrel input์ ๋์์ผ๋ก ํ๋ฉฐ 3.3 V, 5 V์ motorized fader์ฉ motor voltage(์ฝ 9โ12 V, ์ ํํ ์ ๋ฅ๋ ํ ์คํธ ํ ๊ฒฐ์ )๋ฅผ ๊ณต๊ธํฉ๋๋ค. ์ด ๋ณด๋๋ ์์ฒด RP2350๊ณผ ๋ชจ๋ ๋ ์ผ์ ์ ๋ฅยท์ ์ ์ผ์ฑ, ๋ชจํฐ ๋ ์ผ์ smart power fuse, ์ ์ ์กฐ์ ์ฉ digital potentiometer๋ ๊ฐ๊ณ ์์ต๋๋ค.
Motherboard์ Power board ์ฌ์ด์๋ PoE ๋ฐ USB-C PD(CC line ํฌํจ) ๊ด๋ จ signal์ด ์ ๋ฌ๋ฉ๋๋ค. ์ด ์ญ์ ์์ง ์ต์ข production power design์ด๋ผ๊ธฐ๋ณด๋ค๋ future battery / PoE / different power module์ ๊ณ ๋ คํ modular architecture๋ผ๊ณ ๋ณด๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ ์์ ๋ฃ์ด ๋ณธ ํ ์คํธ ๊ฒฐ๊ณผ๋ ์ ์ฅ์์ ๋ณด๊ณ ๋์ด ์์ง ์์ต๋๋ค.
๐ก Wired + Wireless๋ฅผ ๋ชจ๋ ๊ณ ๋ ค
Motherboard์๋ W5500๋ฟ ์๋๋ผ Raspberry Pi Radio Module 2๋ ์กด์ฌํฉ๋๋ค.
W5500 โ Wired Ethernet
Radio Module 2 โ Wireless
๋ network path๊ฐ ๋ชจ๋ ๊ณ ๋ ค๋์ด ์์ต๋๋ค. ํ์ง๋ง ํ์ฌ repository์์ automatic failover๋ simultaneous hybrid networking ๊ฐ์ ๋์๊น์ง ๊ตฌํ๋์๋ค๋ ๊ทผ๊ฑฐ๋ ํ์ธ๋์ง ์์ต๋๋ค. ๋ฐ๋ผ์ Maker ๊ธ์์๋:
The motherboard includes both wired W5500 Ethernet and a wireless radio option.
์ ๋๋ก ํํํ๋ ๊ฒ์ด ์์ ํฉ๋๋ค.
โ ๏ธ ํ์ฌ ํ๋ก์ ํธ ์ํ
Proteus๋ ํ์ฌ ์์ฑ๋ commercial audio controller๋ผ๊ธฐ๋ณด๋ค ๊ฐ๋ฐ ์ค์ธ hardware/protocol prototype์ ๊ฐ๊น์ต๋๋ค. README๋ ์ค์ค๋ก hardware prototype์ด๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
PCB(KiCad), enclosure STEP, ๋ ๋๋ง, BOM, Motherboard pin architecture ๋ฑ์ ์๋นํ ๊ตฌ์ฒด์ ์ผ๋ก ๊ณต๊ฐ๋์ด ์์ง๋ง, Code/Motherboard/Motherboard.cpp๋ 50์ค์ง๋ฆฌ Pico ์์ template(1 MHz SPI, I2C, "Hello, world!" ๋ฃจํ)์ด๊ณ build๋ hardware_spi, hardware_i2c, hardware_pio์ SD library๋ง linkํฉ๋๋ค. W5500 driver๋ ioLibrary, Virgil ๊ตฌํ์ ์ด ์ ์ฅ์์ ์์ต๋๋ค. Virgil protocol repository์๋ ์ฐธ์กฐ firmware๋ ์์ต๋๋ค.
๋ฐ๋ผ์ ๋ค์์ ๊ตฌ๋ถํด์ ๋ด์ผ ํฉ๋๋ค.
| ํ์ฌ ํ์ธ ๊ฐ๋ฅ | ์์ง ๋จ์ ํ๋ฉด ์ ๋๋ ๋ถ๋ถ |
|---|---|
| RP2350 Motherboard | Virgil fully running on Proteus |
| W5500 hardware (ํ๋ก๋ยทPCB net) | Complete TCP networking |
| W5500 CS/INT/RST pin definition | Production-ready W5500 firmware |
| EtherCON | Wired/Wireless automatic failover |
| Radio Module 2 | Finished Hybrid networking |
| PoE-oriented power design | Final production PoE implementation |
์ด ์ ์ ๋ช ํํ๊ฒ ์ค๋ช ํ๋ฉด ์คํ๋ ค ํ๋ก์ ํธ ์ฑ๊ฒฉ์ด ๋ ์ ๋๋ฌ๋ฉ๋๋ค. Proteus๋ ์์ ํ ์ฌ๋ก๋ณด๋ค๋ W5500์ด ํฌํจ๋ ์ฐจ์ธ๋ modular audio-control platform์ ์ด๋ป๊ฒ ์ค๊ณํ๊ณ ์๋์ง๋ฅผ ๋ณผ ์ ์๋ development project์ ๋๋ค. ๊ฐ์ธ ํ ์ฌ๋์ด ๊ด๋ฆฌํ๋ ํ๋ก์ ํธ๋ผ๋ ์ ๋ ๊ฐ์ํด์ผ ํฉ๋๋ค.
๐ ๋น์ทํ WIZnet Maker ํ๋ก์ ํธ์ ๋น๊ต
Proteus์ ์ ํํ ๊ฐ์ Virgil/Dante controller๋ ์๋์ง๋ง, RP2040/RP2350 ๊ณ์ด + W5500์ ์ด์ฉํด real-time media/control network๋ฅผ ๊ตฌ์ฑํ Maker ํ๋ก์ ํธ๋ค๊ณผ ๋น๊ตํ๋ฉด ํน์ง์ด ๋ ์ ๋ณด์ ๋๋ค. ํนํ ๊ฐ ํ๋ก์ ํธ๊ฐ W5500์ ์ด๋ป๊ฒ ์ฐ๋์ง(ํ๋์จ์ด TCP/UDP vs MACRAW + lwIP)์ ์ฃผ๋ชฉํด ๋ณผ ๋งํฉ๋๋ค.
| Project | ๋ถ์ผ | W5500 ์ญํ | Proteus์ ์ฐจ์ด |
|---|---|---|---|
| Proteus | Live Audio Control | Virgil์ฉ wired Ethernet ๋ชฉํ (firmware ๋ฏธ๊ตฌํ) | Modular control surface + ์์ฒด protocol |
| Network MIDI 2.0 Bridge with W5500 on RP2040 | Network MIDI | MACRAW + lwIP (TOE ๋ฏธ์ฌ์ฉ) | MIDI transport์ ์ง์ค |
| Core-Micro | Live Lighting Control | Art-Net Ethernet | DMX/lighting console์ ์ง์ค |
| SqueezeAMP PoE | Network Audio | SPI Ethernet + PoE++ (lwIP, TOE ๋ฏธ์ฌ์ฉ) | Audio playback endpoint |
| 3D Joystick Controller | Wired Control Surface | ESP32 + W5500๋ก OSC ์ ์ก | ๋์ํ๋ ์ปจํธ๋กค๋ฌ; ๊ธฐ์ฑ W5500 ๋ณด๋ ์ฌ์ฉ |
| w5500_mesaxyz | RP2040 Networking | Pico W์ wired Ethernet ์ถ๊ฐ (ioLibrary) | General-purpose Ethernet example |
Network MIDI 2.0 Bridge
์ด ํ๋ก์ ํธ ์ญ์ RP2040๊ณผ W5500์ ์ด์ฉํด ์์ ๊ด๋ จ network protocol์ ์ฒ๋ฆฌํฉ๋๋ค. ํน์ดํ๊ฒ W5500์ TCP/UDP hardware socket์ ๊ทธ๋๋ก ์ฌ์ฉํ๋ ๋์ MACRAW โ lwIP โ UDP โ Network MIDI 2.0 ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ฉฐ, ํ์ด์ง๋ W5500์ "Ethernet MAC/PHY-facing hardware interface and frame buffer"๋ก ์ด๋ค๊ณ ์ค๋ช ํฉ๋๋ค.
Proteus๋ MIDI transport๊ฐ ์๋๋ผ live-audio equipment parameter control์ ๋ชฉํ๋ก ํ๋ค๋ ์ ์ด ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ๋๋ค. Proteus๊ฐ ์ด๋ ๋ฐฉ์์ ํํ ์ง๋ ์์ง ์ด๋ ค ์์ต๋๋ค.
Core-Micro
Core-Micro๋ RP2040 + W5500 ๊ธฐ๋ฐ์ ๊ณต์ฐ ์กฐ๋ช controller๋ก Art-Net, DMX, physical fader/encoder ๋ฑ์ ํ๋์ device์ ํตํฉํ๋ ค๋ ํ๋ก์ ํธ์ ๋๋ค. ๋ค๋ง ํ์ด์ง๋ fader 5๊ฐ์ encoder 2๊ฐ๊ฐ "๊ณํ" ๋จ๊ณ์ด๊ณ firmware๋ DMXยทArt-Net ๊ฒ์ฆ์ฉ ์ต์ ๊ตฌํ์ด๋ผ๊ณ ๋ฐํ๋๋ค. Logic/Surface/DMX/Power 4๊ฐ board๋ก ๋๋ modular ํ๋์จ์ด๋ผ๋ ์ ๋ Proteus์ ๋ฎ์์ต๋๋ค.
Physical control surface + W5500์ด๋ผ๋ ์ ์ Proteus์ ๋งค์ฐ ์ ์ฌํฉ๋๋ค. ํ์ง๋ง:
Core-Micro โ Lighting / Art-Net / DMX
Proteus โ Live Audio / Virgil / Dante companion control
์ด๋ผ๋ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
SqueezeAMP PoE
SqueezeAMP PoE๋ ESP32์ W5500, PoE++(IEEE 802.3bt, ์ต๋ 60 W)๋ฅผ ์ด์ฉํ network audio amplifier์ ๋๋ค. ํ๋์ Ethernet cable์ ํตํด network์ power๋ฅผ ํจ๊ป ๊ณต๊ธํฉ๋๋ค. ํ์ด์ง๋ TCP/IP๋ฅผ W5500 offload๊ฐ ์๋๋ผ ESP32์ lwIP๋ก ์ฒ๋ฆฌํ๋ค๊ณ ๋ฐํ๋๋ค.
Proteus ์ญ์ Ethernet๊ณผ PoE๋ฅผ ๊ณ ๋ คํ์ง๋ง ์ญํ ์ด ๋ค๋ฆ ๋๋ค.
SqueezeAMP โ Audio Endpoint
Proteus โ Audio Control Surface
๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค.
3D Joystick Controller
ESP32์ W5500์ผ๋ก ์กฐ์ด์คํฑ ์ ๋ ฅ์ ์ฝ์ด OSC ๋ฉ์์ง๋ก ์ ์ ์ด๋๋ท์ ์ ์กํ๋ ์ปจํธ๋กค๋ฌ์ ๋๋ค. ์ ๋ ฅ โ ๋คํธ์ํฌ ๋ฉ์์ง โ ์ธ๋ถ ์ฅ์น๋ผ๋ ํ๋ฆ์ Proteus์ control surface ์ญํ ๊ณผ ๊ฐ์ฅ ๊ฐ๊น์ง๋ง, ์ด์ชฝ์ ์ค์ ๋ก ๋์ํ๋ firmware๊ฐ ์๊ณ ๊ธฐ์ฑ W5500 board๋ฅผ ์๋๋ค. Proteus๋ W5500์ ์ปค์คํ Motherboard์ ์ง์ ๋ฐฐ์นํ ์ค๊ณ๋ผ๋ ์ ์ด ๋ค๋ฆ ๋๋ค.
w5500_mesaxyz
Pico W์ W5500์ ์ฐ๊ฒฐํด Wi-Fi์ ๋ณ๋๋ก wired Ethernet์ ์ถ๊ฐํ๋ ๊ธฐ๋ณธ RP2040 networking project๋ก, WIZnet์ ioLibrary_Driver๋ฅผ ์๋๋ค. Proteus ์ญ์ wireless module๊ณผ W5500์ ํ Motherboard์์ ๊ณ ๋ คํ์ง๋ง, ๋จ์ connectivity demonstration์ด ์๋๋ผ modular live-sound controller๋ผ๋ application ๋ชฉ์ ์ด ๋ถ๋ช ํ๋ค๋ ์ ์ด ๋ค๋ฆ ๋๋ค.
โ FAQ
Q. Proteus์์ W5500์ด ์ค์ ๋ก ์ฌ์ฉ๋๋์?
Motherboard hardware(ํ๋ก๋ยทPCB)์ firmware pin definition์ W5500์ด ํฌํจ๋์ด ์์ต๋๋ค. ๋ค๋ง ํ์ฌ ๊ณต๊ฐ firmware์์๋ ์ค์ TCP/Virgil networking๊น์ง ๊ตฌํ๋ ๊ฒ์ ํ์ธ๋์ง ์์ต๋๋ค.
Q. Virgil์ audio streaming protocol์ธ๊ฐ์?
์๋๋๋ค. ํ๋ก์ ํธ๋ Virgil์ Dante์ companion control protocol๋ก ์ ์ํฉ๋๋ค. Audio transport ์์ฒด๊ฐ ์๋๋ผ gain, phantom power, channel linking, device status ๊ฐ์ control information์ TCP/JSON์ผ๋ก ์ ๋ฌํ๋ ๊ฒ์ด ๋ชฉ์ ์
๋๋ค.
Q. MIDI controller์ธ๊ฐ์?
Physical form์ motorized fader์ display/encoder๋ฅผ ์ฌ์ฉํ๋ control surface์ ๋น์ทํ์ง๋ง, ํ๋ก์ ํธ๋ MIDI ๋์ ์์ฒด Virgil protocol์ ๊ฐ๋ฐํ๊ธฐ ์ํ platform์ผ๋ก ์ค๋ช
ํฉ๋๋ค.
Q. W5500๊ณผ Wi-Fi๋ฅผ ๋์์ ์ฌ์ฉํ๋์?
Motherboard์๋ W5500๊ณผ Raspberry Pi Radio Module 2๊ฐ ๋ชจ๋ ์ค๊ณ๋์ด ์์ต๋๋ค. ํ์ง๋ง ํ์ฌ source์์ automatic failover๋ simultaneous network operation๊น์ง ํ์ธ๋์ง๋ ์์ต๋๋ค.
Q. PoE๋ฅผ ์ง์ํ๋์?
Power architecture์์ PoE๋ฅผ ๊ณ ๋ คํ๊ณ ์์ผ๋ฉฐ ์ด๊ธฐ power module๋ PoE์ 12 V input์ ๋์์ผ๋ก ํฉ๋๋ค. ๋ค๋ง ํ์ฌ ๋จ๊ณ์์๋ final production PoE implementation์ผ๋ก ํํํ๊ธฐ๋ณด๋ค prototype design์ผ๋ก ๋ณด๋ ๊ฒ์ด ์์ ํฉ๋๋ค.
Q. ์ง์ ๋ง๋ค ์ ์๋์?
KiCad ํ๋ก์ ํธ, STEP ํ์ผ, BOM์ด ๊ณต๊ฐ๋์ด ์์ง๋ง ์ ์๋ ์ด๊ฒ์ prototype์ด๋ผ๊ณ ์ค๋ช
ํ๊ณ firmware๋ ๋ฏธ์์ฑ์
๋๋ค.
๐ Building the Control Layer Around Network Audio
Proteus is a modular hardware platform being developed as a prototype for the Virgil live-sound control protocol. The README compares it to a MIDI controller such as the Behringer X-Touch, with two differences: it is fully open source and modular, and it does not use MIDI.
The project is not intended to replace network audio transport itself. The gap the author points to is that Dante moves the audio but has no room for control messages, so each audio vendor ships its own proprietary control protocol. Virgil is designed as a companion control protocol for exchanging device parameters such as gain, phantom power, channel state, and status information.
The Virgil specification currently defines JSON-formatted messages over TCP, with mDNS used for controller discovery. The overall concept can therefore be summarized as:
Audio Transport โ Dante
Device Control โ Virgil
Hardware Prototype โ Proteus

Generated diagram from the README, Proteus.h pin definitions and the Networking schematic sheet.
๐งฉ Modular Control Surface
Proteus provides sixteen module slots, eight on the upper section and eight on the lower section. The slots are electrically identical and differ only in length. Current modules include:
Speculum โ 1.14" TFT display, illuminated (NeoPixel) button and rotary encoder.
Cursor โ B103 motorized fader module.
Every module must carry an RP2040/RP2350-class controller and communicates with the main system through SPI. The README also names a button module, Ordo. The result is a distributed architecture rather than one central MCU directly controlling every display, encoder and motor.
๐ง RP2350 Motherboard with W5500
The Proteus Motherboard is based on an RP2350 (16 MB flash). It includes:
- WIZnet W5500 Ethernet
- Raspberry Pi Radio Module 2
- EtherCON network connector
- USB-C and SWD for programming
- microSD over SDIO
- Backplane interfaces
The Networking.kicad_sch sheet contains the W5500 (LQFP-48) with a 25 MHz crystal, a Neutrik NE8FAH EtherCON jack, PT61018PEL magnetics, and LINK, DUP and ACT LEDs. The PCB carries nets named W5500_~{CS}, W5500_~{INT} and W5500_~{RESET}. The firmware board definition Proteus.h assigns the pins:
// Networking SPI
#define PICO_DEFAULT_SPI spi0
#define PICO_DEFAULT_SPI_RX_PIN 0 // NET_MISO
#define PICO_DEFAULT_SPI_TX_PIN 3 // NET_MOSI
#define PICO_DEFAULT_SPI_SCK_PIN 2 // NET_CLK
#define W5500_CS_PIN 45
#define W5500_INT_PIN 46
#define W5500_RST_PIN 47The network SPI and the W5500 control pins are configured during hardware setup. The module bus is a separate spi1, so Ethernet traffic does not share a bus with the faders and screens, and the radio module has its own chip-select (GPIO 42), interrupt (43) and enable (44). This confirms that W5500 is part of the intended motherboard architecture rather than only a conceptual network option.
๐ W5500 as the Wired Path for Virgil
Virgil defines persistent TCP communication with UTF-8 JSON messages, each prefixed by a 4-byte unsigned big-endian length. Its documented message types include parameterCommand, statusUpdate, statusRequest, channelLink, channelUnlink, deviceInfoRequest, and subscribeMessage.
A future Proteus implementation can therefore follow a path such as:
Control Modules โ RP2350 โ Virgil โ TCP โ W5500 โ EtherCON

Generated diagram of the control path described in the Virgil README. The Proteus firmware does not implement it yet.
The author does not explain the choice of W5500, so the following is our reading of the design:
- The RP2350 has no Ethernet MAC, so wired networking needs an external controller; the W5500 attaches over SPI and takes the MAC/PHY side and the TCP/IP stack with it.
- A control surface keeps long-lived TCP connections to several devices. If Proteus later uses the W5500 hardware sockets, they could offload TCP/IP processing from the RP2350. The current repository does not yet define that software architecture.
- W5500 INT is connected to GPIO46, allowing firmware to handle network events through interrupts instead of continuous polling.
However, the current public Proteus firmware should be described carefully.
W5500 hardware and pin-level initialization are present, but a complete Virgil-over-W5500 TCP implementation is not yet visible in the repository. The repository also does not say whether it will use the W5500's hardware sockets or MACRAW with lwIP; the related projects below show both approaches.
Proteus is therefore best presented as a platform being developed for Virgil, rather than a finished Virgil Ethernet controller.
๐๏ธ What Virgil Aims to Control
The protocol defines parameters such as gain, phantom power, pad, polarity, low-cut, RF level, audio level and battery state, plus a channel model matching Dante TX/RX channels and a separate aux channel concept. A control surface like Proteus could eventually operate several devices' parameters from one interface.
๐ A Backplane Designed for Intelligent Modules
The Backplane distributes SPI, power, reset, detection and SWD signals to the sixteen module slots. A CD74HC154M96 demultiplexer expands the Motherboard's four CS mux lines into sixteen module chip-selects, while two MCP23017T expanders provide reset and detection I/O. One GPIO goes straight to the controller as an SPI interrupt, which the README says will likely be removed to scale across more modules.
A SN74CBTLV1G125 per module switches that module's SWD lines, using the CS line as the control signal, so the central controller can program every module automatically.
โก Power and PoE
Power is separated onto its own isolated board so that different power architectures can be developed independently. The author wants a battery option later without taking on a BMS yet.
The current prototype power module is designed around PoE and 12 V input and supplies 3.3 V, 5 V and a motor rail of roughly 9โ12 V, with the exact current to be determined by testing. It carries its own RP2350 with current and voltage sensing on every rail, a smart power fuse on the motor rail and a digital potentiometer to adjust it. PoE and USB-C PD signals, including the CC lines, are passed from the Motherboard to the power board. The repository reports no powered test results.
๐ก Wired and Wireless Hardware
The motherboard includes both W5500 wired Ethernet and a Raspberry Pi Radio Module 2. This gives the platform hardware support for both wired and wireless networking. However, the current repository does not yet demonstrate automatic failover or simultaneous hybrid networking, so those behaviors should not be assumed.
โ ๏ธ Development Status
Proteus is currently a development platform rather than a finished commercial controller; the README itself calls it a hardware prototype.
The KiCad projects, enclosure STEP files, renderings, BOM and motherboard pin architecture are published. The public Motherboard firmware, however, is still at an early bring-up stage: Code/Motherboard/Motherboard.cpp is the 50-line Pico example template (1 MHz SPI, I2C, a "Hello, world!" loop), and the build links only hardware_spi, hardware_i2c, hardware_pio and an SD library. There is no W5500 driver, ioLibrary or Virgil implementation in this repository, and the Virgil repository describes no reference firmware. It is also a single-maintainer project.
| Confirmed in the repository | Not yet established |
|---|---|
| RP2350 Motherboard | Virgil fully running on Proteus |
| W5500 hardware (schematic, PCB nets) | Complete TCP networking |
| W5500 CS/INT/RST pin definitions | Production-ready W5500 firmware |
| EtherCON | Wired/wireless automatic failover |
| Radio Module 2 | Finished hybrid networking |
| PoE-oriented power design | Final production PoE implementation |
That makes Proteus particularly interesting as a design-in-progress reference for combining RP2350, W5500, modular control hardware and a new network control protocol.
๐ Related WIZnet Maker Projects
| Project | Area | W5500 Role | Difference from Proteus |
|---|---|---|---|
| Proteus | Live Audio Control | Planned wired path for Virgil (firmware not yet written) | Modular control surface + custom protocol |
| Network MIDI 2.0 Bridge with W5500 on RP2040 | Network MIDI | MACRAW + lwIP (no TOE) | Focused on MIDI transport |
| Core-Micro | Live Lighting Control | Art-Net Ethernet | Focused on DMX/lighting console control |
| SqueezeAMP PoE | Network Audio | SPI Ethernet + PoE++ (lwIP, no TOE) | Audio playback endpoint |
| 3D Joystick Controller | Wired Control Surface | ESP32 + W5500 sending OSC | Working controller on a ready-made W5500 board |
| w5500_mesaxyz | RP2040 Networking | Adds wired Ethernet to Pico W (ioLibrary) | General-purpose Ethernet example |
Network MIDI 2.0 Bridge
This project also combines RP2040 and W5500 for a music-related network protocol. Instead of the W5500's hardware TCP/UDP sockets it runs MACRAW โ lwIP โ UDP โ Network MIDI 2.0, using the W5500 as the Ethernet MAC/PHY-facing interface and frame buffer.
Its focus is network MIDI transport, while Proteus targets live-audio equipment parameter control through Virgil. Which of the two W5500 modes Proteus will use is still open.
Core-Micro
Core-Micro combines RP2040, W5500, physical faders and encoders for Art-Net/DMX lighting control. Its page describes five faders and two encoders as planned and the firmware as a minimal DMX/Art-Net verification build, and the hardware is split into Logic, Surface, DMX and Power boards, much as Proteus separates its boards.
Its physical control-surface concept is close to Proteus, but the application domains differ:
Core-Micro โ Lighting / Art-Net / DMX
Proteus โ Live Audio / Virgil / Dante companion control
SqueezeAMP PoE
SqueezeAMP PoE uses ESP32, W5500 and IEEE 802.3bt PoE++ (up to 60 W) for a network audio amplifier, and its page states that TCP/IP runs on the ESP32's lwIP rather than the W5500 offload. Proteus also considers Ethernet and PoE, but serves a different role:
SqueezeAMP โ Audio Endpoint
Proteus โ Audio Control Surface
3D Joystick Controller
An ESP32 reads two 3D joysticks and sends the values as OSC messages over a W5500 wired link. The input-to-network-message flow is the closest to Proteus's control-surface role, but it has working firmware on a ready-made W5500 board, while Proteus places the W5500 on its own custom motherboard.
w5500_mesaxyz
This project adds W5500 wired Ethernet to a Pico W using WIZnet's ioLibrary_Driver. Proteus also combines wireless capability with W5500 Ethernet, but uses them within a larger modular live-sound control architecture rather than as a general connectivity demonstration.
โ FAQ
Is W5500 actually part of Proteus?
Yes. It is included in the Motherboard hardware design (schematic and PCB nets) and firmware pin definitions. A complete TCP/Virgil implementation, however, is not yet visible in the public firmware.
Is Virgil an audio-streaming protocol?
No. Virgil is described as a companion control protocol for Dante-based systems, carrying device-control information such as gain, phantom power, channel linking and status over TCP/JSON.
Is Proteus a MIDI controller?
Its physical form resembles a modular control surface with faders, displays and encoders, but the project is intended to prototype the Virgil protocol instead of MIDI.
Does it already use W5500 and Wi-Fi together?
The Motherboard includes both W5500 and a Raspberry Pi Radio Module 2, but the current source does not demonstrate automatic failover or simultaneous hybrid networking.
Is PoE finished?
PoE is part of the power architecture and the current prototype power module is designed for PoE and 12 V input, but it should still be described as a development-stage power design.
Can I build one?
The KiCad projects, STEP files and a BOM are published, but the author describes it as a prototype and the firmware is incomplete.
