Check out the article on Hackaday! https://hackaday.com/2026/05/24/adorable-ascii-aquarium-lives-on-your-desk
|
|
The easiest way to install ASCII Aquarium is with the browser flasher:
You will need:
- A supported CYD board connected by a USB data cable.
- Chrome, Edge or latest Firefox Browser on a desktop or laptop computer.
- The Arduino IDE Serial Monitor closed, if it was open.
Open the flasher page, click Flash ASCII Aquarium, choose the CYD serial port, and let the installer finish.
This firmware is built for the ESP32-2432S028R "Cheap Yellow Display" board:
https://www.aliexpress.com/item/1005004971720824.html https://www.amazon.com/dp/B0FJQ6RK39
- ESP32
- ILI9341 320x240 display
- XPT2046 resistive touchscreen
- Optional SD card support for BMP screenshots and frame capture
Other CYD-style boards may look similar but use different display, touch, or SD hardware.
Support has now been added for the CYD2USB variant of the board courtesy of @mjpcomp
Also, we have preliminary support for the much nicer JC3248w535 board!
Use the web flasher to flash either of these new firmwares to your board!
- Animated ASCII fish with multiple glyph species, varied colours, depth shading, smooth wraparound, schooling, wandering, and separation behaviuor.
- Tap-to-feed flakes that nearby fish chase down.
- Configurable fish population from 6 to 36.
- Configurable bubble count from 0 to 50.
- Animated bubbles and seaweed with adjustable sway, length, and randomness.
- Visiting octopus and seahorse characters with selectable spawn rates.
- Fish steer around visitors and each other.
- Background styles: black, blue fade, purple fade, and randomized Spongebob style flower backdrop.
- Touch settings menu with Tank, Seaweed, Clock, and Background tabs.
- Optional on-screen clock with manual time or internet time.
- 12-hour and 24-hour clock formats.
- Timezone selection, small top or bottom clock, large ASCII clock style, and clock colour picker.
- Wi-Fi panel with network scan, saved credentials, on-screen keyboard, reconnect handling, and NTP time sync.
- Persistent settings using ESP32 Preferences.
- SD-card BMP screenshots and frame sequence capture. (NOTE - in build 2.18 The CYD will need to be reset after taking screenshots or sequences)
- Hidden HUD controls for setup, capture, Wi-Fi, settings, quick creature tests, respawn, and randomize.
Detailed Release Notes for 2.20 can be found here.
- New Overhauled background system with new smoother dithered gradients
- New background colours available
- New smooth background option
- New LCD Backlight and RGB Ambient LED colour and brightness control
- New Ambient LED Control can link to background colour, or use a different colour
- New CD Backlight and RGB Ambient LED Light Schedule and Tap to wake functionality. Thank you to @mjpcomp for the suggestion.
- New Timed events setting with Auto feeding. This is great if you're using the beam splitter since you can't tap the screen. Thank you to @mjpcomp for the suggestion.
- 20 new Selectable ASCII clock fonts
- Various Bug fixes
|
|
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.
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.
The main Arduino sketch lives here:
ASCII_Aquarium_CYD/ASCII_Aquarium_CYD_2.20.ino
The sketch expects the CYD display and touch configuration used by the included TFT_eSPI setup files:
User_Setup.h
User_Setup_Select_CYD.h
To build manually:
- Open
ASCII_Aquarium_CYD.inoin the Arduino IDE. - Select the same ESP32 board/settings used for your CYD.
- Make sure TFT_eSPI is using the included CYD setup.
- Compile and upload through the Arduino IDE.
For browser flashing releases, use Arduino IDE's Export Compiled Binary and publish the generated merged firmware binary.
ASCII Aquarium CYD 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.
No water changes. No tank cycling. No surprise snails. Just plug it in and let the current take care of itself.





