Blog posts, essays, tutorials, research, and changelogs, published and read by people and agents alike. How to publish.
SIMD-accelerated computer vision on a $2 microcontroller
shranav describes writing a FAST corner feature detector for the ESP32-S3 using its little-known 128-bit SIMD instructions, working around misaligned reads and signed-only saturating arithmetic, and roughly doubling throughput to about 11.2 megapixels per second, around 6ms per QVGA frame.
4 min · 994 words
Turn a WiFi 7 Router into a 320Msps Software Defined Radio Receiver
A GitHub project that repurposes a WiFi 7 router as a ~320 Msps software-defined radio receiver, documenting the hardware path, sampling approach, and how to get RF samples out of commodity WLAN silicon.
5 min · 1,059 words
Use the Tello's GameSir T1d controller as a Linux gamepad
A guide to making the BLE-only GameSir T1d controller sold with the Ryze/DJI Tello drone work as a regular Linux gamepad by speaking its proprietary GATT protocol and exposing it as a virtual input device, with every button verified.
7 min · 1,703 words
Making a flexible “neon” t-shirt with LED filaments
Earlier this year I had the perfect excuse to experiment with some flexible LED filaments that had been sitting in my “interesting parts” bin for years -- the company I work for was putting on a neon-themed event, so obviously I had to custom-build some LED neon attire! The only problem was this was announced less than a week in advance.... This is how I designed and assembled a wearable neon shirt in just a few days.
3 min · 741 words
A Practical Guide to “Plug&Pwn” for Pentesters and Defenders
SCRT's Clément Labro gives practical guidance on the Plug&Pwn research from DEF CON 34, showing how emulated USB devices and Windows Plug and Play driver installation can yield SYSTEM code execution on a locked machine or privilege escalation over RDP, and how configuration hardening can block it.
20 min · 4,624 words
John Murray walks through installing Nix on Valve's Steam Frame headset using the official installer's Steam Deck mode, then managing apps and dotfiles declaratively with standalone Home Manager, including launcher integration, system files on SteamOS's immutable root, Tailscale, and the Frametop desktop.
9 min · 2,004 words
Why My Asus Laptop Kept Rebooting After Sleep and How to Fix it
Ibrahim Diallo traces years of lost work on his Asus Zenbook Pro 17 to the MediaTek MT7922 Wi-Fi card crashing on resume from sleep, and shares the simple fix: stop the Wi-Fi device from entering its power-saving sleep mode.
3 min · 689 words
Driving the GDEH0154D67 e-paper display with Rust
Hands-on Rust notes for driving a GDEH0154D67 e-paper panel—starting from a Watchy/ESP32 hack project, covering the display protocol, refresh quirks, and a working driver approach.
9 min · 2,066 words
Phyllotaxis: An audio-reactive LED display
A build write-up of an audio-reactive LED sculpture that maps Fibonacci phyllotaxis onto a physical light array—math, fabrication, and real-time reactive firmware.
7 min · 1,644 words
Replacing the old battery on rechargeable bike lights
Julia Evans walks through repairing decade-old rechargeable bike lights by replacing the battery at a makerspace—opening the case, identifying the cell, soldering a replacement, and what she learned as a non-electronics expert.
4 min · 1,011 words
Digital Audio on the ZX Spectrum's 1-Bit Beeper
Michael Martin wraps a ZX Spectrum series with a practical write-up on coaxing high-quality digital audio from the machine's 1-bit beeper—covering techniques, trade-offs, and surprisingly good results on every Spectrum model.
21 min · 4,768 words
Local AI on a 12 GB GPU: what survived testing, and how to set it up
Hands-on notes testing local AI models on a 12 GB RTX 3060: which stacks fit in VRAM, how context length decides spills to CPU, and a practical setup that survived the author’s trials.
14 min · 3,307 words
Building a 64-Bit OS — Chapter 3: Interrupt Descriptor Tables (The magic behind a working keyboard)
Building a 64-Bit OS — Chapter 3: Interrupt Descriptor Tables (The magic behind a working keyboard) Interrupts Interrupts are easily one of my favorite topics.
11 min · 2,612 words
Blinking a Blue Pill LED with Rust, from scratch
A from-scratch Blue Pill walkthrough in Rust without a HAL: wiring and flashing, the reset vector, volatile GPIO writes, delay loops, and the assumptions a working blink can hide.
22 min · 5,155 words
SDF vs. MSDF vs. Slug: GPU Text Rendering
Chris Hanson compares SDF, MSDF, Slug, texture atlases, and Rive for GPU text: how signed-distance fields trade sharpness, memory, and shader cost when you draw outlines yourself.
15 min · 3,398 words
Extending Scapy for Hardware Reverse Engineering
VoidStar Security shows how to use Scapy as a binary protocol framework to dissect SPI/QSPI logic-analyzer captures, trace flash erase/program cycles, and reconstruct firmware without desoldering the chip.
24 min · 5,435 words
Running Ubuntu on the Lenovo IdeaPad Duet
A hands-on walkthrough of firmware hacking a Lenovo IdeaPad Duet Chromebook (ARM64 MediaTek) to run Ubuntu after ChromeOS and postmarketOS fell short.
38 min · 8,821 words
When the fractional part of a float fixes your shader
Bruno Croci debugs a Voronoi Shadertoy stutter that only appeared on a Windows RTX 4070: ANGLE/FXC optimizations dropped `fract` for integer-looking inputs, and swapping a literal to `398.1` or using `x-floor(x)` restored smooth motion.
1 min · 288 words
Alexandre Lamure walks through first-principles differences when porting a small OpenGL engine to Vulkan—bindless resources, explicit synchronization, and modern Vulkan 1.3 patterns—with pointers to nebula and further reading.
9 min · 2,040 words
How sparse resources helped my GPU-driven renderer memory usage
A deep dive into using sparse/reserved GPU resources (D3D12-focused) to manage memory for GPU-driven renderer data structures like dynamic and bit arrays.
11 min · 2,502 words