Skip to content

Motherboard (MB, Rev. C.2)

Old Gitlab Project

Datasheet STM32G491RE

Altium Designer: MB

Power Distribution

The Motherboard is the unit for getting power from the batteries to the motors/motor controllers. This is achieved through four high-current planes comprising a DC bus sandwich in the PCB's core. Power is coupled into and out of the DC bus in an alternating pattern, eliminating the need for a central star point carrying the entire current, which would serve as a single point of failure.

Power Distribution

The signal ground planes are connected to power ground (V0) in a single star point, tied together by net tie NT1.

Five different switching mode power supplies are the biggest active components on the motherboard.

Skynode Primary (5.2V, 5A)

The primary Skynode power supply is built around a TPS54561 non-synchronous buck converter. The implementation provides an inhibit signal PSKY1_IN and an open drain power good output PSKY1_PG.

From Skynode's point of view, the primary power supply should provide not only power, but also voltage and current readings over an I²C bus. To achieve this, the motherboard processor emulates an [INA238][] power source monitor IC.

The only device connected (directly) to this net is the Skynode via J5.

Skynode Primary Power Supply

Motor Mount Boards (25V, 5A)

To be able to drive high-power LEDs under the motors, the MMBs are provided 25V, at up to 20 Watts each. Like the primary Skynode supply, this SMPS is built around a TPS54561 non-synchronous buck converter.

The VMMB net supplies the six motor mount boards (switchable), and serves as primary source for the radio supply connectors J11 and J12.

Motor Mount Board Power Supply

25V External (25V, 5A)

To be able to supply high-power extension boards (Raspberry Pi, CANedge, payloads, ...) with independent power, the motherboard includes an additional 25 V regulator. A failure in the V25EXT net will have no adverse effect on flight avionics, radio communication or navigation lights (MMB).

External 25V Power Supply

5V External (5V, 2A)

Similar to the external 25 net, the motherboard provides independent 5 V to extension boards.

External 5V Power Supply

VCAN3 (5V, 1A)

VCAN3 is the motherboard's internal logic supply.

VCAN3 Power Supply

VCAN3 provides 5V to the following consumers:

  • BUS_VCC for battery packs connected to CAN3
  • power supply for CAN transceiver U4
  • primary side of the 3V3 LDO U5, which in turn supplies:
  • Microprocessor U1
  • User LEDs, controlled by the microprocessor
  • CAN transceivers' logic supply (U3 and U4)
  • Temperature Sensor Multiplexers U22 and U23
  • Power Monitor Multiplexer U20
  • SD Card Multiplexer U18 and U19
  • I²C Pull-Ups and SMB Multiplexer U7 for extension interface bus
  • Humidity Sensors U24 through U27
  • primary side of the 3V3A LDO U6, which supplies
  • Microprocessor's VDDA and VREF+
  • Temperature sensor bias
  • Power supply for current sense amplifiers U13 through U17
  • primary side of the 3V3_SDC LDO U21, which only supplies the Micro SD Card J14

Both the VCAN3 and the 3V3 net are independent from Skynode. The only areas of contact are the INA238 I²C bus, and the TELEM3 UART connection.

Skynode Signal Routing

The motherboard is used as a breakout board to break the main Skynode Interfaces from the Molex Pico-Clasp headers to Pixhawk-friendly GH headers. This is similar to Auterion's Pixhawk Adapter Boards.

Skynode Signals

Processor and Active Logic

The microcontroller forms the core of the motherboard's active subsystem. None of the functions performed by the active logic are strictly essential for the Highdra operation.

Microcontroller
Microcontroller nets

The active subsystem is comprised of the following key components:

Designator Part Description
U1 STM32G431RBT6 The microcontroller
U5 TCAN1042 CAN transceiver for CAN3 (µC, Batteries, MMBs)
U7/8 TMUX1108 analog 8:1-multiplexer for temperature measurements
U10 IIS3DWB high-bandwidth 3-axis vibration sensor
J20 Micro-SD Micro SD card for low-level data logging
U6 DRV8876 DC motor driver (full bridge) for landing gear actuation

Data Storage

Beside the STM32 internal flash memory, SPI1 is routed to a Micro SD Card, which may eventually be used.

Usage examples: data logging, configuration management, firmware update distribution

Motherboard Data Input Sources

Temperature Sensors

Through U7 and U8 (two multiplexers TMUX1108), the motherboard processor has access to temperature sensors:

  • 12 power connector temperature sensors
  • 4 PCB temperatures measured on the motherboard itself

These sensors are sampled and broadcast to CAN for logging and health monitoring.

Vibrations Monitoring

The high-bandwidth 3-axis vibration sensor (U10, IIS3DWB) connected to SPI2 may (at some point) be used to measure body vibrations up to 6 kHz. This is low priority and will be implemented at a later stage.

Power Supply Monitoring

All voltage levels are available at the ADC of the microcontroller for internal measurements

The Skynode power supplies (PSSKY1 and PSSKY1) are equipped with an INHIBIT input and a POWER_GOOD output, all routed to the processor. This enables the motherboard logic to perform a self-test during boot, to ensure both redundant supplies are available and the failover works.

The 25 V power supplies (PSPPB and PSMMB) are equipped only with a POWER_GOOD output, which the motherboard processor may monitor for anomalies.

Skynode Gateway

The motherboard processor can communicate with Skynode in a few different ways, summarized below.

INA226 Power Source Monitor Emulation

I2C3: I²C slave (emulating an INA226 -- or 237).

Skynode expects an INA226 on the primary power connector's I²C lines, like implemented on the Auterion Power Module. Since the motherboard is not equipped with a power monitor chip, the motherboard has to emulate one in software.

At some point, information about the power source (battery) should be provided via DroneCAN or MAVLink, rendering this interface obsolete.

PWM

TIM1 & TIM8: PWM Input of Skynode's PWM7 and PWM8 channels.

To simplify the process of routing commands from the remote control through PX4 to the motherboard, the PX4 PWM channels IO_PWM7 and IO_PWM8 are connected to the microprocessor's TIM1_CH1 and TIM8_CH2, respectively. TIM1 and TIM8 both have a PWM input mode (see [RM0440][], section 28.3.10 PWM input mode), which may be used to decode e.g. a landing gear position PWM setpoint.

28.3.10 PWM input mode ([RM0440][] p. 1108)

This mode allows to measure both the period and the duty cycle of a PWM signal connected to single tim_tix input:

The TIMx_CCR1 register holds the period value (interval between two consecutive rising edges) The TIMx_CCR2 register holds the pulsewidth (interval between two consecutive rising and falling edges)

UART & MAVLink

USART1: MAVLink connection to Skynode, connected to Skynode's TELEM3.

Via USART1, the microprocessor is connected to the Skynode's TELEM3 MAVLink port. In theory, this would enable us to perform all kinds of interaction with Skynode. In practice, this requires prior implementation of a MAVLink protocol stack, which will delay this feature for quite a while.

Landing Gear

The motherboard is equipped with two DC motor drivers to control the right and left landing gear actuator (U6_G1 and U6_G6). The gear control subsystem has access to positional feedback (optional) and DC motor current measurement, which will enable us to implement a control loop with as much sophistication as needed.

Processor Configuration

Pin Configuration

Pin Signal Mode OType OSpeed Pull AF Peripheral Function
PA0 SDC_SEL Output OD Low SD Card Selection
PA1 SDC_EN Output OD Low SD Card Enable
PA2 TELEM3.RX AF PP Low 7 USART2_TX MAVLink
PA3 TELEM3.TX AF 7 USART2_RX MAVLink
PA4 SDC_CS AF PP Medium 5 SPI1_NSS SD Card
PA5 SDC_SCK AF PP High 5 SPI1_SCK SD Card
PA6 SDC_MISO AF 5 SPI1_MISO SD Card
PA7 SDC_MOSI AF PP High 5 SPI1_MOSI SD Card
PA8 SMB_SDA AF OD Low 4 I2C2_SDA I2C SMB
PA9 SMB_SCL AF OD Low 4 I2C2_SCL I2C SMB
PA10 SMB_ALERT AF OD Low 4 I2C2_SMBA I2C SMB
PA11 PWM8 AF Down 10 TIM4_CH1 PWM Input
PB12 LED_OUT AF PP Low 1 TIM16_CH1 Safety LED
PA13 SWDIO AF PP Very High Up 0 SWDIO_JTMS
PA14 SWCLK AF Down 0 SWCLK_JTCK
PA15 JTDI AF Up 0 JTDI
PB0 TEMP1 Analog ADC1_IN15 Temperatures
PB1 TEMP2 Analog ADC1_IN12 Temperatures
PB2 V48_ADC Analog ADC2_IN12 V48 Monitoring
PB3 SWO AF PP Low 0 SWO_JTDO
PB4 MMB_EN1 Output PP MMB Enable
PB5 CAN1_RX AF 9 FDCAN2_RX CAN1
PB6 CAN1_TX AF PP Medium 9 FDCAN2_TX CAN1
PB7 MMB_EN3 Output PP MMB Enable
PB8 CAN3_RX AF 9 FDCAN1_RX CAN3
PB9 CAN3_TX AF PP Medium 9 FDCAN1_TX CAN3
PB10 MMB_EN5 Output PP MMB Enable
PB11 PMON Analog ADC12_IN14 Power Monitoring
PB12 A0 Output PP Low MUX Select line
PB13 A1 Output PP Low MUX Select line
PB14 A2 Output PP Low MUX Select line
PB15 PWM7 AF Down 1 TIM15_CH2 PWM Input
PC0 LED_BLUE Output OD Status LED
PC1 LED_GREEN Output OD Status LED
PC2 LED_YELLOW Output OD Status LED
PC3 LED_RED Output OD Status LED
PC4 VSKY1_ADC Analog ADC2_IN5 Power Monitoring
PC5 ISKY1_ADC Analog ADC2_IN11 Power Monitoring
PC6 VSKY1_PG Input Up EXTI6 PSSKY1 Power Good
PC7 VSKY1_IN Output PP Low Down PSSKY1 Inhibit
PC8 PWR1.SCL AF OD Low 8 I2C3_SCL I²C Slave
PC9 PWR1.SDA AF OD Low 8 I2C3_SDA I²C Slave
PC10 DEBUG_TX AF PP Medium 5 UART4_TX Console
PC11 DEBUG_RX AF 5 UART4_RX Console
PC12 MMB_EN9 Output PP MMB Enable
PC13 MMB_EN7 Output PP MMB Enable
PC14 OSC32_IN LSE Oscillator
PC15 OSC32_OUT LSE Oscillator
PD2 MMB_EN11 Output PP MMB Enable
PF0 SWITCH_IN Analog ADC1_IN10 User Button
PG10 RST Reset Button

ADC

The processor's ADC1 and ADC2 are used to measure temperatures, DC bus voltage, landing gear feedback and a few internal values. ADC1 has a regular sequence triggered by TIM6 and serviced by a circular DMA. ADC2 has an injected sequence to be triggered by software, since temperature measurement needs to be synchronized with the external multiplexer.

ADC Channel Signal Sequence Trigger
1 7 GEAR1.POS regular SQ1 TIM6, 100Hz
1 8 GEAR1.VPROPI regular SQ2 TIM6, 100Hz
1 6 GEAR2.POS regular SQ3 TIM6, 100Hz
1 9 GEAR2.VPROPI regular SQ4 TIM6, 100Hz
1 4 V48_ADC regular SQ5 TIM6, 100Hz
1 18 VREFINT regular SQ6 TIM6, 100Hz
1 16 Core Temperature regular SQ7 TIM6, 100Hz
2 10 TEMP1 injected JSQ1 software, 83Hz
2 14 TEMP2 injected JSQ2 software, 83Hz

UART4

Debug console (logging).

TIM2

Landing Gear PWM output via TIM2_CH1 and TIM2_CH2. See also PA2 (GEAR_DIR) for direction setpoint and analog position and current feedback.

TIM3

Timekeeper clock and FDCAN hardware timestamping.

TIM4

PWM Output for LED dimming?

TIM6

ADC Trigger.

SPI1

SD Card interface.

SPI2

IIS3DWB accelerometer interface.

FDCAN1

System Orchestration via CAN3 (Cyphal)

CAN (Cyphal) interface, handled by the Cyphal Library