Project 07 · Build note
Point-to-Point Laser Communication System
Send messages with nothing but light: a 4-bit laser blink code between two stations — 8 of 10 end-to-end trials received correctly.
A class project from early in my college career — ME 210, BU’s Introduction to Engineering Design, Spring 2023: four of us, about three months, and about $50–75 of our own money on components beyond parts we could get at school. The transmitter has a laser, the receiver a light sensor; blinks encode a message, and the receiver decodes and displays it. The use case: a warehouse-style setting where anything else is slow or unreliable — there, the link needs to be 100% infallible. I wrote the transmitter code and the encoding protocol in the Arduino IDE, plus part of the receiver code, which needed significantly less; the two housings I co-built, and two teammates split the electronics, the bearing, and the base between them.
The encoding: four bits, sixteen messages
Morse code was the starting idea; we dropped it for fixed-length blinks.
We decided on four blinks of light — each one there or not, four bits, sixteen possible messages.
Sixteen covered our 10-message requirement with margin; both stations share one lookup table of blink meanings, and each blink runs 50 ms — quick messages were the point of the system. The messages themselves were preset phrases — punch a three-digit code on the keypad to call one up, then hit send.
Alignment before transmission
The laser had a very narrow field of view, so we had to be very accurate with it — that drove the whole flow. The transmitter is two boxes joined by a bearing so the top swivels over the base, with handles for aiming. Press a key to align, the laser comes on, and once the green light on the receiver confirms the beam is landing, any key on the transmitter confirms it before message bits fly. The receiver itself only ever waits for one of two things — alignment first, then the message — and after each message it drops back to waiting for alignment.
The stations were scrounged and cut: a laser-cut base with interlocking dovetail intersections, a top enclosure repurposed from another project, and a keypad and an LCD bought for message entry and readout.
Results: 8 of 10 messages delivered
Ten end-to-end trials at around 20 to 30 feet, each from everything powered off — power on, align, confirm, key in the message code, send, check the far screen. Eight of the ten messages arrived intact — and a warehouse link that drops two in ten isn’t a link, because the use case demands 100%. We never diagnosed the two failures at the time; my read now is alignment drift — the swivel had no lock, so the aim could wander while you worked the keypad. Which is why the first fix I’d make is a mechanical lock on the rotation — unlock, align, lock — and the second is a slower clock, 100 ms bits instead of 50, a delay virtually unnoticeable here that buys margin against misread bits, the other failure mode we flagged going in.
| Requirement | Target | Achieved | Verified by |
|---|---|---|---|
| Two devices — transmitter and receiver | 2 | 2 built | 10 trials |
| Distinct messages using only light | 10 | 16 encodable | encoding design; trials |
| Reliable enough for the warehouse | 100% | not met — 8/10 (80%) | 10 trials |
One more thing this project taught me had nothing to do with lasers. Partway through, one teammate had gone quiet and delivered nothing; instead of escalating, I offered support first — and they re-engaged, without much of a fallout.