Hardware Lab
Talk to real hardware from your browser — Arduino, ESP32, micro:bit, GPS modules, MIDI keyboards, gamepads and USB devices. Serial monitor, live plotter and CSV logger with nothing to install.
How to Use
- Pick how your device connects: USB serial (Arduino, ESP32, Pico, GPS, CNC), Bluetooth LE (micro:bit, heart-rate straps), MIDI, a gamepad, or raw USB/HID.
- Set the baud rate if you are using serial — 9600 and 115200 cover most boards. Then press Connect and choose your device in the browser prompt.
- The Console shows everything the device sends. If it prints numbers, the Plotter graphs them automatically — no configuration needed.
- Numbers are picked up from plain CSV ("1.2,3.4"), labelled pairs ("temp:21.5, humidity:40") or GPS NMEA sentences.
- Press Record to capture samples, then export them as CSV and drop that straight into the Data Regression Tool or the Probability & Statistics Lab.
- No hardware to hand? Choose Simulator and pick a synthetic instrument — everything works exactly the same way.
What the browser can reach
About the Hardware Lab
Almost every tool on this site works on numbers you type in. This one works on numbers a physical device sends you. Modern Chromium browsers can open a USB serial port, pair with a Bluetooth LE sensor, listen to a MIDI keyboard or read a USB device’s descriptors — directly, with no installer, no driver package and no administrator rights. That last part matters more than it sounds: school and work machines are usually locked down, and a Chromebook cannot install the Arduino IDE at all, which leaves a lot of electronics and robotics classes stuck. A browser tab does not have that problem.
How it works
Choose how your device connects, press Connect, and pick it from the browser’s own device prompt — the page never sees your hardware until you select it. Everything the device sends appears in the console, and any numbers in that stream are graphed automatically, whether they arrive as bare CSV, labelled pairs like temp:21.5, or GPS NMEA sentences. Record a run and export it as CSV, then carry it into the regression and statistics tools to finish the analysis. If you have no hardware in front of you, the built-in simulator produces realistic instruments so you can try the whole workflow anyway.
Want the deeper story? The Knowledge Base explains the ideas behind the tools in more detail.
Frequently Asked Questions
Do I need to install drivers or an IDE?
No. This runs entirely in the browser using the Web Serial API, so there is nothing to install and no admin rights needed — which is the whole point on a locked-down school or work laptop where the Arduino IDE cannot be installed. Most modern boards (genuine Arduino, ESP32 dev boards, Raspberry Pi Pico, micro:bit) are recognised straight away. Some very cheap clones using CH340 or CP2102 USB-serial chips still need that chip's driver installed at the operating-system level on Windows; on a Chromebook they generally just work.
Why does this only work in Chrome and Edge?
Because Mozilla and Apple have deliberately chosen not to implement these APIs. Firefox's official standards position lists Web Serial, WebUSB, WebHID and Web Bluetooth as harmful, and Safari has declined them too. Their reasoning is genuine: USB and serial devices were designed on the assumption that only trusted software on your own machine would ever talk to them, so letting any website reach them exposes device firmware to a place it was never designed to be reachable from — and the exact set of devices you own is a strong fingerprint. Google's counter-argument is that access is gated behind a secure connection, a deliberate click, and a picker where you choose one specific device, so no site can quietly enumerate your hardware. Both positions are reasonable, and it is an honest open disagreement about how far the web should reach into your machine rather than a bug or an oversight. This tool works in Chrome, Edge, Opera and ChromeOS; in Firefox and Safari the Simulator still works fully.
Can a website really read my devices without me knowing?
No. Every transport here requires you to click Connect and then pick a specific device from a browser-controlled prompt that this page cannot see, script or bypass. Nothing is listed, opened or read until you choose it, the permission applies to that one device, and you can revoke it from the padlock icon in the address bar. It also only works over an encrypted connection.
What can I actually plug in?
Over USB serial: Arduino (Uno, Nano, Mega, Leonardo), ESP32 and ESP8266, Raspberry Pi Pico, STM32 boards, GPS modules, GRBL CNC controllers, Marlin 3D printers, digital scales, LoRa modules and most USB-to-TTL adapters. Over Bluetooth LE: BBC micro:bit, Adafruit Bluefruit, heart-rate monitors, battery and environmental sensors, and anything using the Nordic UART service. Also MIDI keyboards and controllers, game controllers, and USB/HID devices for identification and raw input reports.
How does the plotter know what to graph?
It reads whatever your device prints and looks for numbers. 1.2,3.4,5.6 becomes three channels. temp:21.5, humidity:40 becomes two named series. A single number becomes one series. GPS NMEA sentences are decoded into latitude, longitude, altitude, speed and satellite count. If a line has no numbers it just appears in the console. You do not have to change your sketch or configure anything.
Is my data sent anywhere?
No. Everything — the serial stream, the graphs, the recording and the CSV export — happens inside your browser tab. Nothing is uploaded, and the page works offline once loaded.
Why can I not open the port?
Almost always because something else already has it. The Arduino IDE's own serial monitor, PlatformIO, a terminal program or a previous tab holds the port exclusively — close it and try again. Unplugging and replugging the board also clears a stuck port.
Common Use Cases
Arduino on a Chromebook
School laptops cannot install the Arduino IDE. This gives students a working serial monitor and plotter with nothing to install and no admin rights.
Live sensor graphs
Watch temperature, light, distance or accelerometer readings plot in real time as you change them, straight from a print statement in your sketch.
Capture data for a lab report
Record a run, export the CSV, then fit a curve to it in the Data Regression Tool and analyse it in the Statistics Lab — a full experiment workflow in the browser.
Debugging a stubborn board
Check whether a board is alive and talking at all, at any baud rate, without setting up a toolchain on an unfamiliar machine.
micro:bit over Bluetooth
Read accelerometer and temperature data from a BBC micro:bit wirelessly, or send text to it over the Nordic UART service.
MIDI and controller testing
See exactly what notes, control-change values and axis movements a keyboard or gamepad is sending, and plot a knob or joystick as a live graph.
Last updated: