A real board. A little setup. Big possibilities.
Labs runs locally or on our HTTPS website. Your USB connection and programs stay on your computer. Desktop Chrome and Edge are recommended.
ESP32: connect directly in your browser
- Use a classic ESP32 DevKit / ESP32-WROOM board. Version 1 does not support S2, S3, C3, C6, ESP8266 or ESP32-CAM.
- Choose ESP32, click Connect board, choose your USB port, then Connect & check board.
- MicroPython v1.29.0 is included. If setup is needed, click Install MicroPython—there is no firmware download or file selection. A missing console reply can also mean the board is still booting or BOOT is held; try RESET and reconnecting first.
- Installing firmware erases the board’s files. Confirm this in the installer. Hold BOOT while connecting if needed, then release when writing begins.
- After installation, Labs restarts the board and confirms MicroPython automatically. Run tries your blocks in memory; Upload writes
main.pyand restarts the board. Stop interrupts the running program.
GPIO is 3.3 V. The blink example uses GPIO 2. Some boards need an external LED with a resistor. Use ADC1 pins 32–39 for sensors, and keep sensor voltage at or below 3.3 V.
Arduino on Windows: install once, then create
For Uno R3, classic Nano and Mega, install Thinking Robot Companion on your Windows 10/11 x64 computer. Python and the Arduino tools are included. No terminal or separate Arduino IDE installation is needed.
- Run the installer. Leave “Start quietly when I sign in” selected for automatic startup.
- Return to lab.thinkingrobot.in in Chrome or Edge. Choose your Arduino board and click Connect board.
- Click Find companion. Allow local network access if your browser asks. No token is needed.
- Plug in the board with a USB data cable, refresh USB ports, choose the port, then connect.
- Click Upload to board. The program runs on your Arduino until replaced or power is removed.
The app runs in the Windows system tray without a terminal window. Open it from the Start menu if you have quit it. Right-click the robot tray icon for help or to quit. Uninstall it through Windows Settings → Apps. A teacher or parent may need to install a USB driver for a clone board.
The companion pairs only with lab.thinkingrobot.in. Compilation and USB access happen on your computer. ESP32 connects directly through the browser and does not need this installer.
Advanced setup: Mac, Linux, or a development website
Use the Python helper below for other operating systems or a different Labs address.
- Install Python 3.10+ and Arduino CLI. Ensure
arduino-cliis on PATH. - Download the repository and open a terminal in its folder.
- Run these commands:
python -m venv .venv # Windows: .venv\Scripts\activate # macOS / Linux: source .venv/bin/activate python -m pip install -r companion/requirements.txt arduino-cli core update-index arduino-cli core install arduino:avr python companion/bridge.py --origin http://localhost:3000
For the hosted site, replace the origin with the exact HTTPS address shown in your browser (scheme and hostname only):
python companion/bridge.py --origin https://YOUR-PROJECT.vercel.app
- The helper prints a temporary token. Choose your Arduino board in Labs, click Connect, paste the token and Refresh local ports.
- Choose the correct COM or USB port, then Connect. Allow local network access if Chrome or Edge asks.
- Upload to board compiles and uploads your sketch. Choose “old bootloader” for older Nano clones if needed. Arduino runs until unplugged or replaced with a new sketch.
The helper listens only on 127.0.0.1, accepts only the origins you specify, requires its random token, and never uploads code to the cloud. Keep the terminal open while using it. Ctrl+C stops it. Tokens are kept only in page memory.
When something doesn’t connect
- Try a USB data cable; charging-only cables won’t work.
- Close Arduino IDE, Thonny, and other serial apps using the port.
- Install your board’s USB driver if no port appears (often CP210x or CH340).
- ESP32: press RESET, reconnect, or hold BOOT when the installer tries to connect.
- Arduino: open Thinking Robot Companion from the Start menu, refresh ports, and check the board model and Nano bootloader option.
- If the companion cannot be reached, allow local network access in browser site settings. A school administrator may need to enable this permission on managed computers.
Keep your inventions
The current project saves automatically in this browser. Projects → Export gives you a portable .labs.json backup. Code downloads as .py or .ino. Clearing browser data removes the local copy. No account or database setup is required.