May 22, 2026
Description
The ASCII Aquarium is a delightfully over-engineered desktop fish tank for the ESP32-2432S028R "Cheap Yellow Display" 320x240 touchscreen. It turns the CYD into a living ASCII fish tank with schools of fish, bubbles, seaweed, tap-to-feed behaviour, an optional clock, Wi-Fi time sync, SD screenshot capture, and just enough fish puns to make the whole thing seem intentional.
This is not a video loop. The tank is fully interactive and animated! Each fish swims with a little character-wave motion, turns into a mirrored ASCII version when it changes direction, varies in colour and brightness, and generally minds its own business until you tap the glass and drop food. Then the little freeloaders go snack mode.
It is part clock, part screensaver, part tiny art object, and part excuse to make fish-shaped punctuation swim around like it has somewhere important to be.
Once you have your CYD, plug it into your machine, open Chrome/Edge, and use the Web flasher https://power-pill.github.io/ASCII-Aquarium/ to flash it to your device. Full Github page here: https://github.com/POWER-PILL/ASCII-Aquarium
Building your own ASCII Aquarium is a dry project, despite all the fish. No buckets, no cycling, no mysterious aquarium chemistry. Just print the case, flash the CYD, and give the little punctuation swimmers somewhere to live.
You will need:
- This specific 2.8" ESP32-2432S028R "Cheap Yellow Display" board with the 320x240 ILI9341 screen and XPT2046 touchscreen from AliExpress.
- USB data cable for flashing (It comes with one!).
- Micro USB or USB-C power source for everyday use.
- Optional microSD card if you want BMP screenshots or frame captures.
Build steps:
1. Print the stand from this MakerWorld page or use another great case such as the CYD Buddy from Annaglyph
2. Connect the CYD to your computer with a USB data cable (the supplied cable works great).
3. Open the ASCII Aquarium web flasher in Chrome or Edge, click the flash button, choose the CYD serial port, and let the installer do its thing.
4. Power the board after flashing and make sure the tank boots. Tap the screen to drop food. If the fish rush over, congratulations: you have been accepted as staff.
5. Tap the top-left corner to reveal the hidden HUD and check settings before final assembly.
6. Place the CYD into the printed case, keep the USB port accessible, insert a microSD card if you want capture features, close everything up, and enjoy a maintenance-free aquarium with absolutely no filter to clean.
First-run tip: open the settings panel to tune fish population, bubbles, seaweed, visitors, clock, Wi-Fi time sync, and background style. The defaults are already seaworthy, but a little fin-tuning never hurt.
- Tap the tank to feed the fish.
- Tap the top-left corner to reveal the hidden HUD.
- Use the settings panel to tune fish, bubbles, visitors, seaweed, clock, and backgrounds.
- Use the Wi-Fi panel for internet time sync.
- Use the capture panel or BOOT button to save BMP screenshots to SD.
New Features in 2.20 ><((((>`
Detailed Release Notes for 2.20 can be found here.
This build can also use a 50 mm beam splitter cube to give the aquarium a little "floating in glass" look.
A beam splitter cube is made from two glass prisms joined together with a partially reflective diagonal layer inside. When the CYD screen shines into the cube, some of that light passes through and some of it reflects off the internal 45-degree surface. To your eyes, the aquarium appears to hover inside the cube instead of just sitting flat on the display. It is basically a tiny optical tide pool.
- Use the 50 mm cube size for this printed stand.
- Handle the cube by the edges and wipe fingerprints with a clean micro-fiber cloth. Smudges are the enemy of premium fish.
- Seat the cube squarely in the holder so the clear face points toward the viewer.
- Keep the display bright and the surrounding room a little dimmer if you want the fish to really pop.
- A dark base or darker background behind the cube helps the reflection look cleaner.
- If the image looks faint, doubled, or not quite centred, rotate or flip the cube and try again. Beam splitters can be a bit fin-icky about orientation.
If using the clock with the beam splitter cube, you will need to enable “flip clock” in the clock style settings window.
The cube does not create the animation by itself; the CYD is still doing all the swimming, bubbling, clocking, and snack-chasing. The cube just splits and redirects the light so the tank feels more like a miniature glass aquarium and less like a bare screen. No water required, unless you count the tears of anyone who bought a real aquarium and then learned about water changes.
I saw this video on Instagram and wanted to see if it was possible to make something similar on a much lower powered device. Raspberry Pi's are expensive, and CYD's are about $20 a board, so this felt like a great fit for a silly project to learn the ropes of working with the CYD. The result is a tiny desk aquarium that has the soul of an old terminal screensaver, the practicality of a little embedded project, and the maintenance schedule of a rock.
Enjoy this project? Check out my other Retro video game keychain packs here:
License:
Standard Digital File License