Phoenix flight computer
Phoenix flight computer with W5500 Ethernet: deterministic valve control via binary states, three risk-tiered modes, and MIT-licensed Arduino C++ code.
Overview
This repository contains the flight computer software for Phoenix, the Rocket Propulsion Laboratory’s flagship liquid-propellant rocket. The project formalizes launch and ground-operations logic as deterministic state sequences and encodes valve states in binary pairs to ensure safe, unambiguous behavior during Launch, Fueling, and Dev modes. Networking is explicitly specified as WIZnet W5500 Ethernet, and the codebase is Arduino/C++ under the MIT license. (GitHub)
Original Language & Author
The material is authored and maintained in English by the Rocket Propulsion Laboratory (RPL). As context, Phoenix is RPL’s flagship LOX/LNG program, currently targeting competition and flight milestones in Summer 2026. (GitHub)
Key Highlights
Mode Model with Risk Tiers
Launch Mode (Low risk), Fueling Mode (Medium risk), Dev Mode (High risk)—each constrains valve operations appropriate to the activity. Dev Mode allows free switching and is explicitly cautioned. (GitHub)
Binary-Encoded Valve States (6 digits, 2 per valve pair)
Pair meanings: 00 flow closed / vent closed, 10 flow open / vent closed, 01 flow closed / vent open, 11 forbidden (flow and vent cannot open simultaneously).
Mapping (left→right): (arm | fuel valve 1 | fuel valve 2); each has (flow, vent) bits. (GitHub)
Canonical Sequences
PRE-ARM 00|00|00 — default; all closed.
ARMED 10|00|00 — arm flow open.
ABORT 01|01|01 — all vent valves open (emergency).
LAUNCH 10|10|10 — arm then both fuel flows open (point of no return). (GitHub)
Input Priority (Physical Controls)
Abort (button) has highest priority (opens all vents).
Arm (switch) toggles arm flow.
Launch (button) opens fuel flows 1 & 2. (GitHub)
Networking & Hardware Callouts
Ethernet: WIZnet W5500 LAN module is called out in the launch terminal specs (useful to WIZnet Makers assessing field adoption). (GitHub)
Docs & License
Repository includes docs/diagrams, a Draw.io link for the plumbing/valve diagram, and lib/w5500. License is MIT. (GitHub)
Why It Matters (for WIZnet & Makers)
Safety via Explicit State Machines: The binary encoding + forbidden state (11) model makes unsafe combinations impossible by construction—excellent pedagogy for critical-operations logic. (GitHub)
Real-World W5500 Usage: The project names W5500 outright, offering a public, safety-critical adoption example beyond hobby demos. (GitHub)
Reusability & Teaching: Clear modes, prioritized inputs, and diagrams are easy to fork into test stands, ground boxes, or simulators. The MIT license further lowers reuse friction. (GitHub)
Quick Reproduce (Checklist)
Clone
git clone https://github.com/rocketproplab/phoenix-flight-computer
cd phoenix-flight-computer
Open in Arduino IDE / PlatformIO and select the MCU/board per your lab hardware (the repo is Arduino/C++; confirm SPI pins and IO mapping). (GitHub)
Wire W5500 and verify SPI/CS per your controller; consult docs/diagrams and the linked plumbing schematic for valve/line mapping. (GitHub)
Exercise Mode Transitions: PRE-ARM → ARMED → LAUNCH / ABORT. Ensure the forbidden (11) pattern is unreachable in tests. (GitHub)
Safety Note: Dev Mode is marked High risk—validate with dummy loads and interlocks before touching live propellant lines. (GitHub)
References
GitHub (English): rocketproplab/phoenix-flight-computer — modes, binary mapping, W5500 callouts, MIT license. (GitHub)
Program Context: RPL Phoenix overview (LOX/LNG, flagship program; Summer 2026 target). (Rocket Propulsion Laboratory)
Overview
USC **Rocket Propulsion Laboratory(RPL)**의 액체추진 로켓 Phoenix를 위한 발사 컴퓨터(Flight Computer) 소프트웨어입니다. 저장 탱크·연료 밸브·벤트 밸브의 상태를 이진 비트 패턴으로 정의하고, Launch / Fueling / Dev 세 가지 운용 모드와 Abort/Arm/Launch 입력을 통해 안전·결정론적으로 제어합니다. 네트워킹은 WIZnet W5500 Ethernet 모듈 기반으로 명시되어 있으며, 소스 코드는 C++/Arduino(.ino) 형태, 라이선스는 MIT입니다. (GitHub)
Phoenix Flight Computer는 UC San Diego의 **Rocket Propulsion Laboratory(RPL)**가 개발 중인 액체추진 로켓 Phoenix를 위한 발사·지상 제어 소프트웨어입니다. 소프트웨어는 Launch / Fueling / Dev의 운용 모드와 Abort / Arm / Launch 입력을 바탕으로, 밸브(플로우/벤트) 조합을 6비트 이진 패턴으로 엄격히 관리합니다. 네트워킹은 WIZnet W5500 Ethernet 모듈을 명시적으로 사용합니다.
Original Language & Author
원문은 **영어(English)**로 작성되었으며, 저장소는 Rocket Propulsion Lab(USC) 조직이 운영합니다. 해당 프로젝트는 RPL의 Phoenix(액체 메탄/액체 산소, 2026 여름 발사 목표) 프로그램의 일부로 소개됩니다. (GitHub)
원문 저장소는 영문(GitHub)으로 공개되어 있으며, 소유 주체는 Rocket Propulsion Laboratory (UC San Diego) GitHub Organization(@rocketproplab)입니다. 이 오거나이제이션은 2017년 봄 설립된 UC San Diego 학생 로켓 연구 동아리로, 학생 주도의 로켓/엔진/전자·지상국 개발 프로젝트 코드를 공개하고 있습니다.
UC San Diego Rocket Propulsion Laboratory는 학생 주도(student-led) 조직으로, 우주 탐사에 필요한 기술을 직접 설계·제작·시험하는 교육·연구 환경을 제공합니다. 현재 Phoenix를 주력(Flagship) 프로젝트로 운영 중이며, 액체 메탄( LNG )/액체 산소( LOX ) 추진 조합을 사용해 2026년 여름 발사 목표를 공식 페이지에서 밝히고 있습니다. Phoenix는 “화성 현지 자원으로 제조 가능한 추진제”를 전제로, 장기 탐사를 위한 연료 체계의 실현 가능성을 탐구합니다.
Key Highlights
모드 구성과 리스크 등급
Launch Mode (Low risk), Fueling Mode (Medium risk), **Dev Mode (High risk)**로 나누어, 단계별 밸브 제어와 운용 상황을 구분합니다. Dev Mode는 밸브를 자유 제어할 수 있으므로 특별한 주의를 요구합니다. (GitHub)
밸브 상태의 이진 인코딩
6비트(6자리) 이진수로 시퀀스를 정의하고, 2비트씩을 한 쌍으로 묶어 플로우/벤트의 조합을 나타냅니다.
00: flow close / vent close
10: flow open / vent close
01: flow close / vent open
11: 금지 상태(flow와 vent를 동시에 열 수 없음)
왼쪽부터 (arm | fuel valve 1 | fuel valve 2) 순서로 매핑합니다. (GitHub)
상태 전이 예시 (출력 명시)
PRE-ARM: 00|00|00 (기본, 모두 닫힘)
ARMED: 10|00|00 (arm 플로우만 오픈)
ABORT: 01|01|01 (모든 라인을 벤트 오픈)
LAUNCH: 10|10|10 (연료 플로우 오픈 → 발사 상태) (GitHub)
우선순위가 있는 입력(Buttons/Switches)
Abort(버튼): 최상위 우선순위로 모든 라인 벤트 오픈
Arm(스위치): arm 플로우 오픈/클로즈
Launch(버튼): 연료 1·2 플로우 오픈(발사 트리거) (GitHub)
물리 인터페이스 & 네트워킹
Ethernet: 명시적으로 W5500 Ethernet LAN 모듈 사용(하드웨어 스펙 항목에서 안내) — WIZnet Maker 커뮤니티에 특히 유의미. (GitHub)
구성 요소 / 문서
저장소는 .ino 스케치, lib/w5500, docs/diagrams를 포함하며, 구글 드로잉 링크로 배관·밸브 다이어그램을 제공합니다. 라이선스는 MIT. (GitHub)
Why It Matters (WIZnet Maker 관점)
현실 세계의 안전 임무 로직: 발사·연료 주입·개발 테스트 각각에 리스크 레벨을 두고, 금지 상태(11)를 규정함으로써 하드웨어 오작동을 방지하는 명확한 상태기계(State Machine) 설계를 보여줍니다. (GitHub)
W5500 채택 사례: 이더넷 통신을 WIZnet W5500으로 고정 명시—산업/학술 프로젝트에서 W5500을 신뢰 가능한 발사 시스템 I/O로 채택한 오픈 사례입니다. (GitHub)
교육·재사용 가치: 이진 인코딩·버튼 우선순위·모드별 제한 등 결정론적 제어 패턴을 그대로 포크·리스핀하여 테스트베드/지상국 시뮬레이터에 적용하기 좋습니다. MIT 라이선스로 상용/교육 재사용 장벽도 낮습니다. (GitHub)
Why WIZnet W5500 in a Flight Computer?
HW TCP/IP 오프로딩: 스택이 칩 내부( MAC/PHY 포함 )에 구현되어 MCU 부하와 지터를 낮추고, 임무 로직에 CPU 여유를 확보합니다.
단순·견고한 인터페이스: SPI 연결만으로 안정적인 TCP/UDP 통신 확보 — 지상국/발사대 환경에서 예측 가능한 네트워킹 구성에 적합합니다.
검증된 생태계: 산업/교육 현장에서 널리 쓰이는 모듈로, 드라이버·예제가 풍부해 재현성이 높습니다. (그룹 스펙에 W5500 사용을 명시)
Quick Reproduce (Checklist)
클론
git clone https://github.com/rocketproplab/phoenix-flight-computer
cd phoenix-flight-computer
IDE/보드 준비
Arduino IDE(또는 PlatformIO)에서 프로젝트 오픈 → 사용 MCU/보드 설정. (저장소에 구체 MCU 표기는 없으므로, 팀 문서/하드웨어 스택에 맞춰 설정 필요) (GitHub)
네트워킹/IO 확인
lib/w5500 및 W5500 모듈 연결 핀·SPI를 보드 사양에 맞춰 점검, 배관·밸브 다이어그램 문서를 참고해 IO 매핑 확인. (GitHub)
모드/입력 시나리오 테스트
PRE-ARM → ARMED → LAUNCH/ABORT 등 상태 전이를 로컬 시뮬레이션 또는 하드웨어 인더스트리얼 릴레이/밸브 드라이버와 함께 점검. 금지 상태(11)가 절대로 발생하지 않도록 검증. (GitHub)
안전 규정
Dev Mode는 **고위험(High risk)**으로 명시—실기 테스트 시 밸브·가스 라인 더미 로드로 먼저 검증할 것을 권장. (GitHub)
