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.

Tool Electronics Updated Sep 20, 2026
How to Use
  1. 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.
  2. 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.
  3. The Console shows everything the device sends. If it prints numbers, the Plotter graphs them automatically — no configuration needed.
  4. Numbers are picked up from plain CSV ("1.2,3.4"), labelled pairs ("temp:21.5, humidity:40") or GPS NMEA sentences.
  5. Press Record to capture samples, then export them as CSV and drop that straight into the Data Regression Tool or the Probability & Statistics Lab.
  6. No hardware to hand? Choose Simulator and pick a synthetic instrument — everything works exactly the same way.
Not connected.
0 samples

What the browser can reach

USB Serial
Arduino, ESP32, Pico, GPS, GRBL
Bluetooth LE
micro:bit, heart rate, sensors
MIDI
Notes, CC, pitch bend
Install needed
None — no drivers, no admin
Browsers
Chrome, Edge, Opera, ChromeOS
Your data
Stays in the tab

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: