First woopsie on the PCB

A project log for New PCB For Calculator Watch

I like to call this my smart watch, as it can calculate numbers and show the time

davedarkodavedarko 10/29/2021 at 12:594 Comments

By now I've realised that I forgot to add all the 20 diodes to make the charlie-plexed keyboard function. In the current arrangement there will be no way of telling if I have pressed the button connected to the 1-2 pins, or the 2-1 pins. 

This basically made me choose between upscaling the SAML22 to the version that Joey Castillo is using for his amazing casio F91W replacement boards. I could also try to place twenty diodes all over the board. Or ten and do some crazy "check if both combinations are working or just one" firmware. In the end I used an IO expander that is dedicated to read keyboard matrices, got some TCA8418RTWR on aliexpress, as they're out of stock everywhere else.

Soon I will try to get the UF2 bootloader running on the watch and then start programming it via the USB socket. First I need to cut out room for the plug though :)

Little side note: Joey will soon start a crowdfunding campaign with his awesome project, find it here:

More on the project on the blog:


Russ Bixby wrote 10/30/2021 at 08:59 point

74922/3 FTW

  Are you sure? yes | no

Xasin wrote 10/29/2021 at 13:03 point


Those kinds of mistakes always suck - they're just past the "I can easily fix this" portion, but still kinda in the "I want to try and get it working" range.

In any case, a dedicated button matrix IC sounds like a decent option. I think I used one once that had a lovely combination of button scanning + seven-segment driving, all in one chip.

Most button ICs should also have an interrupt line, so you could use that to save some power by sleeping the MCU!

  Are you sure? yes | no

davedarko wrote 10/29/2021 at 13:23 point

sounds like one of those fancy IS51 chips, I think I used one too :) I still have to find out if everything else checks out and only then I will work in the revisions and reorder.

  Are you sure? yes | no

Xasin wrote 10/29/2021 at 15:04 point

I wouldn't really call it "fancy" 
For some reason, the default I2C address was... 0
The general-call address. And you have to use that 0 address plus a hardware pin to set it to a different address <.<

I also think it didn't have a power-on reset, so sometimes I had to leave it unplugged for a bit longer before it was back to zero...?
It was an odd fella.

  Are you sure? yes | no