Wiznet makers

Sunny_

Published July 23, 2026 ©

156 UCC

3 WCC

0 VAR

0 Contests

0 Followers

0 Following

Original Link

HELIC-DAQ

Real-time control and data acquisition platform for control-based continuation

COMPONENTS
PROJECT DESCRIPTION

HELIC-DAQ: W5500 Ethernet 기반 실시간 실험 제어 및 데이터 수집 플랫폼

PROJECT DESCRIPTION

HELIC-DAQ는 실험실의 센서 데이터를 정밀한 주기로 측정하고, 제어 알고리즘을 실행하며, 측정 결과를 PC로 실시간 전송하기 위한 오픈소스 제어 및 데이터 수집 플랫폼입니다.

HELIC는 Hackable Experimental Laboratory Instrumentation and Control의 약자로, 프로젝트는 Raspberry Pi RP2350 기반 보드와 Rust Embassy Framework를 이용해 실시간 제어, 신호 생성, 계측 및 데이터 스트리밍 기능을 구현합니다.

WIZnet W5500-EVB-Pico2 또는 W6100-EVB-Pico2를 사용한 유선 Ethernet 장치뿐 아니라 Raspberry Pi Pico 2W를 이용한 Wi-Fi 장치도 지원합니다. 제어 대상, 연결되는 센서, 제어 알고리즘과 네트워크 방식은 Firmware Build 시 선택할 수 있습니다.

단순한 센서 데이터 Logger와 달리, 매 Sampling Tick마다 측정값을 읽고 Controller를 계산한 뒤 DAC 출력을 즉시 바꾸는 실시간 제어 장치라는 점이 특징입니다.


KEY FEATURES

Hardware-timed Sampling

Sampling Timing을 Hardware Peripheral이 생성하여 Network와 Software Task의 영향을 줄입니다.

Isolated Real-time Core

Measurement, Control 및 Actuation을 Network Task와 분리된 RP2350 Core에서 실행합니다.

High-rate Ethernet Streaming

W5500 Ethernet을 이용해 다수의 Measurement Source를 최대 8kHz Sampling 환경에서 전송할 수 있습니다.

Runtime Parameter Control

Firmware를 다시 Build하지 않고 Frequency, Controller Gain 및 Waveform Coefficient를 변경할 수 있습니다.

Multi-language Host Support

Python, Julia 및 MATLAB에서 동일한 Device Protocol과 Measurement Source를 사용할 수 있습니다.

HELIC-DAQ 장치가 사용하는 TCP·UDP Protocol은 동일하고, PC 쪽에서 이를 제어하는 Library를 Python, Julia, MATLAB용으로 각각 제공합니다.

장치 입장에서는 같은 Protocol을 사용하지만 사용자는 익숙한 언어를 선택할 수 있어

Discoverable Interface

Host Software가 연결된 Firmware의 Parameter와 Stream Source를 자동으로 검색하므로 Experiment별 Hard-coded Index가 필요하지 않습니다.

Long-running Recording

선택적인 Broker를 통해 여러 Client와 Stream을 공유하고 HDF5 File로 장기간 기록할 수 있습니다.


SYSTEM ARCHITECTURE

HELIC-DAQ의 기본 데이터 흐름은 다음과 같습니다.

Sensor or Experimental Rig
→ ADC / Encoder Interface
→ RP2350 Real-time Core
→ Controller and Signal Generator
→ DAC or Actuator
→ W5500 Ethernet
→ TCP Control and UDP Streaming
→ Python / Julia / MATLAB Host

RP2350는 Dual-core Cortex-M33 MCU를 사용하며, HELIC-DAQ는 두 Core의 역할을 명확하게 분리합니다.

Core 1: Real-time Processing

Core 1은 다음 기능을 담당합니다.

  • Sampling Timing 처리
  • ADC 및 Encoder Data Acquisition
  • Feedback Controller 계산
  • Fourier 및 Arbitrary Waveform 계산
  • Output Safety Gate
  • DAC 또는 Actuator 출력
  • Stream Record 생성

실시간 경로에서는 Dynamic Memory Allocation, Network I/O 및 Blocking Synchronization을 수행하지 않습니다. Sampling Instant는 Software Task Scheduler가 아니라 Hardware PWM Peripheral에서 생성되므로 Ethernet Traffic이나 Logging Task가 증가해도 측정 시점이 이동하지 않도록 설계되었습니다.

Core 0: Network and System Services

Core 0은 다음 기능을 담당합니다.

  • W5500 또는 W6100 Network Driver
  • Wi-Fi Network Driver
  • TCP Control Server
  • UDP Measurement Streaming
  • UDP Device Discovery
  • Parameter Management
  • Logging 및 Status Reporting
  • Laser Sensor Communication

Core 1에서 생성된 측정 Record는 고정 크기의 SPSC Ring Buffer를 통해 Core 0으로 전달됩니다. Buffer가 가득 차더라도 Real-time Loop를 멈추지 않고 해당 Record를 Drop한 뒤 Diagnostic Counter를 증가시키는 구조입니다.


DETAILED DOCUMENTATION

HELIC-DAQ는 Source Code만 공개한 프로젝트가 아니라, 장치 제작과 실험 운용에 필요한 내용을 목적별 문서로 구분해 제공합니다.

Documentation에는 다음 자료가 포함되어 있습니다.

  • User Guide: 실험 구성, Firmware Flashing, Network 설정 및 Host Interface 사용 방법
  • Developer Guide: Dual-core Architecture, 설계 원칙, 확장 지점 및 Test 방법
  • Wire Protocol: TCP Control, UDP Streaming 및 Device Discovery를 포함한 Protocol Version 3 사양
  • Shared Broker: Multi-client Streaming, HDF5 Recording, Host API 및 연결 복구 방식
  • Periodic Signal Generator: Fourier 기반 주기 신호 생성기의 수치 설계와 오차 범위
  • Hardware Status: 실제 Hardware 검증 경로, 미완료 항목 및 Bring-up 제약사항
  • Interim Cape Wiring: BBB-DAQ Analogue Cape의 Pin, 전원 및 연결 Reference
  • Repository Guidance: Contributor와 Coding Agent가 따라야 할 개발 제약사항

특히 사용자용 운용 방법과 내부 Software Architecture뿐 아니라, Network Protocol, 장시간 Recording, Signal Generator의 수치적 특성, 실제 Hardware 검증 상태까지 별도의 문서로 구체화되어 있습니다.

따라서 HELIC-DAQ는 단순한 Firmware 예제를 넘어, 새로운 실험 장치와 Controller를 추가하거나 기존 시스템을 재현할 수 있도록 사용·확장·검증 절차가 체계적으로 문서화된 개발 플랫폼으로 평가할 수 있습니다. 실제 프로젝트도 TCP·UDP Protocol, Broker 기반 다중 Client 및 HDF5 Recording, 실제 Hardware 검증 항목을 각각 구분해 제공하고 있습니다.


SUPPORTED HARDWARE

W5500-EVB-Pico2

유선 Ethernet Firmware의 기본 Target Board입니다.

W5500-EVB-Pico2는 RP2350 MCU와 WIZnet W5500 Ethernet Controller를 하나의 Board에 통합합니다. HELIC-DAQ의 fw-cbc-rigfw-whirl-rig는 기본적으로 W5500-EVB-Pico2용 Firmware를 생성합니다.

W6100-EVB-Pico2

Build Feature를 변경하면 Pin-compatible W6100-EVB-Pico2용 Firmware를 생성할 수 있습니다.

W5500과 W6100은 동시에 활성화되는 것이 아니라 다음과 같은 Compile-time Feature로 하나를 선택합니다.

board-w5500

board-w6100

현재 W6100 Firmware는 Build와 Software Test를 통과했지만 실제 W6100-EVB-Pico2 Hardware에서의 Link, TCP, UDP Streaming 및 장시간 동작은 아직 검증되지 않았습니다.

Raspberry Pi Pico 2W

fw-pico2w-rig는 RP2350와 CYW43439 Wi-Fi Chip이 탑재된 Pico 2W를 사용합니다.

이 Firmware는 Wi-Fi를 통해 Parameter Control과 Data Streaming을 수행하며, AD5064 DAC 기반 신호 생성과 선택적인 optoNCDT Laser Data Logging을 지원합니다.


EXPERIMENT 1: CBC-RIG

먼저 CBC-RIG는 아날로그 센서 데이터를 측정하면서 동시에 제어 신호를 출력하는 실험용 펌웨어입니다.

주요 구성은 W5500 또는 W6100 기반 RP2350 보드, AD7609 ADC, AD5064 DAC입니다.

AD7609는 최대 8개의 아날로그 입력을 동시에 측정합니다.

샘플링 속도는 1kHz, 2kHz, 4kHz, 8kHz 중에서 설정할 수 있습니다.

예를 들어 8kHz로 설정하면 센서 측정, 제어 계산, 안전 처리, DAC 출력 갱신 과정을 125마이크로초마다 반복합니다.

한 번의 샘플에서는 먼저 센서 값을 읽고, 목표값과 입력 파형을 계산한 뒤, PID 같은 제어 알고리즘을 실행합니다.

그 결과를 DAC로 출력해 실제 실험 장치를 움직이고, 동시에 측정 결과를 PC로 전송합니다.

즉 CBC-RIG는 단순 측정 장치가 아니라,

측정하고, 계산하고, 다시 장치를 제어하는 폐루프 실험 시스템

이라고 보면 됩니다.

또한 실험 중에도 PC에서 주파수, Fourier 계수, PID Gain 등을 변경할 수 있습니다.

Firmware를 다시 업로드하지 않아도 실험 조건을 바꿀 수 있다는 점이 특징입니다.


EXPERIMENT 2: WHIRL-RIG

두 번째 WHIRL-RIG는 회전체의 움직임을 측정하기 위한 펌웨어입니다.

여기서는 Pitch와 Yaw 방향의 위치를 두 개의 SSI Encoder로 측정합니다.

또 Optical Sensor를 이용해 한 바퀴 회전하는 데 걸리는 시간을 측정하고, 이를 바탕으로 RPM을 계산합니다.

두 Encoder는 같은 Clock을 사용하고, RP2350의 PIO가 두 축 데이터를 거의 동시에 읽습니다.

그래서 Pitch와 Yaw의 측정 시점이 어긋나는 문제를 줄일 수 있습니다.

이 펌웨어는 2kHz 주기로 회전체의 위치를 측정합니다.

쉽게 말하면,

WHIRL-RIG는 회전하는 장치가 어느 방향으로 얼마나 흔들리는지, 그리고 얼마나 빠르게 회전하는지를 측정하는 시스템입니다.

다만 현재 문서 기준으로 Software Build와 Host Test는 완료됐지만, Encoder와 Optical Sensor를 포함한 전체 하드웨어는 아직 완전히 검증되지 않은 상태입니다.


EXPERIMENT 3: PICO2W-RIG

세 번째 PICO2W-RIG는 Raspberry Pi Pico 2W의 Wi-Fi를 사용하는 펌웨어입니다.

이 펌웨어는 AD5064 DAC를 최대 8kHz로 갱신하면서 신호를 생성합니다.

예를 들어 사인파나 실험용 입력 신호를 만들어 액추에이터나 외부 장치에 출력할 수 있습니다.

Wi-Fi 통신은 DAC 제어와 분리된 다른 CPU Core에서 실행됩니다.

또한 유선 버전과 동일한 HELIC-DAQ Protocol을 사용하기 때문에 Python, Julia, MATLAB 프로그램을 그대로 사용할 수 있습니다.

하지만 지속적으로 많은 데이터를 빠르게 전송해야 하는 실험에서는 Wi-Fi보다 W5500 Ethernet이 권장됩니다.

Wi-Fi는 주로 다음과 같은 용도에 적합합니다.

  • 실험 파라미터 변경
  • 신호 생성
  • 짧은 데이터 캡처
  • 케이블 사용이 어려운 환경

반대로 장시간 고속 스트리밍이 필요하면 W5500이 더 적합합니다.

간단히 정리하면 다음과 같습니다.

Firmware주요 목적네트워크특징
CBC-RIG아날로그 측정 및 실시간 제어W5500 또는 W6100최대 8kHz 제어 루프
WHIRL-RIG회전체 위치와 RPM 측정Ethernet 기반Pitch, Yaw, 회전 속도 측정
PICO2W-RIG무선 신호 생성 및 가벼운 측정Wi-FiDAC 8kHz 출력, 무선 제어

 


ROLE OF WIZNET W5500

W5500은 단순한 원격 접속용 네트워크가 아니라, 여러 측정 채널에서 생성된 데이터를 실시간으로 PC에 전송하는 역할을 합니다. ADC 입력, DAC 출력, 제어값과 상태 데이터를 하나의 측정 레코드로 구성하고, 여러 레코드를 UDP 패킷으로 묶어 전송합니다. 이를 통해 최대 8kHz 제어 루프에서 생성되는 다채널 데이터를 Python, Julia, MATLAB에서 연속적으로 수집하고 분석할 수 있습니다.

W5500 Ethernet은 다음 용도로 사용됩니다.

  • Experiment Parameter 읽기 및 변경
  • Controller Gain 설정
  • Fourier Coefficient 전송
  • Arbitrary Waveform 업로드
  • Device Status 조회
  • Measurement Data Streaming
  • Device Discovery
  • Long-running Monitoring

실제 W5500-EVB-Pico2 검증에서는 Link, ARP, TCP Control 및 UDP Streaming이 확인됐습니다. 또한 현재 CBC Firmware에서 검색되는 13개 Source를 8kHz로 8000 Record 전송한 시험에서 UDP Packet Loss와 내부 Record Drop 증가가 발생하지 않았습니다.


NETWORK PROTOCOL

HELIC-DAQ는 자체적으로 정의한 Wire Protocol Version 3을 사용합니다.

TCP Control Channel

TCP Port 2350은 다음 기능에 사용됩니다.

  • Parameter List Discovery
  • Stream Source Discovery
  • Parameter Read
  • Parameter Write
  • Waveform Block Upload
  • Waveform Commit
  • Streaming Configuration
  • Streaming Start and Stop
  • Device Status
  • 각 Frame에는 Message Type, Sequence Number, Payload Length 및 CRC-16이 포함됩니다. 잘못된 Frame이 수신되면 Connection을 종료하여 이후 데이터가 잘못 해석되는 것을 방지합니다.

UDP Stream Channel

UDP Port 2351은 실시간 Measurement Data 전송에 사용됩니다.

사용자가 선택한 Source의 f32 값이 여러 Record 단위로 묶여 UDP Datagram으로 전송됩니다. Packet에는 다음 정보가 포함됩니다.

  • Packet Sequence Number
  • First Sample Index
  • Device-side Drop Count
  • Decimation
  • Record Count
  • Measurement Values

Host는 Packet Sequence가 건너뛴 경우 Network Packet Loss를 감지할 수 있고, Drop Count를 통해 Packet 생성 이전의 내부 Buffer Overflow도 확인할 수 있습니다.

UDP Discovery Channel

UDP Port 2352는 동일한 Local Network에 있는 HELIC-DAQ 장치를 검색하는 데 사용됩니다.

Host에서 helic-daq find 명령을 실행하면 Device가 다음 정보를 응답합니다.

  • MAC Address
  • Experiment Name
  • Firmware Identity
  • TCP Control Port

따라서 고정 IP 주소를 알지 못하더라도 연결 가능한 장치를 검색할 수 있습니다.


REAL HARDWARE VERIFICATION

저장소는 Software Build와 실제 Hardware 검증 상태를 구분하여 문서화합니다.

현재 실제 W5500-EVB-Pico2 Hardware에서 확인된 주요 항목은 다음과 같습니다.

  • W5500 Link 및 ARP
  • TCP Control
  • UDP Streaming
  • AD7609 Conversion
  • ADC BUSY Handshake
  • 12MHz SPI ADC Read
  • AD5064 DAC Output
  • DAC-to-ADC Loopback
  • 1·2·4·8kHz Sampling
  • Fourier Parameter Update
  • Arbitrary Waveform Playback
  • 8kHz Data Streaming
  • PID Closed-loop Control
  • optoNCDT Laser Communication

8kHz에서 13개 Source를 8000 Record 전송한 시험에서는 UDP Packet Loss가 없었으며, PID Loopback 시험에서는 2V에서 3V로 변경한 Step Input이 약 39ms 안에 2% 범위로 수렴했다고 기록되어 있습니다.


POSSIBLE APPLICATIONS

HELIC-DAQ는 다음과 같은 분야에 활용할 수 있습니다.

  • Nonlinear Dynamics Experiment
  • Control-Based Continuation
  • PID Controller Evaluation
  • Laboratory Data Acquisition
  • Hardware-in-the-loop Testing
  • Vibration and Rotor Monitoring
  • Multi-channel Analogue Measurement
  • Function Generator
  • Arbitrary Waveform Generator
  • Sensor Characterization
  • Motor and Actuator Experiment
  • Remote Laboratory Instrumentation
  • Long-duration Scientific Data Logging
  • Control Algorithm Education
  • Embedded Real-time System Research

OPEN-SOURCE LICENSE

HELIC-DAQ의 Rust Workspace Package는 MIT License로 설정되어 있습니다.


CONCLUSION

HELIC-DAQ는 RP2350 기반 MCU를 이용해 실시간 데이터 수집, Feedback Control, Waveform Generation 및 Network Streaming을 수행하는 실험실용 오픈소스 계측 플랫폼입니다.

W5500-EVB-Pico2를 이용하는 유선 Firmware는 AD7609의 8개 Analogue Channel을 최대 8kHz로 Sampling하고, AD5064 DAC를 통해 실험 장치에 제어 신호를 출력할 수 있습니다. 측정값과 Controller State는 UDP로 PC에 전송되며, TCP를 통해 Frequency, Controller Gain과 Waveform을 실시간으로 변경할 수 있습니다.

Python, Julia, MATLAB Interface와 HDF5 Recording Broker까지 제공하므로 단순 Embedded Firmware를 넘어 Host Analysis와 장시간 실험 운영까지 포함하는 완성도 높은 DAQ Platform입니다.

특히 W5500 기반 실제 Hardware에서 TCP Control, UDP Streaming, ADC·DAC Loopback, 8kHz Streaming 및 PID Control이 검증됐다는 점에서 WIZnet을 실험실 계측과 실시간 제어 분야에 적용한 기술적 가치가 높은 사례입니다.

Documents
Comments Write