Creative use of my JPEGDEC library. The 160x128 LCD is a good compromise for size/speed. FYI - the ESP32-S3 WROOM module will execute the code about 15% faster. As soon as Espressif shares documentation on the SIMD instructions of the S3, I'll be able to speed up JPEG decoding even further.
Been following this project progress for quite a while now. The end output is excellent!. And this also proves that good things take time. Clearly the MJPEG method is a waay better than trying to draw bitmaps multiple times. Great project and video! Also, 📺
This video is DOPE!!!! I found it while researching for my air hockey table project, and it actually helped me a lot with ideas. I already have the ESP32, arduino, and ILI9341 monitor to my project. My idea is that every time someone scores a goal it displays a video animation and keeps the scoreboard. Thank You!
I actually had issues with smooth video in my dashboard when simulating a moving gauge. This should make it a lot smoother. Since I have defined frames now I should be able to have real quick response on my gauges
First time watching your channel. Amazing production quality. I love these B-reels and animations. One easy improvement idea came up. You can easily improve the looks of these 3D-printed component stands by changing the Z-seam setting in your slicer to place the layer change spot on the backside so you dont have those small blobs on the frontside. Kinda useless info but wanted to share in case you are interested. Everything else seems so nice! Examples on a video: 6:44, 8:37
I was looking for a project like this to display my gif design, this is so far the best vids i found+ and to watch other animes as well.I'm a beginner in Arduino but will slowly try and built this project, thank you for the video
I bought some of those 8 ohm 2W speakers for a portable 65C816 computer I'm building, and worried that they might not be loud enough to cut through background noise. I guess this confirms that they'll be usable. Thanks!
I created a Video Capture demo board, using a dsPIC and a similar LCD, all done in pure software - works fine enough given the ADC speed (3.5MHz) it's on my channel :) Love this one too of course!
If you don’t need WiFi but still want a truly embedded device to play video off of storage then one of later teensy boards seems like a better choice. You should be able to go up to 480p, JPEG video or possibly even real video formats like x264. I’m doing this with an esp32 mostly because I don’t want the sd card dependency. I just want to point it to a server and press play and it will be like a broadcast TV channel, looping long playlists of videos
@@akul24 Definitely an option, but this would limit the number of people who could build this project, since a lot of people only have a soldering iron.
7:20 I wouldn't desolder the pins, as desoldering is too much work. Instead I would bend the pins 90 and trim necessary to match the pads. This way you convert the module to smd plus soldering is much easier now.
This is a great idea and wouldn’t make the project much thicker. Thanks for the tip! It would have definitely have helped with some soldering difficulties I had during the livestream. 😅
📺I was searching for a specific solution and happened to find this video. While this video doesn't meet my needs directly it certainly is informative and I liked it as someone with no prior DIY experience. If you're interested I'm trying to solve this problem: Car has a built-in dashcam but no way of viewing saved footage while on the go e.g. after an accident. The solution would be a device similar to what you show but the differences would be: Able to browse the contents of inserted memory card (meaning I still have to take out the card from the cam and put it in the device). Able to play the video files as is (Might be a non-starter given your explanation of video decoding processor requirements). Able to do Wi-Fi transfer of selected video footage from device to mobile phone (no idea what software will take care of that).
Dang I'd love to do this. Building the physical project would be a breeze but at my knowledge level of programming and software steps I got lost about 1/3 of the way through the explanation. I will make an attempt and if I can't seem to be successful I'll throw it in the drawer with the other microcontroller projects I have made multiple attempts at but failed. I guess I'm learning all the ways not to do it
Hi Alex... great project, great materials. you do show a back plane or case back for the project but we are not finding any .stl files to print one. Could you share that please?
So if LCD_MOSI = 23 connects to SDA. what does LCD_MISO = 19 Connect to on the LCD there is No MISO on the LCD is it not Connected. I'm new to electronics just trying to create my own diagram of the circuit?
Good catch. This was a relic from code development, but you are correct that D19 is not actually connected to anything because there is no MISO on the LCD. There is a MISO/MOSI pair on the SD card, however, which are connected to D12 and D13, respectively.
I'm interested in a player with a screen for audio files from micro SD cards, showing album skins, moving through folders......has anyone seen this somewhere?
@@divdav I will post a pinned comment and update the video description here, but the best way would be to follow on Instagram and Twitter! To start, we are doing a small batch run so they may sell out quickly!
If you were to drive two displays independently, you would need to cut your frame rate in half, as the current implementation is close to the limit of one ESP32 compute core. I am not certain if it would be possible to simply “duplicate” the displays by hooking them up to the same pins, as this might go against how SPI communication is implemented, but it would be interesting to try! If anyone knows, please leave a comment!
📺 Can you just build the mp4 re-encoder / spliter into the esp32 so if it sees mp4 media it automatically does this saving users hassle theres now an esp32 avi media player out from hackaday that came out today as well. Maybe have it use the input filename like "test movie.mp4" but break it down to mpeg 160x160 'test movie(small).mpeg' + 'test movie(small).mp3.. but do this in an automated script like maybe .py python etc if needed etc..
Could you please explain what function the resistor and capacitor are doing? Everything else seems somewhat self explanatory on what it’s doing and why it’s a necessary part but those two have me stumped (I’m more of software guy, just getting into hardware)
You bet and good eye! The capacitor is there to filter out audio noise from the circuit. I was experiencing some high frequency “clicking” noise over the speaker that corresponded to the SD card being read and adding a small capacitor into the audio portion of circuit fixed the issue for me. The resistor is also audio related, specifically for the volume control. Humans don’t perceive volume as linear, so logarithmic potentiometers are typically used for modulating volume. Unfortunately these can be quite expensive, so I instead use a resistor that is matched with the resistance of the volume thumbwheel potentiometer to create a nonlinear resistance change when the thumbwheel is rotated. Unfortunately this didn’t end up making it into the final video, but it’s definitely one of my favorite parts of the build! Analog circuit design is a whole world of its own and so much fun! Hope this helps!
Right now both MP3 and video decoding are running off of a single ESP32 core, so I believe thar this should be possible! Please report back and let me know if you try this!
You would need to double check the compatibility for both the GFX library and the pinout for exposed pins on the PCB. It is unlikely that you would be able to surface mount the screen since it would likely have a different pinout and footprint, but you may be able to solder wires between the surface mount pads on the PCB and the screen you are trying to use. If you try this and get it working, please let me know!
Hello, I replicated your project as a gift for my girlfriend, its our anniversary on thursday and Im having an issue. I followed all of the steps correctly multiple times but the screen only print error sd card mount faild followed by error failed to open mjpef file for reading. What could be the issue?
I would double check the solder connections between the breakout PCB and the ESP32. I had a similar issue during the livestream build and the problem was a sketchy solder joint. (Please check out that episode for more details.) Hopefully this will resolve your issue. Happy anniversary!
Good evening my friend I could use a 1,14 inch 135x240 pixel lcd with driver st7789?And what changes should i make to your code? Thanks from Greece Athens
You would need to check the Adafruit Arduino library that I am using to initialize these screens to see if is compatible. This will require a code change to use the right display/set the right resolution, but should be straight forward. However be aware that changing the resolution to a higher one than the one I use in this project means that the microcontroller has to draw more pixels per frame, which may affect the playback frames/second that the microcontroller is able to handle.
Thanks! You bet -- I just enabled Gerber file downloads on the PCBWay project page. Cheers! www.pcbway.com/project/shareproject/Mini_Video_Player_Super_Make_Something_140926c9.html
Thanks for the heads up! There is definitely a possibility that the GFX library may have changed since I uploaded the video, since it is also an open source project (that is not maintained by me). Are you able to try an older version of the library (preferably the one used in the video) to see if it fixes the problem?
@@SuperMakeSomething All fixed with an older GFX library. I also ported it to use TFT_eSPI.h :-) Just need to move the audio mp3 playing to an I2S amp for better audio quality.
This project uses a very small screen in the neighborhood of 320x240 pixels. A sign board big enough to be useful in a retail space would need to have a lot more pixels. I think that would be beyond the capabilities of the ESP32. A Raspberry Pi or similar single board computer would be a better choice.
Sweet, I've been watching the library creators post on Twitter as he has been testing performance with different Esp32 versions. I'm curious is 25-29 fps is possible on bigger resolution LCDs? Does the library go over this?
The library is definitely very cool! The Instructables tutorial that I initially found the library through (www.instructables.com/Play-Video-With-ESP32/) mentions being able to theoretically push up to 60 fps via SPI on a 320x240 16-bit display, but that does not include overhead for reading/writing video data. I had to change the code a bit to get it running on this project -- the author's implementation actually runs on both of the ESP32 cores (one for video, one for MP3), but I was not able to get this working on my development kit and am running everything off of a single core. (The issue is related to reading the SD card data via SDMMC, which the LCD screen's SD card does not support and would require an external SD reader/board.) Having a dedicated video core should increase the refresh rate a bit or alternatively be able to drive a larger screen, but I have not tried this yet.
The software may support it, but I am not sure if the pin layout is the same on that screen, so it may not be able to be plugged into this circuit board.
It could work, though I would double check the definitions file in the screen library to see if this type of display is supported. That being said, it would run at a lower fps because you would need to update more pixels in every frame.
Excellent project and execution.👍 As a matter of fact, I'm just nearing completion of a Teensy 4.1 based, MIDI controllable laser synthesizer, which displays abstract laser effects, based upon complex lissajous imagery, similar to those in original Laserium shows. I have a genuine need for an image preview screen that can convert XYRGB points @ ~40kpps. I've been searching for a RGB vector to HDMI display for 2 years w/o success. ref: YT video 'Christopher Short laser Radiator HDMI' (very similar project) Thank you for any pointers towards that goal.