
Circuit board design
ImperialSpaceSociety/Project-Mach-1
This is the code and hardware designs for the high powered rocketry project at the Imperial College Space Society

Flight computer schematics and firmware for Aquila, the upper stage of Griffin 1
Aquila main is an open-source printed circuit board by cuspaceflight, from the cuspaceflight/aquila-avionics repository on GitHub. It is a 4-layer board of 98 × 98 mm with 176 parts on 133 nets, routed with 863 tracks and 472 vias.
It is built around the MAX-M8Q-0, TEENSY 4.1 and MS5611-01BA03, with the ADXL357BEZ, BQ29200DRB and MPU-6050 among its other parts. Its parts include 45 resistors, 37 capacitors, 14 connectors, 11 ICs and 9 inductors. It belongs with the NXP (LPC, Kinetis, i.MX RT) boards of this library.
Schematics and firmware for Aquila flight computer.
What follows here is a very brief overview of the design, broken down by component. It's aim is to familiarise the reader with what this project includes and some of the decisions made.
The computer is designed to run from two 18650 Li-Ions in series. A battery management chip monitors the cell voltages and automatically balances them if necessary. There is no onboard charger, so batteries must be charged separately before installation/flights. Ideally cells with built-in under-volt protection should be used. The battery holders are physically mounted to the board (but will be mechanically supported by additional hardware). Power can be switched on and off via a screw terminal. To connect the batteries to the rest of the board, a jumper is secured between the two terminals. A potential divider allows the microcontroller to directly monitor the battery voltages.
Additionally, a 3V CR2032 type cell is mounted to the board. This maintains real time clocks in the microcontroller and GPS receiver, improving resilience against power cycle events during flight.
The board has two power supplies: 3.3V 3A and 5V 3A. The 3.3V supply powers most of the electronics on the board and is permanently on. The 5V supply is dedicated to pyrotechnics and servos as required by the recovery system. It is switched on and off by the microcontroller to conserve power when not needed and as a safety layer. A terminal is provided for an external safety switch. When shorted, this terminal disables the pyro power supply, eliminating the risk of unintentionally activating pyrotechnics during any activities leading up to launch.
A barometer is mounted on the board to measure atmospheric pressure. This is particularly useful during descent to deploy parachute stages at appropriate altitudes close to the ground. The model used is a MS5611-01BA03. It has a resolution on the order of tenths of millibar, but a minimum pressure of 10 millibar limits it's usefulness to below 30 km altitude.
A U-blox MAX-M8Q receiver is included for completeness. CoCom regulations limit the operation of civilian GPS chips faster than 1000 knots (~500 m/s) and above 18 km, both of which will be exceeded early in Griffin's flight profile. Therefore the GPS will not be relied on for navigational purposes, but purely for data collection. It may be the case that once the rocket slows below 1000 knots near apogee, a fix can once again be acquired. This is uncertain as the manufacturer does not specify behaviour at these extremes.
An additional Low-Noise Amplifier and band-pass filter are included in the signal path as antenna challenges and telemetry radio interference will degrade signal quality.
The most important sensor for navigation and apogee deployment is the accelerometer. An inertial navigation system will be implemented to estimate the vehicle's velocity and altitude based on accelerometer readings. The double integration of acceleration to velocity leads to errors on the order of time squared, so it is imperative the accelerometer readings are low noise and very stable. Combined with this requirement, a high g range is required as the rocket will accelerate at up to 30g at some points. An Analog Devices ADXL357 is chosen. It boasts 20 bit resolution, ultra-low noise and high bias stability with a range of +/- 40g.
An Si4463 radio transceiver provides a bi-directional radio link with a ground station. This will be useful for configuring the computer during launch preparations as well as backing up as much data as possible should the vehicle be lost. A secondary purpose for the radio will be locating the vehicle after a successful recovery. The current setup is designed for operation in the 915 MHz ISM band, subject to regulatory compliance.
Connectors on the board include:
The pyro channels can provide 5V at 1A continuous as limited by the FETs, 3A peak as limited by the power supply. They also include individual continuity measurement by draining approximately 50uA through the pyro.
A Teensy 4.1 was selected as the microcontroller. It is based around an ARM Cortex-M7 running at 600MHz. The first reason for this choice is that it includes many features we would only have to implement ourselves such as a real time clock, MicroSD storage, USB interface etc. Secondly, it is compatible with the Arduino ecosystem, granting access to many existing libraries and improving access to the firmware for CUSF members.
Antennas are an area of ongoing research, hence nothing has been included in this repo yet. Carbon-fibre reinforced polymer (CFRP) construction precludes antennas being mounted inside the rocket body, and extreme aerodynamic and aerothermal loads make any kind of protruding antenna impossible. This leaves the only possible solution as conformal patch antenna arrays. Methods to design and optimise these antennas and feed networks are currently being developed. See https://github.com/cuspaceflight/aperture.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 35 | TestPoint | TestPoint:TestPoint_Pad_D1.0mm | TP1, TP2, TP10, TP11, TP12, TP13, TP14, TP15, TP16, TP17, TP18, TP19, TP20, TP21, TP22, TP23 +19 |
| 10 | 10k | Resistor_SMD:R_0402_1005Metric | R1, R22, R23, R24, R25, R26, R33, R34, R35, R36 |
| 10 | M3 | MountingHole:MountingHole_3.2mm_M3_DIN965_Pad | H1, H2, H3, H4, H5, H6, H7, H8, H9, H10 |
| 9 | 0u1 | Capacitor_SMD:C_0402_1005Metric | C14, C16, C22, C23, C27, C28, C30, C32, C35 |
| 8 | 100k | Resistor_SMD:R_0402_1005Metric | R27, R28, R29, R30, R39, R40, R41, R42 |
| 8 | DNP | Resistor_SMD:R_0402_1005Metric | R2, R6, R7, R9, R15, R16, R19, R20 |
| 5 | 10u | Capacitor_SMD:C_0402_1005Metric | C17, C29, C31, C33, C36 |
| 4 | 0 | Resistor_SMD:R_0402_1005Metric | R5, R8, R17, R18 |
| 4 | 100 | Resistor_SMD:R_0402_1005Metric | R3, R12, R13, R14 |
| 4 | 200k | Resistor_SMD:R_0402_1005Metric | R31, R32, R43, R44 |
| 4 | IRF7509PbF | aquila:IRF7509PbF | Q1, Q2, Q3, Q4 |
| 3 | 100n | Capacitor_SMD:C_0402_1005Metric | C3, C4, C18 |
| 3 | 100p | Capacitor_SMD:C_0402_1005Metric | C1, C2, C20 |
| 3 | 4k7 | Resistor_SMD:R_0402_1005Metric | R37, R38, R45 |
| 2 | 1000u | Capacitor_THT:CP_Radial_D8.0mm_P3.50mm | C9, C10 |
| 2 | 100u | aquila:L_MP0028_124_125_127 | L1, L2 |
| 2 | 1042 | aquila:1042 | J2, J3 |
| 2 | 12n | Inductor_SMD:L_0402_1005Metric | L7, L9 |
| 2 | 160 | Resistor_SMD:R_0402_1005Metric | R10, R11 |
| 2 | 1N5820 | Diode_THT:D_DO-201AD_P15.24mm_Horizontal | D1, D2 |
| 2 | 1u | Capacitor_SMD:C_0402_1005Metric | C7, C8 |
| 2 | 20p | Capacitor_SMD:C_0402_1005Metric | C19, C26 |
| 2 | 22u | Capacitor_THT:CP_Radial_D6.3mm_P2.50mm | C5, C6 |
| 2 | 24n | Inductor_SMD:L_0402_1005Metric | L6, L8 |
| 2 | 3p3 | Capacitor_SMD:C_0402_1005Metric | C21, C24 |
| 2 | D_TVS | Diode_SMD:D_0402_1005Metric | D5, D6 |
| 2 | Tie_2 | NetTie:NetTie-2_THT_Pad1.0mm | NT1, NT2 |
| 1 | 0u33 | Capacitor_SMD:C_0402_1005Metric | C25 |
| 1 | 10n | Capacitor_SMD:C_0402_1005Metric | C34 |
| 1 | 120591-1 | aquila:120591-1 | J1 |
| 1 | 120n | Inductor_SMD:L_0402_1005Metric | L3 |
| 1 | 18n | Inductor_SMD:L_0402_1005Metric | L4 |
| 1 | 1p2 | Capacitor_SMD:C_0402_1005Metric | C13 |
| 1 | 20k | Resistor_SMD:R_0402_1005Metric | R21 |
| 1 | 2n2 | Capacitor_SMD:C_0402_1005Metric | C37 |
| 1 | 30M | aquila:crystal_ABM8 | Y1 |
| 1 | 330 | Resistor_SMD:R_0402_1005Metric | R4 |
| 1 | 3n3 | Inductor_SMD:L_0402_1005Metric | L5 |
| 1 | 3p | Capacitor_SMD:C_0402_1005Metric | C11 |
| 1 | 5p1 | Capacitor_SMD:C_0402_1005Metric | C12 |
| 1 | 6n8 | Capacitor_SMD:C_0402_1005Metric | C15 |
| 1 | ADXL357 | aquila:ADXL357 | U7 |
| 1 | B3520 | aquila:B3520 | U5 |
| 1 | BARO | aquila:molex_nano_fit_x6_105310-1106 | J7 |
| 1 | BMI-S-201 | aquila:BMI-S-201 | J8 |
| 1 | BQ29200 | aquila:VSOP-8 | U8 |
| 1 | GPS | aquila:SMA_VERT | J6 |
| 1 | GREEN | Diode_SMD:D_0603_1608Metric | D3 |
| 1 | LM2576D2TR4-5G | aquila:TO-236_5 | U2 |
| 1 | LM2576S-3.3/NOPB | aquila:TO-236_5 | U1 |
| 1 | LOGO | aquila:cusf_logo_small | G*** |
| 1 | MAX-M8Q | aquila:MAX-M8Q | U3 |
| 1 | MPU-6050 | Sensor_Motion:InvenSense_QFN-24_4x4mm_P0.5mm | U10 |
| 1 | MS5611-01BA03 | aquila:MS5611 | IC1 |
| 1 | NetTie_2 | NetTie:NetTie-2_SMD_Pad0.5mm | NT3 |
| 1 | PWR | aquila:MP_2.54_screw_terminal_2x1 | J4 |
| 1 | PYRO_1 | aquila:MP_2.54_screw_terminal_2x1 | J9 |
| 1 | PYRO_2 | aquila:MP_2.54_screw_terminal_2x1 | J11 |
| 1 | PYRO_3 | aquila:MP_2.54_screw_terminal_2x1 | J10 |
| 1 | PYRO_4 | aquila:MP_2.54_screw_terminal_2x1 | J12 |
| 1 | PYRO_SAFE | aquila:MP_2.54_screw_terminal_2x1 | J13 |
| 1 | RED | Diode_SMD:D_0603_1608Metric | D4 |
| 1 | SERVO | aquila:molex_nano_fit_x6_105310-1106 | J14 |
| 1 | SKY65723-11 | aquila:SKY65723-81 | U6 |
| 1 | Si4463 | Package_DFN_QFN:QFN-20-1EP_4x4mm_P0.5mm_EP2.6x2.6mm_ThermalVias | U4 |
| 1 | TELEM | aquila:SMA_VERT | J5 |
| 1 | Teensy4.1 | teensy:Teensy41 | U9 |
It measures 98 × 98 mm and has 4 copper layers, 1.6 mm thick.
176 parts, built around the MAX-M8Q-0, TEENSY 4.1, MS5611-01BA03 and ADXL357BEZ. 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.
From the cuspaceflight/aquila-avionics repository on GitHub, at the commit this page was made from: the board is schematics/aquila_main/aquila_main.kicad_pcb and its schematic schematics/aquila_main/aquila_main.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask cuspaceflight before reusing the design.

ImperialSpaceSociety/Project-Mach-1
This is the code and hardware designs for the high powered rocketry project at the Imperial College Space Society






