“Retro Future” Remote Control

Disclaimer: This is a project I submitted to Instructables.com for two of their contests.

I’ve always loved the look and feel of the “world of tomorrow” we were presented in mid-century science fiction and concept products.

Okay, that’s not true. When I was young I thought the Tricoders on Star Trek were ugly and clumsy, but the ones on The Next Generation were sleek and awesome. But now that I’m older I prefer the combination of black and silver, of leather and metal over featureless beige or black.

It’s only been the last decade or so that I’ve gained a deeper appreciation for the fusion of aesthetic and functionality over minimalism.

So when I embarked on a project to create a controller for my “atomic” studio, I wanted to use a television remote of the approximate era as a base. I found a two-pack of this Magnavox eight-button remote on eBay and fell in love. I only needed the one, but it was a good deal. Over the course of this project, I’ve been inspired to use the other one to take a different approach to the same concept in a future project.

I knew that early wireless television remote controls (often called “clickers”) used sound. [Side note: we had cheaper televisions in my house and I was the “remote”] The only other one I had seen in person had a single button which hit a strike plate inside to create a tone that the TV could hear to go to the next channel and the next and so forth until coming around to the off position.

But opening this remote showed so much more. The circuit board inside had a coil and something like a speaker that aimed out the top of the remote. Next to each of the buttons was a capacitor of a different rating. By pressing one of the eight buttons the circuit routed through one of the capacitors which modulated the frequency that was transmitted.

I found myself admiring the elegance of using simple parallel circuits to provide such a range of inputs. I started to regret taking it apart.

Well… I’ve got two. One can be sacrificed in the name of SCIENCE!

The Parts

  • A vintage remote control (I’m using a Magnavox remote with eight buttons)
  • A piece of permaboard (If you have the skills, time, and resources to make a custom PCB, go for it. My biggest challenges in this project came from wiring and soldering good connections in this form factor)
  • A microcontroller (I’m using the Adafruit Feather 32u4 Bluefruit LE)
  • A Bluetooth module (I used the above feather which has both in one, but I could have used separate pieces)
  • Buttons (I’m using the “Soft Tactile Buttons” from Adafruit because the larger buttons I was using originally clicked loud enough to be picked up on microphone)
  • A battery of some kind
  • An on/off switch

And from the inventory:

  • Solder
  • Wire
  • Headers
  • Electrical Tape
  • A third hand or PCB vice (I used both at times)
  • Wire cutter
  • Wire stripper
  • Calipers and/or a good eyeball


Dissecting the Remote

I have a vague memory of this, but my parents once told me about the time we went to Red Lobster and I started coming up with names for the lobsters in the tank. My parents tried to subtly dissuade me, but I persisted. Then when the meal came and there were dead crustaceans (I didn’t know lobsters from crabs apparently) on the plates I started asking if they had killed [insert childhood names for critters] for this!? I was pretty upset.

The horrible lesson I was supposed to take away from that was to not name things that were about to be killed.

So I spent a few minutes with my screwdriver poised over the back of “Clicky” pondering what a monster I was about to become.

Then I remembered I had two and I hadn’t named the other one yet so I killed it instead.

Removing the circuit board was easy. I clipped off the leads going to the battery holder before using pliers to pull those out as well.

Determine Position of Inputs and Place

Luckily the circuit board from the original remote was almost the exact same size as a piece of permaboard I had lying around so I didn’t have to cut anything there.

To place the buttons I used a combination of precision measurement and less precise “eyeballing” the first row of buttons and the first button of the second row. After that I just counted the same spaces up and over to place the others.

The on/off switch was relatively easy. I didn’t want to cut into the case if I didn’t have to, so I used the front where the emitter had been. In the picture above I had the switch on the other side from the buttons, but luckily I re-checked placement before soldering it in because it was unreachable through the hole unless I moved it to the other side.

Choosing Placement of Microcontroller

This is where I started to get sad.

I had originally thought to place the microcontroller on the bottom of the board with the buttons and place it where it would sit in the original battery compartment, but if I did that the board would not be tall enough to be screwed into place by the stand-offs that also held on the back.

Next I tried placing it across the top of the board but it wouldn’t fit between the stand-offs.

So in the end I decided to place it such that the GPIO pins that I was going to use lined up between the buttons themselves. I did have to shift it slightly to the side to get the ground pin where I needed it as well.

Soldering It All Together

First thing I did was connect a single wire to all the “top outer” pins of the buttons on each side. Then I bent the wires around the bottom edge of the board and created a solder bridge. Then I ran another wire from one side of the switch to the ground bus.

Next I cut a strip of header pins to the right length and placed them halfway in the holes. This way I could run wires from each of the “bottom inner” pins of the buttons to their respective GPIO pins beneath the plastic part of the header.

After that I sat on the couch sobbing into my hands while alternately drinking a Rum and Coke to get over the trauma I put myself through with all those connections and wishing I had the time and skill to make my own PCB. I also swore to various supernatural forces that if this worked, I never do it again. [Not pictured]

Next I ran a wire from the middle position of the switch to the “enable” pin of the Feather.

Then I placed a single header pin where it needed to be and soldered it into place running a short wire from it to the existing ground bus.

Lastly I placed the Feather in place and soldered it down. In the picture above I hadn’t finished the right side, just the ground pin.

Drilling Mounting Holes

Once again using a combination of precise measurement and imprecise eyeballing I marked the placement of the mounting screws and used my Dremel and stand to drill the holes.

Code!

Aside from my soldering job, this is the ugliest part of the project right now. It’s just a hack of two different libraries: one from Adafruit (from their Adafruit BluefruitLE nRF51 library) and something else I found after too many Rum and Cokes and sobbing.

I beat at them both until they worked.

Mostly.

In the version here, the remote keeps sending the meta keys at times it shouldn’t. It doesn’t affect my usage so I haven’t taken the time to fix it yet.

Basically it scans the GPIO pins and maps them to a number on the keyboard. It sends that number while holding down some meta keys so that I can assign them easily to shortcuts within the studio software I’m using.

Assemble and Enjoy!

I put some electrical tape down over all the wires for protection. I connected the battery and placed it between the mounting stand-offs toward the top. By bending the battery leads around the one stand-off the thing stayed in place nicely.

Now I have a Bluetooth remote that sends a hotkey to my studio computer when I press a button. I can control the software without having to have a visible keyboard in view.

THE FUTURE!

I have a few different ideas on where to take this next:

If I stay with the current system, I’d love to make my own board so the connections would be neater. I’d also update the code to be leaner and cleaner.

Another thought would be to use the other remote (Clicky!) as he was designed and build a receiver that would hear Clicky! and, using a microcontroller with HID capability, act as a keyboard for the studio computer.

Beginner Arduino Class

Arduino UNO

For the last two semesters I taught college students how to use Arduinos to make art, which was a lot of fun. The class was 2.5 hours long, twice a week for 15 weeks. I wanted to compress much of the basics into a Beginner Arduino Class for the space, and we (mostly) did it.

The class ran for 4 hours, and covered about a dozen examples using various components to get through the concepts of digital input, digital output, analog input, analog output, and covered the Arduino software a bit and the Arduino world, including some example projects for inspiration.

Arduino UNO

I did limit the class to six students, and I supplied all needed parts. All the student had to bring was a computer with the software installed and a free USB port. I wanted everyone to have all the same parts so we could avoid things not working due to different components, which I’ve faced in the past. Overall, I was pleased with the outcome, though we did run out of time. I may have to alter things next time, or just put time limits on certain parts of the class.

I’ll aim for the next class to happen in February, and once enough people get through the Beginner Class I’ll work on an Intermediate Class. If you’re interested in taking the class, add your name to the “Interested Members” list at the bottom of the wiki page.

STAR TREK DOOR Continues

So, the STAR TREK DOOR has been a slow, “back-burner” project for a while. Recently, I got a little time, so I sat down and figured out how to hook up the air valves to a set of relays, and control those relays with an Arduino.

Here’s a video overview of the physical doors themselves and how we plan to open and close them with air valves.

This is a joint project, working on this with my brother-in-law, Fred. The doors are between his garage and workshop. Fred has been working on the doors themselves, the wall and framing, and mechanical connections. I’ve been working on figuring out the software, controls, and electronic magic that will drive everything.

IMG_6655IMG_6610The physical doors themselves are done, except for paint. Fred has also been making a pretty neat frame for the garage side. He cut alternating widths of wood and then glued them together for the nice light-colored wood on the inset of the planks that will frame out either side of the door. A similar piece will cross the top of the door.

I got all the main components – Arduino, breadboard, relay board, 12V power fuse panel, and air valves themselves all screwed to a piece of plywood. At this point, it’s not pretty, but it is functional.

IMG_6652We have a nice industrial door control with OPEN/CLOSE/STOP buttons on it. Those are momentary on buttons, but through the power of the Arduino, I can make them be whatever I want. I started with a Button Tutorial, and then modified it to suit my purposes, and added a Delay(1500) command after activating the air valve. That way, the valve will stay open long enough to fully open or close the door, even if the button is just pressed for a moment.

I programmed the pin for the STOP button to test out a sequence to open the door, pause (long enough for a person to walk though,) and then close the door. It seemed to work pretty well. If the timing is wrong for the real-world application, all I have to do is simply change the delay times. (It will also need a safety. We don’t want the door closing on a person!)

IMG_6520At this point, the basics of the control panel are working. The STOP button is just wired up as a “stand-in” for a single button we already have installed on the garage side of the door. It’s a capacitive touch button that lights up either blue or white with internal LEDs. It’s a neat looking button, but it’s only a SINGLE button. So, it needs to have functionality to both open AND close the door. I’d also like to explore using a variable in the Arduino that states whether or not the door is open, and then changes the functionality of that button based on whether the door is open or not. The air cylinders themselves also have built-in position sensors, which would be neat to use possibly as both a safety AND a “Is the door open or not?” sensor.

Here’s a video clip showing all the components actually working together. At this point, if the panel was simply mounted above the door, and air connected between the compressor and air cylinders, we would actually have functioning doors.

IMG_6653I don’t like the look of how the air valves and tees are held together right now. I was able to find some not-too-expensive push connectors (similar to PEX Sharkbite style) for air, which might make it a little easier to connect all the air components and look cleaner. Once I really have everything finalized on what’s going on at the breadboard, I also need to decide if I want to pull the breadboard out and replace it with a custom circuit ¬†board. One thing I DO need is a simple way to connect the tiny¬†pin connectors to the larger wires going to the buttons AND provide strain relief. For the moment, I just used staples to nail the 18 ga lamp cord wire to the plywood and then made the electric connection with alligator clips. What would be the BEST/CLEANEST way to do this? Some sort of small screw down terminals?

I also have a rather large fuse panel mounted on the plywood. It was free, and I already had it. It supports many separate circuits, but for this project, a single DC fuse would probably be fine. I’m also using a bit of an overkill 12V power supply. I’ll want to replace that with a simple wall-wart. Lastly, the Arduino is running from USB power. I’ll need to solder up a 12V DC barrel connector so that it can run off the same power as everything else. I think we will make a switched electric outlet, and plug the wall-wart in to that. If the system is ever not working right, just switch off the power and manually open and close the door as needed.

I’ll definitely want to hang out with the guys at the Makerspace sometime soon talking Arduino, specifically how to integrate some more sensors and get feedback used to activate the doors fully automatically.

-Ben Nelson

Let’s Detonate!

Dan Loves Fire!

Dan loves fire! It’s a fact! For Maker Faire Milwaukee we made a fire poofer which was triggered by pressing a button. Tons of kids (and adults) pressed that button over the course of the weekend.

While Dan the Blacksmith (and John McGeen from BBCM) were the primary builders of the fire poofer, I did the trigger electronics and enclosure.

The Detonator

I’ve written up a blog post with lots of images explaining the (somewhat rushed) build of the device. It’s Arduino powered, has some relays and a beeper, and looks semi-nefarious. Read more about The Detonator.

The Detonator Insides

The Turndrawble

The Turndrawble

The Turndrawble is a drawing machine I designed, based loosely on an old vinyl turntable, but instead of playing records, it creates drawings.

The construction was done using stacked layers of wood and acrylic. I wanted to avoid using the typical laser-cut “box” enclosure I usually use. I’m pretty happy with how it turned out.

The Turndrawble

The Turndrawble is meant to be used to create 12″ circular drawings. One of the knobs controls the platter speed, and the other sweeps the arm in and out. Since it’s a new drawing device, it hasn’t been mastered yet, but we’re working on it!

Here’s a short video showing the turndrawble being operated. I’ll probably have it at some future art events for people to try out and see what they can create with it.

There’s a bunch more info about this thing on the Turndrawble project page on my web site.