Diag| Considering item [tag:pappp.net,2025-07-04:/2396489] "Nvidia won, we all lost"
Diag| Considering item [tag:pappp.net,2025-07-04:/2396473] "Ubuntu 25.10 to drop support for effectively all existing RISC-V hardware, focuses on future RISC-V hardware instead"
Diag| Considering item [tag:pappp.net,2025-07-03:/2396128] "AI note takers are flooding Zoom calls as workers opt to skip meetings"
Diag| Considering item [tag:pappp.net,2025-07-03:/2396110] "Surveillance Used by a Drug Cartel"
Diag| Considering item [tag:pappp.net,2025-07-02:/2395852] "Why The Latest Linux Kernel Won’t Run On Your 486 And 586 Anymore"
Diag| Considering item [tag:pappp.net,2025-07-01:/2395685] "Donkey Kong Country 2 and open bus"
Diag| Considering item [tag:pappp.net,2025-06-29:/2395064] "Wayback: experimental layer to run X desktop environments on Wayland"
Diag| Considering item [tag:pappp.net,2025-06-29:/2395059] "“I want a good parallel computer”"
Diag| Considering item [tag:pappp.net,2025-06-27:/2394461] "Apple Just Patented an Image Sensor with 20 Stops of Dynamic Range"
Diag| Considering item [tag:pappp.net,2025-06-26:/2394371] "Microsoft is moving antivirus providers out of the Windows kernel"
Diag| Considering item [tag:pappp.net,2025-06-26:/2394230] "Snow - Classic Macintosh emulator"
Diag| Considering item [tag:pappp.net,2025-06-25:/2394054] "Games run faster on SteamOS than Windows 11, Ars testing finds"
Diag| Considering item [tag:pappp.net,2025-06-24:/2393676] "Microsoft extends free Windows 10 security updates into 2026"
Diag| Considering item [tag:pappp.net,2025-06-24:/2393476] "Magic Lantern Software for Canon Cameras Is Back"
Diag| Considering item [tag:pappp.net,2025-06-18:/2392274] "Senate passes GENIUS Act—criticized as gifting Trump ample opportunity to grift"
Diag| Considering item [tag:pappp.net,2025-06-18:/2392074] "Scientists once hoarded pre-nuclear steel; now we’re hoarding pre-AI content"
Diag| Considering item [tag:pappp.net,2025-06-18:/2392100] "Keeping Snap and Crackle under Control with Prunt Printer Firmware"
Diag| Considering item [tag:pappp.net,2025-06-17:/2391828] "KiCad and Wayland Support"
Diag| Considering item [tag:pappp.net,2025-06-16:/2391596] "Retrobootstrapping Rust for some reason"
Diag| Considering item [tag:pappp.net,2025-06-16:/2391591] "Reddit user surprised when 1960s computer panel emerged from collapsed family garage"
Diag| Considering item [tag:pappp.net,2025-06-12:/2390501] "CP/M 2.2, CP/M 3.0, CP/M-86, Concurrent CP/M-86 listings by Digital Research"
Diag| Considering item [tag:pappp.net,2025-06-08:/2389388] "Windows 7: a 2025 perspective (rose-tinted or not)"
Diag| Considering item [tag:pappp.net,2025-06-07:/2389179] "Bill Atkinson has died"
Diag| Considering item [tag:pappp.net,2025-06-06:/2388900] "Dystopian tales of that time when I sold out to Google"
Diag| Considering item [tag:pappp.net,2025-06-06:/2388826] "Switch 2 rooted on day 1"
Diag| Considering item [tag:pappp.net,2025-06-05:/2388731] "New book uncovers radical networks that existed before the internet"
Diag| Considering item [tag:pappp.net,2025-06-04:/2388405] "Endangered classic Mac plastic color returns as 3D-printer filament"
Diag| Considering item [tag:pappp.net,2025-06-04:/2388311] "The IRS Tax Filing Software TurboTax Is Trying to Kill Just Got Open Sourced"
Diag| Considering item [tag:pappp.net,2025-06-03:/2388022] "Ask HN: Options for One-Handed Typing"
Diag| Considering item [tag:pappp.net,2025-05-29:/2386728] "New Guide! USB Chording Keyset #3D Printing #AdafruitLearningSystem"
Diag| Considering item [tag:pappp.net,2025-05-27:/2386129] "Ransomware attack on MATLAB dev MathWorks – licensing center still locked down"
Diag| Considering item [tag:pappp.net,2025-05-26:/2386011] "Trying to teach in the age of the AI homework machine"
Diag| Considering item [tag:pappp.net,2025-05-23:/2385466] "College Board keeps apologizing for screwing up digital SAT and AP tests"
Diag| Considering item [tag:pappp.net,2025-05-22:/2385014] "Deadlocked Supreme Court Rejects Bid for Religious Charter School in Oklahoma"
Diag| Considering item [tag:pappp.net,2025-05-22:/2385087] "Nvidia’s RTX 5060 review debacle should be a wake-up call for gamers and reviewers"
Diag| Considering item [tag:pappp.net,2025-05-22:/2385080] "Mozilla to shut down Pocket and Fakespot"
Diag| Considering item [tag:pappp.net,2025-05-21:/2384758] "By default, Signal doesn't recall"
Diag| Considering item [tag:pappp.net,2025-05-20:/2384477] "Under RFK Jr., COVID shots will only be available to people 65+, high-risk groups"
Diag| Considering item [tag:pappp.net,2025-05-18:/2383916] "KDE is finally getting a native virtual machine manager called “Karton”"
Diag| Considering item [tag:pappp.net,2025-05-12:/2382103] "US, China agree to roll back tariffs – but only for 90 days"
Diag| Considering item [tag:pappp.net,2025-05-12:/2382021] "US Copyright Office found AI companies sometimes breach copyright. Next day its boss was fired"
Diag| Considering item [tag:pappp.net,2025-05-06:/2380536] "Testing different temperature sensors for a DIY thermostat"
Diag| Considering item [tag:pappp.net,2025-05-05:/2380199] "Signal clone used by Trump official stops operations after report it was hacked"
Diag| Considering item [tag:pappp.net,2025-05-05:/2379948] "Matrix-vector multiplication implemented in off-the-shelf DRAM for Low-Bit LLMs"
Diag| Considering item [tag:pappp.net,2025-05-04:/2379884] "Design for 3D-Printing"
Diag| Considering item [tag:pappp.net,2025-05-04:/2379773] "Vygotsky's Zone of Proximal Development"
Diag| Considering item [tag:pappp.net,2025-05-02:/2379300] "New US tariffs are now hitting cheap imports from China"
Diag| Considering item [tag:pappp.net,2025-05-01:/2379066] "Trump Moves Waltz to U.N. and Names Rubio Interim National Security Adviser"
Diag| Considering item [tag:pappp.net,2025-04-30:/2378860] "A judge just blew up Apple’s control of the App Store"
Diag| Considering item [tag:pappp.net,2025-04-30:/2378815] "Raspberry Pi cuts product returns by 50% by changing up its pin soldering"
Diag| Considering item [tag:pappp.net,2025-04-30:/2378854] "Layout A PCB with Tscircuit"
Diag| Considering item [tag:pappp.net,2025-04-29:/2378380] "Recreating Joey's Gibson Virus on a Vintage PowerBook - Simone's Blog"
Diag| Considering item [tag:pappp.net,2025-04-29:/2378455] "I use zip bombs to protect my server"
It took over a year for me to get back to it, but I finally sat down and made some progress on hacking the Buttons Pionier was giving away at SC09.
When I last posted about it, I had drawn out all the USB identification information, as well as disassembled one, identified all the hardware components, and tracked down data sheets for the important bits.
Now that I have a Bus Pirate, I decided to dump the 24c64 EEPROM. A 24c64-type EEPROM speaks standard I2C, with the addition of three dedicated address pins (for banking chips), and a hardware write protect pin.
My first attempt was a little troublesome, because attaching the chip in-place was (as is often the case) powering the whole board, leaving two I2C bus masters, and confusing the situation.
The following is basically a reference for communicating with 24c32/64 EEPROMs.
To remedy the problem, I simply desoldered the 24c64 from one of the buttons, soldered pins 1-4 (one full side) to a bit of wire, so I could ground GND, A2, A1 and A0 with a single clip, and attached the bus pirate leads to the floating chip (Yes, SOIC8 packages are rather small):
To be specific the connections are GND to pins 1-4 (Gnd, A2, A1, A0) 3.3V to Vcc (8) and WP(7), CLK to SCL (6), and MOSI to SDA (5) like so:
To write the ROM, the WP pin would need to be grounded instead of powered, but preventing writes is a good safety measure when exploring.
Software-side, I ended up following the communication instructions in the Bookly 24c64 datasheet, because I found them asier to interpret, but the datasheets from Atmel or any other manufacturers that make a compatible part will do as well. Start with the usual bus pirate setup of ‘m’ for menu, ‘4′ for I2C, Chose a clock (I used 100kHz for fear of interference from the long-for-I2c leads), ‘P’ to turn on pull-up resistors, and ‘W’ to turn on the power supplies.
Then, to read out a 24C64, you feed it (this is a commented log of the terminal session)
I2C>[0xA0 -- Start, Send 1010, the Values on the A2-A0 pins (000 if grounded), Followed by 0 write for and 1 for read -- dummy write to set address pointer
I2C START BIT
WRITE: 0xA0 ACK
I2C>0x00 -- Send the start address to the chip, the 24c64 ignores first three bits. 0x0000 to start at the beginning of the ROM.
WRITE: 0x00 ACK
I2C>0x00
WRITE: 0x00 ACK
I2C>[0xA1 -- Starts, then random read (same as first byte of dummy write, with R/W high instead of low)
I2C START BIT
WRITE: 0xA1 ACK
I2C>r:255 -- Sequential read out the whole ROM (Overflows most terminal's history, I pulled 256 or 512 at a time.)
READ: 0x5A ACK 0xA5 ACK...
I dumped it twice to cross-check that I didn’t make any dumb mistakes the first time, then massaged the dump with some regexes to get rid of the communication details and extract a pure hex dump. Only the first 4608 bytes of the ROM are written, so there is even room to tamper, if I can figure out the encoding. Note that the posted string is NOT S-records or Intel HEX, but raw ASCII-encoded two-characters-per-byte hex. In order to get it into an 8051 disassembler for further analysis, I will either need to figure out how to coax the Bus Pirate to generate a formatted dump, or write a script to segment and prefix the existing string, but neither has happened yet.
Giving analysis a first pass, I looked for pieces of the string it prints when activated as ASCII and raw USB HID Scancodes, but didn’t find them… which either means there is a problem with the dump (byte order?), or some clever and inconvenient encoding was used. I’m not terribly familiar with 8051s and their associated tools, so that will be the rather large next step. If nothing turns up in analyzing the dump, I may have to sniff the bus while the board is in operation to see if there is some funky data layout obfuscation.
I also got a similar button, and just recently I discovered this: http://www.usbbutton.com/download_driver.html
which seems to be able to reprogram the button. Happy hacking!