Pinned post

Hi, I'm Brian. I hack on software and hardware.

I've been writing operating systems for a living for 20-odd years now: BeOS at Be, HiptopOS at Danger, Android at Android and then at Google, Fuchsia/Zircon at Google, LK here and there, various toy and experimental systems from time to time.

I grew up with the C64 in the early 80s and worry a lot about modern platforms being too closed and restrictive.

I am a fan of sci-fi and fantasy written, televised, animated, and gamed.

New winner for the top of my "weirdest hardware failures seen in the field" leaderboard

Ethernet switch ASIC sets the most significant bit on the 0x46th octet on all packets it sends.

That's it. That's the failure. Frames still have valid CRCs, but that bit is always a 1.

DID YOU KNOW? Under the hood your browser refers to itself as a “user agent,” because it is a remnant from a time when we believed the point of software was to make our lives easier, rather than to trick us into buying things we don’t need and infect us with the rage virus

I can't move to the Fediverse properly until I reproduce my famous pinned post from the birdsite, so here it is:

P.S.A. To all vintage computer and video game collectors:

Go through your collections and GET THE DAMN BATTERIES OUT!

Now! Don't wait! Seriously, put down the phone, go to your collection and take out all the batteries. Right now! Even if they look "okay" they are NOT SAFE after this much time.

Ethernet PMODs back from JLCPCB with all the surface mount assembly done, 1 week after the job was sent. Just a matter of soldering down the magjacks and 2x6 headers and they're ready to go. First one already working with LiteEth MAC on an IceSugarPro FPGA board (Lattice ECP5).

Some PCB rework. A couple of boards need this fix so I thought I'd practice.

This is a pair swap on a LPDDR3 footprint.
The BGA pads are ~0.35mm.
The wire used here is ~75um.

Dig out soldermask, and cut old connections. Wire in swapped pins, and fill with UV soldermask.

If you feel that spending on suburban infrastructure is not sustainable then I have bad news about Mars.

Ethernet PMODs continue through manufacturing... pcb fab is done... assembly in progress... and RJ45 magjacks and 0.1" headers arrived from digikey today.

PCB production chugs along. I love the little embedded videos of the process steps that JLCPCB has in their progress report popups.

I believe that it's important, especially in a hobbyist project, that pin headers be well-labelled.

I continue to be amazed how painless this is! Uploaded gerbers and BOM and placement files to JLCPCB, got a quote for 10 boards (fab and assembly, all the SMT parts) for $60, shipping $20, coupon for $9 off, pushed button and off it all goes...

Alrighty, this Ethernet PMOD is starting to look like it might be almost ready to fab...

Here's the source code that this is helping explain...
A very, very simplistic "kernel" illustrating MMU setup, starting a userspace thread, handling syscalls...

Show thread

@trevorflowers makes these sweet Tiny Memex naturally I had to have one.

I'm using it to host my Obsidian vaults, but for a little visual jazz I pull highlights down from my Readwise account and rotate them every minute.

Fun addition to the desk :)

Attempting to illustrate how the RISCV Sv32 MMU works in a simple demonstration program.

Happiness is discovering that while Mouser and Digikey still have NOT A SINGLE 10/100M Ethernet PHY available, Microchip has ~17500 LAN8720As ready to ship directly. Soon they shall have 25 fewer on hand!

Video capture of Qemu running a bare metal RISCV RV32IM preemptive multitasking demo.

Show older – a Fediverse instance for & by the Chaos community