Skip to the content
6 layers155 × 100 mmSolid Rocket Motor Test Station ver 2.0, the printed circuit board in 3D

Solid Rocket Motor Test Station ver 2.0

jmh8231-Dev/ancp

Solid Propellant Motor Document

Size
155 × 100 mm
Copper layers
6
Thickness
1.6 mm
Parts
286
Nets
267
Pads
972
Tracks, vias
1,774, 486
Pours
31
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
25 Aug 2025
Updated
25 Aug 2025

Overview

Solid Rocket Motor Test Station ver 2.0 is an open-source printed circuit board by jmh8231-Dev, from the jmh8231-Dev/ancp repository on GitHub. It is a 6-layer board of 155 × 100 mm with 286 parts on 267 nets, routed with 1,774 tracks and 486 vias.

It is built around the AS6221-EK, CC6-1212DR-E and MCP6022-I/P, with the ADS1262IPW, FT232RL and LM2596S-3.3 among its other parts. Its parts include 114 capacitors, 92 resistors, 12 ICs, 9 diodes and 6 connectors. It belongs with the robots and motor control boards of this library.

Main components

10

README

README.md

ANCP Rocket Motor Test Station (Rev 2.0)

고정추진제 로켓 모터(ANCP) 지상시험을 위한 정밀 계측·점화 제어 스테이션
고정밀 아날로그 체인(로드셀/압력/열전대), 안전 중심 점화 시퀀스, 2″ LCD(LVGL9 + SPI DMA) GUI, PC 텔레메트리 지원

보드 히어로 이미지


주요 기능

  • 안전 중심 점화 플로우
    • 물리 IGN 스위치 감지 → 카운트다운 → 온도/추력 인터록 → 핫와이어 제어
    • 모터/보드/PC 준비 상태 점검(미준비 시 시험 중지)
  • 정밀 계측 체인
    • 로드셀(추력), 챔버 압력, 노즐/내부 온도(열전대), IMU 진동
    • 메인/IGN 배터리 셀 별 전압 + 메인 배터리 전류(INA219)
  • 2″ LCD GUI (LVGL v9)
    • SPI DMA 플러시(논블로킹), SquareLine Studio 기반 화면
    • Idle/Test/Config/Cal 페이지, FPS 확보 위해 라인 버퍼 + DMA 이중버퍼
  • EEPROM 기반 설정/보정
    • 32B 페이지 체크섬 저장 포맷(캘리브레이션 오프셋/설정값 무결성 보장)
  • PC/RF 텔레메트리
    • 헤더·길이·페이로드·체크섬으로 구성된 패킷 전송
  • RTOS 태스킹
    • sensing / gui / comms / control / logging 분리

하드웨어 개요

항목부품
MCUSTM32H723VGT6 (H7, 12 MHz TCXO)
정밀 ADCADS1262IPW (ΔΣ, 24-bit)
SPI 절연ADuM4151 (MCU–ADC)
기준전압ADR4525D
Op-AmpOPA189, MCP6022, TLV9351
전류 센서INA219 (메인 배터리)
IMUBNO085 (I²C)
온도 센서AS6221 (MOSFET 온도)
EEPROMAT24C08C (I²C)
전원LM2596S-3.3, CC6-1212DR-E(±12 V) → LT3045(+5 V) / LT3094(−5 V) / TPS79225(+2.5 V) / TPS72325(−2.5 V)
점화 경로TC427 게이트 드라이버 + IRF1404 파워 MOSFET, 물리 IGN SW
I/O2″ LCD, F1–F4 버튼, 부저, USB-UART(FT232RL), RF 모듈, ST-Link, 밸런스 잭

3D 렌더 (Top)
PCB 3D Top

PCB 레이아웃(Top Routed)
PCB Layout


펌웨어 개요

  • 프레임워크: STM32Cube HAL (+ FreeRTOS 선택)
  • GUI: LVGL v9 / SquareLine Studio(UI 설계)
  • LCD 드라이버: ST7789 (SPI4 + DMA)
    • fw/Drivers/lcd/LCD_2inch_st7789_v9_dma.c — ST7789 초기화 + DMA 라인 스트리머
    • fw/Drivers/lcd/LVGL9_ST7789_Port_ULP.c — LVGL9 디스플레이 포트(플러시/세마포어)
    • fw/Drivers/board/DEV_Config_h7.c — SPI4 DMA, D-Cache clean, TIM3 PWM 백라이트, OS-aware delay
  • 정밀 ADC(ADS1262): SPI(절연) 드라이버, 채널/게인/SPS 매트릭스, 오프셋 CAL
  • EEPROM(AT24C08C): 페이지 쓰기/검증, 설정·보정값 저장
  • 주요 태스크(권장): task_gui, task_sense_fast, task_comms, task_control, task_logging

LVGL & LCD 초기화 예시

c
// main.c
extern void lv_port_disp_init_st7789_v9_ulp(void);

void app_gui_init(void) {
    lv_init();
    lv_port_disp_init_st7789_v9_ulp();  // DMA flush, flush_wait 포함
    // SquareLine 생성 코드 호출 ...
}

D-Cache ON 환경에서는 DMA 전 송신 버퍼에 대해 SCB_CleanDCache_by_Addr() 처리 필수. 위 파일들에 구현 포함.


캘리브레이션 & EEPROM 포맷

ADC Zero-Offset CAL: (ch, gain, sps) 조합별로 오프셋 저장. 부팅 시 전 페이지 스캔 → 이중 체크섬 검증 → RAM LUT 로드.

text
[32B Page Format]  (1 페이지 = 4개의 Offset)
0-1   : "EP" (헤더)
2     : CH/Gain 상위 3비트(6..3)
3     : SPS
4-7   : OFFSET[ch][gain][sps] (int32/Q-format)
8-13  : 다음 CH/Gain/SPS + OFFSET
14-15 : CHECKSUM #1 (0..13)

16-17 : "EP"
18-19 : CH/Gain/SPS
20-25 : OFFSET
26-29 : 다음 CH/Gain/SPS + OFFSET
30-31 : CHECKSUM #2 (16..29)
  • 쓰기 시퀀스: 새 페이지 작성 → 읽기 검증 → 성공 시 구버전 페이지 폐기(저널링)
  • 유효성 실패 시: 기본 오프셋(0)로 부팅 + Cal 페이지 경고 표시

시험/점화 플로우

  1. Self-check: 센서 연결/EEPROM 무결성/배터리 상태/PC 준비 여부
  2. IGN SW ON → ANCP Test 모드 자동 진입
  3. 로드셀 Auto-tare → 카운트다운(가변)
  4. 점화 로직(예시):
c
if (mosfet_temp < T_th && thrust < F_th)  hotwire_on();
else if (mosfet_temp > T_th && thrust < F_th) { hotwire_off(); show_overheat(); }
else hotwire_off(); // ignition success
  1. 실시간 데이터 PC 전송 + 로깅

전송 패킷(예시): 0x48 0x53 | type | len | payload | CRC16


스키매틱 스냅샷

Main Power
Main Power

MCU
MCU

Analog/ADC/Isolation
Analog


빌드 & 플래시

  • 툴체인: STM32CubeIDE(H7), ARM GCC, (선택) FreeRTOS
  • Cube 설정 핵심
    • SPI4 TX DMA(FIFO 사용), CS/DC/RST/BL GPIO
    • TIM3 PWM → 백라이트
    • 1 ms 타이머 → lv_tick_inc()
    • D-Cache 사용 시 DMA 버퍼 clean 처리
  • 빌드
    bash
    git clone https://github.com/jmh8231-Dev/ancp
    # STM32CubeIDE에서 .ioc 열기 → 빌드 → ST-Link로 플래시
  • 첫 부팅: Idle 화면 → 센서/배터리 상태 확인

문서 구조

text
ancp/
├─ fw/
│  ├─ Core/                 # CubeMX 생성 코드
│  ├─ Drivers/
│  │  ├─ lvgl/              # LVGL v9
│  │  ├─ lcd/               # LCD_2inch_st7789_v9_dma.c, LVGL9_ST7789_Port_ULP.c
│  │  └─ board/             # DEV_Config_h7.c 등
│  ├─ app/                  # tasks, ads1262, eeprom, telemetry, state machine
│  └─ middleware/           # FreeRTOS(선택)
├─ hw/                      # 회로/PCB/거버
├─ docs/
│  └─ images/               # 사진/스크린샷
└─ README.md

주의

  • 방폭/방염 환경, 방호벽, 소화 장비, E-Stop 필수
  • 시험 전 인터록/센서/전원/배선 재점검

Parts

286
QtyValueFootprintReferences
520.1uFCapacitor_SMD:C_0805_2012MetricC1, C2, C10, C13, C16, C17, C18, C19, C20, C103, C104, C106, C109, C111, C112, C127 +36
201kResistor_SMD:R_0805_2012MetricR16, R18, R19, R50, R62, R63, R64, R65, R67, R78, R80, R84, R93, R94, R100, R101 +4
1210uFCapacitor_SMD:C_1210_3225MetricC6, C12, C27, C28, C38, C54, C56, C64, C69, C70, C102, C107
1010kResistor_SMD:R_0603_1608MetricR4, R25, R26, R27, R54, R55, R72, R90, R91, R96
91uFCapacitor_SMD:C_0805_2012MetricC35, C36, C47, C60, C62, C75, C93, C95, C105
9BeadInductor_SMD:L_0805_2012MetricFB1, FB3, FB4, FB5, FB7, FB8, FB9, FB12, FB21
8100Resistor_SMD:R_0402_1005MetricR32, R35, R36, R39, R42, R45, R68, R71
810MResistor_SMD:R_1206_3216MetricR33, R34, R37, R38, R43, R44, R69, R70
81MResistor_SMD:R_0603_1608MetricR51, R52, R75, R76, R85, R86, R87, R88
81nFCapacitor_SMD:C_0805_2012MetricC79, C80, C89, C90, C91, C92, C100, C101
84.7kResistor_SMD:R_1206_3216MetricR5, R6, R7, R8, R9, R14, R61, R73
847Resistor_SMD:R_0805_2012MetricR17, R20, R28, R29, R30, R31, R40, R41
847pFCapacitor_SMD:C_0805_2012MetricC76, C77, C83, C84, C86, C87, C97, C98
70.01uFCapacitor_SMD:C_0805_2012MetricC11, C25, C26, C30, C39, C46, C128
610kResistor_SMD:R_0805_2012MetricR15, R21, R22, R23, R46, R47
40.1uFCapacitor_SMD:C_1206_3216MetricC78, C85, C88, C99
410uHInductor_SMD:L_CommonModeChoke_TDK_ACM2520-2PFL1, FL2, FL3, FL4
3, ,
33kResistor_SMD:R_0805_2012MetricR77, R79, R82
34.7uFCapacitor_SMD:C_0805_2012MetricC34, C50, C110
3470uFPCB:MVG25WV470MC4, C8, C67
20Resistor_SMD:R_0805_2012MetricR1, R3
22.2uFCapacitor_SMD:C_0805_2012MetricC14, C15
220kResistor_SMD:R_0805_2012MetricR53, R56
222Resistor_SMD:R_0805_2012MetricR11, R13
222pFCapacitor_SMD:C_0805_2012MetricC42, C43
222uFCapacitor_SMD:C_0805_2012MetricC52, C108
25.1kResistor_SMD:R_0805_2012MetricR10, R12
2BuzzerBuzzer_Beeper:Buzzer_12x9.5RM7.6BZ1, BZ2
2MCP6022Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU15, U16
1-12VALED_SMD:LED_0805_2012MetricD15
1-2.5VALED_SMD:LED_0805_2012MetricD18
1-5VALED_SMD:LED_0805_2012MetricD17
10.1Package_TO_SOT_THT:TO-126-2_Horizontal_TabDownR2
1100Resistor_SMD:R_1206_3216MetricR66
11000pFCapacitor_SMD:C_2220_5750MetricC3
112MHzPCB:ECS-TXO-2016U5
112VALED_SMD:LED_0805_2012MetricD11
12.5VALED_SMD:LED_0805_2012MetricD16
13.3VALED_SMD:LED_0805_2012MetricD14
132.768kHzPCB:XC32M4Y2
133uHInductor_SMD:L_12x12mm_H8mmL2
14.7nFCapacitor_SMD:C_0805_2012MetricC72
149.9kResistor_SMD:R_0805_2012MetricR24
149.9kResistor_SMD:R_1206_3216MetricR92
150Resistor_SMD:R_0805_2012MetricR74
15VALED_SMD:LED_0805_2012MetricD12
17.3728MHzPCB:ASDMB-OSCU2
1ADR4525DPackage_LCC:Analog_LCC-8_5x5mm_P1.27mmU18
1ADS1262IPWPackage_SO:TSSOP-28_4.4x9.7mm_P0.65mmU11
1ADUM4151Package_SO:SOIC-20W_7.5x12.8mm_P1.27mmU13
1AS6221Package_CSP:WLCSP-6_1.4x1.0mm_P0.4mmTemp1
1AT24C08CPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmEEPROM1
1BNO085Package_LGA:LGA-28_5.2x3.8mm_P0.5mmIMU1
1BOOT ModeJumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mmJP1
1BSS84Package_TO_SOT_SMD:SOT-23Q1
1CC6-1212DR-EPCB:CONV_CC6-1212SR-EDC_to_DC1
1ChamberPressureConnector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJ10
1ChamberTempConnector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_VerticalJ9
1Debug LEDLED_SMD:LED_0805_2012MetricD4
1Digital 3.3VLED_SMD:LED_0805_2012MetricD13
1E32-915T30DPCB:E32-xxxTxxDRF1
1F1PCB:SW_SMD_IT-1107SW3
1F2PCB:SW_SMD_IT-1107SW4
1F3PCB:SW_SMD_IT-1107SW5
1F4PCB:SW_SMD_IT-1107SW6
1FT232RLPackage_SO:SSOP-28_5.3x10.2mm_P0.65mmU6
1IGN BATConnector_AMASS:AMASS_XT60-M_1x02_P7.20mm_VerticalBT1
1IGN Balance JackConnector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ12
1IGN SWPCB:SW_SMD_IT-1107SW1
1INA219BxDPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU3
1IRF1404Package_TO_SOT_SMD:TO-263-2Q3
1IgniterConnector_AMASS:AMASS_XT60-F_1x02_P7.20mm_VerticalIGN1
1LCDConnector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ2
1LM2596S-3.3Package_TO_SOT_SMD:TO-263-5_TabPin3U1
1LT3045xMSEPackage_SO:MSOP-12-1EP_3x4mm_P0.65mm_EP1.65x2.85mmU10
1LT3094MSEPackage_SO:MSOP-12-1EP_3x4mm_P0.65mm_EP1.65x2.85mmU20
1Main Balance JackConnector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_VerticalJ5
1Main H7 ResetPCB:SW_SMD_IT-1107SW2
1Main PowerConnector_BarrelJack:BarrelJack_HorizontalJ4

The 269 most common of 286 parts.

More from jmh8231-Dev/ancp

1

Similar boards

  • 4 layers60 × 96 mmDMM Module, the printed circuit board in 3D

    DMM Module

    AryeIs/DMM_Module

    123 parts1
  • 4 layers80 × 100 mmTempCtrl, the printed circuit board in 3D

    TempCtrl

    charlesbaynham/DigitalTemperatureController

    Schematic, PCB and source code for a high-precision digital temperature controller

    186 parts14
  • 2 layers86 × 60 mmMotor Controller 2020, the printed circuit board in 3D

    Motor Controller 2020

    camhan22/Motor-Controller

    12-48VDC 65A Continuous 150A Peak brushed DC motor driver

    51 parts3GPL-3.0
  • 4 layers112 × 72 mmDk spot welder, the printed circuit board in 3D

    Dk spot welder

    sini6a/spotwelder

    An easy-to-assemble, through-hole spot welder capable of switching high currents for welding nickel strip to lithium-ion cells. Controlled by an ATtiny13 microcontroller.

    51 parts3
  • 2 layers100 × 50 mmDemo Board Kicad, the printed circuit board in 3D

    Demo Board Kicad

    fox918/PowerSwitch

    A i2c Switch for medium loads

    54 partsMIT
  • 6 layers68 × 52 mmRemotev1, the printed circuit board in 3D

    Remotev1

    ABauschat/ESPNuggetv1-ADS1262HAT

    49 parts
  • 2 layers58 × 72 mmTiva adc ads1262, the printed circuit board in 3D

    Tiva adc ads1262

    fgallud/tiva_c_connected

    Is a very simple tcp modbus example for the tiva c connected board. It is written in C for the Energia IDE

    29 partsBSD-3-Clause
  • 2 layers88.9 × 87.6 mmAdc ads1262, the printed circuit board in 3D

    Adc ads1262

    fgallud/kicad

    my electronics

    30 partsMIT

Questions

How big is the Solid Rocket Motor Test Station ver 2.0 PCB?

It measures 155 × 100 mm and has 6 copper layers, 1.6 mm thick.

What parts does the Solid Rocket Motor Test Station ver 2.0 use?

286 parts, built around the AS6221-EK, CC6-1212DR-E, MCP6022-I/P and ADS1262IPW. 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 Solid Rocket Motor Test Station ver 2.0 KiCad files?

From the jmh8231-Dev/ancp repository on GitHub, at the commit this page was made from: the board is Solid Rocket Motor Test Station - HW/ver 2.0/Solid Rocket Motor Test Station ver 2.0.kicad_pcb and its schematic Solid Rocket Motor Test Station - HW/ver 1.0/ADC&Ref.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Solid Rocket Motor Test Station ver 2.0 design in my own project?

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