"john50007" Contribution: Inspired by Toy Fans, TV Gashapon Transformed into a Display

After seeing modifications by toy enthusiasts online, a sudden idea struck me: how great would it be if I could freely change the images inside without disassembling the gashapon? Wouldn't it be even better if it could play videos? So, I began the modification project.




The item being modified is this "Toei TV Gashapon" released by ToyS spirits.

Step One: Disassemble the gashapon.

Step Two: Install the Waveshare 1.83 inch LCD screen, purchased from Shopee, into the TV. It is crucial to buy the correct size; otherwise, forcing it in will damage the screen.

Step Three: Power-on test. Originally, I used an Arduino Uno, but its memory was extremely limited, and it's primarily for micro-IoT applications. Even an ESP32 might not be sufficient for playing videos.

Step Four: Switching to a Raspberry Pi provided a permanent solution. I also added a micro switch for short presses to select videos and long presses to power off. This allows playing multiple videos and even streaming the actual screen output from a computer.
Let's take a look at the results!


Streaming with a laptop

Adding another one! Now, all the more well-known TV models on the market can be fitted with small screens. This time, compared to the previous 1.83-inch screen, this TV is slightly smaller, so I used a 1.69-inch LCD display (both from Waveshare).
It evokes a nostalgic feeling of summer days at grandma's house.

Rear wiring

The Raspberry Pi has a second SPI group enabled, and it's almost fully occupied.

This time, installed from the rear.

Insights:
I encountered a few issues during the production process:
1. The official drivers and screen initialization settings are provided; it is crucial to use their given parameters and not generate your own initial conditions. This can prevent problems like color distortion, abnormal rotation, or the screen not filling completely.
2. Ensure that custom width, height, and orientation are correctly matched.
3. I strongly recommend using a Raspberry Pi (I used a Raspberry Pi 3, which is quite old). It can load multiple videos at once without worrying about memory overflow.
4. My logic involves packaging all videos into .bin files. This means using Python to pre-process the videos into a format that the LCD can directly play (including aspect ratio and RGB conversion, as the LCD hardware seems to default to BGR). This way, when playing on the Raspberry Pi, we essentially load the .bin file into RAM and then send the image information, frame by frame, directly to the LCD via the SPI interface. This eliminates the need to simultaneously transmit data, decode MP4s, change colors, and convert aspect ratios during playback.
5. For streaming, I used Wi-Fi, running Python on both the Raspberry Pi and the PC to stream the video.
This article was published with authorization from the author "john50007".

via: john50007的小屋