Barely a week goes by without another hack blessing the RP2040 with a further interfacing superpower. This time it’s the turn of the humble PAL standard composite video interface. As many of us of at least a certain vintage will be familiar with, the Phase Alternate Line (PAL to friends) standard was used mainly in Europe (not France, they used SECAM like Russia, China, and co) and Australasia, and is a little different from the much earlier NTSC standard those in the US may fondly recollect. Anyway, [Fred] stresses that this hack isn’t for the faint-hearted, as the RP2040 needs one heck of an overclock (up to 312 MHz, some 241% over stock) to be able to pull off the needed amount of processing grunt. This is much more than yet another PIO hack.
The dual cores of the RP2040 are really being pushed here. The software is split into high and low-level functions, with the first core running rendering the various still images and video demos into a framebuffer. The second core runs in parallel and deals with all the nitty-gritty of formatting the frame buffer into a PAL-encoded signal, which is then sucked out by the DMA and pushed to the outside world via the PIO. There may be a few opportunities for speeding the code up even more, but [Fred] has clearly already done a huge amount of work there, just to get it working at all. The PIO code itself is very simple but is instructive as a good example of how to use multiple chained DMA channels to push data through the PIO at the fastest possible rate.
For those of us who grew up before the Internet, the center of pretty much every house was the TV. It was the shrine before which we all worshipped, gathering together at the appointed times to receive the shared wisdom of mass entertainment. In retrospect, it really wasn’t that much. But it’s what we had.
Content aside, one thing all these glowing boxes had in common was that which did the glowing — the cathode ray tube (CRT). Celebrating the marvel of engineering that the CRT represents is the idea behind [Matt Evan]’s tiny desktop TV. The design centers around a 1.5″ CRT that once served as a viewfinder on a 1980s-vintage Sony camcorder. [Matt] salvaged the tube and the two PCB assemblies that drive it, mounting everything in a custom-built acrylic case, the better to show off the bulky but beautiful tube.
The viewfinder originally used a mirror to make the optical path more compact; this forced [Matt] to adapt the circuit to un-reverse the image for direct viewing. Rather than receiving analog signals off the air as we did in the old days — and we liked it that way! — the mini monitor gets its video from a Raspberry Pi, which is set to play clips of TV shows from [Matt]’s youth. Rendered in glorious black and white and nearly needing a magnifying glass to see, it almost recaptures the very earliest days of television broadcasting, when TVs all had screens that looked more like oscilloscope CRTs.
This project is a nice homage to a dying technology, and [Matt] says it has spurred more than one conversation from people you grew up knowing only LCD displays. That’s not to say CRTs are totally dead — if you want to build your own old-school TV, there’s a kit for that.
Never underestimate the ingenuity of the demoscene. The self-imposed limitations lead to incredible creativity, and, the range of devices they manage to get their demos running on never ceases to amaze us. But we never thought we’d see a C64 demo without one central component: the C64.
Full disclosure: [Matthias Kramm]’s demo, called “Freespin”, does need a C64 to get started. The venerable 6502-based computer runs a loader program on a 1541 disk drive. But from then on, it’s all floppy drive. And [Matthias] has laid bare all his tricks.
The video below shows the demo in full, including a heart-stopping on-camera cable mod. By adding a single 100 Ω resistor, [Matthias] turned the serial clock and data lines into a two-bit digital-to-analog converter, good enough to generate signals for both black and white pixels and the sync pulses needed for the display.
No demo would be complete without sound, and Freespin’s tunes come from controlling the drive’s stepper motor, like a one-voice Floppotron.
Watching nothing but a floppy drive run a cool demo is pretty amazing. Yes, we know there’s a full-fledged computer inside the floppy, but the bit-banging needed to make this work was still mighty impressive. It might be cool to see what you could do with multiple drives, but we understand the minimalistic aesthetic as well. And speaking of tiny little demos: the 256 bytes of [HellMood]’s “Memories” or [Linus Åkesson]’s “A Mind is Born” still leave us speechless.
The [IMSAI Guy] has posted a follow-up video with all the details of how he programs GAL22V10 chips in the modern era. We noted that this was missing from his stepper motor project a few days ago, and before we could even ask him, he answered. And no, you won’t have to dig that old Intel 486 DX2-66 out of the closet and search eBay for working floppy drives. It turns out the answer is easier than you’d think.
Microchip now owns WinCUPL through its acquisition of Atmel in 2016, and offers WinCUPL as a free download from the Microchip website. This runs only in Windows, although some users report success running under Wine on Linux. This tool will compile the design, but you still need to program the chip. If you’ve done any EEPROM programming lately, chances are you have one of the TL866A MiniPros laying around — this programmer can handle CPLDs, PALs, and GALS as well as EEPROMS. [IMSAI Guy] walks you through the programming procedure, and if you’ve programmed EEPROMs before, the process will be familiar.
For those who prefer the Linux or Mac environment, there are some alternatives. We’ve seen GALasm used on several projects such as [Ken Yap]’s 8085 Minimax. The GitHub repository for GALasm states that commercial use is strictly prohibited, so take note if this applies to your project. As for controlling the TL866A, there is a Linux port called minipro available on GitLab. The remaining hurdle if you want to experiment with these programmable logic chips it to actually get them — many are now obsolete. But it looks like you can still buy Lattice and Microchip (Atmel) ones from various sources. Happy Programming.
Closed captioning on television and subtitles on DVD, Blu-ray, and streaming media are taken for granted today. But it wasn’t always so. In fact, it was quite a struggle for captioning to become commonplace. Back in the early 2000s, I unexpectedly found myself involved in a variety of closed captioning projects, both designing hardware and consulting with engineering teams at various consumer electronics manufacturers. I may have been the last engineer working with analog captioning as everyone else moved on to digital.
But before digging in, there is a lot of confusing and imprecise language floating around on this topic. Let’s establish some definitions. I often use the word captioning which encompasses both closed captions and subtitles:
Closed Captions: Transmitted in a non-visible manner as textual data. Usually they can be enabled or disabled by the user. In the NTSC system, it’s often referred to as Line 21, since it was transmitted on video line number 21 in the Vertical Blanking Interval (VBI).
Subtitles: Rendered in a graphical format and overlaid onto the video / film. Usually they cannot be turned off. Also called open or hard captions.
The text contained in captions generally falls into one of three categories. Pure dialogue (nothing more) is often the style of captioning you see in subtitles on a DVD or Blu-ray. Ordinary captioning includes the dialogue, but with the addition of occasional cues for music or a non-visible event (a doorbell ringing, for example). Finally, “Subtitles for the Deaf or Hard-of-hearing” (SDH) is a more verbose style that adds even more descriptive information about the program, including the speaker’s name, off-camera events, etc.
Roughly speaking, closed captions are targeting the deaf and hard of hearing audience. Subtitles are targeting an audience who can hear the program but want to view the dialogue for some reason, like understanding a foreign movie or learning a new language.
If you want a simple and easy introduction to stepper motors, check out the [IMSAI Guy]’s short video where he designs a very basic stepper motor controller and packs in a lot of quick lessons along the way. (Embedded below.)
He first goes over the fundamentals of a stepper motor in a practical, hands-on approach, and also shows us how to ring out the connections if the pinout is unknown. Next he demonstrates stepping the motor manually and then makes a simple FET driver circuit. Just when you’re expecting a small microcontroller to appear, the [IMSAI Guy] instead digs deep into his junk box and explains how to drive the motor with a 22V10 GAL (an electrically erasable PAL) and a 555 timer module. Based on a clearly-explained logic table for driving the coils, a sneaky way to introduce Karnaugh maps, he proceeds to write the output equations in WinCUPL.
WinCUPL is the modern version of CUPL (Compiler for Universal Programmable Logic) originally written by a company called Assisted Technology, now owned by Altium. CUPL and peers like PALASM from Monolithic Memories, Inc. (MMI) and ABEL from Data I/O Corporation were basic Hardware Description Languages specifically designed for PALs, GALs, and CPLDs. PALs were small arrays of logic gates with fusible interconnections, and your design is “burned” into the fuses much like a (EE)PROM. When designing with PALs, you could clearly visualize the connections in your mind, something that has since been remedied by the advent of modern FPGAs.
Alas, he cuts out the part where the source code is compiled and the 22V10 is programmed, and jumps directly into testing the circuit on a breadboard. Spoiler alert — it does work. Zooming in close and squinting, the nifty 555 timer breadboard module that he points out is called a TP353, which you can find from your favorite online supplier.
While most analog televisions come with composite video inputs on a yellow RCA jack, the feature is not universal. This problem was even more prevalent in the 1980s, and most home consoles got around the problem by instead feeding video to the television’s tuner with an RF modulator. [Manzel Seet] had just such a television which used the PAL standard. Wanting to display images from a microcontroller, he put together PAL-Streamer.
The aim of the project was to display images on an analog television with minimal investment in hardware over and above what [Manzel] already had on hand. To this end, the project was built using a STM32F411 Nucleo development board. Capable of running at clock speeds up to 100 MHz, there’s plenty of grunt to handle demanding tasks like outputting video signals to a TV.
To achieve the target frequency of VHF Channel 3 (61.25 MHz), [Manzel] elected to rely on the onboard PWM hardware, after being inspired by [CNLohr]’s ATTiny NTSC project. The project takes advantage of the odd harmonics of square waves. Setting the PWM output to operate at 6.86 MHz, the ninth harmonic ends up at around 61.71 MHz, close enough to be tuned in on the TV set. With the hard part done, [Manzel] then implemented a virtual COM port allowing an attached PC to send PNG images or GIF animations to the display.
It’s a fun project that shows it’s possible to drive all kinds of analog displays if you’re willing to be creative about how you do it. Files are available on GitHub for those eager to recreate the work. [Manzel] points out that this method does put out a lot of RF energy in the surrounding bands, but for direct hookup to an antenna input, it works just fine. We love to see creative video projects on microcontrollers, so if you’ve figured out how to get an Arduino Uno to do 1080P over HDMI, be sure to let us know. Video after the break.