protocol: v02header: 8 bytesframing: cobsintegrity: crc8release: v1.0.0license: mit
open hardware protocolMITno cloud account

CONDUYT

Your circuit board becomes an appliance. Plug it in and drive it from a script, the way you drive a printer.

Flash the firmware once. After that the board just listens, and everything clever stays on your computer, in the language you already use.

43 44 02 11 00 0002 XX 0D 01
Microcontroller
A computer on a chip, a few dollars. Arduino, ESP32, Pico.
Firmware
The program on that chip. You load CONDUYT once and leave it.
Transport
What carries the messages. USB, Bluetooth, WiFi.
Packet
One message. Ten bytes to set a pin.
01

What that changes

same task, both ways

The same afternoon of work, before and after.

the usual way
  1. Write C++ for the boardevery change
  2. Compile10 to 60 s
  3. Flash over USB and wait10 to 30 s
  4. Squint at a serial monitor
  5. Change one number, back to step one
with conduyt
  1. Flash the CONDUYT firmwareonce, ever
  2. Write a normal script in JS, Python, Go, Rust or Swift
  3. Run it. The board reacts as the line executesinstant
  4. Print values, set breakpoints, use a real debugger
  5. Change one number, run againinstant
the point

Not because the board got faster. Because you stopped rebuilding its program every time you had a thought.

03

Why it is built this way

four decisions
01

Flash once, then forget it

The firmware never changes again. Every experiment is a script edit and a rerun.

02

The board introduces itself

One dashboard drives a 20 pin Arduino and a 34 pin ESP32, unchanged.

03

Any wire, same code

USB, Bluetooth, WiFi. Byte for byte identical messages. Swap one line, keep the rest.

04

Small enough for a cheap chip

Ten checksummed bytes to set a pin. No text to parse, no memory to allocate.

04

What goes over the wire

turn on pin 13

The entire message for turning on an LED.

magic43 44this is a CONDUYT packet
ver02protocol v2
type11set a pin
seq00message number
len00 022 bytes follow
crcXXarrived intact
payload0D 01pin 13, value on

43 44 spells CD in hex. Every packet starts with it. So does the logo.

why not JSON

The chip has kilobytes of memory. Parsing {"pin":13,"value":1} costs more than the actual work.

Fixed positions mean byte three says everything. The checksum catches a bad cable before it drives a motor wrong.

pick your wire
SerialUSB cable
BLEacross the room
MQTTacross the internet
WebSocketfrom a web app
TCPon your network
WebSerialfrom a browser tab
05

The board introduces itself

first packet after connect

On connect the board describes itself. Your program builds its interface from that.

a sample HELLO_RESP
firmware
CONDUYT-ESP32 v1.0.0
pins
34 / 16 dimmable, 8 analog in
modules compiled in
servoneopixeldhtoled
named datastreams
temperature degC / lux lx
the app builds itself from that
const caps = device.capabilities

// list the pins this board really has
pinSelect.innerHTML = caps.pins
  .map(p => `<option>${p.pin}</option>`).join('')

// hide the servo controls if this board has none
servoCard.hidden = !caps.modules.find(m => m.name === 'servo')

Write the page once. A bare Arduino shows 20 pins. A loaded ESP32 grows servo and pixel controls on its own.

06

What people build with it

a few shapes
Sensor dashboardsCharted live in a browser tab, nothing installed.
Robot controlArms and wheels from Python, beside your vision code.
LED installationsPixel patterns in JavaScript, edited live.
Classroom labsPython on day one, no C++ toolchain week.
Test rigsA Go service flipping relays and reading voltages.
Home automationMQTT to a server you own, no vendor cloud.
07

How it compares

prior art
projectyearwhere it stopsconduyt
Firmata2006MIDI encoding, USB cable onlybinary packets, any transport
Johnny-Five2012Node only, built on Firmatafive SDKs, native protocol
Blynk 2.02021needs their cloudruns on your own machine
CircuitPython2017a language on the chip, not a link to your computeryour computer drives, board obeys
08

One protocol, six libraries

same bytes everywhere

One firmware library for the board. Five host SDKs for your computer.

09

Reasonable questions

Do I need to know C++?

No. Flash the prebuilt firmware once, then write only in the language you already use. C++ comes up only if you add a new hardware feature.

What happens if my computer disconnects?

The board holds its last state and waits. Anything that must survive alone belongs in the firmware.

Is it fast enough for real work?

Ten bytes, under a millisecond over USB. Fine for dashboards, robots, lighting, test rigs. Microsecond control loops belong on the chip either way.

Does anything phone home?

No account, no server, no telemetry. Over USB it is a cable between two devices. MQTT and WebSocket point at a broker you run.

Which boards work?

Eighteen boards ship prebuilt firmware: Uno R3 and R4, Mega, Nano, Leonardo, the ESP32 family, ESP8266, Pico, Teensy 3.6 through 4.1 and the nRF52840 DK. Anything else the Arduino toolchain targets can be built from source. Transport options vary by board.

Swap the wire.
Keep the code.

Flash once. Then drive the board from a browser tab, a Python script or a Go service.