OS-K2601/ LoRa 868 MHz/ Region EU_868/ Open Hardware Link Active
Doomsday Comms System

D.C.S

Two devices. No network. Just radio.

A pocket LoRa messenger you build and flash yourself — it talks to its twin over kilometres of open air, with zero cell towers, SIMs, or accounts in between.

nRF52840 MCU SX1262 LoRa radio 128×64 LCD 500 mAh LiPo
In collaboration with— our PCB fabrication partner
The D.C.S LoRa messenger in hand, showing a message on its lit screen
The idea

Your phone is useless the moment the towers are.
The D.C.S isn't. It carries a short text straight to its twin on a licence-free 868 MHz band — a signal engineered to travel far on almost no power.

Built on the same LoRa tech that reaches sensors kilometres away, it's a two-unit pager pair: one for you, one for whoever you can't afford to lose contact with. Assemble it, flash it, pick its personality, and it just works — silently, off the grid.

No towers, no SIM

Direct radio between two units. Nothing to sign up for, nothing to shut off.

Days on a charge

Deep-sleep at ~1–3 µA. It listens all day and still lasts, waking only for a packet.

Yours to modify

Every file is open — schematic, board, firmware, enclosure. Flash it three ways or write your own.

Two D.C.S units side by side with lit screens
Inside the unit

Tap a block to see what it does

Everything hangs off one nRF52840. These are the real nets from the KiCad project — the same pin map the firmware is built against.

nRF52840E73 · BLE + µC SX1262LoRa 868 MHz ST7565 LCD128×64 mono DRV2605LRA haptics Piezo4 kHz buzzer Thumbwheelroll · roll · press Battery + ADC500 mAh · VBAT MCP73833USB-C charge SWD / RTTflash + console
The link

How one press crosses the air

Press SEND and the message is a tiny framed packet — a magic byte, an animation id, then the text — thrown onto the band with a deliberately long preamble so a sleeping twin can't miss it.

UNIT A press SEND C5 anim text… packet · SF9 / BW125 868 MHz · ~1 s preamble UNIT B buzz + chime
Long preamble. ~250 symbols (~1 s) so a duty-cycled receiver sniffing the band only occasionally still catches every packet.
Point-to-point. No mesh needed for a pair — two units, one magic byte, straight there. (It speaks Meshtastic too.)
Sips power. The radio wakes, listens for a preamble, sleeps again. A real packet fires the IRQ and wakes the screen.
Three personalities

One board, whichever firmware you flash

The same PlatformIO project builds three ways. Build your favourite — or fork it and write your own.

env: messenger

Love Notes

The signature build: scroll a preset, press, and both screens play a matching animation with a haptic buzz and chime.

  • Pulsing hearts, floaters, banners, stars
  • Preset messages, sent in one press
  • The playful default
env: plain

Plain

No animations, no fuss. Terse off-grid status pings with signal strength — the survival build.

  • “On my way”, “All clear”, “SOS”…
  • Shows RSSI on receive
  • Maximum battery, minimum noise
env: bringup

Recon

A menu-driven tester that exercises every peripheral — the firmware used to prove the hardware before anything else runs.

  • Display, wheel, haptics, buzzer, radio
  • Live diagnostics over the RTT console
  • Where every build starts
Datasheet

The numbers

MCUnRF52840Ebyte E73 · 1 MB flash / 256 KB RAM · BLE 5
RadioSemtech SX1262Ai-Thinker Ra-01SH · u.FL → SMA
Band868 MHz · EU_868licence-free ISM · SF9 / BW125
Display128 × 64 monoST7565 COG LCD · PWM backlight
Input3-way thumbwheelroll · roll · press (+ wake / power)
FeedbackLRA + piezoDRV2605 haptics · 4 kHz buzzer
Power500 mAh 1S LiPoUSB-C charge · MCP73833
Sleep~1–3 µAnRF System OFF · wake on wheel press
Board4-layer PCBKiCad · SW3 rev-A bodge noted
FirmwareArduino / PlatformIObringup · messenger · plain · Meshtastic-ready
Supply drop

Download everything

All open. Fab the board, build the firmware, print the case — or read it to learn how it's done. No account, no purchase.

D.C.S Gerber fabrication view

Fab-ready Gerbers

.zip · ~215 KB

The production package straight from KiCad — copper, mask, silk, paste, drill. Send it to a fab as-is.

Fab it at JLCPCB, our fab partner — drag the zip in, order two.
D.C.S PCB layout in KiCad

Full KiCad project

.kicad_sch · .kicad_pcb

The editable schematic and 4-layer board. Change the pinout, add a PA, respin it — it's yours.

You need: KiCad 8+ (free). Open, edit, re-plot.
D.C.S firmware source code

Firmware source

PlatformIO · 3 builds

The whole firmware tree — bringup, messenger and plain — plus the board variant and pin map. Build and flash over SWD.

You need: VS Code + PlatformIO and an ST-Link V2.
3D render of the D.C.S enclosure

Enclosure + BOM

.stl · .step · parts list

Printable top and bottom shells, a STEP model for CAD, and the bill of materials so you can source every part.

You need: a 3D printer (or a print service) and a soldering iron.
Get everything on GitHub

One repository — board, firmware, enclosure and docs, all in one place. Clone it, or grab the latest release.

Fabrication partner

Built with JLCPCB

The D.C.S is a collaboration with JLCPCB. They turn the Gerbers above into real 4-layer boards — the exact files, fabbed to spec at prototype prices. It's how a two-unit run like this goes from a KiCad project to something in your pocket.

  • Prototype PCBs turned around in days
  • Assembly (PCBA) if you'd rather not solder
  • 4-layer, multi-finish — the spec this board needs
  • The same process that made the D.C.S real
Start your build at JLCPCB

Our link supports MSD's open-source work — at no extra cost to you.

JLCPCB website - PCB manufacturing and assembly
Field manual

Build one in five moves

Roughly the real order. None of it is exotic — a fab order, a parts order, an afternoon with an iron.

01

Fab the board

Upload the Gerbers to JLCPCB. Order two — you need a pair.

02

Source parts

Work down the BOM: nRF52840 module, SX1262, LCD, wheel, battery.

03

Assemble

Solder it up and print the two shells. Fit the u.FL antenna.

04

Flash

SoftDevice once over SWD, then upload the firmware you chose.

05

Pair & go

Power both units. Same band, same magic byte — press SEND.

Before you transmit

Three rules from the hardware notes

Antenna first

Never transmit without the antenna fitted. TXing into an open u.FL can damage the SX1262's output stage.

Stay legal on-band

868 MHz is licence-free in the EU under ISM duty-cycle limits. Set the region to match where you are before you key up.

Not a 999 replacement

A hobby radio link, not certified life-safety gear. Fun, resilient and off-grid — but keep a real emergency plan too.

D.C.S — Doomsday Comms System · OS-K2601 · by MSD Open hardware & source · built by Mixed Signal Development