Skip to content Link Search Menu Expand Document
ModalAI DOCS
Store

M0226 VOXL 2 Classic Front End

Updated M0173 front-end board breaking out VOXL 2 camera groups J6 and J7, with barometer and PWM outputs.

M0226 is an updated M0173. It mates directly to camera groups J6 and J7 on VOXL 2 and breaks them out to four micro-coax image sensor connectors (two tracking, two hires), a 40-pin connector for a PMD ToF sensor, and a connector for a FLIR Lepton carrier board. New on M0226 are an onboard barometer, a 25 MHz Lepton clock that software can switch on and off, and an I2C PWM driver.


Table of contents

  1. Overview
    1. Hardware Requirements
    2. VOXL SDK Requirements
    3. What’s New Compared to M0173
  2. Block Summary
  3. Features
    1. Image Sensor Synchronization
    2. FLIR Lepton Clock
    3. PWM Outputs
  4. Connectors
    1. J1 - Front Tracking : ID0 (CSI0)
    2. J2 - Downward Tracking : ID6 (CSI0/Combo)
    3. J3 - Front ToF : ID3 (CSI3)
    4. J4 - Front Hires : ID1 (CSI1)
    5. J5 - Downward Hires : ID2 (CSI2)
    6. J6 - FLIR Lepton (SM08B-SHLS-TF)
    7. J8 - PWM (0532610471)

Overview

Hardware Requirements

Only compatible with VOXL 2. M0226 mates to both camera group connectors (J6 and J7) at once, so like M0173 it does not fit VOXL 2 Mini.

VOXL SDK Requirements

The camera connectors work the same way as on M0173. The Lepton clock control and the barometer need VOXL SDK 1.6.0 or newer:

  • voxl-lepton-server v1.4.0+ auto-detects the M0226 GPIO expander and toggles the Lepton clock.
  • voxl-fpv-px4 in SDK 1.6 adds the second apps-processor I2C bus for the M0226 barometer.

What’s New Compared to M0173

  • Barometer: Infineon DPS368 on the board (I2C 0x77).
  • Switchable Lepton clock: a 25 MHz oscillator for the Lepton, gated by a PI4IOE5V6408 GPIO expander, so software can turn the clock on and off.
  • PWM outputs: PCA9685 16-channel I2C PWM driver (I2C 0x4E). The standard build brings two channels out to a 4-pin connector (J8).
  • Hires sync: in the standard build, both hires sensors (J4, J5) share the GPIO 109 frame sync with the tracking sensors. See Image Sensor Synchronization.
  • ToF connector J3: pins 10 and 12 carry the QUP1 I2C bus (GPIO 4/5). M0173 used them for SPI.
  • Lepton connector J6: pinout unchanged, but the connector is now a JST SM08B-SHLS-TF (M0173 used SM08B-SRSS-TB).

Block Summary

FunctionPartBusI2C Address (7-bit)
BarometerInfineon DPS368QUP1 I2C (GPIO 4/5), 1.8 V0x77
GPIO expander (Lepton clock enable)Diodes PI4IOE5V6408QUP1 I2C (GPIO 4/5), 1.8 V0x44 (0x88 8-bit write)
PWM driverNXP PCA9685QUP1 I2C (GPIO 4/5), buffered to 3.3 V by a TCA95170x4E
FLIR Lepton (off-board)-QUP1 I2C, level-shifted to 2.8 V by a TCA95170x2A
FLIR Lepton video-CAM0 SPI0 (GPIO 28/30/31), level-shifted to 2.8 V-

The barometer, GPIO expander, PWM driver, and Lepton I2C all share the QUP1 I2C bus (GPIO 4 SDA, GPIO 5 SCL), which also reaches the ToF connector J3 on pins 10 and 12.

Features

Image Sensor Synchronization

The sensor sync lines are routed through 0 Ω resistor options. The resistors fitted in the standard build connect the sensors as follows:

SensorConnectorSync NetStandard Build
Front tracking (ID0)J1 pin 21TRACKR_TRIGGER_ID0Driven by GPIO 109 (R1)
Downward tracking (ID6)J2 pin 21TRACKR_TRIGGER_ID6Driven by GPIO 109 (R3)
Front hires (ID1)J4 pin 21HIRES_SYNC_ID1Driven by GPIO 109 (R5)
Downward hires (ID2)J5 pin 21HIRES_SYNC_ID2Driven by GPIO 109 (R7)
Front ToF (ID3)J3 pin 40TOF_SYNC_ID3Not connected (R9/R10 not fitted)

Each sync net can instead be moved to GPIO 111 (CCI_TIMER2) by fitting the alternate resistor (R2, R4, R6, R8, R10). GPIO 109 is the sync GPIO used by voxl-fsync-mod. See the M0173 VOXL 2 Driven Image Sensor Synchronization section for how voxl-camera-server enables it.

FLIR Lepton Clock

The Lepton’s 25 MHz clock (J6 pin 7) comes from an onboard oscillator buffered by a SN74AHC1G126. The buffer is enabled by output P0 (CLK_25M_EN, high = clock on) of the PI4IOE5V6408 GPIO expander. voxl-lepton-server drives it automatically. To toggle it by hand:

voxl-lepton-server --crystal_on
voxl-lepton-server --crystal_off

PWM Outputs

The PCA9685 runs from the 3.3 V rail (R30 fitted; R29 lets it run from 5 V instead), so the PWM outputs swing 0-3.3 V. In the standard build J8 carries channels LED2 and LED3. The 12-pin J7 footprint, which would bring out more channels, is not fitted.

Connectors

ConnectorFunctionPart
P6VOXL 2 J6 (camera group 0) board-to-boardHirose DF40HC(4.0)-60DS-0.4V(51)
P7VOXL 2 J7 (camera group 1) board-to-boardHirose DF40HC(4.0)-60DS-0.4V(51)
J1Front tracking, ID0 (CSI0)Hirose DF56C-26S-0.3V(51)
J2Downward tracking, ID6 (CSI0 combo)Hirose DF56C-26S-0.3V(51)
J3Front ToF, ID3 (CSI3)Molex 5052704012
J4Front hires, ID1 (CSI1)Hirose DF56C-26S-0.3V(51)
J5Downward hires, ID2 (CSI2)Hirose DF56C-26S-0.3V(51)
J6FLIR Lepton carrierJST SM08B-SHLS-TF
J7PWM, 12-pin (not fitted in standard build)Molex 0532611271
J8PWM, 4-pinMolex 0532610471

J1 - Front Tracking : ID0 (CSI0)

Cable user code: V2(L1)-H26-TS

PinName
1CCI_I2C0_SDA
2, 4, 8PM8009_VREG_L2_DVDD_1P2
3CCI_I2C0_SCL
5, 6DGND
7CSI0_CLK_CON_P
9CSI0_CLK_CON_N
10PM8009_VREG_L7_DOVDD_1P8
11CSI0_LANE0_CON_P
12GPIO_93_CAM0_RST_N
13CSI0_LANE0_CON_N
14CSI0_LANE1_CON_P
15MCLK0_ID0
16CSI0_LANE1_CON_N
17, 18DGND
19PM8009_VREG_L5_AVDD_2P8
21TRACKR_TRIGGER_ID0
23DGND
25VPH_PWR
20, 22, 24, 26NC

J2 - Downward Tracking : ID6 (CSI0/Combo)

Cable user code: V2(L2)-H26-TS. In combo-PHY mode CSI0 lane 2 is the data lane and CSI0 lane 3 is the clock.

PinName
1CCI_I2C1_SDA
2, 4, 8PM8009_VREG_L2_DVDD_1P2
3CCI_I2C1_SCL
5, 6DGND
7CSI0_LANE3_CON_P
9CSI0_LANE3_CON_N
10PM8009_VREG_L7_DOVDD_1P8
11CSI0_LANE2_CON_P
12GPIO_110_CCI_TIMER1
13CSI0_LANE2_CON_N
15MCLK0_ID6
17, 18DGND
19PM8009_VREG_L5_AVDD_2P8
21TRACKR_TRIGGER_ID6
23DGND
25VPH_PWR
14, 16, 20, 22, 24, 26NC

VPH_PWR on J1 and J2 is not used by the AR0144 tracking sensors.

J3 - Front ToF : ID3 (CSI3)

Cable user code: V2(U)-M40

PinName
1PM8009_VREG_L6_AVDD_2P8
2VPH_PWR
3PM8009_VREG_L7_DOVDD_1P8
4VREG_3P3V_LOCAL
5PM8009_VREG_L1_DVDD_1P05
6GPIO_92_CAM1_RST_N
7PM8009_VREG_L2_DVDD_1P2
8, 9DGND
10GPIO_4_QUP1_SDA
11CSI3_CLK_CON_P
12GPIO_5_QUP1_SCL
13CSI3_CLK_CON_N
14GPIO_6_QUP1 (via 0 Ω, R11)
15CSI3_LANE0_CON_P
16GPIO_7_QUP1
17CSI3_LANE0_CON_N
18DGND
19CSI3_LANE1_CON_P
20GPIO_114_CCI_ASYNC_IN
21CSI3_LANE1_CON_N
22GPIO_100_CAM_SHARED_RST_N (via 0 Ω, R14)
23DGND
24CCI_I2C3_SDA
25CSI3_LANE2_CON_P
26CCI_I2C3_SCL
27CSI3_LANE2_CON_N
28CCI_I2C2_SDA
29CSI3_LANE3_CON_P
30CCI_I2C2_SCL
31CSI3_LANE3_CON_N
32, 33DGND
34GPIO_97_MCLK3
35GPIO_111_CCI_TIMER2 (via 0 Ω, R12)
36GPIO_96_MCLK2
37VREG_3P3V_LOCAL
38VREG_S4A_1P8
39VPH_PWR
40TOF_SYNC_ID3
41, 42DGND
43, 44VDC_5V_LOCAL

J4 - Front Hires : ID1 (CSI1)

Cable user code: V2(U)-H26-HR

PinName
1CCI_I2C1_SDA
2, 4, 8PM8009_VREG_L2_DVDD_1P2
3CCI_I2C1_SCL
5, 6DGND
7CSI1_CLK_CON_P
9CSI1_CLK_CON_N
10PM8009_VREG_L7_DOVDD_1P8
11CSI1_LANE0_CON_P
12GPIO_113_CCI_TIMER4
13CSI1_LANE0_CON_N
14CSI1_LANE1_CON_P
15GPIO_95_MCLK1
16CSI1_LANE1_CON_N
17, 18DGND
19PM8009_VREG_L5_AVDD_2P8
20CSI1_LANE2_CON_P
21HIRES_SYNC_ID1
22CSI1_LANE2_CON_N
23DGND
24CSI1_LANE3_CON_P
25VPH_PWR
26CSI1_LANE3_CON_N

J5 - Downward Hires : ID2 (CSI2)

Cable user code: V2(L)-H26-HR

PinName
1CCI_I2C2_SDA
2, 4, 8PM8009_VREG_L2_DVDD_1P2
3CCI_I2C2_SCL
5, 6DGND
7CSI2_CLK_CON_P
9CSI2_CLK_CON_N
10PM8009_VREG_L7_DOVDD_1P8
11CSI2_LANE0_CON_P
12GPIO_92_CAM1_RST_N
13CSI2_LANE0_CON_N
14CSI2_LANE1_CON_P
15GPIO_96_MCLK2
16CSI2_LANE1_CON_N
17, 18DGND
19PM8009_VREG_L6_AVDD_2P8
20CSI2_LANE2_CON_P
21HIRES_SYNC_ID2
22CSI2_LANE2_CON_N
23DGND
24CSI2_LANE3_CON_P
25VPH_PWR
26CSI2_LANE3_CON_N

J6 - FLIR Lepton (SM08B-SHLS-TF)

All signals are 2.8 V, level-shifted on the board from the 1.8 V VOXL 2 domain.

PinName
1PM8009_VREG_L5_AVDD_2P8
2FLIR_SPI_SCK_2P8
3FLIR_SPI_CS_N_2P8
4FLIR_SPI_MISO_2P8
5FLIR_I2C_SCL_2P8V
6FLIR_I2C_SDA_2P8V
7CLK_25M_FLIR_2P8V
8DGND

J8 - PWM (0532610471)

3.3 V PWM outputs from the PCA9685.

PinName
1I2C_PWM2 (PCA9685 LED2)
2DGND
3I2C_PWM3 (PCA9685 LED3)
4DGND