The PSoC MiniProg1 came in the mail a while back, so I took a crack at communicating with the CY8C24794-24LTXI controller on the old MacBook Pro logic board. Just a quick recap: My plan here was to interface with the CY8C24794 integrated circuit (IC) on the logic board, read its hex file, then write that hex file to my own CY8C24794 on my own controller board. Boom, instant keyboard and trackpad USB interface for the Raspberry Pi!

Since the CY8C24794 is so tiny I had no hope of connecting directly to it through its pins so I attempted to interface through a series of debug points on the logic board. My plan of attack was to solder wires directly to these points, then connect the MiniProg1 to the wires. The MiniProg1 would provide power, a ground, and a USB interface for my computer to talk to the CY8C24794 through the Cypress development software.

Unfortunately I’m really bad at soldering… and I also decided that my first attempt should be on the most hard to reach and important pin:

I suck

See those shiny round points? Those are direct connections to pins on various components on the board.

See the dark spot under my abomination of a soldering job where a debug point used to be? Yeah. I really needed that one.

After I destroyed the first and only data interface to the IC I decided to take a break, breath deep, then practice on a non mission critical point. After a bit of playing around I found a soldering method where I could successfully create a joint between the wire and a debug point:

I suck less now

After about another hour I had decent joints on two of the pins and a connection to the ground that the IC also used. I used a multimeter to check the resistance between the ends of the wires and the actual pins on the IC and the result was close to zero. Yay, 50% of the connections were working!

Unfortunately I had also destroyed another important pin, so it was time to get creative. I soldered some wires to some safety pins which I then used to stab at the remaining pins directly on the CY8C24794. Here’s the janky setup ready to rock:

staby staby

It was super awkward, but after some practice I was able to execute the “connect” command in the development environment then quickly stab at the remaining two pins on the circuit in time to make a reliable connection! Victory!

Except that Apple has read protection on all of their chips BECAUSE OF COURSE THEY DO! THIS PLAN WAS DUMB!

God fucking damnit

“FAILED! Device cannot be read. Some of the flash rows are protected from being read.”

Translation: I can’t have the hex file, back to the drawing board.