Categories
Uncategorized

T35TP4TT3RN

T35TP4TT3RN

T35TP4TT3RN (aka TEST PATTERN) is a piece I created for Maker Faire Milwaukee in 2016. It consists of a Raspberry Pi single board computer connected to an old Sony broadcast monitor. (I got the monitor from another member of Milwaukee Makerspace who was getting rid of old equipment.)

T35TP4TT3RN

As I often do, I wanted to contrast old hardware with modern hardware. I ended up using a Raspberry Pi Model B which has composite video out via an RCA jack. I used an RCA to BNC adapter to connect to the monitor. The display is a whopping 640×480 pixels.

T35TP4TT3RN

I used the Raspberry Pi Slideshow technique and with most installations, I tried to do a good amount of testing beforehand, letting it run for days at a time. I came across an issue where the system would freeze, and it would get stuck on an image. I contemplated switching to display of a video, but really wanted to avoid that, so I set a cron job to reboot the Pi every 30 minutes. I figured that if someone saw the screen during reboot it would be an extra BTS sort of treat. (The Pi boots very fast.)

T35TP4TT3RN

I did end up altering the monitor a bit. I removed the case and broke out a bit of the battery compartment so I could slide the Pi and extra cable into the battery slots. Since I’ll probably never own the batteries for this unit, hacking it seemed like a no-loss situation.

Here’s a collection of a few of the test patterns that were displayed.

T35TP4TT3RN

T35TP4TT3RN

T35TP4TT3RN

T35TP4TT3RN

T35TP4TT3RN

Categories
Uncategorized

Converting DigitNow! BR120 Videos

Digit!Now

During the holidays my uncle asked me about converting old VHS video tapes to digital versions, and he showed me a converter he had found. Knowing that the specs on such things are usually not very specific, but that I’d find a way to make it work, I told him to order it. (The device is a Werecord BR120 Video & Audio Grabber Box from Digit!Now)

It’s simple to use. You just plug in some RCA cables coming from your VCR or old analog video camera, and press the “record” button on the device. It saves a digital file to an Micro SD card.

AVI Format

Oh, yeah… it’s an AVI file. If you don’t know much about AVI, it’s a ‘container format’, which means it could use any of a long list of encoding schemes, and you may have problems reading the file. Since I’m using Mac OS X in 2016 and AVI was introduced by Microsoft in November 1992, I had some problems.

QuickTime Player 10

The first attempt was to open it using Apple’s QuickTime Player 10. No dice. The “Tell me more” button takes you to a page explaining that QuickTime Player 10 sucks, and you should try QuickTime Player 7.

QuickTime Player 7

QuickTime Player 7 opens the file, but there’s nothing there… at least nothing it can decode properly. (You’ve let me down again, QuickTime Player!)

MPEG StreamClip

That’s enough fun with Apple’s offerings… on to the more powerful Swiss Army knife of transcoding video; MPEG StreamClip. There hasn’t been a new release for over three years, but it still works wonders on changing videos from one format to another.

Well, no better than QuickTime Player 7. Unless you like a white screen better than a black screen. Let’s move on…

Miro Video Converter

Don’t worry, I’m not even half way through my list of the video conversion software I have on my hard drive. (Yes, I have hundreds of applications on my hard drive, not in some damn cloud somewhere!)

Our old pal Miro Video Converter was willing to accept the AVI file and give me an MP4, which is what I want, because it will probably play fine on any device I want to play video on…

Converting

Hey, look at that! Miro Video Converter is using FFmpeg under the hood. Excellent… especially since ffmpegX hasn’t been updated in many years.

Raspbian Boot

As for the video, since I didn’t have one of my VCRs handy, I grabbed a old Raspberry Pi with a composite video output and used that for the test. I know, it looks terrible here, partly due to it being a GIF, but mostly due to it being a computer output scaled down to a 640×480 standard definition display. I’m going to assume actual video footage from 25 year old VHS tapes will look much better. (Sort of.)

Categories
Uncategorized

Video Installation (times six!)

Video Installation

Last summer Ray Chi got in touch with me about an installation he was doing for the Milwaukee Art Museum. He wanted a video screen that could be activated to play a video by touching a metal plate. Well, actually six videos and six video screens and six metal plates.

I told him I’d figure out how to get it all to work the way he wanted. I came up with a few ideas, one of which was using Processing, which I did get working, but at the time Processing wasn’t really running on the Raspberry Pi, at least not officially (or very well) and since the Pi was what we ended up choosing, I needed another solution.

For an installation that’s going to be running for years, simplicity and reliability are key. I had used Pis in the past many times for video players using omxplayer. Typically I’d just launch omxplayer on boot and have it play a video, looping, forever. For this application we wanted the video to play only when the metal plate was touched by a human hand (and then stop playing when someone stopped touching it) which meant capacitive touch.

Rather than spend a lot of time coming up with something that might work, I went with something that I was 98% sure would work. I used Adafruit’s Standalone Momentary Capacitive Touch Sensor Breakout attached to a Teensy LC. Why a Teensy LC? Because it’s a low-cost (LC!) Arduino-compatible microcontroller and it can emulate a keyboard.

Yes, a keyboard! If you have a USB keyboard connected to a Raspberry Pi computer while omxplayer is playing a video, you can just hit the space bar to play the video, and then hit it again to pause the video. Those are the two things we needed to do.

Video Player Controls

So, Raspberry Pi, running omxplayer to play the video, with a Teensy LC attached programmed to work as a USB keyboard, and triggered by a capacitive touch sensor, which was then connected to the metal plate. Simple!

There was this issue of……. timing.

So in theory, the Teensy would just need to send a space character to play the video, and it would do this when you touched the metal plate. But! (And it’s a Big But) the issue was that we wanted the video to start playing at boot and then pause at the beginning and sit there waiting… for someone to touch the metal to start the video playing. Rather than fire up the video via the typical Linux methods, we ended up just starting up the Pis, auto-logging in, and having them wait at the command line… yes, just sit their waiting, doing nothing… Sort of.

When the Pi booted up, it provided power to the Teensy, which then started running its sketch. The sketch would start at boot, wait 45 seconds to ensure the Pi was booted up and sitting there waiting at the command line, and then it would type:

/bin/bash /boot/video.sh

So we actually used the Teensy to send the text to the Pi (just as if a human typed it) which then fired up the script and started the video playing. The sketch would then wait 2.4 seconds and type a space character, which would pause the video. This set the state of things exactly where we wanted them. The video way paused, just waiting for the next command from the Teensy, which was… space, of course!

Now, there’s the concept of “rising edge” and “falling edge” when it comes to pressing buttons. A rising edge is the transition from low to high, and a falling edge is the transition from high to low. That’s a fancy way of saying we can tell when the button is being pressed, and when it’s being released. It’s best to use debouncing for this, and there’s a library for that.

Video Players Mounted

So with everything mounted in place we still had to deal with one issue. The HDMI displays worked find as long as they were turned on before the Raspberry Pi computers. If they were turned on at the same time the resolution wouldn’t set right, and the video would be letter-boxed. There were two options, one would be using two different power strips to get power to everything, with instructions for museum staff to follow a specific order. This wasn’t ideal, so we went with option two. I used a time delay relay so that one single power strip could be turned on, which would turn on the HDMI displays, and then a few seconds later turn on the computers. It worked. (And yes, I found out later I probably could have fixed the issue in software. Duly noted.)

Are there things we could have done better? Yes. Did we get the project done on time, and within (or under) budget? Yes. Was it fun and challenging? Yes and Yes. You may read this and think “Hey, you totally could have solved problem X by doing Y!” and you’d probably be right. I’ve found a number of things I’d do slightly differently if I were to do something like this again. That’s all part of experience, and learning, and sharing… right?

Video Player

When the installation was all done and tested, I got photos of everything, and then set to work on documenting it all. I delivered a 14 page manual on the construction and operation of the video players, along with the code and instructions on how to use one of the backup SD cards that was prepared in case of failure.

Besides, now I can (sort of) say that my work is in the Milwaukee Art Museum. ;)

Categories
Uncategorized

No Signal

No Signal

“No Signal” was a project I wanted to do back in 2014, but never had time to. The idea was to have a projector set up in a space with a video playing that suggested the projector could not find the input source. For anyone who has done a presentation or had to deal with a data projector, you probably know the joy of changing the inputs, waiting for the signal to sync, and even “perfecting image” messages.

It’s 2015 and we still can’t plug a computer into a projector and have it “just work”.

No Signal

Since we needed some projects for the Dark Room at Maker Faire Milwaukee, I figured this would be a good fit. I quickly edited together a video (and I was suffering from a lack of sleep when I did it) that got more ridiculous as I kept adding things. I gave my projector to Bryan Cera for his “Entertainment System” project so I ended up using an old Apple Cinema Display I had on hand. The front looks very clean and stylish…

No Signal

…and for anyone brave enough to look at the back, I wanted it to look ridiculous. Insert comments here about how Apple products are clean and beautiful on the surface while hiding the ugly shit so you can’t see it. I used a lot of zip ties to secure the Apple Power Brick™ to the back of the display, and also added a Raspberry Pi to play the video. There’s also an DVI to HDMI converter in the mix.

No Signal

This is some very sophisticated last-minute rigging right here! (Note the masking tape that secures the SD card in place.) The video is below for you to enjoy.

No Signal

No Signal

No Signal

No Signal

Disclaimer: I may have been slightly inspired by Improv Everywhere.

Categories
Uncategorized

Apple Watch

Apple Watch

I presented a video piece at Maker Faire Milwaukee I called “Apple Watch” which consisted of a Raspberry Pi Model B connected to an Apple Monochrome Monitor from 1988.

The power of component video was harnessed to make a 2012 computer talk to a display that is 27 years old. (Also, Apple used to make solid hardware that lasted a long time!)

The video that plays (after the Raspberry Pi boots up Linux) is the old black & white wristwatch from early versions of the Apple Operating System. The video loops forever and just shows the cursor with the watch hands spinning around infinitely.

You can wait for something else to happen, but it won’t. You can imagine this would fit on your wrist, but it won’t. If the power goes out and comes back on, the Apple Watch will just start up and attempt to run (forever) again. That’s all it does. Really.

Wiring

Raspberry Pi

1988

Apple Watch