ATLAS Update: I2C Topology Solved, PCBs in Design
Quick update on ATLAS progress.
The I2C Clock Stretching Fix
Finally solved the bus contention issue. The SCD41 stretches the clock for up to 5 seconds during CO2 measurement, which was freezing everything else.
The solution is two separate I2C buses:
Bus 1 (Environmental): TCA9548A 8-channel mux
- Ch0: SCD41 (CO2, temp, humidity)
- Ch1: SGP41 (VOC, NOx)
- Ch2: BMP581 (pressure)
- Ch3: TSL2591 (light, UV/IR)
- Ch4: ATtiny85 + Pocket Geiger Type 5 (radiation)
- Ch5: JST expansion
The mux isolates each sensor. SCD41 can hold its channel hostage while I poll the others freely.
Bus 2 (Navigation): TCA4307 hot-swap buffer
- BNO085 (9-DOF IMU)
- NEO-M9N (GPS)
- Hot-swap port for Water Module
The buffer protects the external port so the water probe can connect/disconnect in the field without crashing the bus.
I2S (Audio): SPH0645LM4H MEMS mic on its own bus.
Three Custom PCBs
This has grown beyond breadboard territory. Three boards in design:
- MCU Board: Dual Pico 2, power management, RTC with supercap, SD card, audio amp
- Sensor Board: Both I2C buses, mux, buffer, all sensors, expansion ports
- Keypad Board: Six NKK tactile switches
Dual Pico 2 Architecture
Two RP2350 processors, each with a dedicated job:
Main Pico: Sensor polling, display, SD logging, keypad input, alert logic, UART TX to speech processor.
Speech Pico: Talkie synthesis, audio amp control, UART RX. Runs the voice alert queue.
Why two? Speech synthesis is blocking. While Talkie is generating audio, nothing else runs. Splitting it means the main system never stops monitoring while ATLAS is announcing "STORM APPROACHING" in that robotic voice.
RTC Addition
Added a DS3231 real-time clock with supercap backup. Timestamps need to survive power cycles for logging to make sense. The supercap charges when the device is on and keeps the clock running for weeks when it's off. No coin cell to leak or replace.
Water Probe
Designing an external water quality probe that connects via the hot-swap I2C port. Three sensors in a single stainless steel tube:
- TDS: Total dissolved solids, catches minerals and contamination your filter can't remove
- ORP: Oxidation-reduction potential, detects biological activity and decay
- Temperature: For compensation and general data
All three feed into an ADS1115 16-bit ADC inside the probe handle. One I2C address, one cable, clips to the case when not in use.
The goal isn't lab-grade water analysis. It answers one question: is this water source worth filtering, or should I find another? Dip, wait 3 seconds, ATLAS tells you.
Building a Team
I brought on Yasir Ahmad as a contract PCB designer to handle layout. I'm providing flowcharts, BOMs, and overview docs. He's delivering KiCad source, Gerbers, BOM, and pick-and-place files for all three boards.
PCBWay looks to be sponsoring the initial v1 board fabrication.
Timeline is about 6-8 weeks for design, then off to fab. Should have assembled boards in hand within four months.
More updates when schematics are ready for review.
Apollo Timbers
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.