View this project on


Common Avionics Stack - Raspberry Pi Core Module - Hardware

You may notice that for the most part this repository is mostly empty, thats because its your intro project, y'all get to collaborate and design it together!

Broadly the CAS Core module is the brains and eyes of avionics' modular flight computer system. The Goal of the Raspberry Pi Core module is to provide us with high performance processor and fast IO suitable for video and Software Defined Radio applications.


NOTE: These requirements are not hard and fast, they're more of a general sketch to help you get started (that's why they're version controlled in this repo)

  • The module should use a ]]>Raspberry Pi CM4]]> as its brains
  • The module should have two ]]>RPI Cam connectors]]> on it
  • The module should use the ]]>same PSU as the IO Board]]> or the ]]>same as the STM32 core]]>
  • The module should use the ]]>MAX17049G+]]> battery charge monitor
  • The module should use the ]]>BMP388]]> barometric pressure sensor
  • The module should use the ]]>BNO055]]> accelerometer (or other from family)
  • The module should have 1 USB-C connector with a solder jumper to enable/disable USB-OTG mode (see datasheet)
  • This USB connector should be ESD protected with a ]]>USBLC6-2]]> or later
  • Power should be provided by a ]]>MiniFit-Jr]]>
  • WIFI and BT should be togleable using solder jumper
  • The module should include an FPGA connected to the RPI via the SMI interface
  • This FPGA should be an ICE40HX8K HX4K or LP8k
  • This FPGA should include an LVDS connection to the CAS stack with at least 4 data pairs and one clock pair
  • This FPGA should include at least 8 other GPIO connections to the stack

If you don't understand why a requirement is a requirement ASK! It gives everyone a chance to learn something, and potentially weeds out bad requirements (if you don't know who to ask ]]>use]]> git blame on this doc)

Wild unthoughtout Ideas

These ideas are mostly just spitballing and are absolutely reach goals

  • Maybe we should support USB-PD?
  • Maybe we should have an M.2 connector wired to PCIe for storing video?
  • Maybe we should break out DSI or Mini-HDMI for groundstation applications?


  • You're basically designing a fancy CAS version of the RPI-IO board, look at ]]>their schematics]]>!
  • Resources explaining how to use an ice40 fpga: the ]]>datasheet]]>, the ]]>hardware guide]]> and this ]]>example fpga implementation]]>
  • Take a look at our previous cas-core board for inspiration. Your finished circuit should have a similar overall function, the main difference being that it uses the rpi and fpga instead of the stm32 microcontroller.
  • If you need to find a part look through ]]>old STAR Boms]]> or Boms from similar open source projects
  • Use 0603 caps and resistors everywhere possible, for passives of the same value use the same part, and for low-speed applications use low-tolerance parts
  • Route your high speed signals first and give them plenty of room
  • Your final board should have 4 layers. The simplest stup for this is to have the first and last layers be front copper trace and back copper trace, respectively, while the inner two layers are a power plane and ground plane (a 'plane' is basically a copper pour over the entire layer).
  • We're using the ]]>BAC 4-layer standard capability]]>. This will give you values for minimum trace width, minimum drill size, etc. Try to make your values a little larger than the absolute minimums so you have a bit of leeway.
Report a bug