Posts Tagged ‘Video Synthesis’

Rainbow Poo, NTSC Synths, and Maker Faire

Monday, September 23rd, 2013

This last weekend, analog man-about-town Paul Rako asked me to show off some nerd stuff I built at the Atmel booth at Maker Faire New York.

To be totally hashtag-real-talk about it: I was skeptical. I have a lot of complicated feelings about Maker Faire, many of which come out when I’ve been drinking, and which I shall save to share with you, dear reader, until we have a beer together. But. I think Paul rules, and I also owe him big time for letting my unwashed self crash the Analog Aficionados parties AND I also use a ton of Atmel parts for both work and fun AND it seemed like the sort of “networkey personal brand-ey” thing that, while it makes me want to slice myself, is usually a good idea in these troubled and humanistic times.

Here’s the thing I showed off:

Color Me Baddly Analog Video Synth Mark 6

It’s an analog video synthesizer — the sixth prototype I’ve made of one in fact, and this one is finally starting to get OK (you can see some earlier ones if you dig back on the site). It generates NTSC video natively and can spit out either composite or S-Video, most of which looks like so much rainbow flavored wee. But I’m fond of it. The “synthesis” part is basically a processor (an Atmel AVR Atmega, programmed in C and a bit of assembly, at least for now) which generates sync, blanking, and colorburst and a bunch of op amps and transistors which encode control voltages into various video parameters. The majority of the board is taken up by oscillators and signal processors which make or shape incoming waveforms in such a way that they look cool when translated into video.

The synth itself stood up to tons of small children beating on it (some of whom were impressively bright and discovered amazing patches I never would have, and some of whom just wiped peanut butter on the board), I met a bunch of amazing people, and I ended up having a great time despite my initial hey-you-kids-get-that-3d-printer-off-my-lawn attitude. So. THANKS ATMEL and THANKS PAUL you were totally right. And to the grinning hellion with the jelly-hands: I’ve got your number.

The following photos pretty much describe how it went.

This kid was a genius who made at least two amazing patches that I unceremoniously snatched later. His mom also cracked a joke about chirality.

This is the face I make when I steal intellectual property from children. G-UNIT!

Close up of your standard-issue unicorn vomit.

Also, this happened.

Big Ups to Adam and Lexie for taking such great photos and providing stellar moral support.

Vectors, or “My Man Inf Left A VEC and a 9 At My Crib”

Thursday, August 8th, 2013

So awhile back my man Andrew Reitano dragged home a vector monitor from an old Asteroids arcade cabinet.
Here’s what we’ve done with it so far:

It was a long road to get there!
For those of you born after the cold war, Asteroids was a hugely popular game by Atari which used a now-obsolete style of monitor. If you haven’t played one in an arcade you owe it to yourself to do it, because they look like nothing else. The phosphor artifacts are trippy and beautiful.

Anyway, the trick with these things is that they get driven more like an oscilloscope than like a normal TV or raster monitor. Meaning, you send them voltages and deflect an electron gun to a certain spot on the screen, rather than drawing an image out line by line like an NTSC or RGB display. This presents all kinds of problems.

First, you have to move this electron gun at an even rate, and you need to do it on a halfway stable and reasonably fast way. I think Asteroids drew at 4MHz, meaning you needed to be pushing the gun that often AND slewing a beam that fast. After blowing up a handful of output transistors in the monitor, we came up with these:


That’s a Xilinx Spartan-3E FPGA on a Nexys2 dev board which Andrew programmed to be our vector generator, and a DAC/Amplifier board I designed to sling the beam around at 20 MHz and 12-bit resolution. First thing we did (this was with some gnarly R2R dac) was get a cube to display on the scope (I think the monitor was still fried from earlier “tests”). It kinda sucked:


Encouraged, we got drunk, fixed the monitor, Andrew wrote a rasterizer and we put the patron saint of Bed Stuy on the screen. It sucked less:


By then we were pretty sure we had a new arcade game in the works and the heavy lifting started. Andrew tuned the hell out of the VHDL and got the FPGA tweaking all kinds of gun parameters. I fixed the amp a couple times to get it running that gun right, and both of us spent a lot of time coding in C. I’ve wanted to make video games ever since I was a kid, but somehow this was my first foray into coding 3d rotations, particles, dynamic memory, and a lot of other generally non-embedded stuff. It ruled. We got to the point where we could rudely waste 3d polygons:


We wrote a storyboard about the Soviet Union blowing up Chicago, threw in a bangin track by Nicholas “Windbreaker” Read and coded a chaingun. Lastly, one awesome thing is that since we’d basically made a vector “video card”, it was not too hard to generate a commlink / stores display / HUD using a monochrome VGA display, running as a secondary monitor. It looks amazing!

We’re pretty sure we’re on our way to a totally kickass arcade cabinet once we get the real game coded. If you know what we should do with this hot mess once we’re done, hit us up!
TB, August 2013

Bent 2010 / Video Mess Tool / Color Me Baddly Breakdown

Wednesday, April 28th, 2010

So, Bent 2010 is over, and as such my arbitrary deadline and excuse for spending time and cheddar on this particular device has been pulled. The above are the final circuits I presented with at the lecture.

The thing on the left is “Color Me Baddly” from the Gerbers below. It’s a color video synth (based on PLLs) which takes a CV in for the color generators (which is peculiar about its input range, to be sure). It also takes a CMOS level input which can invert the color carrier phase by 180 degrees. On the output side it spits standard composite video as well as a CMOS level color carrier (with no sync, blanking, or burst).

The PLL color tracking is pretty good! But not perfect. The PLL keeps lock over a range of a few volts in, and tracks as high as 30+ kHz, which is better than I’d hoped. It took a lot of fudging the loop filter, although the RC calculations weren’t very hard. The invert is a cool input, which originally I just made for the proto because I needed it to to get 360 degrees of color. But in general (not suprisingly) I’m finding that the more inputs you have to things like this the more weird interactions you can get between modulating signals. So I think the invert is here to stay.

The thing on the right is the “Video Mess Tool”. The circuit is different than I originally intended w/r/t the clamping circuits, which had to be made active. The crap you see over in the far right side in the proto area is that new clamp. The clamp ranges changed a little, too. The LT1203 and AD828 and AD8561 are all pretty great ICs and basically do EXACTLY what you’d expect. Even using the opamps in unity gain for the clamps (not recommended) worked without any hitches.

I think this circuit would look a lot cooler with a window comparator — something which muxed many different mess or non mess signals and was smarter about selecting when, and which had a _still_ better series of clamps for restricting signal range. A HSYNC+burst specific monostable following the comparator would also probably not be amiss, although some of the glitchiness would be eliminated. This could be selectable — “sloppy sync” vs “Teutonic Sync” or the like.

The thing in the back is a color synth I made for Christams 2009. It uses varactor diodes instead of a PLL and is its own weird animal. There are pics of that here.

So before finally throwing these guys into the mothballs for who knows what/how long, I made a couple more videos. They showcase some of the more complicated waveforms that can be generated. Neither has any audio involved; both use input from function generators. The above uses the mess tool to mux in a rainbow from the color synth into golf. The lower one is basically two synths being muxed together and inverted all around multiples of 60 Hz, which makes the trippy horizontal band.

Naturally, all this stuff looks better in person; taping an LCD screen with a webcam is not exaclty the height of majesty. And there’s a couple more tech notes on the Narrat1ve youtube channel.

This might be it for this project for awhile, so feel free to write to me or get on the forum if there’s anything else you’d like to know about!

[NOTE: Collin Cunningham of MAKE took a pretty kickass video of my lecture at Bent, and one day I’ll put it up here. Thanks, Collin!]

Xoxo, TB

Color Me Baddly — New Hit Single “Arbitrary Phase Shift” Out Now.

Thursday, April 22nd, 2010

So you can see this PLL video synth guy working his magick here if you look at the scope. That’s a reference colorburst on the top trace, and the bottom trace is that same signal being shifted back and forth around the reference. That’s how NTSC is fixing to get its hue on.

Doing this is the hardest part about generating a color video signal from scratch. “Real” color encoding devices (in NTSC) use something called “IQ Modulation” (really) or QAM (Quadrature Amplitude Modulation) which is what I will shoot for in the next version of this.

I mean, real devices now use processors and ASICs, but.

A close up of the board after he got stuck on some hot pink acrylic.


Video Mess Tool Lives!

Wednesday, April 21st, 2010

Video Mess Tool Version 0.9 is up and running! Peep the videos! There’s one here and more on teh yootoobz. No promises on revolutions/revelations — there’s still lots for me to do to make this device generate cooler output, but the concept seems to be sound.

More nerd details once I’m out of lab mode.