I also bought 300 tiny 1.5 x 1.25 mm WS2812B compatible LEDs and 100 tiny little buttons along with the processors - had to make that shipping seem reasonable, right :-) The graphic I originally designed for my company, danjuliodesigns, LLC, is based around a piece of LED art I made a long time ago so my initial thoughts were things like backlighting that graphic with LEDs and creating colorful patters, or a keyboard with an embedded OLED in the PCB or even some game using some of the buttons and some LEDs.
Then other people started posting their awesome entries on hackaday.io and I thought oh crap, there go all those ideas.
After a few days of wondering if I'd made the LCSC order in vain (well, 300 tiny RGB LEDs is never in vain... but I thought I might end up pitching all the micros), I came across Juan Jesus' Business Card Gamepad and a germ of an idea sprouted. I'd make as simple of an electronic business card as possible because that was one that could actually be produced at some scale without breaking the bank and handed out to people just like a paper business card. Juan's wonderful PCB-based USB connectors would make it thin as well as keeping the cost down. I'm definitely one who is not afraid to stand on the shoulders of creative others. Thank you Juan for your work!
I quickly settled on the idea that I'd implement a CDC-class USB serial port so that recipients of the card could plug it into their computer, bring up a terminal emulator and play for a bit - before probably putting the card in the desk drawer to never been seen again.
I really thought it would be cool to get Micropython running and present a REPL via the serial interface. I could even include a couple of LEDs and buttons for some basic user interface with built-in driver support. However concerns about memory quickly put the kibash on this idea. It just didn't seem possible to squeeze all that into 256 KB of flash and 24 KB of RAM.
Next up I thought about a port of a BASIC or Tiny BASIC interpreter. I did a bunch of research and found all kinds of open source projects as well as my own port of Tiny BASIC for my retrocomputer project. Not as cool as Micropython but could be good for a laugh anyway. The problem with this idea was that all the ports would entail a bit of coding work (they were originally designed for different IO, they contained functionality I didn't want to duplicate, etc, etc). Once again I lost a bit of steam. This contest wasn't supposed to become my main job!
It was the retrocomputer project that provided the final answer. Along the way I've given it additional capabilities (it is a VT100 compatible terminal and it runs little applets including banner and ELIZA). Wait. This is 2024 and AI is the *THING*. And ELIZA is sort-of the great great grandparent of it all. Go read about it at wikipedia. Running on a huge 7094 mainframe and written in a strange language called MAD-SLIP it was one of the first attempts to get humans interacting with a computer via natural language. ELIZA is a computer therapist in the Rogerian tradition (reflecting back the patient's words). And I have a port of ELIZA in C that - most importantly - has a simple, abstract IO interface that would be easy to port to a USB Serial port API. Bingo. All I had to do was to implement a USB Serial port and port my port of Eliza. What could go wrong?
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.