| Click here to select a new forum. |
| MacDVI - OSS Pico 2 based TTL to DVI video converter! |
Posted by: arroz on 2026-05-10 09:58:02 Hi everyone!
Just announcing that a few days ago I published MacDVI, the source and documentation for a small project I've worked on on my free time as part of moving my Mac Plus to an LCD instead of the CRT: https://codeberg.org/arroz/MacDVI This is a DIY project, that anyone can build with a Pico 2 and a level shifter (or a few resistors if you're lucky).
It uses a single Pico 2 to sample the video and outputs it to a 1024x768 DVI (HDMI compatible) screen. Since that resolution is twice the Mac's one (with black bars on top and bottom to compensate for the 384-342 height difference) the scaling is pixel perfect. It works on the 128k, 512k and the Plus. Other B&W compact Macs can probably be made to work as well with a few adjustments in the software, but I don't have any of them to test, unfortunately.
I have written extensive documentation since I would love it to be used as learning material for people getting into electronics and/or restoring these wonderful machines.
As far as I know this is the only converter out there that outputs a digital signal (not VGA), aside from RGBtoHDMI and variants. The motivation was developing something that could be built on a much less expensive, and readily available hardware. Since DispHSTX could do the HDMI part at the resolution I needed, and I knew the Pico could sample signals fast enough (as I have sampled them using the Pico-based Dr. Gusman logic analyzers) it was just a matter of putting all the software together. š It's my first project with a Pico, I loved working on this and almost screamed the first time I saw those PIO state machines sampling the image of my old Plus perfectly.
I hope you find it useful! š
Regards,
Miguel Arroz |
Posted by: Byrd on 2026-05-11 02:58:07 Thanks Miguel, nice project! Also excellent for testing these boards |
Posted by: kris92 on 2026-07-03 01:23:32 Fantastic, it works perfectly on a Macintosh SE ! I needed a clean RGB to DVI solution. It is just perfect !
Thank you so much for that ! |
Posted by: cheesestraws on 2026-07-03 01:51:10 Aha. I missed this project somehow!
I was looking for something like this a while back, tried to build my own and couldn't get it working properly. Next time I do anything on that project I'll try yours out instead, it looks much better. |
Posted by: iantm on 2026-07-03 06:04:31 This stuff is so amazing!!! I love this community of makers. |
Posted by: arroz on 2026-07-03 09:51:00 I'm glad to hear that! š Did it work on the SE without any modifications? I thought the SE didn't use inverted video like the Plus, but I don't have one to test. |
Posted by: kris92 on 2026-07-03 15:27:37 Just plug and play. Same code, same software. |
Posted by: kris92 on 2026-07-03 15:28:12 Hardware |
Posted by: kris92 on 2026-07-17 12:10:21 Just test my version of an analog board with your HDMI code. I added support for a temperature sensor to control the Macintosh fan. Now waiting for the delivery of a 8.4" inch LCD. |
Posted by: arroz on 2026-07-17 12:57:42 Thatās awesome! I want to do something like that, design my own analog board with a MeanWell PSU hanging from it, the pico, speaker, switch etc. I just didnāt have enough time and energy to dedicate to that yet (it would be my first PCB so lots to learn).
Let us know when you have the screen, I would love to see it all working. |
Posted by: arroz on 2026-10-02 10:55:03 Hi everyone!
Just announcing MacDVI now supports Mac Classic out of the box (I was trusted one for restoration and used the opportunity to add support to it). It works exactly as with the 128/512/Plus (and apparently the SE, as you can see above), and it just needs an extra wire connected to ground used to ID the Mac Model!
It should also work on a Classic II (I think the signals are the same as the Classic), if anyone has a Classic II logic board around and can test this, let me know!
For the most curious, there are two main differences compared to the other models: the video is not inverted (high is black, low is white), unlike the Plus that outputs inverted video, and the timing is slightly off (there is an additional half-a-pixel delay, or close to that, relatively to the h-sync pulse). This release fixes both things when the ID pin (GPIO 6) is wired to ground (leave it floating for the Plus as before, it's pulled up internally). I also added dev tools, specifically by building with the DEV_UTIL flag on, the h-porches will be printed on screen, and 4 buttons can be wired to the Pico to change the porches on the fly.
Hope you enjoy using MacDVI to bring your vintage Macs back to life!
Regards,
Miguel Arroz |
Posted by: ereuter on 2026-10-06 08:59:35 I started playing around with MacDVI on a SE/30. I attached a 5-conductor ribbon cable to the J12 cable by tacking the wires onto the pins with a little solder and adding shrink tubing for strain relief. I terminated the other end in a Dupont connector.
For level conversion, I used a bi-directional converter I had in my drawer from past projects. It requires 5 V and 3.3 V supplies on the corresponding sides. I pulled 5 V from the Mac and 3.3 V from the output on the Pico 2. The Pico is powered through the VBUS pin from the Mac.
It works, but there is some effect on the built-in video. It is dimmed slightly and there is a vertical line about 1/3 across the screen. You can't really tell in the photo. I think I will try using a 74LVC245 instead, since the level conversion only needs to go one direction. |
Posted by: ereuter on 2026-10-06 12:31:37 New version using a 74LVC245 for the level conversion. This one works better, having no effect on the built-in video. I had some ringing on the video signal and added a 15 pF cap from Video to GND (the red one), which fixed it. The beige cap is a 0.1 uF bypass between VCC and GND. |
Posted by: arroz on 2026-10-06 12:45:57 Awesome! I never tried both the CRT and external display so I donāt know how one affects the other. But Iām not surprised it works better with a unidirectional level shifter than a bidirectional, especially the āmagicalā ones without explicit directional control pin. I still have to study the data sheet you sent me to understand how it works. |
Posted by: ereuter on 2026-10-06 13:29:09 I think essentially both sides have pull-up resistors, and if either side is pulled to ground, itāll drag the other with it. It probably works fine when the input is attached to a dedicated output, but when itās dropped onto a bus, things are unpredictable. I think it would probably be OK if the internal video werenāt also connected. |
| 1 |