Francesco Abate - Computer engineer

Home    CTFs  Misc  Rocketry  About  Contacts       

Welcome to my website! Here you can find CTF writeups, embedded projects, desktop and web applications, tutorials and much more.

View on GitHub
25 September 2025

Onboarding: Presenting the work and process of the firmware division of the Polito Rocket Team

by Francesco Abate

🚀 A Note to the New Team

Welcome to the Firmware sub-team! Whether you’re a seasoned embedded developer or just starting, you are now part of the rocket’s central nervous system. The code you write is responsible for:

This is a very challenging but incredibly rewarding role. This document is your starting point—a recap of everything we’ve learned, built, and planned. Read it carefully, ask questions, and don’t be afraid to challenge old assumptions. The goal isn’t just to maintain what we have, but to make it better.

Good work!


Part 1: Onboarding & Core Knowledge

This section contains the fundamental knowledge you need to get started.

1.1. Our Mission & Philosophy

1.2. System Architecture Overview

Our avionics system consists of two main types of custom boards: the Davinci (the central flight computer) and the Marconi (the telemetry and local control board).

Davinci Flight Computer (FC)

Located in the nosecone and avionics bay, the Davinci is the primary “brain” of the rocket—a powerhouse responsible for all critical computations, state estimation, and control algorithms.

Marconi Telemetry & Control Board

Located in three separate compartments (nosecone, avionics bay, and airbrakes), the Marconi acts as the rocket’s nervous system, handling communications, GPS, and local actuator control.

1.3. Getting Your Development Environment Ready

  1. Version Control (Git): All code is hosted on GitHub.
  2. Toolchain & IDE:
    • IDE: STM32CubeIDE
    • Programmer: STM32CubeProgrammer
    • The required ARM-GCC toolchain is included with STM32CubeIDE.

1.4. The Codebase: A Guided Tour

Davinci Codebase (Davinci_2 project)

The repository contains projects for both old (F411) and new (H743) hardware. You will be working in the Davinci_2 project. The code is organized as follows:

The source files (Src/) can be categorized into:

Marconi Codebase

The structure is similar, centered around the Marconi.ioc file. The code is primarily a mix of drivers and auto-generated peripheral handlers.

1.5. Core Firmware Concepts and Features

1.6. How to Work with Other Divisions

1.7. How to Succeed in the Team


Part 2: Resume of 2024/2025

2.1. Major Accomplishments

2.2. Key Design Decisions & Rationale

2.3. Lessons Learned


Part 3: Roadmap for 2025/2026

This is our vision for the future. It’s a list of goals and tasks for you to tackle.

3.1. Bug Fixes & Testing

3.2. New Features & Improvements


Useful Resources


Good luck, and feel free to reach out with any questions.

Francesco Abate

tags: Tutorial - onboarding - firmware - PRT