Christopher

269 Followers
332 Following
436 Posts
Electron relocation specialist. All circuits are busy! 📞
📰https://unpack.debug.su
💾https://github.com/edgetriggered
☁️https://bsky.app/profile/libm.so

so!! i am excited!!! to have finally finished the complete reimplementation of the #GlasgowInterfaceExplorer memory-25x applet for managing SPI NOR flashes. it is called memory-25q and it took an enormous amount of effort, because i have decided to Build It Properly

want to jump to the docs (there are a lot of docs, including on the fundamentals of (Q)SPI flashes) or read the code? here we go:

now, why did i do that? two reasons. memory-25x is one of the first applets i made, ~7 years ago, and i had no idea what kind of UI i should be building (yet). to make it worse, i thought that SPI NOR flashes were "easy", you could "just send a few bytes and that's basically it".

nothing could be further from truth. first off, SPI NOR flashes don't really exist—there is no spec, no standard organization that can say "no, your thing is not compliant", no order to any of this. every vendor does whatever they want, and then every other year JEDEC writes down all of the unhinged shit they did. here is the list of six incompatible methods to turn a single bit on or off, as a warmup

second, SPI flashes have an absolutely absurd diversity of framings. you cannot even express it without building a meta-framework for abstracting over all the ways people have come up to squeeze 8 bits into 2 or 4 wires. then on top of it you have to manage a bunch of global state that affects framing in subtle or sometimes really fundamental ways, without having any way to find out that you've made an error besides "you compare the actual data with the expected data (or its checksum) and it is not equal"

anyway, the new applet should be excellent at any daily task and at least okay at >90% of the exotic ones. also it's easily generalized for the (completely incompatible on the wire) QSPI NAND 25N series, octal or DTR variants, etc

applet.memory.25q: new applet by whitequark · Pull Request #1130 · GlasgowEmbedded/glasgow

This is a complete functional replacement for the memory-25q applet and it obsoletes and deprecates the latter. To do: figure out why 1-2-2 and 1-4-4 modes are broken not broken, just crosstalk ...

GitHub

ssh is an obscure but widely-deployed command. It stands for Secure Snake Home and was made in the 90s to securely play snake online

I made a massively multiplayer backend for it with support for thousands of concurrent snake players

ssh snakes.run to join!

i built an entire x86 CPU emulator in CSS (no javascript)

you can write programs in C, compile them to x86 machine code with GCC, and run them inside CSS

https://lyra.horse/x86css/

Pwndbg 2026.02.18 is out! Enhance your GDB or LLDB experience!

We visualize branches in nearpc, synchronize your decompiler (IDA/Binja/Ghidra) via decomp2dbg, annotate stack variabless from debug info or decompiler, support new Linux kernel debugging commands - for tracing SLUB allocs/frees or dumping tasks information.

See what's changed in: https://github.com/pwndbg/pwndbg/releases/tag/2026.02.18

Want Pwndbg to keep moving fast, or, having us give a talk about it? Sponsor us: https://github.com/sponsors/pwndbg/

#gdb #lldb #pwndbg #pwn #ctf #reverseengineering

Big step forward for the #AMSAT_UK Mode Dynamic Transponder (MDT) Successive Interference Cancellation (SIC) design from @OpenResearchIns

https://github.com/OpenResearchInstitute/Mode-Dynamic-Transponder

Polyphase channelizer for digging out weak signals on 70cm from space. We'll use the same design to make a communications channelizer for #Haifuraiya.

GitHub - OpenResearchInstitute/Mode-Dynamic-Transponder: Work done in collaboration with AMSAT-UK for the Mode Dynamic Transponder project.

Work done in collaboration with AMSAT-UK for the Mode Dynamic Transponder project. - GitHub - OpenResearchInstitute/Mode-Dynamic-Transponder: Work done in collaboration with AMSAT-UK for the Mode ...

GitHub

The Stunning Efficiency and Beauty of the Polyphase Channelizer

https://tomverbeure.github.io/2026/02/16/Polyphase-Channelizer.html

coming out of my burnout hibernation and publishing the blogpost on the small STM32G431 tv transmitter thing.

https://slyka.net/blog/2026/tinyvision/

ok, now back to being curled up on the sofa.

#electronics

"Animated Bokeh" has been on my whiteboard for a long time, and this is the result.

I thought it would just be for cheesy novelty effects, but it also does lightfield manipulation that was cooler than I expected.

https://www.youtube.com/watch?v=Kg_2MAgS_pE

Digital Iris

YouTube

ok, I think I'm done with this project?

it now plays conway's game of life and creepy noises, all from a single STM32G431 MCU with minimal external components, which is really all you can want from some lowfi analogue TV stuff.

In the process of making the audio work I ended up changing from channel 2 to channel 3 to get rid of the interference from the 48MHz clock I use for audio, which also means I'm running the CPU faster and get a little bit more processing time. Number of external components is now 4 resistors for mixing the baseband video signal and 5.5MHz audio carrier. Unfortunately going to the higher frequency also meant losing some signal quality, since I'm operating the internal opamp even more out of spec. Or maybe I'm just unlucky and there is more interference on that frequency here.

just one more USB port bro. i promise bro just one more port and we'll plug all the dongles bro. just one more port. please just one more bro. one more port and we can fit all the peripherals bro. bro c'mon just one more port. bro bro please just one more