davedarko

TARS SAO

A simple add-on inspired by Interstellars robots with 6 touch buttons, a speaker and a 160x80 pixel display, controlled by an RP2040 board.

Description

Interstellar was not the movie I expected, but I loved the robots. After working on the Han Solo in Carbonite Add-on, designing this PCB felt like the right step and is also the most elaborate add-on I made for Supercon 2024. One of the earliest add-on idea I had, was to make a tamagotchi like device, interactive on its own and with some capabillities I can expand on, long after I'm back from Supercon. The RP2040-tiny board has the perfect surface mount footprint for this, the display has a high resolution for its size. So now there is a tamagotchi sized TARS batch, that can see all your I2C sensors and has its own QUIIC I2C port for extensions.

Hardware

The RP2040 is more than powerful enough to run the display and with the help of some 1M resistors, it's capable to implement touch buttons as well! I am using a speaker on two pins, thanks to a wonderful library I found.

RP2040-Tiny

The module used as a controller is an RP2040-tiny, a nice little board that comes with a little adapterboard for USB-C connection and the programming buttons. That allowed the module to be able to be surface mounted, since there are no parts on the back unlike other modules.

Display and LED

The 160x80 pixel display, controlled by an ST7735 is more common than I realised, it has been used for a cheap ESP32-C3 board that I found when working on #Flipper At Home for a bit. It's supported by the TFT_espi library and is controlled via SPI. There's also a white LED that can be used as an activity indicator! In the movie TARS used a cue light to indicate when he's joking and I had to add that.

The Speaker

It seems like there are powerful speakers the size of 13 mm x 18 mm. flying allover aliexpress now, probably from phones and repair jobs. I've run down the adafruit speaker connectors and cables I need to connect everything - this way you can change the speaker in the future and it just looks cleaner than having wires soldered end-to-end.

The touch buttons

Thanks to todbot sharing all his RP2040 projects that are using touch buttons, I was set to success with the TARS interface right from the beginning, when cutting up copper on a prototype board. I will upload a picture of the arrangement, once that works again.

Pinout

Software

Much of the software is still in a concept state, but here are the ideas of programs that I have and want to add. I've written everything with the Arduino IDE and using libraries of that realm. It might make more sense to have this run micropython, but I felt more comfortable this way.

Piano

A little 6 note keyboard that uses all touch buttons to play a note and display colors for the note you're playing. There are some nice glitches to discover, depending on how you're holding and touching the add-on. It shuts off after 5sec of not playing any tones.

Composer

This is an idea feeding off of nostalgia to the time you were typing in the beeps yourself, like on the nokia 3310 phone. this would allow for a bigger tone range than the piano mentioned above.

I2C Terminal (Wire0)

What if the badge has no display, but you want to display some debug info or sensor data on your badge? It should be possible to send data and display it on TARS!

I2C Scan (Wire1)

It's important to know what devices you're connected to, so having an I2C scanner to scan for sensors and modules can come in handy, especially with the QWIIC connector. I may or may not allow for chosing Wire0 for scanning as well, not sure how the RP2040s like a multi-master situation.

Name Tag

Even though I made #hello my name is SAO - why not have your name fly around like the DVD logo?

MemeSaver

There are so many meme's that could be shown on this display, so far I only have the "Grand Central Hack the planet" pager running, but there's also some TARS running code flying in my code base somewhere.

Do you want to play a game?

Why not implement snake or other games on TARS, he probably has a folder with solitair as well somewhere.