Skip to main content

Cheap and Cute AliExpress Display

I love to browse Aliexpress to find random shit. Sometimes, it's just to laugh at the ridiculous products or creative descriptions. Sometimes, I can't resist and buy some stuff to play around with.

I just received a cute display. I don't know yet what I'm going to do with it. The listing did not say much, and I did not research it a lot. I just impulsively pressed the "add to cart" button and let future (now present) Sophie the pleasure to discover what's inside.

So, today I'm opening it up to document what's inside. Maybe some ideas will come soon. So far, the best idea I have is to code a custom and cute desk pet/robot/companion that does nothing useful other than being a cute companion.

The outside

The display from the front, a cute yellow cube with a small dark screen recessed into the top face

The display from the front, a cute yellow cube with a small dark screen recessed into the top face

Another angle of the yellow cube, showing the front and side

The back of the device showing ventilation slits, a button, and a USB-C port for power

The back of the device showing ventilation slits, a button, and a USB-C port for power

Opening it up

Unscrewing the bottom of the yellow case with a small screwdriver, two screw holes visible

It slides open, and I immediately notice that there is plenty of room to cram some stuff in there if I want to. Maybe I'll add a battery?

The case split open

The PCB

The main PCB slid out of the case, revealing an ESP-12S WiFi module and the board labeled "ESP 1.54 LCD V1.0" by ZJYUNJIE

The main PCB slid out of the case, revealing an ESP-12S WiFi module and the board labeled "ESP 1.54 LCD V1.0" by ZJYUNJIE

Close-up of the ESP-12S module with its FCC ID (2AHMRESP12S), CE marking, and the PCB antenna.

There's also a 4-pin JST-style connector labeled VG54 on the board. The traces appear to route toward the right side of the ESP-12S, possibly to GPIO14 (SCL) and GPIO12 (SDA) — which would make it an I2C expansion port. A continuity test with a multimeter would confirm it.

I noticed that some listings are mentioning a capacitive touch on the top of the device, but the one I bought does not have that. This is probably where it would be plugged in.

Close-up of the ESP-12S module with its FCC ID (2AHMRESP12S), CE marking, and the PCB antenna

The other side of the PCB showing the display flex cable connector and several surface-mount ICs

The other side of the PCB showing the display flex cable connector and several surface-mount ICs

The ribbon cable is marked "FP-154HSC04B" with "JY" underneath. No separate touch controller or extra FPC is present, so this is likely a display-only panel without touch input.

Close-up of the ribbon cable showing the part number FP-154HSC04B and the PCB edge labeled ESP 1.54 LCD V1.0

The U3 IC turns out to be a CH340K by WCH — a USB-to-serial converter. This means the USB-C port isn't just for power, it's for programming the ESP-12S directly over USB. That is going to make projects easy to flash! :D

Close-up of the CH340K USB-to-serial converter IC by WCH

Notes for future self

The ESP-12S

I used the ESP8266 and ESP32 in many projects in the past, and attempted to do something useful with the tiny but very limited ESP-01. It's the first time I get to play with an ESP-12S, which is actually an ESP8266 in a specific module packaging with a built-in PCB antenna and 4MB flash.

As opposed to the good ol' ESP32 I know pretty well now, the ESP-12S has

  • No bluetooth
  • Less powerful CPU
  • A lot less RAM
  • Fewer GPIO
  • A lot cheaper
  • Consumes a lot less current

So it makes a good low power and cheap alternative for simple projects.

The display module

Based on the board label "ESP 1.54 LCD" and the ribbon cable marked "FP-154HSC04B", this is a 1.54" IPS TFT LCD with a 240x240 resolution and 65K RGB colors. These panels are almost always driven by an ST7789 controller over SPI. No touch capability.

TIL: RSpec, RuboCop, AND Cucumber Can All Annotate Your PRs

I just discovered the holy trinity of GitHub formatters and I'm having a moment. You know that annoying workflow where tests fail in CI and you have to click through Actions logs like you're on a treasure hunt? There are formatters that fix this for RSpec, RuboCop, AND Cucumber. All of them. Creating inline annotations right in your PR.

The Octoprint Gem is Finally Happening (Thanks, AI)

I started working on the Octoprint gem back in March 2022. The goal was simple: create a Ruby wrapper around the Octoprint REST API so I could interact with multiple 3D printer servers for another project.

Simple, but incredibly boring.

The work was pure drudgery: read an API endpoint's documentation, create classes for models and errors, write tests, document everything, repeat. I implemented just what I needed and then... let it sit. For years. Untouched except for the occasional Dependabot update.

The Simple Question That Fixed My Prompts

I was getting bored writing the CLAUDE.md file for my Ruby project. The usual drill: "Use RSpec for testing. Use Rubocop for linting." You know the type: bullet points that technically cover the basics but somehow miss the mark.

So I handed it off to Claude with a simple request: "Can you document conventions and commonly agreed-on best practices for this Rails project?"

What came back surprised me. Claude didn't just reformat my scattered notes; it completely restructured them. My lazy bullet points became a comprehensive guide with clear sections, context, and actionable details. The output felt more... intentional. Like it was designed to actually help someone succeed, not just check a documentation box.

But then, I realized Claude had essentially shown me how to write for its own "neurons."

That moment got me thinking. If Claude could improve my documentation, could it improve my prompts?