Hardware Kit
AVR8 / Arduino-class
8-bit microcontrollers for ultra-low-power, deterministic control loops and simple sensing. Best for edge autonomy, safety interlocks, and dependable I/O under tight RAM budgets.
8-bit MCU
Bare-metal
Low power
Compute
8-bit @ 8-20 MHz, no FPU
Memory
Flash 16-256 KB, SRAM 1-8 KB (model-dependent)
OS/RTOS
Bare-metal / tiny scheduler
Toolchain
avr-gcc + avr-libc, avrdude
Power
3.3V or 5V, mA-level draw
Typical Boards
- Arduino Uno (ATmega328P) / Nano / Pro Mini
- Arduino Mega (ATmega2560)
- ATtiny/ATmega custom boards for ultra-low power
Toolchain + Build Profile
- Compiler: avr-gcc, avr-libc
- Programmer: avrdude (ISP / bootloader)
- Build: Makefile or CMake (cross toolchain file)
cmake .. -DTARGET=avr8
cmake --build .
Pin-Level + Electrical
- Logic level: 5V (most boards) or 3.3V (verify board)
- Interfaces: UART (TX/RX), I2C (SDA/SCL), SPI (MOSI/MISO/SCK/SS)
- Timers/PWM: limited channels; use for motor control
- ADC: 10-bit analog inputs; check reference voltage
- Current limits: per-pin and per-port limits (datasheet)
- Debug: ISP/ICSP header; UART for logs
Sensors + Peripherals
- I2C IMU (low-rate), wheel encoders on interrupt pins
- Analog sensors via ADC (potentiometers, current sense)
- Simple ranging sensors (ultrasonic, IR)
Comms + Networking
- UART radios (LoRa, XBee), I2C/SPI peripherals
- No native Wi-Fi; add external modules if needed
Real-Time + Determinism
- Deterministic loops; avoid blocking delays
- Prefer fixed-point math and static buffers
Recommended Vault Modules
Pitfalls + Mitigations
- Floating point cost; use fixed-point if possible
- Stack overflow from large local arrays
- Blocking delays break timing; use state machines
- Brownouts during motor actuation; add bulk caps
Field Checklist
- Verify voltage levels and level shifting
- Set fuses/clock and confirm UART baud
- Size buffers for worst-case paths
- Enable watchdog and fail-safe outputs