This page lists all the sensors and peripherals embedded in Chromapi.

Overview

PeripheralComponentInterfaceHandled by
Inertial measurement unit (IMU)BMI088SPI at 5 MHzMotherboard
Power monitoringINA226I2C at 400 kHzMotherboard
LED ringWS2812BPWM + DMA at 800 kHzMotherboard
Wide-angle cameraIMX219-D160CSI-2Raspberry Pi
SpeakerMAX98357AI2SRaspberry Pi
MicrophoneICS-43434I2SRaspberry Pi
FanNoctua NF-A4x10 PWMPWM + tachometerRaspberry Pi

Inertial measurement unit (IMU)

PropertyValue
ModelBosch BMI088 (3-axis accelerometer + gyroscope)
InterfaceSPI at 5 MHz
Accelerometer range±3 g
Gyroscope range±1000 °/s
Sampling rate400 Hz
Fusion filterMahony filter at 400 Hz
OutputAcceleration, angular velocity and orientation (quaternion)

Note

At startup, the Mahony filter calibrates the accelerometer and gyroscope biases over 500 samples: the robot must therefore stay still during initialization.

Camera

PropertyValue
ModelWaveshare IMX219-D160
SensorSony IMX219 (8 MP)
Field of view160° (wide-angle, fisheye lens)
InterfaceCSI-2

Audio

FunctionComponentDetails
AmplifierMAX98357AI2S class-D amplifier
SpeakerXevtrak 4R3W4Ω, 3W
MicrophoneICS-43434I2S digital MEMS microphone

RGB LED ring

PropertyValue
ModelWS2812B COB Pixel Ring
Number of LEDs18
Diameter27 mm
Driven bySTM32, PWM + DMA at 800 kHz

Cooling

PropertyValue
ModelNoctua NF-A4x10 PWM (40 × 40 × 10 mm)
Power supply+5V
ControlPWM with tachometer feedback

Foot contact switches

The motherboard provides four inputs for microswitches placed at the tip of the legs, to detect ground contact.

Note

Foot contact switches are not used in Chromapi v1.

Communication architecture

  %%{init: {'themeCSS': '.edgeLabel, .edgeLabel p, .labelBkg { background-color: transparent !important; } .edgeLabel rect { fill: transparent !important; }'}}%%
flowchart LR
    RPI["Raspberry Pi"]
    MCU["STM32G431KBT6<br/>SYSCLK · 160 MHz"]
    SERVOS(["Servomotors x12<br/>STS3215-C001"])
    IMU["IMU<br/>BMI088"]
    PWR["Power monitor<br/>INA226"]
    LED(["RGB LEDs<br/>WS2812B"])
    CAM["Wide-angle camera<br/>IMX219-D160"]
    AUDIO["Speaker + Microphone<br/>MAX98357A / ICS-43434"]
    FAN(["Fan<br/>Noctua NF-A4x10"])

    RPI -->|"Custom bridge protocol<br/>UART1 · 2 Mbps · 100 Hz control loop"| MCU
    MCU <-->|"Half-duplex serial<br/>USART2 · 1 Mbps · 200 Hz"| SERVOS
    MCU <-->|"SPI1 · 5 MHz · 400 Hz (Mahony AHRS)"| IMU
    MCU <-->|"I2C1 · 400 kHz · 10 Hz poll"| PWR
    MCU -->|"PWM+DMA · 800 kHz"| LED

    RPI -->|"CSI-2"| CAM
    RPI <-->|"I2S"| AUDIO
    RPI <-->|"PWM + tachometer"| FAN

    classDef ic fill:#25b3ae,color:#ffffff,stroke:none
    classDef actuator fill:#c027e7,color:#ffffff,stroke:none
    classDef sensor fill:#5c5aed,color:#ffffff,stroke:none

    class RPI,MCU,AUDIO ic
    class SERVOS,LED,FAN actuator
    class IMU,PWR,CAM sensor

Resources