Skip to the content
4 layers156.6 × 143.1 mmSTM32F4 Breakout, the printed circuit board in 3D

An embedded system for the driver to perform up and down shifts with pneumatic paddle shifters.

Size
156.6 × 143.1 mm
Copper layers
4
Thickness
1.6 mm
Parts
56
Nets
90
Pads
267
Tracks, vias
528, 122
Pours
2
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
21 Feb 2024
Updated
30 Aug 2024

Overview

STM32F4 Breakout is an open-source printed circuit board by DallasFormulaRacing, from the DallasFormulaRacing/PneumaticPaddleShifting repository on GitHub. It is a 4-layer board of 156.6 × 143.1 mm with 56 parts on 90 nets, routed with 528 tracks and 122 vias.

It is built around the STM32F405RGT6, TJA1051T and MP2303ADN, with the USBLC6-2SC6 and AO3401A among its other parts. Its parts include 16 capacitors, 13 resistors, 7 connectors, 5 ICs and 4 diodes. It belongs with the interfaces and adapters boards and the STM32 boards of this library.

Main components

5

README

README.md

PneumaticPaddleShifting

Table of Contents

  1. Objective
  2. Hardware and Equipment
  3. Firmware Tech Stack
  4. Automation
  5. Design

Objective:

  • Optimize the user's response to a down-shift and up-shift command.
  • Maintain strict practices and edge cases for critical safety.
  • Build the first fully-fledged DAQ with re-usable code through:
    • The Layered Architecture design pattern
    • Modularity of components
    • Hardware abstraction

Hardware and Equipment

Target Device

The STM32 Nucleo F466RE microcontroller development board is used as the current target device for code merged to the main and develop branches. Theoretically, other Arm Cortex M4 based STM32 devices with the necessary peripherals should be able to run the same program.

image

Firmware Tech Stack

  • STM32 Hardware Abstraction Layer (HAL)
    • Generated by STM32CubeMX within the CubeIDE environment, which also provides the arm-none-eabi toolchain.
    • Serves as a set of drivers or a Board Support Package (BSP) to interface with the microcontroller.

Automation

Design

High level system diagram:

High Level System Diagram

Firmware design:

Firmware Design

User Input

It is assumed that the user inputs are simple GPIO signals (i.e., high and low voltages). The upshift and downshift paddle will request their respective shift. The neutral button is for the user to set the car into neutral, and this may be verified with a neutral “monitor”. The neutral monitor is to act as some sort of sensor or switch.

Do note, however, that these inputs have not yet been tested. It is currently unknown whether they will require any signal “debouncing” so that the behavior is not jittery or sporadic. It has also been highly recommended to consider more fail-safe mechanisms for the scenario that the user input begins to malfunction.

Reading ECU Data

The device reads RPM, TPS, and wheel speeds from the PE3 8400-P ECU. This ECU implementation library was adopted from the race team’s previous efforts in other projects.

Shift Controller

The Shift Controller is a high-level component responsible for evaluating the driver’s shift requests. It depends on an ECU and several GPIO components to be used. Internally, a state machine is used to perform different behaviors. This approach offers the following advantages: dramatically simplifies the logic, increases performance, isolated behavior, and transition actions. The performance is increased as it only performs the conditional checks that are unique to each state. Due to the isolated behaviors, we can also easily determine and rigorously test every edge case for every state.

You may see the design of the state machine below in Figure 9. In practice, there are 6 gears. However, gears 2 through 5 had the same logic and state transition conditions, so they were condensed into a single state. So, the nomenclature was established as the following: Low Gear refers to first gear, Mid Gears refers to second to fifth gear, and High Gear refers to sixth gear.

One important design choice is how we intended to manage the transition to/from the neutral state. In practice, to go from first to second gear, the driver typically needs to go through neutral. Although an “immediate pass-through" transition was considered, the team ultimately decided to require the driver to manually transition through neutral. This user experience will be in reminiscence of a typical vehicle to offer a more seamless and practical learning curve to use.

It is worth mentioning that, due to time constraints in the development of the Shift Actuation, the Shift Controller is incomplete in respect to commanding for a shift.

ShiftController state machine:

Shift Controller State Machine

Shift Actuation

It is assumed that the required hardware interface for the shift actuator would be a GPIO (i.e., high and low) signal. However, due to time constraints, requirements of the hardware interface were not tested and verified for modifications.

Parts

56
QtyValueFootprintReferences
5100nCapacitor_SMD:C_0402_1005MetricC4, C5, C6, C7, C8
4MountingHole_PadMountingHole:MountingHole_4.3mm_M4_Pad_ViaH1, H2, H3, H4
310uCapacitor_SMD:C_1206_3216MetricC13, C15, C16
2120 Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR12, R13
212pCapacitor_SMD:C_0402_1005MetricC11, C12
22k2Resistor_SMD:R_0402_1005MetricR9, R10
22u2Capacitor_SMD:C_0603_1608MetricC1, C2
2B5189WDiode_SMD:D_SOD-123D2, D3
2Conn_01x04Connector_Molex:Molex_PicoBlade_53048-0410_1x04_P1.25mm_HorizontalJ3, J4
2TJA1051TPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU4, U5
1100kResistor_SMD:R_0603_1608MetricR4
110kResistor_SMD:R_0402_1005MetricR1
110nCapacitor_SMD:C_0402_1005MetricC10
110nCapacitor_SMD:C_0603_1608MetricC14
110uInductor_SMD:L_Sunlord_MWSA0518SL2
115kResistor_SMD:R_0603_1608MetricR7
116MHzCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY1
11kResistor_SMD:R_0603_1608MetricR11
11k5Resistor_SMD:R_0603_1608MetricR3
11uCapacitor_SMD:C_0402_1005MetricC9
1250mAFuse:Fuse_1206_3216MetricF1
1270Resistor_SMD:R_0603_1608MetricR8
139nInductor_SMD:L_0402_1005MetricL1
147Resistor_SMD:R_0402_1005MetricR2
147kResistor_SMD:R_0603_1608MetricR6
14u7Capacitor_SMD:C_0603_1608MetricC3
1600 @ 600MHzInductor_SMD:L_0805_2012MetricFB1
168kResistor_SMD:R_0603_1608MetricR5
1AO3401APackage_TO_SOT_SMD:SOT-23Q1
1CAN Connector1Connector_Molex:Molex_Mega-Fit_76829-0006_2x03_P5.70mm_VerticalJ8
1CAN Connector2Connector_Molex:Molex_Mega-Fit_76829-0006_2x03_P5.70mm_VerticalJ9
1LED_SmallLED_SMD:LED_0603_1608MetricD1
1MP2303ADNPackage_SO:SOIC-8-1EP_3.9x4.9mm_P1.27mm_EP2.62x3.51mmU2
1REDLED_SMD:LED_0603_1608MetricD4
1STM32F405RGT6Package_QFP:LQFP-64_10x10mm_P0.5mmU1
1SWDConnector_PinHeader_1.27mm:PinHeader_2x05_P1.27mm_Vertical_SMDJ2
1SW_SPDTButton_Switch_SMD:SW_SPDT_PCM12SW1
1Screw_Terminal_01x02TerminalBlock_Phoenix:TerminalBlock_Phoenix_PT-1,5-2-3.5-H_1x02_P3.50mm_HorizontalJ1
1USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6U3
1USB_BConnector_USB:USB_B_Lumberg_2411_02_HorizontalJ5

Similar boards

  • 4 layers60 × 56 mmSTM32F4 Breakout REV2, the printed circuit board in 3D

    STM32F4 Breakout REV2

    alphaseneca/pcb_design_repo

    A repository for storing and documenting the pcb design files.

    63 parts1MIT
  • 4 layers59.7 × 45 mmBasic stm32 board, the printed circuit board in 3D

    Basic stm32 board

    MILOUDIAS/Basic_STM32_Dev_Board

    The Project is about an STM32 based development board used mainly for educative purposes and prototyping designed in Kicad 8

    61 partsLGPL-2.1
  • 2 layers99 × 56.3 mmReflowOven controller, the printed circuit board in 3D

    ReflowOven controller

    TilenTinta/ReflowOven_controller

    An open source controller for converting kitchen toaster oven to reflow oven

    122 parts5MIT
  • 2 layers50 × 66 mmBluePhil, the printed circuit board in 3D

    BluePhil

    pms67/BluePhil

    STM32-based development board with various sensors.

    106 parts53MIT
  • 4 layers70.8 × 70.8 mmStm32 f4xx minimal, the printed circuit board in 3D

    Stm32 f4xx minimal

    amrithHN/stm32f4xx_minimal_dev

    stm32f4 minimal dev board with few sensors

    79 parts4GPL-3.0
  • 4 layers57 × 52 mmSTM32 based project, the printed circuit board in 3D

    STM32 based project

    majdbiw4200/STM32F405RGT-dev-board

    STM32 + USB + Buck Converter PCB Design

    50 parts3MIT
  • 4 layers60.7 × 40 mmSTM32F4 REV2, the printed circuit board in 3D

    STM32F4 REV2

    pravinsharma15k-ops/STM32F4-Test-Board

    STM32F405-based test board designed in KiCad 10, with buck converter, USB, SWD, I2C and UART.

    52 parts1
  • 4 layers57.5 × 50.9 mmStm32project, the printed circuit board in 3D

    Stm32project

    Codebreaker000/PCB_DESIGNS

    Contains all PCB designs with Schematics and Board view file's and both pdf's to understand and gerber files and the view and layout of the PCB's.

    50 parts

Questions

How big is the STM32F4 Breakout PCB?

It measures 156.6 × 143.1 mm and has 4 copper layers, 1.6 mm thick.

What parts does the STM32F4 Breakout use?

56 parts, built around the STM32F405RGT6, TJA1051T, MP2303ADN and USBLC6-2SC6. 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.

Where can I download the STM32F4 Breakout KiCad files?

From the DallasFormulaRacing/PneumaticPaddleShifting repository on GitHub, at the commit this page was made from: the board is Hardware/STM32F4/STM32F4_Breakout.kicad_pcb and its schematic Hardware/STM32F4/STM32F4_Breakout.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the STM32F4 Breakout design in my own project?

Its repository states no licence, so its author keeps all rights: ask DallasFormulaRacing before reusing the design.