The Curious Engineer

All blogs / Retro computing

Downtown Doug Brown

downtowndougbrown.com

Thoughts from a combined Apple/Linux/Windows geek.

Retro computingElectronicsApple / classic MacReverse engineeringLinux / UnixEmbedded / microcontrollers

Posts
127 from 11 Jul 2010 to 3 Oct 2026
Posting
monthly (6 in the last year)
Kind
personal blog
Feed
https://www.downtowndougbrown.com/feed/

2026 4

  1. Altera Quartus Linux jtagd bug fixes
  2. Apple’s Performa in-store demo software from 1993
  3. Fixing an NZXT Signal 4K30 part 2: the green/pink video bug
  4. Fixing an eMachines EL1200 BIOS bug with Claude

2025 11

  1. Finding a broken trace on my old Mac with the help of its ROM diagnostics
  2. Debugging BeagleBoard USB boot with a sniffer: fixing omap_loader on modern PCs
  3. An update about the hidden Performa 550 recovery partition
  4. Finding a 27-year-old easter egg in the Power Mac G3 ROM
  5. Modifying an HDMI dummy plug’s EDID using a Raspberry Pi
  6. Please don’t ship heavy, fragile vintage computers. They will be destroyed.
  7. How I fixed the infamous Basilisk II Windows “Black Screen” bug in 2013
  8. Apple’s long-lost hidden recovery partition from 1994 has been found
  9. The gooey rubber that’s slowly ruining old hard drives
  10. The invalid 68030 instruction that accidentally allowed the Mac Classic II to successfully boot up
  11. Easy repair of a defective NZXT Signal 4K30 capture card

2024 16

  1. How webcams with focus control work (Razer Kiyo Pro repair)
  2. The capacitor that Apple soldered incorrectly at the factory
  3. Hardware repair of an Elgato HD60 S that only worked on Mac
  4. Are wireless gamepads terrible? Mario Maker TAS playback with an RP2040
  5. Fixing an Elgato HD60 S HDMI capture device with the help of Ghidra
  6. Upgrading my Chumby 8 kernel part 13: the end
  7. Fixing more cheap Altera USB Blaster clones: CPLD adventures
  8. I fixed a 6-year-old .deb installation bug in Ubuntu MATE and Xubuntu
  9. Upgrading my Chumby 8 kernel part 12: UART woes
  10. Playing 1080p H.264 video on my old 256 MB Raspberry Pi
  11. Upgrading my Chumby 8 kernel part 11: SD/CF card reader
  12. Fixing a knockoff Altera USB Blaster that never worked
  13. Upgrading my Chumby 8 kernel part 10: RTC
  14. How to fix Windows 10 KB5034441 update installation error 0x80070643
  15. Why is my CPU usage always 100%? (Upgrading my Chumby 8 kernel part 9)
  16. Upgrading my Chumby 8 kernel part 8: audio

2023 15

  1. More fun with Apple’s internal tools: creating a PDS card
  2. How Apple’s developers reflashed Mac ROMs in the ’90s
  3. Upgrading my Chumby 8 kernel part 7: touchscreen
  4. Revisiting programmable Mac ROM SIMMs in Quadras
  5. Porting my Mac ROM SIMM programmer from AVR to ARM
  6. How am I supposed to safely disable this warning on ARM GCC?
  7. How to create a Qt 5 ARM/Intel universal binary for Mac
  8. Upgrading my Chumby 8 kernel part 6: PWM backlight
  9. Building Alex Taradov’s open-source USB sniffer
  10. Upgrading my Chumby 8 kernel part 5: graphics
  11. What happened with ASUS routers this morning?
  12. Diagnosing and repairing a Brother fax/printer USB failure
  13. Upgrading my Chumby 8 kernel part 4: reboot/poweroff
  14. Customizing the startup chime on a 1999 G3 iMac
  15. Upgrading my Chumby 8 kernel part 3: Wi-Fi

2022 7

  1. Upgrading my Chumby 8 kernel part 2: Initial Linux boot
  2. Upgrading my old Chumby 8 Linux kernel part 1: U-Boot
  3. Getting ChatGPT to write a Linux kernel module for me
  4. Solving my truck’s TPMS sensor problem with the help of an RTL-SDR dongle
  5. A small update on my Windows 10 upload speed problem
  6. Why can’t Windows 10 make use of all my upstream internet bandwidth?
  7. Fun with font rendering consistency in Python

2021 4

  1. Upgrading a motherboard’s BIOS/UEFI (the hard way)
  2. How to run Ubuntu 20.04 server with only 256 MB of RAM
  3. Finding and fixing a VMware Xorg video display bug using GStreamer
  4. Tracking down a segfault that suddenly started happening

2020 4

  1. Using Apple EarPods with a Windows or Linux PC (working mic and buttons)
  2. Hacking up a fix for the broken AppleTalk kernel module in Linux 5.1 and newer
  3. Repairing a Microsoft IntelliMouse Explorer 4.0
  4. Fixing my dead Intel DX58SO motherboard

2019 2

  1. Fix: Dell Inspiron 3650 won’t boot, powers itself on and off every 5 seconds
  2. Adventures of putting 16 GB of RAM in a motherboard that doesn’t support it

2018 7

  1. USB mass storage with embedded devices: tips and quirks
  2. Connecting an RCA Viking Pro 10.1″ tablet to your computer through USB
  3. Fix: Lenovo IdeaPad Z510 unable to run system recovery
  4. Fix: Ubuntu MATE scrollbar click jumps to click position after 16.04 to 18.04 upgrade
  5. Fix: Ubuntu MATE network notification icon missing after 18.04 upgrade
  6. Fix: Ubuntu MATE 18.04 login screen is empty after upgrade from 16.04
  7. Mounting a Windows 98 computer’s SMB share in Linux

2017 6

  1. Virtualizing Mac OS X 10.4 with VMware
  2. Generating an Excel .xls file with a microcontroller
  3. Connecting an iOS device to an Ethernet network
  4. Windows 10 upgrade fails with error 0x800703ed
  5. Fix: Volume list appears empty on AppleTalk clients with netatalk 2.2.5 installed with Ubuntu 16.04
  6. Hosting Ubuntu 16.04 Desktop Live Install ISO on a PXE netboot server (BIOS and UEFI simultaneously)

2016 1

  1. Fix for USB serial port being opened by ModemManager at startup

2015 2

  1. Fixing broken Huawei H110C display
  2. Explanation of the Macintosh II/IIx power on/off circuit

2014 8

  1. Detecting parallel ports and their I/O addresses in Windows
  2. Microcontrollers: UARTs
  3. Creating Python bindings for a Qt library in Ubuntu 14.04
  4. Using a Willem programmer in Linux with Wine
  5. Automatically bringing up your CAN adapter in Ubuntu 14.04
  6. Soldering using solder paste, a dispenser, and a toaster oven
  7. Linux udev rules
  8. Automatically compiling SVN revision into a Qt program on Linux

2013 9

  1. Linux – custom serial baud rates
  2. Mac triple-boot setup (Mac OS X 10.6, Windows XP, Ubuntu 13.04)
  3. Parallel Port Tester
  4. Willem programmers with add-on parallel port cards: More compatibility notes
  5. Legacy Apple Backup file format on floppy disks
  6. Homebrew SNES 4 player multitap adapter
  7. Getting X-CTU in Wine to detect your serial ports
  8. Microcontrollers: Interrupt-safe ring buffers
  9. 8 MB Mac ROM SIMM

2012 11

  1. WordPress, lighttpd, and WP Super Cache without mod_magnet
  2. Tethering iPhone 5 over USB on Ubuntu 12.10 (ugly hack)
  3. Mac ROM SIMM programmer
  4. Controlling Linkskey LKU-UA02 from Linux and Mac OS X
  5. Power Macintosh G3 Blue and White custom startup sound
  6. Microcontrollers: GPIO/Timers/Interrupts example and LPCXpresso LPC1114 review
  7. Finding and navigating the JEDEC memory standards
  8. Atmel AT90USBKEY review and demo code
  9. Fix for PuTTY displaying â instead of quotes when connected to a Linux machine
  10. Installing Ubuntu 11.10 onto a PowerPC Mac mini G4 with netboot
  11. Antec Sonata III front panel headphone jack USB interference fix

2011 10

  1. Microcontrollers: SPI (Part 2)
  2. Freescale Kinetis KwikStik review
  3. Review of Seeed Studio Fusion PCB service
  4. Cross-compiling OpenOCD 0.5.0 for Windows 7 64-bit + FTDI’s ftd2xx library using Linux and MinGW
  5. Mac IIci custom startup chime, part II
  6. Mac IIci custom startup sound ROM hack
  7. Microcontrollers: SPI
  8. Microcontrollers: Interrupt handlers
  9. Chumby One + cross compiler + Qt
  10. Microcontrollers: Timers

2010 10

  1. Microcontrollers: Interrupts
  2. Microcontrollers: GPIO
  3. Sivava Willem EPROM programmer on Windows 7 64-bit
  4. Microcontrollers: Memory-mapped peripherals
  5. Microcontroller programming for higher-level programmers
  6. Fixing an RCA DRC8052NB DVD recorder
  7. Fixing Polaroid DRA-01601A DVD/HDD recorder
  8. Adding Windows event objects to a Qt event loop
  9. Flash Website Storage Settings
  10. The beginning