Documentation
Hardware
Calvin is built around two compute platforms, a brushless drive system, and a suite of sensors — all packaged into a compact wheeled chassis.
System Overview
OAK-D Pro W stereo camera · Vision inference · LLM processing (planned) · WebSocket API gateway
IMU & ToF reads · Serial bridge · PID balance loop · ODrive CAN commands
via I²C
01 Teensy 4.1
Single-Core Architecture
The Teensy 4.1 is built on the NXP i.MX RT1062, an ARM Cortex-M7 running at 600 MHz. All Instinctus tasks — sensor reads, serial comms, the PID balance loop, and CAN bus motor commands — run on this single high-speed core.
- Reads IMU and ToF sensors via I²C
- Manages serial link to Cogitator
- Runs PID balance control loop
- Drives ODrive motor commands over CAN bus
Key Specs
| SoC | NXP i.MX RT1062 |
| Core | ARM Cortex-M7 · 600 MHz |
| RAM | 1 MB (512 KB tightly-coupled + 512 KB general) |
| Flash | 8 MB onboard |
| Connectivity | USB · Ethernet · SD card |
| CAN bus | Built-in FlexCAN · 250 kbps |
02 Sensors
ICM-20948 IMU (Adafruit #4554)
I²C9-axis IMU providing accelerometer, gyroscope, and magnetometer data. Used to estimate the robot's tilt angle for the balance control loop.
- 3-axis gyroscope (±2000 dps)
- 3-axis accelerometer (±16 g)
- 3-axis magnetometer (±4900 µT)
- Read via I²C, fused angle feeds balance loop
VL53L4CX Time-of-Flight (× 2) (Adafruit #5425)
I²CDual front-facing ToF ranging sensors for obstacle detection. Mounted at different heights to detect both floor obstacles and objects at mid-body level.
- Range: up to 6 m
- 940 nm invisible laser
- Multi-target detection capability
- I²C address offset via XSHUT pins
03 Drive System
ODrive S1 (× 2)
Single-axis brushless motor controllers with integrated encoder support. Communicate with Instinctus via CAN bus using the ODrive CAN protocol.
- CAN bus · 250 kbps
- Field-oriented control (FOC)
- Velocity + torque modes
- Onboard encoder interface
- Up to 56 V / 40 A per axis
D5312S Motors (× 2)
High-torque brushless outrunner motors commonly used in drone and robotics applications. Direct drive — no gearbox.
- Stator: 53 mm diameter
- KV rating: ~170 KV
- Peak torque: ~1.5 N·m
- Direct drive · no gearbox
CAN Bus
Both ODrive S1 controllers share a single CAN bus segment wired to the Teensy 4.1's built-in FlexCAN peripheral.
- Speed: 250 kbps
- Topology: daisy-chain, 120 Ω terminator
- Protocol: ODrive ASCII CAN
- Node IDs: 0x01 (L), 0x02 (R)
04 Jetson Orin Nano (Cogitator)
Jetson Orin Nano Super 8 GB
NVIDIA's Orin Nano Super module. Provides 67 TOPS of AI performance in a compact form factor — more than sufficient for vision inference, object detection, and future LLM tasks.
| CPU | 6-core Arm Cortex-A78AE |
| GPU | 1024-core Ampere · 32 Tensor cores |
| AI Perf | 67 TOPS |
| RAM | 8 GB LPDDR5 (shared CPU/GPU) |
| Storage | NVMe SSD via M.2 |
| OS | JetPack 6.2 (Ubuntu 22.04 base) |
OAK-D Pro W Camera
Luxonis OAK-D Pro W is a wide-angle stereo depth camera with onboard DepthAI inference acceleration. Connects to the Jetson via USB-C.
- Stereo depth at up to 30 fps
- Wide FOV RGB + mono stereo pair
- Onboard MyriadX VPU for neural inference
- Active dot projector (Pro) for low-light depth
- USB 3.1 Gen 1 · DepthAI Python SDK
05 Audio
ReSpeaker 4-Mic Array
USBSeeed Studio's circular 4-microphone array, designed for far-field voice capture. Connects to the Jetson Orin Nano via USB and presents as a standard ALSA audio device. Used for wake-word detection and voice command input.
- 4 × MEMS microphones in circular layout
- Up to 5 m pickup range
- Onboard AEC, beamforming & noise suppression
- 12 programmable RGB LEDs (via USB HID)
- USB Audio Class — no driver required on Linux
Visaton FR58 + MAX98357A (Adafruit #3006)
I²SA Visaton FR 58 full-range driver (8 Ω) paired with the Adafruit MAX98357A I²S amplifier breakout. The amp decodes I²S directly from the Jetson, requiring no separate DAC. Output is mono, sufficient for voice synthesis and audio feedback.
- Speaker: Visaton FR 58, 8 Ω, 2 W rated
- Amp: MAX98357A · class D · up to 3.2 W @ 4 Ω
- I²S input — BCLK, LRCLK, DIN from Jetson GPIO
- Gain selectable via SD/MODE pin (6 / 9 / 12 / 15 dB)
- No I²C address / no driver — PCM audio only