AiRO / Learn by making
Circuit Studio
Build it here. Bring it home.
Try an idea, learn the connections and watch parts respond. Then request the components to build your design at home.
ARDUINO MAKER KIT
Build it. Code it. Watch it move.
Simplified differential-drive motion from motor voltage and direction; not a validated hardware dynamics prediction. Friction, tyre slip, inertia and battery life are not modelled. Electrical parts use the learning models described below.
The kit parts you can see
- Chassis + caster× 1
- Tyres / wheels× 2
- TT gear motors× 2
- Maker UNO compatible controller× 1
- L298N dual motor driver× 1
- 4 × AA battery holder× 1
- Solderless breadboard× 1
- HC-SR04 ultrasonic sensor× 1
- SG90 servo + horn× 1
- IR line sensor× 1
- Buzzer× 1
- Jumper lead set× 1
The chassis, wheels and battery holder are mechanical parts. Motors, driver, sensors, servo and buzzer are linked to the circuit. Breadboard power rails connect the electronics; the 3D leads follow the circuit connections. Buzzer operation is shown electrically, without audio.
3D models: Maker UNO © Cytron Technologies; HC-SR04, SG90, L298N, TT motor and wheel by FreeCAD-library contributors (CC BY 3.0); other parts and box by AiRO Tech.
AIRO / AI ROBOTICS LAB
See. Pick. Sort.
Python programs, six joints and a virtual camera in one workspace.
Loading RDK X5 model…
Your program
Python · CPython / WebAssemblyAiRO virtual API: robot.home(), move_xyz(), send_angles(), suction(), pick(), place(); camera.detect(). Use await.
Python loads when you run a program.
Experiment log
Model, connections and validation
Joints use the vendor’s myCobot 280 RDK X5 URDF origins and limits. The model adds a 50 mm virtual suction tool, basic table/base checks, object attachment and simplified gravity. Speed, torque, self-collision and suction force are not hardware-calibrated.
Circuit & wiring controls availability of power, USB, camera and pump connections. CSI/USB/PCIe ports represent complete cables, not pin-level electrical simulation. One station represents the experiment, not every unit in the pack.
Python executes in your browser against AiRO’s virtual robot driver. This does not emulate Pi 5, RDK BPU, Hailo or the internal motor-controller firmware. Programs do not connect to a physical robot.
Why is this a useful learning kit?
Before building hardware
These resources support the platform and learning approach. The exact AiRO kit still needs physical testing on the two prototypes; simulation is not evidence that the finished box has been tested.
Arduino Maker hardware notes
This model uses ideal supplies. Define a 5 V USB source for Maker UNO and a suitable servo supply with common ground. Check the exact L298N module: regulator/jumper configuration, voltage loss, motor stall current and heat. Final wiring and servo pulse timing need prototype tests. D2 is reserved for the onboard button and D8 for the buzzer. Motor direction uses D7/D9/D10/D11; the line sensor uses A0 and ECHO uses A1.
Maker UNO manual ↗ · Arduino servo guidance ↗ · L298 datasheet ↗
Start with a component from the library.
AiRO / CIRCUIT STUDIOESP native firmware · prototype
Run a merged flash .bin for the exact board. Firmware stays in your browser and must be reloaded after opening a saved design. Six GPIO + UART preview; PWM, I²C, camera and networking are not linked. CPU time appears in the serial monitor; it differs from circuit display time.
Uno serial monitor
AIRO / TRY · CHANGE · BUILD
Loading build…
Your program
Python · airo_kitModel and validation
Real Python uses the airo_kit virtual API, rather than the board firmware API. External devices must be connected in the circuit. Exported Python needs driver adaptation before hardware use. GPIO/Blocks and supported firmware remain available through the circuit toolbar.
Motor encoder scaling assumes1200 counts per wheel revolution; speed and friction are uncalibrated. Board geometry is a reference illustration; verify physical pinouts before wiring real hardware.
Save experiment stores code and inputs. Save the circuit separately for wiring. Audio starts only after you press Run. API guide ↗
PYTHON INVENTOR / PICO 2 W
Small desk. Big ideas.
Change the environment, turn the dial and watch your program respond.
Your program
CPython / WebAssemblyConnections and simulation scope
GP12 SDA + GP13 SCL on I2C0, 4.7 kΩ pull-ups to 3.3 V. OLED 0x3C. BME280 0x77: CS and SDO to 3.3 V. Encoder A GP14, B GP15, switch GP16; buttons A GP26 and B GP27, with virtual input pull-ups. AiRO fits headers before sale.
Real Python uses AiRO virtual drivers. The display, environment, encoder and buttons share the same 2D wiring and 3D build. This does not emulate RP2350 firmware, MicroPython, I2C signalling or Wi-Fi radio. Exported .py uses the virtual airo_pico API and needs hardware-driver adaptation before uploading to a board.
Save experiment stores code and inputs. Use Save in the circuit toolbar to store wiring; load wiring first, then the experiment. API guide & sources ↗
AiRO / Try before you build
Pick a kit. Explore the circuit.
Explore eleven kits: try the core circuits, inspect added modules in 2D and 3D, and check each kit’s support below. Arduino Maker includes the linked car; ESP32-C6/S3 can try native firmware. Added modules remain connection references; the AI Robotics Lab now has a Python-driven functional digital twin.
Simulation support by kit
2D/3D shapes and pin labels do not establish firmware or hardware validation. Added modules are connection references; they do not generate pretend sensor readings or audio.
| Kit | Available mode | Engine |
|---|---|---|
| Arduino Maker | AVR firmware | AVR8js |
| Smart Space · ESP32-C6 | Functional room activity + native GPIO prototype | CPython virtual drivers + ESP-EMU0.51.0 GPIO |
| AIoT Vision · ESP32-S3 | Functional camera rover + native GPIO prototype | CPython virtual rover + ESP-EMU0.51.0 GPIO |
| micro:bit Explorer · nRF52833 | Functional virtual kit activity | CPython virtual drivers + GPIO recipes |
| Control Lab · STM32C031 | Functional virtual kit activity | CPython virtual drivers + GPIO recipes |
| BLE Motion · nRF52840 | Functional virtual kit activity | CPython virtual drivers + GPIO recipes |
| Automation Logic · PIC16F13145 | Functional virtual kit activity | CPython virtual drivers + GPIO recipes |
| Tiny Inventions · ATtiny3227 | Functional virtual kit activity | CPython virtual drivers + GPIO recipes |
| Sound Lab · RT1062 | Functional virtual kit activity | CPython virtual drivers + GPIO recipes |
| Python Inventor · Pico 2 W | Functional Python station | CPython / Pyodide + virtual drivers |
| AI Robotics Lab | Functional digital twin | URDF kinematics + CPython / Pyodide |
ESP firmware executes in your browser without uploading to a server. The GPIO prototype does not provide timing-accurate PWM or servo simulation.
Learning models and sources
Capacitors use a 1 ms time step. The 555 behavioral model uses trigger, threshold and discharge switching for timing circuits. LEDs use a forward drop plus slope resistance, with brightness driven by current. Motors, lamps and buzzers are simple resistive loads. Noise, temperature and motor inductance are outside these models.
Uno runs an ATmega328P emulator. Other microcontroller kit starters default to a GPIO learning model with six selected pins and a represented USB-powered logic rail. Pin positions are arranged for learning, not hardware footprints. Blocks and GPIO recipes support output, input, pull-ups, repeats, conditions and delays. Optional ESP32-C6/S3 native firmware executes GPIO/UART in a worker. Other native runtimes, radio, IMU, OLED, camera and audio DSP are not emulated. Added kit modules are labelled connection previews, not working protocol models. The motor driver is a simplified one-direction switch with separate motor power.
Board pin references: micro:bit V2Pico 2 WESP32-S3 camera boardESP32-C6Nucleo-C031C6XIAO nRF52840 SensePIC16F13145 NanoATtiny3227 NanoTeensy 4.0
SPDT relays use a 70 Ω resistive coil with 3.75 V pull-in and 0.5 V release thresholds. The 5 V module uses HIGH ≥ 2 V or LOW ≤ 0.8 V triggering, a simplified driver and 0.1 Ω closed contacts. Coil inductance, contact bounce and mechanical delays are not modelled. Coil/control terminals are separate from the contacts; isolated supplies use their own negative reference. The bare relay’s five-leg breadboard layout is a teaching footprint; check the actual part pinout.
Arduino 3D Build: Uno AVR code controls the bidirectional L298N with averaged PWM. Motors use a resistive load and voltage-proportional speed estimate, with 170 mm model wheel spacing. HC-SR04 ECHO pulses follow arena distance after TRIG; SG90 responds to 500–2500 µs pulses; the line sensor reads the black track. The driver model uses a 1.2 V bridge loss and 2 Ω output resistance; real supply current, torque, temperature and mechanical loading are not validated.
KiCad export preserves pin connections, including breadboard groups. Assign matching footprints in KiCad before designing a PCB.
555: Texas Instruments NE555 datasheet. AVR8js (MIT), Blockly (Apache 2.0). KiCad format.
UNO R3 illustration by Arduino, adapted (rotation, inline colours, labels and interactive points). Source · CC BY-SA 4.0. Arduino® is a trademark of Arduino S.r.l. Circuit Studio is an independent AiRO project, not endorsed or sponsored by Arduino. Other component illustrations are original AiRO artwork. Artwork credits