Nathan Brewer makes connected things

I follow technical questions too far.

Hardware, firmware, radio, infrastructure, native apps, and AI—usually several at once, because the boundary is where the interesting failure lives.

Not a consultancy. Not a product category. A collection of useful things that escaped the workbench.

A note about the arrangement

I do not sell engineering hours. I pull on a thread until I can hold the answer, deploy it, or explain exactly why it is still broken.

Sometimes that becomes a product. Sometimes it becomes a network. Sometimes it becomes a folder called “final-v7-actually-final.”
01 / Fielded, shipped, or otherwise real

Workbench

This is not arranged by service line. Pick a technical thread and see where it wandered. The dimmed things are unrelated—or at least less related than usual.

Running outsideDropLink solar mesh hardware

DropLink + DFTZ mesh

I wanted to open a gate over LoRa. That turned into solar nodes, custom hardware, encrypted remote commands, an iOS app, MQTT, dashboards, and a live mesh spread across the Front Range.

LoRa / Meshtastic / KiCad / Swift / MQTTGo outside ↗
Made by handCustom LoRa circuit board

Custom radios

ATmega328P, SX1276, sensor interfaces, power budgets, field repairs, and the occasional board revision caused by an inconvenient truth.

PCB / C++ / RFRev. A → ?
Reverse engineeredFine-pitch circuit board soldering

Things that speak BLE badly

Smart locks, multimeters, walking pads, HID bridges, access controllers, and the protocols their manufacturers did not document.

Swift / Kotlin / nRF52840 / STM3273 opcodes found
No cloud requiredElectronics and software workbench

Local machines with opinions

On-device Whisper, local voice synthesis, MCP tools, self-hosted coding agents, and a walking pad whose speed changes with the complexity of the task.

Python / Swift / MPS / MCPWorks on my machine
02 / Browser radio bench / CRC-valid

JS8 station

A real JS8 Normal-mode modem running in the browser. It accepts microphone or audio-file input, searches the 200–3000 Hz passband, checks the Costas arrays, resolves LDPC(174,87), rejects bad CRC-12 frames, and opens the JS8 transport payload.

DFTZ / JS8 bench / Normal 6.25 baud
loading modem12 kHz PCMCRC-12
Known-good compatibility check

Generates an official-format directed frame, turns it into a 79-tone continuous-phase signal, and decodes the audio through the same modem used for files and microphone input.

Decode a signal

macOS: set Mic Mode to Standard. Voice Isolation is designed to remove modem tones and prevented the original live tests from decoding.

Input scope / complete slot0–15 seconds
slot startCostas ACostas BCostas Cslot end
MessageWaiting for a CRC-valid frame.varicode view
Transport72 + 3 + CRC-12
Signalfrequency / SNR / dt
Booting the modem…
Decode core derived from JS8Call 3.0.3 / GPLv3 / KISS FFT browser adapterSource and license notes · not connected to or keying a radio
The previous front door is still wired

Enter the dial-up BBS

Open terminal →
03 / Unclosed loops

Open tabs

Not a roadmap. Just the things currently taking up more mental RAM than they were allocated.

01

How long can a solar repeater disappear before it becomes a sculpture?

Power modeling / recovery / weather / unreasonable optimism

02

Hardware identity that cannot be copied out of the hardware

Secure elements / device PKI / manufacturing / fleet trust

03

Making local speech models feel instant instead of merely private

Whisper / F5-TTS / model residency / Apple silicon

04

What happens when the mesh earns its own upkeep?

Community radio / incentives / smart contracts / probably trouble

05

A mega-sensor board because choosing one sensor felt arbitrary

Air / presence / force / motion / distance / color / CO₂ / LoRa

04 / Attention map

One thing becomes another

The projects are not separate. A protocol discovered in one place becomes a product somewhere else. A radio problem becomes a security problem becomes an app.

Signal
LoRaMeshtasticMQTTSatelliteBLE
Matter
KiCadSolarSTM32nRF52840Secure element
Trust
X.509mTLSSigned authDevice identity
Interface
SwiftUIvisionOSLocal AIMCPWhatever is missing
person responsibleNathan Brewer
05 / Nathan Brewer / Colorado

A generalist where depth still matters

I move between electronics, embedded software, radio networks, infrastructure, native applications, security research, and applied AI because I like seeing the whole system. The boundaries are usually where somebody else stopped looking.

Current operating modeSeveral things at once, connected eventually.
Definition of doneUseful, fielded, or understood well enough to stop.
Professional posturePlease send the actual problem, not the cleaned-up brief.
06 / Contact

Send me the messy version.