I used Charlieplexing to drive four LEDs, four buttons, and a beeper from a 6-pin PIC10F200 with only four GPIOs. (and one is input-only!) It was a lot of fun working out the correct TRIS/GPIO combinations. (and fitting the whole thing into 256 instructions and 16 bytes of RAM was fun too)<p><a href="https://github.com/74hc595/TinySimon">https://github.com/74hc595/TinySimon</a>
In the early 00’s, I used this technique to write a keyboard driver for a handheld computer, using a PIC microcontroller. The method was shown to me by a senior EE who previously worked on HP calculators, after HP had outsourced that division to another country. I learned a lot of tricks like that while at that job, as I was the only one on the team who was not a former senior HP engineer. They knew their stuff, and their stories about the outsourcing made me forever reluctant to buy anything made by HP.
Here is a post I wrote a while back that includes charlieplexing.<p><a href="https://devblogs.microsoft.com/dotnet/blinking-leds-with-raspberry-pi/" rel="nofollow">https://devblogs.microsoft.com/dotnet/blinking-leds-with-ras...</a>
I feel like for those of us who aren't serious electricians but do arduino like thing's we've done this, I just didn't know it had this name.