I made a VGA card that blew my mind
ฝัง
- เผยแพร่เมื่อ 26 มิ.ย. 2023
- It was time for a new VGA board and with a new peripheral we can get amazing resolution and color fidelity. Let me take you on a journey how a new product comes to life.
(ad) Check out my sponsor Aisler at aisler.net/?... and get 5€ off with the coupon code "boardluni".
Link to details how to use the manual bridges community.aisler.net/t/bridge...
Get the board here: www.tindie.com/products/edit/...
Some first code here (lib in the making): github.com/bitluni/ESP32-S3-VGA
Materials and Tools (affiliate links):
ESP32 S3 Modules: aliexpress.bitluni.net/s3modules
ESP32 S3 N8R8 Dev Board: aliexpress.bitluni.net/s3devB...
Carvera CNC: link.bitluni.net/makera
Preheating Station: aliexpress.bitluni.net/heatin...
Ultrasonic Cleaner: aliexpress.bitluni.net/cleaner
Soldering Mat: aliexpress.bitluni.net/mat
Tweezers: aliexpress.bitluni.net/tweezers
Low Temp Solder Paste: aliexpress.bitluni.net/lowTem...
Flux: aliexpress.bitluni.net/flux
Colorful Pin Header: aliexpress.bitluni.net/pinHeader
SMD Resistor Set: aliexpress.bitluni.net/RSet
THT Resistors: aliexpress.bitluni.net/resistors
THT Capacitors Ceramic: aliexpress.bitluni.net/caps
Electrolytic Capacitor Set: aliexpress.bitluni.net/elecCaps
Breadboard Set: aliexpress.bitluni.net/breadb...
Pink (and other) LEDs: aliexpress.bitluni.net/pink
SMD Leds (incl. pink): aliexpress.bitluni.net/smdLed
My camera and lens (4k 60fps): amazon.bitluni.net/gh5
Zoom H6 Audio Recorder: amazon.bitluni.net/h6
plz share :-)
Live Channel: / @bitlunilive
Github Sponsors: github.com/sponsors/bitluni
Patreon: / bitluni
Channel membership: / @bitlunislab
Paypal: paypal.me/bitluni
Twitter: @bitluni
reddit: u/bitluni
Discord: / discord
#electronics #maker - วิทยาศาสตร์และเทคโนโลยี
The board is available now: www.tindie.com/products/edit/esp32-s3-vga/
Replace "edit" with "bitluni" in the URL, otherwise theres a log in prompt to try to edit the entry.
I just got mine delivered, haven't had time to play around with it but super excited. Great job as always bitluni.
Hi, since the boards are sold out, is there a chance you share the schematics, please?
As a workaround, I thought ordering standard S3 DEV kits and attach the resistor array via a VGA breakout board.
"Hidden under several convoluted abstraction layers" is an accurate description of high-level microcontroller development.
if you browse the github it gets really strange especially as with the versions there seem to be some major redesigns in the recent versions. and the latest one didn't propagate to arduino yet. and the main search always takes you to the head revision
@@nosferratu (crying in java dev)
ESP-IDF is both really useful, and the bane of my existence at work :’) the GitHub issues list and commit history paints some wild pictures…
@@marcogenovesi8570 cries in breadboard
correction: ALL modern development for all compute platforms
Its really incredible what people have done with the esp32 series of boards.
I designed a product with the S3-WROOM-1 to drive a 320x240 24 bit color LCD with integrated capactive touch screen! CAN and USB Interface included :P
Not “people”. Its bitluni. He is an old school genius. No one else has done what he has, a cut above the rest.
@@supernova86 I'd love to know more about the CAN aspect of that, I haven't been able to get CAN to work on mine and it's kinda important to an automotive project I have
@@Really2950 You are wrong, there are many engineers that are doing great stuff with ESPs and for some of them you don't need half as much knowledge
@@Really2950Bitluni is a champion! But no, there are plenty of people doing amazing things with these SoCs including at my work. Sadly a lot of it is hidden away in commercial products though.
There was a time in 1990s or late 80s when entire companies were spun around developing just VGA. Tseng labs, Trident, Video 9 etc come to mind.
Who has not developed for Tseng ET4000 chips in this days. Still remember this good old days when all hardware was 100% understood.
7:10 "there is also a complete loss of sync every few seconds" & 7:17 "this interrupt jitter moment is where some screens lose the sync completely (congrats on finding these texts :-) "
THANK YOU
Damn this Luni and his subliminal messages!
10:26 don't let you fool by the mode name; it's more like 40fps.
The way you handle the stencil is making me shiver. Hope you're using lead-free solder my dude. You have that stuff all over your workspace.
@@SianaGearz :D Thanks, that one was bugging me, I couldn't spot it and it wouldn't pause on that frame!
@@EShirako on a PC, when the video is paused, you can use the full-stop and comma keys to advance one frame forward and back
Just a quick note, from experience. Do not put vias in pads. The solder paste will get sucked into the via and the pad will not be soldered properly. Doesn't happen all the time but if you have a big production run it can mess up a lot of boards. It might even be that the pads make electrical contact but are not properly soldered and after they reach the customer the pin is moved a little during transport and doesn't make contact anymore.
I saw him do that, and it set off my !! reflex, but I couldn't tell you why, I was like "wait, should you do that?" Good catch! I'm glad there's some experience around here helpful for us 'homegamers'!
Depends I think if they fill the holes in the vias then its ok. Castellated holes its called I think
I know just enough to understand the question, but not quite enough for the rest. Where was he using the vias? Is he using a throughhole as a via?
@@JohnSmith-iu8cj: Castellated holes are something different. Filled vias can be either tented (with soldermask or something), or receive extra solder.
Which timestamp shows the error?
This is just brilliant. God-mode hardware hacking. Talk about pushing the S3 to its limits - even Espressif must be impressed with this. Now I'm off to watch all 4 hours of your livestream part 3.
i think part 2 was the one with 720p
LCD Manufacturers should hire you. Congrats sir
S3 was a VGA manufacturer. First i thought you connected an old S3 VGA chip to the ESP32, then i realized it is the ESP32-S3.
I'd like to say A HUGE THANK YOU for what you're doing!
You're an absolute god in the maker community.
God damn, that is a beautiful bit of work. The detail you go into with the design iterations and troubleshooting is greatly appreciated. Valuable content.
brilliant!
big thanks for the insides about syncing and such!
Your video has answered my questions. Thank you very much for sharing this method that works for all platforms.
Ohhhhh ... I just noticed 14:40 we have the same NEC MultiSync monitor.
Always loved the display quality on that one.
Unfortunately one of the buttons is loose on mine.
Fantastic work Matthias, you are an inspiration to us all ❤
You have made great work congratulations and thanx for sharing this ❤
Beautiful engineering work. All good wishes.
Love your content, have for years. Thank you 🙏
Excellent video. As usual, is a pleasure practice electronics with you! Thanks
Omg this stuff is incredible!
Amazing video. Gives me inspiration and encouragement to go forward with my electronics journey. Also v funny with the rolling pin on the keyboard. Thank you.
incredible, I can only dream at this point of developing the skills to complete a project like this
Great job. Just popped up in my feed. I was just thinking about such a project. Years ago at university I worked at project to create a simple game on FPGA and output video signal to VGA. Team mates were a year ahead of me regarding FPGA programming, so I worked just on PS/2 keyboard interface.
Now when I thought about ESP32, I did not expect it to me that complicated and thank god I had another project in progress and did not try to jump into this rabbit hole.
Great job!
Love your project.
mindblowning focus
This is amazing. Great work.
SOoooooo cool. Can't wait to get my hands on THIS!! amazing work.
Amazing. Great job!
awesome project! there will be lots of uses!
I subscribed at "with blackjack and circular buffers". Love the ingenuity and hard work!
Excellent work, Looking forward to trying this out.
Your work is amazing
I really like to see graphics in embebed systems and this was a total pleasure to see
Incredible.. thanks for sharing
Wow, awesome project!!!!!!!
Great project, you are really squeezing everything out of the ESP32-S3. The new formfactor for boards with PSRAM is great. No need to have different footprints anymore. They now also sell one with 32MB of flash. I am thinking about using that one for OpenEpaperLink because it would allow for local storage of a lot of pictures.
If you need lots of local storage you can probably just add an SD card? On-board flash is nice, but it probably adds a lot cost/unit space.
Fyi, the ESP32S3 RGB interface doesn't support the APLL because there is none in the chip, sorry. Next chip perhaps again :) I'll also see if I can convince the digital team to add the few bits you need for the higher-res modes in new hardware; even if VGA isn't that much in demand, I can see someone glueing TDMS converters to an ESP32 to get a DVI/HDMI solution.
yeah I figured ther is none 😅. as far as I remember the apll was always prone to errors. maybe too much to take the risk any longer. hardware tmds would be neat 🤩. but adding just another bit to total vertical lines might be even good for actual tfts.
this weird shift with ring buffers from psram in large resolutions in 8bit is worth investigating... didn't have time to look into it too much. maybe fixable with a hack making the last buffer a different length for this chip if it's constant 🙈
hope you didn't take the criticism to harsh. you know I love you guys 😘
@@bitlunislab Critisism is no issue, we're aware that there's limitations in our chips; you simply can't think of all use cases everyone will think up, and sometimes you don't have time or overlook things when designing stuff. The shift wrt psram is a known issue; someone below already mentioned it: in the S3, we derped on figuring out that the bandwidth to external memory may be limiting, so some peripherals have weird behaviour when interacting with it and overloading the bandwidth: for LCD, the DMA just outputs zeroes. That's actually the reason why the driver uses an interrupt to start a new transfer, it stops any DMA weirdness from permanently offsetting the image as the interrupt 'resets' the DMA and LCD subsystem, so a glitch only lasts a frame.
@@Spritetm reasonable solution. I think a comment in the code was indicating that.
it was never meant to be used with the niche VGA.
we all just try to massage some boundaries 😂
the high resolutions won't be useful anyways except for more or less static images and scrolling text since the bus is clogged and the blanks won't allow much updates in the framebuffer
Dear @Spritetm Consider the needs of LaserMAME with ILDA as well. It would be great to have a compact solution on the market.
"How is the ILDA connector pinout?"
you legend this is amazing. cant wait to try out your code when its done
Stunning to see how the small resistors literally solder themselves and align automatically under the heat gun. Amazing.
This is really Awesome.
Oh eM Ef Geez! Such a simple and brilliant idea.. Its sad VGA is totally gone nowadays.. So much great stuff was made in this era.. Two thumbs up for you, this is fascinating.
You got me feeling amazed as i was watching it happen with you. This is beautiful magic you done here friend. I want this :D
i really liked the big throughole resistor network, but i guess its also fun watching the smc resistors swim onto the pads when you heat it
Very cool! Congratulations.
the dithered color banding trick is AWESOME!!
This reminds me a bit of the work that Fabrice Bellard (the ultimate hacker god) did producing an ATSC compatible HDTV modulated signal from a video card. You rank right up there, bitluni. Nicely done, really.
Vielen Dank für die Arbeit am ESP32 S3 VGA.
Amazing! I'm speechless!
Outstanding skills !.
This has inspired me to build a VGA converter based on line resampling and a fixed clock DAC.
Great work, great video!
So cool!
You sir, are pretty amazing!
Dear @bitluni This was a great design. Thank you for documenting it. I get the idea that you are clever enough to also do one for the ILDA system. It might become the most popular interface if you can conform to the specifications. The discreet clock speeds might be enough to allow the ramping of the voltages smoothly enough. Your buffer system could be used to repeat the vectors. There was a chap on YT that used a VGA port to control a XY scope way back when so the concepts are similar enough.
Search for "How is the ILDA connector pinout?" for a basic rundown of the interface.
LaserMAME is a thing.
Beautiful work. 👍😀
One more brilliant work! 👍👍
Hey, I have been playing with one lvds display and esp32s3 and I have hit the similar scrolling issue. The scrolling image was caused by bottleneck between the external ram and the esp. The LCD DMA is faster than the QSPI. The DMA pump zeros until data is available and after that continues with the valid data. You could try to clock the ram higher. At least in my case it helped :D
how do you clock that? and where can I find your project 🤩
maybe I can prime the cache in the interrupt to get it ready in time. 🤔
Absolutely brilliant work! Wow. You are squeezing out more of the ESP32 THAN ANYONE! Can Aisler (or YOU or anyone) sell fully assembled boards? I think it goes beyond my ability...
I'm in the same situation, my hand to eye coordination just aren't what they use to be, I'd be looking for an assembled SMT device.
actually you can order assembled pcbs. they support several major part suppliers. I used it on one of my projects before
amazing job 🙏👍👍
Stuff like this is gonna be key in crystalizing a long-time dream: Analog high-refresh DIY large-format LED Display.
I know it won't be me that makes it happen, but I keep seeing more 'parts' necessary to the concept, 'made real'.
man this is fantastic, i loved your content, i simply subscribed right way.
Blows my mind you do all this and still get time to watch Futurama!
Now that's what a good sponsorship is!!
Delightful design.
And memories of my old 800x600 Samsung CRT monitor + SiS6326 + Celeron 333MHz + NFS3.
its awesome project
I have no idea what is this used for but I love your enthusiasm : ]]
I'm not even sure what this is for, but I watched the whole thing and it seems really cool.
Inspiring project! I can recommend "Interactive HTML BOM plugin for KiCad" for generating the placement map when assembling. With this, you don't have to re-map the components at Aisler. And also great to see Aisler supporting your project, I use them all the time and their customer support is awesome :).
Thank you for the compliment. We continually work on providing the best support. When the project is set up correctly, there is no need to re-map the components. Unlike other tools, we automatically sort the components in a way that eases the placement and reduces errors. And as an added benefit, you can order assembled boards with just a few clicks after your verified your hand assembled prototype works because all the data is ready to go.
Nice workshop!
This is incredibly impressive. The ESP32 is so weak yet very strong by retro computer standards. This is a very exciting project! :)
Nice work. That Aisler software integration looks really helpful.
Definitely give it a try!
Shame they're soo expensive in comparison to other manufacturers.
@@m1geo We recently improved our budget board portfolio so you get more for less money. And we are working on expanding our portfolio with more low-cost options, but I cannot give you more details at this point.
Great work ! Superb !
I love this guy, when ge laughed operating CNC, its simple adorable. Good enginering is just a bonus
Adapters are what I live for!
I went "oh dear god" when I saw the thumbnail. Excellent story/video/project. And a new channel to sub to :D Lets go! Also, you sound like "the guy with the swiss accent" (Andreas Spiess), who also does a lot of embedded stuff. :D Thanks for the video!
Really nice project! I started to develop for the ESP32-S3 as well for a retro-computer project to make it easier to replace software on a cartridge by WLAN and using its internal PSRAM for some extensions. Really nice powerful modules, just a bit too few GPIO imho but nothing that cannot be fixed with some fast muxing and bitbanging.
Fantastic!
Outstanding work & love the Hat tipping to the original "Amiga" shop Demo graphics.
Now if you can just add Planar mode, a Copper & Blitter 8^)
Cheers from Oz
Great stuff!
Super cool!
dude dude dude I NEEEEEEEED whatever that monitor setup is for programming right MEOW OMFG
I have one of your old boards - very nice indeed :)
That is extremely impressive, doesn't seem like it'd be too hard to use one of these modules as the video solution to any number of DIY retro computers. VGA timing issues can cause some REALLY odd bugs. I remember having an old CAD/business graphics card which would do utterly bizarre things if the power in the house flickered at all, narrowed it down to Hsync going haywire when this happened. needed to restart to fix it.
Great job🎉
this pcb service on europa looks pretty good
1 week boards are awesome, will definitely check it out
Not bad at all :) I use JLCPCB. They make boards in 1 (one) day, then there is at least 5 days for delivery to Australia. The boards cost next to nothing, the DHL delivery is A$30 to A$50.
7:53 so sweet!
Awesome!
hacker mode!! nice content, I really liked it, i ended up subscribing
0:53 the monitors setup looks nice
You need to make an in depth video series of how vga card works. Awesome vid❤. I wanna learn more. From coding bg I could understand some but not entirely😢
Your works never fail to be impressive... Well done!
The sound effects are so much fun. 😄😆😂😂😂
finally aisler makes some moves
wie geil ist das denn, mega work, diesen ESPVGA-Adapter kann man jetzt als Grafikkarte benutzen, für kleinere Chip-Projekte , die auf großen Bildschirmen laufen muss. cool
this has got me excited as a potential method to make a game console using software emulation. keen to get a board when they are available
Impressive!
Those Aisler tips are useful. I went looking for an EU-based board fab and found Aisler right here in Germany, and I’m planning on using them more. I’ve done a couple of board runs with them already for my ESP32 robot and I’m super happy with the service and results, not to mention the shipping time.
Are they capable of doing long holes in the basic plans now? Last time I tried them my USB-C Ports would have made the board much more expensive because they didn't cover long holes in their basic plan. Went back to JLCPCB then, who don't have a issues with basic parts like USB-C Ports.
@@Leif_YT they are capable of doing long holes in the basic plans now, since today =D
@@Leif_YT Plated slots are now supported in the budget and blitz pool. :)
very nice project!
btw I read in one of the datasheets provided by essperif that cleaning esp32 modules with unltrasonic cleaners may damage the internal crystal oscillator, I thought maybe you could take look into the matter.
There are multiple HDMI encoder chips that takes the same input as your VGA resistor ladder and tolerates some clock jitter. You may want to create a version that replaces the VGA resistors with an encoder and emits HDMI.
It's amazing ❤❤❤
Amazing!
Захоплива розповідь! Дякую що поділився! Вражений лабораторією. 😊 Успіхів!