Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Sensors and Actuators to drive the propulsion system
The prop module is currently still in development. The prop module is unique in that it consists of three boards, not one, since the components would not all fit on one board. Also, the prop module requires a separate power supply connector because one of the components (a solenoid) requires a +24V power input, which is greater than the battery can supply.
The current plan for the prop board will include connectors that attach to several sensors and actuators used in the propulsion system. These sensors and actuators are not on the boards themselves, but are instead wired to the connectors on the edges of the boards.
The main specifications for this module are:
5 Pressure Transducers
3 Load Cells
3 Thermocouples
3 Servos
2 Solenoids (to open valves)
Oxygen Flow Meter (Not yet decided if we should include this)
Core module powered by a raspberry pi and an FPGA
The core-revised board is still in development. The plan for this board is to use a raspberry pi compute module 4 ("rpi CM4") as the microcontroller for the board. The board will also have an ICE40 FPGA that serves as an I/O expander, since the rpi CM4 has a limited GPIO pin count.
The specification for this board includes the following components:
rpi CM4 microcontroller
ICE40 FPGA
2 camera connectors
2 HDIMI connectors
An SD card slot
A microUSB port (with an ESD protector)
3 sensors (the same as on the original core board)
a PCIe connector (we still haven't fully decided if this should be added or not)
The rpi CM4 has 45 GPIO pins that can be mapped to various functions. See pages 8 and 9 of the rpi CM4 datasheet (https://datasheets.raspberrypi.com/cm4/cm4-datasheet.pdf) for the full list of possible pin assignments. See the "GPIO to CAS Module" google doc (https://docs.google.com/spreadsheets/d/1WoIMGLvNKh1mcGZh1nwG_u1I8tszVKkk_6aB_qJbBj4/edit?usp=sharing) for the list of pin assignments that we decided to implement.
Note that GPIO0 and GPIO1 have three functions--they can be used as either SMA pins to connect to the FPGA, or as GPIO pins to connect to one of the camera connectors, and on top of that, both pins are also used as UART debugging pins.
The rpi CM4 will use the "secondary memory interface (SMI)" to communicate with the FPGA through the pins that have been assigned SMI functionality.
This schematic describes the overall plan for the entire module, which shows how each of the components should communicate:
This core module is largely inspired by the design from the rpi CM4 I/O board, which features many of the same components (HDMI, PCIe, camera connectors, etc) also connected to an rpi CM4. The I/O board design is located here: https://datasheets.raspberrypi.com/cm4io/CM4IO-KiCAD.zip
The symbol and footprint for the rpi cm4 are located here: https://github.com/Kedarius/RPi-CM4-Kicad
Eight fuses that can light blackpowder charges
The pyro module consists of eight connectors which can each light a blackpowder charge. Each connector is controlled by a mosfet, and if the mosfet allows current to flow through the connector, then the blackpowder charge is ignited.
The core module controls this by sending I2C messages over the I2C0 bus to the I/O expander module. The I/O expander module connects to eight mosfet drivers which drive the mosfets. The I2C messages that come to the I/O expander can tell it to set off certain blackpowder fuses.
The I/O expander also features three address bit jumpers, which can be manually connected or disconnected to change the I2C address of the I/O expander, to avoid I2C address conflicts.
Common Avionics System bringup and flight validation. This project was cancelled in 2022.
General page including external interfacing documentation.
The Common Avionics System (CAS) is a system for Avionics hardware development with the primary motives being to reduce hardware development time by better leveraging existing verified designs. CAS achieves this by splitting functionality into separate modules. This allows each module to do one thing and do it well, without having to redo aspects of the system that have already been done. CAS will allow Avionics to more easily support new projects and will reduce risk (in the long-term) by reusing well-tested designs.
CAS Board standards document (describes how to develop modules for CAS): https://docs.google.com/document/d/1TXryu3QcSKlMYy4J2YmgYoLP_nRUAluCNtpA56hADVI/edit?usp=sharing
Stack: A set of modules placed vertically with standoffs separating them.
Module: A single printed circuit board (.062" thickness) that has the hardware to satisfy a certain function.
See image below for cross-section of a stack (specifically of a module). The modules are square PCBs with 4 mounting holes in the corners (large filled yellow circles with blue-green halo). The arrays of smaller empty yellow holes are header pins for connection to other modules in the stack.
The side to side distances are 2.5 inches and mounting hole to mounting hole distances are 2.2 inches. The space from the top of a module to the bottom of another module is 0.6 inches.
All of the modules in CAS share a common 80-pin bus. Not all of the pins have functions assigned yet, but they may be assigned in future modules. The CAS modules must never conflict with the common bus pin-to-function assignments. The pin-to-function mapping is recorded in this google sheet: https://docs.google.com/spreadsheets/d/15-LTwM_Mr0fLUytdwUPcel4TPknD09fHWANTEQGGa_4/edit?usp=sharing
The types of pins that appear on the bus are:
Power
+3.3V
+5V
+BATTERY
GND
I2C0
SCL
SDA
I2C1
SCL
SDA
SPI High-Speed
SCK
MISO
MOSI
SS1, SS2
SPI0
SCK
MISO
MOSI
SS1, SS2, SS3, SS4, SS5, SS6, SS7, SS8
Interrupt pins
INT1, INT2, INT3, INT4, INT5, INT6, INT7, INT8
The entire CAS stack's voltage rails (3.3V and 5V) are powered by a power management unit located on the core board. This power unit on the core board recieves +7.3V DC from an external battery. The entire CAS stack generally draws below 50 mA of current when not doing power-intensive tasks.
To separate modules from each other, use a flat-head screwdriver as a lever, as shown in this picture:
Communication with Ground Station, and also a GPS chip
The Radio module contains an RFM69 radio transciever module (with an attached antenna) whose purpose is to transmit data from the rocket to the ground station in real time. The radio module also contains a SAM_M8Q u-blox GNSS chip which can determine time, latitude, longitude, and altitude. The micocontroller can communicate with the radio through the SPI0 bus, and communicate with the GNSS chip over the I2C1 bus. There are also a couple of optional extra I/O interface pins on the GNSS module that can be connected to external jumper wires.
The radio's output can be sent either to the antenna or to an SMA cable (for testing what data is sent). There are two jumper pins on the board, JP1 and JP2, which control which of the two destinations is connected to the radio's output. JP1 can be used to manually set the radio's output between to the antenna or to the SMA. JP2 can be used to override the selection on JP1 and have the selection be made by the Microcontroller instead. Note that JP1 is on the top of the board and JP2 is on the underside.
The current version of the radio board also has one extra connection made with a white soldered-on wire, which connects the DIO0 pin on the radio transciever to the A20 pin of the CAS Bus (INT 8). This could be used in the future to program the radio transciever to send an interrupt over the DIO0 pin which would reach the Microcontroller at interrupt pin 8.
Normally, the radio should be operated at either 915 MHz or 433 MHz.
The power, CPU, and other essential functions
The Core Module contains the main MCU (an STM32F401RE chip), three sensors (BMP388 altimeter, BNO055 IMU, MAX17049 fuel gauge), an SD card holder for data logging, a UART debugging port, and USB and JTAG connectors. It also provides power for the other modules through the CAS Bus 5V and 3.3V power rails.
The STM32 microcontroller connects to an I2C bus (numbered I2C3) that does not connect to the CAS Bus, bus instead conencts only to the three sensors on the core board itself. The microcontroller also connects to an SPI bus (numbered SPI3) that does not connect to the CAS bus, but instead connects to the SD card holder and the SPI-to-I2C translator. Lastly, note that the I2C2 bus on the CAS bus does not connect directly to the microcontroller, but instead goes to the SPI-to-I2C translator.
The core board also features a "user button" and "user LED" for testing purposes. There is also a RESET button, but this button does not do anything unless there are jumper pins attached to the RESET jumper.
At the time of this writing, none of the three sensors have been soldered onto the board yet because we have been unable to buy them so far (except for the BMP388, which we bought recently but haven't soldered on yet).
For testing, assemble the module and plugin a battery supplying 7.3V.
Test bus power sources. Make sure the voltage of all power pins match the specification.
Check USB. Connect USB to the computer and see if the flasher can recognize it.
Run echo and LED test. See if we can flash the chip through the debugger, then check if the user LED is blinking and if the UART outputting the correct message.
Run sensor connectivity tests for all onboard sensors. This includes checking if we can read the ID registers of IMU, Altimeter and fuel gauge.
Verify the functionality of onboard sensors. Read actual data from the sensors and see if they match expected values.
Test bus interrupt pin connections. Connect a jumper from the 3V3 power pin to an interrupt pin and see if we read the correct value. Repeat this for GND and every pin.
Check SD card IO. Check if we are able to write data and read back from it.
Radio module with a powerful AT86RF215 transceiver
The radio-revised board is still in development. The plan for this board is to use an AT86RF215 module as the radio transciever, which can transcieve over two channels independently at different frequencies.The core board will communicate with the AT86RF215 through LVDS signals, which are output by the FPGA on the core-revised board and travel over LVDS pins on the cas-bus.
Most of the design for this module is directly copied from the cariboulite radio board design (which also uses an AT86RF215) here: