Pinned post least I know who I was when I got up this morning, but I think I must have been changed several times since then...

Pinned post

I design software and hardware systems. I've worked on orbital launch vehicles and satellites. I can talk about "space stuff" all day. I design sub-sea ROV systems for fun.

One day hacking on gateware, the next a byte-code interpreter, the next a PCB, the next a Linux kernel driver, etc. I wrote game engines for a time.

I'm recurrently obsessed with artificial general intelligence (Goertzel-like formulations), artificial life, computational behavior (not ML).

Analog gauges with eink backgrounds are a fucking banger and I need 16 of them

Tosol is Sol 800 👀 of the #Mars2020 mission in Jezero, Mars. It's celebration time so here is some rock acrobatics in 3D 😀 !

Processed, cropped MCZ RIGHT + LEFT for cross eyed viewing
FL: 110mm
Sol: 790, RMC: 39.0926, LMST: 09:13:07
Credit: #NASA/JPL-Caltech/ASU/65dBnoise

#Perseverance #Solarocks #Space

I was reminded today that the official engineering term for the failure of metal bellows by buckling sideways under pressure is “squirm”. I think it’s one of the most fun official failure terms. Much more pleasing to say than burst or yield or fatigue or crack.

My first post, here is a Acorn Archimedes 3000 replica board that i have been working on with Rob and GrandOldIan

The motion-blurred twang of the RIME antenna deploying on the JUICE mission is art. And bless them for having engineering cameras.

Ok, one more, LittleFS uses a software CRC. It's pretty lean, however the library organization is pretty throughful in its organization and it is easy to swap in a hardware-based CRC without forking the main library code. Also recommend you take a look at that if you are trying to squeeze out every drop of performance.

Show thread

One more note, you definitely want sync() to obey the contract and write any cached blocks out to NVM. That can be a big hit. So, you might also want to stand up some sort of timer ISR or deferred work job to piece-wise flush dirty pages to NVM.

Show thread

If you are using something like SPI flash which has large blocks, but supports partial reads, I recommend supporting those partial reads in the cache layer (meaning, don't load the entire block on a cache miss)

Show thread

Caching the current whole live block improves things significantly but really you will need a random access block cache. If you are doing very basic reads and writes (like log files or something) you will probably only be hitting a small number of meta-data blocks. Caching just four blocks gets you pretty far. Caching eight will cover the most basic access patterns.

Show thread

I've been using LittleFS ( for a few embedded projects and I am fairly happy with it. It's quite straight-forward to implement a backend block device driver for it (ready, program, erase, sync). E.g. a SPI flash or SD/MCC. You can stand something basic up in probably 20-30 minutes.

However, you will want to implement your own block-level caching to get good performance out of it. It is quite "chatty" when it comes to hitting the meta-data blocks.

Glad to see international photographers doing art photos of launches. There’s so many of them working in the US but it’s been rarer to see them elsewhere. A Long March 7:

I just finished reading When The Heavens Went on Sale. I guess I partly hoped the Astra section might be a fun tale of wacky hijinks, but mostly it captured the monotony. And, really, it was monotonous, and a grind.

Working in that environment (Orion) was intensely weird in a way not captured in the book. We joked that we were actually just part of some social experiment. This week there's a single shared bathroom. Next week there are no bathrooms. It's 98F inside. Next month it's frigid.

I'm reading When the Heavens Went on Sale. There are some funny tidbits. This part is definitely true. Mission accomplished, Bill.

The web browser is 30 years old today - NCSA Mosaic 1.0 released April 22, 1993

Pictures from this weekend hike. These out of world dead trees, covered with shells, were on the floor of a dry reservoir.

Okay this is pretty unhinged, a custom PCI-Express x4 card that uses FPGA-s to trick a NAND flash memory controller into thinking the 256 DDR3 memory chips it is wired up to are actual NAND flash, and what you get as a result is a 1TB volatile "hard drive" that can saturate PCI-Express link speed. :blobcatscience:

Local #SFBayArea folks! Ok, I’m downsizing, which means acknowledging I won’t be completing some past projects. Like making my own #telescope. 🔭 Which means this 8” partially ground mirror blank in excellent condition is up for grabs, along with the grinding plate. You can take it over to the telescope makers workshop at Chabot for instructions, measurements, and help.

Locals only; requires pick up in #Berkeley.

#Astronomy #SFBayArea #Oakland #maker

Show older

private mastodon instance