For what it’s worth, you could do a similar hack with 5 minutes of work and zero background knowledge if you’re willing to take a leap of faith:
1. Break open a used detergent cartridge and notice that there’s only one chip inside
2. Google the number on the chip and click the first link to figure out that it’s a “I2C Serial EEPROM”. Clearly it’s some sort of memory chip since they advertise its capacity
3. Without knowing exactly what an “I2C eeprom” is, google something like “i2c eeprom rewriter” and buy the first result: a $10 BIOS programmer for desktop PCs (which use the same 24 series eeproms)
4. Clip the programmer onto the memory chip and plug it into your PC’s USB port.
The author went a lot further because that’s what he wanted to do, but you don’t have to. He figured out the USB connector’s pinout, but your programmer comes with a clip that attaches directly onto the chip. He reverse-engineered the data on the chip and built a custom programmer, but you could just click the read button in your programmer’s software to back up the data from a brand new cartridge and then write that data to used cartridges.
"How do you do it?"
"I read data sheets and a lot of wikipedia".
I already spend tons of time on wiki, so I started reading data sheets. And he was absolutely right, datasheets for components are often chock full of information on how to use them, often with recipe books for circuits that use them.
It's kinda bland and tedious but highly informative.
I think there is a bit more that goes into that (in particular a willingness to fry stuff, that's unavoidable in hardware, and MOUNTAINS of patience), but like software, it's pretty easy in today's day and age to teach yourself hardware stuff.
Curious, I looked into the datasheet linked in the post[0]. While I get what you mean by "chock full of information", I can't make the head or tail of it. Where do I get started? (genuinely)
When you don't understand a thing, you can google for it. Like it says it uses a Schmitt trigger for noise protection. How does that work? Wikipedia explains: https://en.wikipedia.org/wiki/Schmitt_trigger
If you have a specific goal for the chip, look up the words that seem to be related to that goal. Once you do that a bunch, you get better at figuring out which words matter.
It's basically like tracing an outline of a drawing with tracing paper and then filling it in with color. You trace the example design, add your own color.
The rest of the datasheet is (as commonly happens with simple digital components) concerned with “how do I wire this up”, “how good of a digital signal can I expect to get out”, “how bad of a digital signal can I get away with putting in”, a refresher on I2C, and miscellanea like power consumption, operating temperature, and sizes of little plastic boxes it comes in. Necessary if you want to design a board properly, not so much if you’re just going to wire it up for a quick hack (the device seems to have a supply voltage and logic levels of “whatever”).
The only thing you maybe do need these for is to look at the board photo and figure out how they wired it. Dot indentation marks pin 1. Pins 1–4 shorted, picture on page 1 says 4 is ground and 1–3 are address, so per page 4 it ends up with[4] address 1010 000. Power (called Vcc for reasons that are not important here) is on pin 5, wired up to top pin of connector on the close-up photo; the next one down goes to data (SDA as I2C calls it) on pin 8; following one goes under the chip but is almost certainly the bus clock (SCL) on pin 6 because that needs to go somewhere; and the bottom is at first glance only connected to an isolated island of copper but the small holes (“vias”) to the other side of the board probably connect it to the other islands so it has to be ground. That leaves write protect on pin 7, unconnected to anything but Vcc (through a dummy “pull-up” resistor to limit how much power the chip will waste examining it), which, to do a sanity check, page 3 says means writes are permitted (so the name of the pin is a bit unfortunately).
There. Done. You still need to find or make something for the other side of the I2C conversation, but either an off-the-shelf programmer or a tutorial for a cheap board with a controller should be sufficient for that. (Won’t be completely trivial the first time around, but it’s a one-time thing like any other development environment.)
[1] https://learn.sparkfun.com/tutorials/i2c/all
[2] https://learn.adafruit.com/i2c-addresses/overview
[3] https://github.com/dekuNukem/bob_cassette_rewinder/blob/6227...
[4] https://github.com/dekuNukem/bob_cassette_rewinder/blob/6227...
reminds me of medications and antibiotics which include their own datasheets that not all medical providers cross-check against your current medications.
What always frustrated me with electronics was material considerations. You need all sorts of stuff, like a good soldering iron, oscilloscope, hot air station, magnifying glass/microscope, all sorts of wires, basic components, lab power supply, multimeters, probes, prototyping boards, etc... For programming, you just need a computer, but for electronics, you also need one.
It is not just expensive, in fact it is not that expensive for a full startup kit, thank you China. But what you also need is space, if you don't have a dedicated room for your workshop (i.e. not your bedroom or living room) it is going to be really annoying real quick. You need a bench to put all your stuff, and also enough space to store all the crap you will either repair or cannibalize part from. It also makes moving more difficult.
While it is not an absolute necessity, and there are things like hackerspaces, but there is a barrier that is not present when you are just working with computers.
It is amazing how much more accessible it is these days. An oscilloscope or signal generator (even a used one) in the 80's and 90's, was a lot of money. There's also a lot of multi-purpose test equipment now.
Nobody else cares, your meaning was clear.
was certainly part of mine, and mine was more theoretical than most
(I certainly remember peering through datasheets of various obscure TI chips during afternoon labs)