Skip to the content
2 layers50 × 75 mmROK 3, the printed circuit board in 3D

COMET rocket avionics hardware project archive.

Size
50 × 75 mm
Copper layers
2
Thickness
1.6 mm
Parts
62
Nets
78
Pads
246
Tracks, vias
393, 42
Pours
2
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
25 Jun 2026
Updated
11 Sep 2026

Overview

ROK 3 is an open-source printed circuit board by caconee22, from the caconee22/COMET_Avionics repository on GitHub. It is a 2-layer board of 50 × 75 mm with 62 parts on 78 nets, routed with 393 tracks and 42 vias.

It is built around the AP63300QWU, MS5611-01BA03 and VCNL4040M3OE, with the DM3D-SF, AMS1117-3.3 and DS3231MZ+ among its other parts. Its parts include 17 capacitors, 16 resistors, 9 connectors, 7 ICs and 2 inductors. It belongs with the ESP32 boards of this library.

Main components

11

README

README.md

COMET_Avionics

COMET rocket avionics hardware project archive.

This repository replaces the previous COMET_ROK_2 repository with the full COMET avionics workspace layout.

Structure

  • ROK2025/: ROK2-era module board and reference files.
  • ROK2026/: Current ROK2026 KiCad projects, shared libraries, and revisions.
  • ROK2026/ROK_3/: ROK3 small-form-factor and SMD-chip test board.
  • ROK2026/ROK_4/: ROK4 power-design research test board.
  • ROK2026/Away_1/: Current active avionics candidate version under development.

Project History

  • ROK2025/COMET_ROK_2: First ROK2 circuit and module board. It was not used because of software development staffing issues.
  • ROK2026/ROK_3: Miniaturized ROK3 version with SMD chips. It was not used because of power-section issues, but it may still be recoverable and remains a test version.
  • ROK2026/ROK_4: A further test version focused on power-section design. It is a research version for a small buck-converter power design.
  • ROK2026/Away_1: The avionics version candidate intended for actual use. It is currently under development.

Avionics Design Intent

This design intent applies to the whole COMET avionics board family.

설계 목적

COMET_Avionics의 목적은 단순한 데이터 로거가 아니라, 로켓 비행 중 필요한 항공전자 기능을 안정적으로 수행하는 것이다.

가장 중요한 기능은 최고점 판단, 지연 사출 판단, 그리고 실제 사출 작동이다. 로그 저장, 통신, GPS 전송, LED, 부저, 콘솔 출력은 모두 보조 기능이며, 이 기능들이 사출 판단과 작동을 막아서는 안 된다.

우선순위 규약

  1. 사출 판단과 사출 작동을 최우선으로 둔다.
  2. SD카드 기록, LoRa, MQTT, Wi-Fi/LTE, GPS 텔레메트리, LED, 부저, 콘솔은 사출 경로를 블로킹하지 않아야 한다.
  3. 센서 감시는 100Hz 이상을 기본 목표로 한다.
  4. 저장과 통신은 큐나 별도 작업으로 분리해 지연이 생겨도 비행 판단에 영향을 주지 않게 한다.
  5. 실제 비행 적용 전에는 회로, 펌웨어, 전원부, 사출부를 별도로 검증해야 한다.

센서와 비행 판단

기본 설계 방향은 압력 센서, IMU, 배터리 전압, 사출 감지, GPS 최신값을 함께 다루는 것이다.

Away_1의 메인 IMU는 STMicroelectronics LSM6DSO32XTR를 채택한다. 이 센서는 3축 가속도, 3축 자이로, 온도 센서를 포함하며, 가속도는 최대 ±32g, 자이로는 최대 ±2000dps 범위를 기준으로 사용할 수 있다.

비행 중에는 발사 감지, 최고점 판단, 지연 사출, 착지 판단, 회수 모드 진입을 이벤트로 남긴다. 고도, 필터링된 속도, 가속도 크기, 발사/최고점 판단 점수, GPS 속도와 방향처럼 후처리가 가능한 값은 가능한 한 뷰어나 분석 도구에서 계산한다.

어포지 판단 예비 기준

어포지 판단은 센서 하나만으로 결정하지 않고, 기압 고도, IMU 상태, 시간 조건을 함께 보는 상태머신으로 구성한다. 초기 로켓은 발사 실패, 중간 고도 이후 뒤집힘, 상하 반전, 과격한 회전, 불안정 비행이 생길 수 있으므로 정상 비행만 가정하지 않는다.

기본 상태 흐름은 다음을 기준으로 한다.

  1. PAD: 발사 전 대기 상태.
  2. LAUNCHED: 발사 감지 후 상승 시작 상태.
  3. COAST_NORMAL: 정상 상승/관성 비행으로 판단되는 상태.
  4. UNSTABLE_FLIGHT: 뒤집힘, 과격한 회전, 고도 상승 이상 등 비정상 비행 상태.
  5. APOGEE_DETECTED: 어포지 또는 하강 시작이 확인된 상태.
  6. FAILSAFE_DEPLOY: 센서 이상이나 비정상 비행으로 백업 사출이 필요한 상태.
  7. RECOVERY: 사출 이후 회수 상태.

정상 어포지 판단은 다음 조건을 함께 본다.

  • 발사 감지가 완료되어 있을 것.
  • 발사 후 최소 사출 금지 시간이 지났을 것.
  • 필터링된 기압 고도 기준 최고 고도를 추적할 것.
  • 현재 고도가 최고 고도보다 일정량 이상 낮아질 것.
  • 필터링된 수직 속도가 음수 방향일 것.
  • 위 조건이 짧은 시간 동안 지속될 것.

초기 기준값은 다음 범위에서 시험하며 조정한다.

  • 최소 사출 금지 시간: 발사 후 1~2초.
  • 고도 하락 판단: 최고 고도 대비 2~5m 하락.
  • 하강 지속 시간: 200~500ms.
  • 백업 사출 시간: 예상 어포지 이후를 기준으로 별도 시험값 설정.

비정상 비행 판단은 다음 상황을 감지하는 방향으로 둔다.

  • 자이로 회전율이 일정 시간 이상 매우 큰 상태.
  • 가속도 방향이 계속 급격하게 바뀌는 상태.
  • 발사 후 고도 상승이 거의 없거나 예상보다 빨리 멈추는 상태.
  • 고도 상승 후 불규칙한 정체와 하락이 반복되는 상태.
  • IMU 축 기준 위아래 판단이 신뢰하기 어려운 상태.

비정상 비행 상태에서는 IMU 적분 고도나 자세 기준 판단에 의존하지 않는다. 기압 고도 변화, 시간 조건, 회전 이상 감지를 우선 사용하고, 필요하면 정상 어포지보다 보수적인 백업 사출 조건으로 전환한다.

개념적인 판단식은 다음과 같다.

text
if launched and time_since_launch > min_deploy_time:
    if altitude_peak - altitude_filtered > altitude_drop_threshold
       and vertical_velocity_filtered < 0
       and falling_duration > falling_hold_time:
        apogee_detected = true

    if unstable_flight and altitude_not_increasing:
        failsafe_deploy = true

    if time_since_launch > max_flight_time:
        failsafe_deploy = true

이 기준은 비행 검증 완료값이 아니라 초기 개발용 예비 기준이다. 실제 임계값은 기체 질량, 모터 추력 곡선, 벤트홀 설계, 지상 시험, 저고도 시험 결과를 보고 조정한다.

로그 규약

로그는 텍스트보다 바이너리 형식을 우선한다.

  • LOG: 고정 길이 센서 샘플
  • EVENT: 발사, 최고점, 사출, 착지, 전압 변화, SD 오류, 파일 회전, 통신 상태, GPS fix/loss, 회수 모드 진입 같은 이벤트 기록

LOG에는 시간 코드, 시퀀스 번호, 상태 플래그, 압력, 온도, IMU 가속도/자이로, 최신 GPS 위도/경도/고도, GPS 플래그, 배터리 전압, 사출 센서 상태 같은 raw/minimal 값을 저장하는 방향으로 둔다.

로그 동작 흐름

패드 대기 또는 armed 상태에서는 최근 약 3초 분량의 100Hz RAM prebuffer를 유지한다. 평상시 저장은 10Hz 정도로 제한할 수 있다.

발사가 감지되면 발사 직전 prebuffer와 발사 이후 데이터를 100Hz로 저장한다. 최고점/사출 이후 하강 구간은 짧은 시간 단위 파일로 분리하는 방향을 둔다.

착지가 10초 이상 안정적으로 확인되면 고속 로그를 닫고, 회수/저전력 모드로 전환한다. 이 상태에서는 1Hz 수준으로 로그를 줄이고 GPS 위치를 LoRa와 MQTT로 전송하는 것을 목표로 한다.

통신과 회수

LoRa 433MHz는 지상국과 회수용 통신을 위한 기본 방향으로 둔다. MQTT는 온보드 Wi-Fi/LTE 라우터를 통한 원격 모니터링 또는 회수 보조 용도로 사용할 수 있다.

통신 실패는 비행 판단 실패로 이어지면 안 된다. 통신은 가능한 경우 보내고, 안 되는 경우에는 로그와 사출 판단이 계속 살아 있어야 한다.

검증 기준

이 문서는 COMET_Avionics 전체 보드에 적용되는 설계 의도와 개발 규약이다. 각 보드는 실제 비행 적용 전 회로, 펌웨어, 전원부, 사출부를 별도로 검증해야 하며, README에 적힌 내용만으로 비행 검증 완료를 의미하지 않는다.

Temporary extraction/work folders such as tmp/ and tmp_pdf_kmg/ are not tracked.

Parts

62
QtyValueFootprintReferences
810kResistor_SMD:R_0805_2012MetricR5, R6, R8, R9, R10, R11, R12, R13
60.1uFCapacitor_SMD:C_0805_2012MetricC5, C6, C11, C13, C14, C15
4MountingHole_PadMountingHole:MountingHole_3.2mm_M3_DIN965_PadH1, H2, H3, H4
310uFCapacitor_SMD:C_0805_2012MetricC3, C4, C16
2100Resistor_SMD:R_0805_2012MetricR15, R16
2100uFCapacitor_SMD:CP_Elec_6.3x5.3C9, C10
2158KResistor_SMD:R_0805_2012MetricR1, R3
222uFCapacitor_SMD:C_0805_2012MetricC1, C2
230.1KResistor_SMD:R_0805_2012MetricR2, R4
247pFCapacitor_SMD:C_0805_2012MetricC7, C8
25267-02AConnector_AMASS:AMASS_XT30U-F_1x02_P5.0mm_VerticalJ1, J7
26.8uHInductor_SMD:L_Sumida_CDMC6D28_7.25x6.5mmL1, L2
2AP63300QWUPackage_TO_SOT_SMD:TSOT-23-6U1, U2
2Conn_01x03Connector_Molex:Molex_SPOX_5267-03A_1x03_P2.50mm_VerticalJ3, J5
2Conn_01x04Connector_Molex:Molex_SPOX_5267-04A_1x04_P2.50mm_VerticalJ4, J8
2LOGOLOGOG***, G***
110nFCapacitor_SMD:C_0805_2012MetricC12
11uFCapacitor_SMD:C_0805_2012MetricC17
122Resistor_SMD:R_0805_2012MetricR14
1220Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR7
15267-02ATerminalBlock_4Ucon:TerminalBlock_4Ucon_1x02_P3.50mm_HorizontalJ6
15267-02AConnector_Molex:Molex_SPOX_5267-02A_1x02_P2.50mm_VerticalJ2
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U3
1CR1220parts:S8411-45R_1BT1
1DM3D-SFsd:HRS_DM3D-SFJ9
1DS3231MPackage_SO:SOIC-16W_7.5x10.3mm_P1.27mmU6
1IRLB8721PBFPackage_TO_SOT_THT:TO-220-3_Horizontal_TabDownQ1
1MPU-6500Package_DFN_QFN:QFN-24-1EP_3x3mm_P0.4mm_EP1.75x1.6mmU5
1MS5611-01BAPackage_LGA:LGA-8_3x5mm_P1.25mmU4
1SW_PushButton_Switch_THT:SW_PUSH_6mm_H5mmSW1
1VCNL4040M3OEVCNL4040M3OE:VISHAY_VCNL4040_4X2X1.1U7
1WS2812BLED_SMD:LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mmD1
1YD-ESP32-S3YD-ESP32-S3:YD-ESP32-S3A1

More from caconee22/COMET_Avionics

2
  • 2 layers50 × 75 mmROK 4, the printed circuit board in 3D

    ROK 4

    caconee22/COMET_Avionics

    COMET rocket avionics hardware project archive.

    50 parts
  • 2 layers35 × 60 mmC3 ROK, the printed circuit board in 3D

    C3 ROK

    caconee22/COMET_Avionics

    COMET rocket avionics hardware project archive.

    39 parts

Similar boards

  • 2 layers96 × 74.4 mmMonolith, the printed circuit board in 3D

    Monolith

    luftaquila/monolith

    DIY wireless real-time datalogging platform for Student Formula and Baja.

    138 parts45
  • 2 layers30 × 60 mmL1-Altimeter, the printed circuit board in 3D

    L1-Altimeter

    ISSUIUC/ISS-PCB

    Building custom flight computers

    42 parts33
  • 4 layers29 × 29 mmBATF7, the printed circuit board in 3D

    BATF7

    EIectron/BATF7-Brushed-FC

    STM32F722RET Based brushed flight controller board

    90 parts
  • 6 layers100 × 100 mmCARVanta Sentinel v2, the printed circuit board in 3D

    CARVanta Sentinel v2

    dhruv1859/CARVantaBAC

    🧬 CARVanta Next-Generation Precision Oncology & AI CAR-T Cell Platform Interactive 3D Biological Digital Twin • 3D Neural Bridge • Sentinel HYDRA Biosensor

    86 parts1Apache-2.0
  • 4 layers70 × 72 mmSPINC AA Charger, the printed circuit board in 3D

    SPINC AA Charger

    CoretechR/SPINC

    DIY Automatic Battery Charger Using RP2040

    101 parts467GPL-3.0
  • 2 layers45 × 45 mmAirCube, the printed circuit board in 3D

    AirCube

    StuckAtPrototype/AirCube

    Works standalone out of the box. Pairs with Home Assistant in minutes. Other platforms are supported through community-contributed extensions.

    61 parts379Apache-2.0

Questions

How big is the ROK 3 PCB?

It measures 50 × 75 mm and has 2 copper layers, 1.6 mm thick.

What parts does the ROK 3 use?

62 parts, built around the AP63300QWU, MS5611-01BA03, VCNL4040M3OE and DM3D-SF. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the ROK 3 KiCad files?

From the caconee22/COMET_Avionics repository on GitHub, at the commit this page was made from: the board is ROK2026/ROK_3/ROK_3.kicad_pcb and its schematic ROK2025/COMET_ROK_2/C3_ROK2/C3_ROK.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the ROK 3 design in my own project?

Its repository states no licence, so its author keeps all rights: ask caconee22 before reusing the design.