🔗 I2C-Bridge: Multi-Processor Data Exchange

A high-reliability communication framework bridging the RP2040 (Master) and ATmega328P (Slave). This project implements a hardware-level dual-bus architecture designed to decouple high-bandwidth display data from time-critical sensor telemetry.

SCL Synchronization: By enforcing a strict Controller/Target relationship, this system eliminates the SCL clock-stretching collisions often found in multi-master configurations, ensuring 100% frame delivery across 3.3V/5V logic boundaries.
Get Firmware
MicroPython & C++ Source
Dual-Controller I2C Hardware Architecture Dual-Controller Bus Architecture

Engineering Logic: Dual-Bus Isolation

The system utilizes the RP2040's dual hardware I2C controllers to optimize the Bit-Rate and prevent bus congestion:

Technical Specifications

SubsystemEngineering Specification
Master MicrocontrollerRaspberry Pi Pico (Dual-Core ARM Cortex-M0+)
Slave MicrocontrollerArduino Nano (ATmega328P)
Communication ProtocolSynchronous Serial (I2C) @ 100/400 kHz
Interrupt RoutineISR-based Wire.onRequest() (Arduino-side)
Addressing Scheme7-bit (0x0A Slave / 0x3C Primary OLED)

Interrupt Safety & Buffer Management

To prevent Race Conditions, display updates are strictly prohibited within the Slave's interrupt context. This architecture centralizes the UI rendering on the Pico Master, ensuring the Arduino remains dedicated to high-precision sensor polling.

Asynchronous Telemetry Loop

The Arduino operates a local asynchronous polling loop for the MaxSonar sensor. It populates a data buffer that is served instantly upon a Master request, reducing the "Wait-State" of the main robot control loop.