HackDAC

A bit over a year ago, Seth Schoen of the EFF opened my eyes to a movement by the MPAA to plug the so-called “Analog Hole”. Basically, Hollywood realized that despite all their efforts to put DRM on digital content, people still have to watch this stuff with their eyes, and on the way to our eyes and ears, this digital content gets turned into analog signals. Ah hah! The clever “pirate” can purchase a high-quality digitizer and can effectively defeat DRM by just redigitizing the content. Thus, the “analog hole” was dubbed. This problem is particularly distressing for Hollywood, because the same silicon technology principles that has enabled digital content to be so pervasive (e.g., Moore’s Law and finer geometries leading to cheap, powerful CPUs) also enables cheaper, better, and higher quality data converters, particularly of the sigma-delta type.

The solution? Propose legistlation that would require all video-rate or faster A/D converters to contain watermark detectors that would force them to turn off if a pirate stream was being digitized. I can’t begin to tell you how offensive I find this; I’ll spare you the details as I’m trying to keep my blog more focused on technical facts and less on my pet opinions.

I hypothesized that it is possible to build a video-rate A/D converter out of nothing more than a standard FPGA and a handful of resistors. This hypothesis lead to some work, which I am sharing here in a two-part series. Part I is the theoretical background that enables the “HackDAC”; part II shows the implementation and some results. This week, I’ve converted Part I to HTML, and soon I will put part II up.

5 Responses to “HackDAC”

  1. Edwin Yap says:

    Um, if it’s an A/D converter then why is it called a Hack”DAC” ? ;-) Understandably, HackADC wouldn’t sound as nice, lol.

  2. bunnie says:

    LOL yeah, it doesn’t sound as nice. I also built a D/A converter into the same board, actually, where I use multiple outputs of the FPGA ganged together, and I use the programmable current drive feature of the IOBs to create a binary step. Actually, it’s a segmented DAC, where I use binary for the bottom 4 steps and a unary step for the last one. It burns a hella lot of current, but it’s also really fast. :D The AD converter was more interseting to write about, tho.

  3. Nick says:

    This is the best lesson in electrical engineering theory that I have read this year.

  4. Karin says:

    You know, I read this blog because you’re my friend, not because I have a great interest in or understanding of hardware (my occupation notwithstanding). But I’m with Nick…this was a FANTASTIC article, well-written and very easy to understand. Thanks, dude.