control – Milwaukee Makerspace https://milwaukeemakerspace.org Conceive, Collaborate, Create Sun, 11 Feb 2018 20:35:36 +0000 en-US hourly 1 https://wordpress.org/?v=6.4.4 “Retro Future” Remote Control https://milwaukeemakerspace.org/2018/02/retro-future-remote-control/ https://milwaukeemakerspace.org/2018/02/retro-future-remote-control/#respond Sun, 11 Feb 2018 20:35:36 +0000 http://milwaukeemakerspace.org/?p=9777 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.

]]>
https://milwaukeemakerspace.org/2018/02/retro-future-remote-control/feed/ 0
CNC Mogul Introduction https://milwaukeemakerspace.org/2014/04/cnc-mogul-introduction/ https://milwaukeemakerspace.org/2014/04/cnc-mogul-introduction/#comments Thu, 24 Apr 2014 16:57:16 +0000 http://milwaukeemakerspace.org/?p=7294 A few weeks ago Mike Stone of CNCMogul.com visited the Milwaukee Makerspace.

Mike donated one of his machines to the space for testing and feedback as well as to use for the membership. It should also be mentioned that Mike is local and has his shop and distribution in Wales, Wisconsin.

Joe Rodriguez built one machine and I also put one together at our shop at home. So here are some thoughts on the process as well as some pictures. It isn’t a review as these machines haven’t really been put to the test as of yet. Time will tell.

The CNC Mogul is a general purpose 3 axis CNC kit that is relatively easy to put together and can be used for anything that you like. I’ll be using ours for routing and Joe wants to make a CNC plasma cutter with the one in the space. The basic kit is affordable and it uses the Makerslide as it’s building blocks. The stepper motors are run with a rack and pinion setup on aluminum tracks and gearing as well.

The controller is a Chinese Tb6560 Stepper Motor Driver Controller that is controlled via parallel port.

The power supply is a 24V 14.6 AMP 350W Max Power Supply.

The whole kit can be ordered online from 2ft X 3ft up to 4ft X 8ft. Custom dimensions are also available.

So here is the kit before assembly. This is a 3ft x 3ft kit that I will be building and using with a router.

This is the kit right before opening.

This is the kit right before opening.

Inside the kit there are a bunch of baggies with tons of little parts. You can look at the manual here

I’m assembling the quad rail kit. Once I start pulling things out of the box there is an amazing array of parts that explodes out of it. Fortunately each bag and part are well marked.

Everything that you need to build your own CNC controlled machine.

Everything that you need to build your own CNC controlled machine.

cncmogul03

Everything is labeled really well.

Everything is labeled really well.

Everything is labeled really well.

Everything is labeled really well.

The kit took approximately 3+ hours to put together. The documentation in the manual is hit or miss. The pictures are extremely good and really help in putting this together. The accompanying text is also great for the first 1/3 of the manual and then you’re left to interpret pictures from there. There are a few questions that came up while building this but fortunately I was able to figure it out.

Little by little the parts are being built.

Little by little the parts are being built.

After the gantry gets built and all of the wires are connected it’s time to test. CNC Mogul recommends using Mach 3 for your machine control. And even has a few pointers on how to setup Mach 3 on their site.

I decided to go with LinuxCNC because it’s open source, I’m comfortable with Linux and it’s low cost (free). I loaded it up on a spare computer and after running through the instructions I was able to control the stepper motors on the Mogul.

What I had difficulty with is that the CNC Mogul uses an “A” axis and “Y” axis slaved together. LinuxCNC can do that but you can NOT test for that in the setting up process. You essentially tell the “A” axis to use the same step and direction pulses as the “Y” axis. I also inverted the “A” axis so they would turn the same direction when they are facing each other.

One of the other difficulties I had was figuring out the leadscrew pitch to enter into LinuxCNC. After some experimentation 1.27 inches per revolution seems about right but some more testing is needed.

Once you’re finished building the whole thing you need to mount it to something. I picked up a Craigslist find and the Mogul fit perfectly.

I generated some G-code from Vectric’s Vcarve Pro Zeroed each axis and started to cut.

I still need to put a waste board down and face it off flat and put some type of work hold-down system in place.

After the unit gets setup in the Makerspace the members will have access to the machine and we’ll see how durable it is.

The CNC Mogul with router mounted and ready to cut.

The CNC Mogul with router mounted and ready to cut.

Total time to build, test, and implement the whole system has been approximately 6 hours. There is still some testing and tweaking to be done as well as putting in a dust collection system.

If there are any questions feel free to ask me either on this post or in person. I’ll be putting this through it’s paces as well.

My 2nd test using the CNC Mogul with 2 types of router bits.

My 2nd test using the CNC Mogul with 2 types of router bits.

]]>
https://milwaukeemakerspace.org/2014/04/cnc-mogul-introduction/feed/ 8
Laser Cutter Venting System, Version 5.0 https://milwaukeemakerspace.org/2014/01/laser-cutter-venting-system-version-5-0/ https://milwaukeemakerspace.org/2014/01/laser-cutter-venting-system-version-5-0/#comments Sat, 11 Jan 2014 18:07:24 +0000 http://milwaukeemakerspace.org/?p=6893 Sometimes solving one problem creates a few new ones! As part of the Laser Cutter Room Reconfiguration, the exhaust system got an upgrade. A new, bigger, more powerful fan meant we needed a new way to control it. The previous system (Version 4.0) was a simple on/off switch. That just wasn’t going to cut it for this industrial grade blower. Tom G., Tony W., myself and others spent the holidays installing this new two-horsepower beast above the ceiling in the Craft Lab. Once it was hung from the roof joists with care, Tom got to work ducting it over to the Laser Cutter Room. Finally, when all the heavy lifting had been done and the motor drive had been wired up, all we needed was an enclosure for the switch.

The request went out on the message board. Pete P., Shane T., and I all expressed interest, but life got in the way and it soon became a matter of whomever got to it first would be the one to make it. I ended up devoting the better part of last weekend to this project (much more time than I anticipated) but I can honestly say I’m pretty happy with the result.

LCEC01

The goal was fairly straight-forward: make an enclosure for the switch Tom had already provided. It was a color-coded, 4-button, mechanical switch that had been wired to provide four settings: OFF, LOW, MEDIUM, and HIGH. The more laser cutters in use, the more air you’d need and the higher the setting you should choose. There’s four duct connections available for the three laser cutters we currently have.

There’s a saying: “Better is the enemy of done.” Truer words have never been spoken in a makerspace.

At first I wanted to build the enclosure out of acrylic. Then I remembered this awesome plastic bending technique that Tony W. and some others told me about. I found a video on the Tested website and got inspired. (If you don’t know about Tested, please go check it out. You’ll thank me later.) Unfortunately, my bends kept breaking and melting through, so after a few hours of tinkering I moved on.

Thankfully, we have a small cache of plastic and metal project enclosures on our our Hack Rack. I managed to find a clear plastic, vandal-proof thermostat guard. It looked workable.

I tried laser cutting it, but the moment I saw the plastic yellow and smoke, I knew there was probably some nasty, toxic stuff in it, so I moved to the CNC router. About an hour later I had my holes cut.

Then came the wiring. Up until this point I had been focused on the control box itself. Now I wanted to add a light!

No, two lights! Yeah!

One light to tell you when everything was off, and another that lit whenever the fan was in use. People could look at the lights from outside the room and instantly know if the fan had been left on. (It should be noted that the new fan, despite being twice as powerful than our last, is actually much quieter. Tom added a homemade muffler to the inlet of the blower and shrouded the whole contraption in 3″ fiberglass batt insulation. The best way to know if the fan is running is to open a slide gate damper and hear air being sucked in.)

OK, I totally got this.

Draw myself a ladder diagram and get out the wire connectors… Remember that I need to isolate the signals from each other so any button doesn’t call for 100% fan… A few more relays… Some testing… and done!

Wait a second… the motor drive doesn’t have a ground for the control signal.

Hmm.

Guess I can’t power it from the drive. I’ll just tie into the drive’s ground. Nope, that didn’t work.

I’ll read the motor drive manual. OK, it has a set of “run status” contacts I can monitor.
….and they’re putting out a steady 0.4 volts DC. That’s enough to light up a single LED! …except, no. It’s not lighting. Doesn’t seem to be any real current.

I’ll just use a transistor! That’s the whole point of a transistor!
….well nothing I tried worked.

I’ll build a voltage multiplier circuit!
….and this isn’t working either.

On Day 3 of this “little project” Ron B. made a comment about using a pressure switch of some kind.

Wait.

We have a Hack Rack full of junk and I know there’s this old bunch of gas furnace parts. It couldn’t be that easy…

LCEC02

Yeah. So, three days (and a few frustrating epiphanies) later, this all came together. Press the beige button, get some air. Press the other buttons, get some more air. Any time there’s suction, the red light comes on. The indicator light is powered by its own 24 volt DC wall pack. The pressure switch has both normally open (N.O.) and normally closed (N.C.) contacts so it would be totally feasible to add another light at some point. The controller could display “OFF” or “SAFE” or whatever as well as “ON” or “FAN IN USE” or whatever. The text is just a red piece of paper with words printed on it, then holes laser-cut out to fit. We can trade it out with different words or graphics if we ever feel the need. I was just glad to have it done, so I called it. Better is the enemy of done, indeed.

LCEC03

You can learn more about the evolution of our laser cutter venting system on our wiki!

]]>
https://milwaukeemakerspace.org/2014/01/laser-cutter-venting-system-version-5-0/feed/ 1
Lighting Control Upgrade! https://milwaukeemakerspace.org/2013/11/lighting-control-upgrade/ https://milwaukeemakerspace.org/2013/11/lighting-control-upgrade/#comments Sun, 17 Nov 2013 14:53:05 +0000 http://milwaukeemakerspace.org/?p=6628 IMAG3517In an effort to make the lighting control system more user-friendly, the original board-mounted switches have been replaced with a laser-cut zone map! Instead of looking up which zone number corresponds to a particular bank of lights, each location is now identified by a green LED pushbutton.  You can read more about the lighting control system and how it’s been evolving on our wiki: http://wiki.milwaukeemakerspace.org/projects/mmlc

]]>
https://milwaukeemakerspace.org/2013/11/lighting-control-upgrade/feed/ 5
Unexpected Detour https://milwaukeemakerspace.org/2012/03/unexpecteddetour/ https://milwaukeemakerspace.org/2012/03/unexpecteddetour/#comments Tue, 13 Mar 2012 03:48:56 +0000 http://milwaukeemakerspace.org/?p=3188 When I arrived at the space Sunday, I had planned to work on a circuit board design in DipTrace.  After I left, I had spent six hours rewiring a golf cart.  Allow me to explain…

It all started when I went to take the trash out.  I used the golf cart with the flatbed to ferry the cans out to the dumpster.  After emptying the cans, I rode back and decided to charge the cart’s batteries.  Tom and Rich had just returned from lunch and Tom suggested we swap out batteries instead.  While swapping them out, we decided to also rewire them.  While rewiring them, part of the cart broke.  There’s a small white plate under the driver’s seat.  It’s about 4″ x 6″, likely made of asbestos, and holds a series of copper contacts that a lever attached to the gas pedal slides over to select the speed of the cart.  And it broke in two when we tried to tighten fix a wire on it.

We had a few options: try to mend the old, brittle plate, replace it with something new, rewire the whole thing, or scrap everything out for a solid state motor controller.  Not wanting to adopt a new project or sacrifice a motor controller that could be better used elsewhere, I volunteered to try and fabricate a replacement for the broken part.

First I documented everything just the way it was.  I labeled wires, took photos, scribbled down notes, etc.  Next I went about removing the broken plate.  There was probably more rust than metal on those bolts.  Then I took a pair of digital calipers and a ruler and measured the locations and sizes of holes for each component.  I considered using the CNC router or drilling a plate by hand, but the laser cutter seemed to be a much faster and precise approach.  I drew up my replacement plate in CorelDraw and found a scrap of 1/4″ acrylic that matched the size and thickness of the old plate.  After some tinkering with the printer driver and a dozen passes with the laser, I had a copy of the original in plastic form.

The next few hours were spent migrating the old parts over to the new one and wiring it back in.  Right around 7:00 PM, I tied some batteries together and the thing leaped forward.  A few more tests and it should be as good as new.  Someone suggested that maybe the plate was asbestos to avoid heating issues so we’ll keep an eye on that too.

]]>
https://milwaukeemakerspace.org/2012/03/unexpecteddetour/feed/ 2
The Critic https://milwaukeemakerspace.org/2012/03/the-critic/ https://milwaukeemakerspace.org/2012/03/the-critic/#comments Sun, 04 Mar 2012 17:11:20 +0000 http://milwaukeemakerspace.org/?p=3050 This is “The Critic.” It’s the USB accessory version of a red pen: Once armed by rotating the red safety cover up, the device is activated by simply flipping the toggle switch.  When connected to a computer via the convenient USB plug, it will begin to delete text, continually deleting until all the (presumably erroneous) text preceding the curser has vanished. At that point, the safety cover can be lowered, thereby deactivating the device.  The Critic is an indispensable tool for use when the document you’re editing is just so full of errors that your fingers begin to ache from holding down the delete key.  The Critic measures 3″ by 2″ by 2″ tall, and was designed to fit conveniently within arm’s reach, beside your keyboard or mouse.

I was inspired by the open source work of Pete at RasterWeb! and his recent effort to bring “The Button” to a wider audience of busy or non-makers.  He has freely helped tens of people create their own buttons, but is now able to fulfill requests for preassembled units. Among other applications, these USB buttons can be used as the shutter control of  Mac powered Photo booths at public events. These photo booths are powered by Sparkbooth, which can automatically upload the photos to Facebook, Twitter, tumblr or other social media sites.  His buttons emulate a keyboard, and contain an Arduino Teensy (only 0.7″ by 1.2″), which is a USB based AVR microcontroller.  Despite the Teensy cost of $16, I saw an opportunity for cost savings by opening a standard USB keyboard and spending a few minutes to extract and reverse engineer their compact circuit board.  Although this isn’t a solution suitable for even small scale production, it can work for a one-off prototype, like The Critic.

Below are several photos that show the process of opening the keyboard to extract and modify the circuit board.  When the top of the keyboard is removed, a sheet of silicone ‘popples’ is revealed.  These ‘popples’ are the springs under each of the keys.  Under this layer are two sheets of thin plastic, one with conductive ink traces that are (mostly) horizontal, and one with conductive ink traces that are (mostly) vertical.  These layers of traces are separated by a small gap.  When a key is pressed, a protrusion on the bottom of that key’s popple pushes the two layers of plastic together at this location: connecting one of the vertical traces to one of the horizontal traces. These traces are routed to the circuit board via a row of contacts under the front edge:

   

The chip (under the black epoxy potting on the bottom of the board) detects this electrical connection, and outputs the appropriate character over the USB cable.  The keyboard, popples and plastic layers can all be replaced by an external switch and wires soldered directly to the circuit board.  The photo below shows wires (whose free end is to be connected to the switch) soldered to the pads required to output a space bar character.  To output other characters, simply follow the vertical and horizontal traces to the board, and solder wires to those pads instead.

    

RasterWeb! approves of this message.

]]>
https://milwaukeemakerspace.org/2012/03/the-critic/feed/ 5
Smartboard Projector Project Abandoned https://milwaukeemakerspace.org/2012/01/smartboard-projector-project-abandoned/ https://milwaukeemakerspace.org/2012/01/smartboard-projector-project-abandoned/#comments Sun, 08 Jan 2012 17:58:15 +0000 http://milwaukeemakerspace.org/?p=2722

Back in August, Tom acquired several Smartboard-brand projectors and was interested in getting them to work as a normal projector would.  As you may recall from my original post on this project, these projectors will not display anything other than an error screen without their accompanying interactive whiteboards connected.

The original approach was to simply substitute my own video signal by swapping out some cables.  There is a dual-link DVI cable that attaches to the projector lamp assembly through the telescoping neck of the projector to its wall-mounted computer base, the Unifi 35.  I tried simply connecting a computer to the DVI connection on the lamp, but the lamp wouldn’t power on.  We eventually surmised that the lamp and the Unifi 35 were communicating somehow through the DVI cable and the lamp wouldn’t power on unless the computer detected that it was attached. Computers with DVI connections have the ability to detect when display devices are connected as well as instruct them to power on or off.

That led to trying to swap out individual pins in the cables.  I built three DVI breakout boards and set up a breadboard so I could mix and match pins from two sources and combine them to send on to the projector lamp.  I tried using the digital pins from my own source (a G5 Macintosh) and the analog pins from the Unifi 35.  After a lot of trial and error, it seemed the projector was communicating with the Unifi 35 somehow using either the analog pins on the DVI connection, the second digital link, or both.  Also, it seemed I could disconnect some pins after the projector was powered up, but I couldn’t start without them.  It looked something like this (table copied from Wikipedia):

Pin Description Purpose Required?
1 TMDS data 2− Digital red− (link 1) Required at all times
2 TMDS data 2+ Digital red+ (link 1) Required at all times
3 TMDS data 2/4 shield Required at all times?
4 TMDS data 4− Digital green− (link 2) Required at all times?
5 TMDS data 4+ Digital green+ (link 2) Required at all times?
6 DDC clock Required at startup only
7 DDC data Required at startup only
8 Analog vertical sync Required at startup only?
9 TMDS data 1− Digital green− (link 1) Required at all times
10 TMDS data 1+ Digital green+ (link 1) Required at all times
11 TMDS data 1/3 shield Required at all times?
12 TMDS data 3- Digital blue− (link 2) Required at all times?
13 TMDS data 3+ Digital blue+ (link 2) Required at all times?
14 +5 V Power for monitor when in standby Not required?
15 Ground Return for pin 14 and analog sync Not required?
16 Hot plug detect Not required?
17 TMDS data 0− Digital blue− (link 1) and digital sync Required at all times
18 TMDS data 0+ Digital blue+ (link 1) and digital sync Required at all times
19 TMDS data 0/5 shield Required at all times?
20 TMDS data 5− Digital red− (link 2) Required at all times?
21 TMDS data 5+ Digital red+ (link 2) Required at all times?
22 TMDS clock shield Required at all times?
23 TMDS clock+ Digital clock+ (links 1 and 2) Required at all times?
24 TMDS clock− Digital clock− (links 1 and 2) Required at all times?
C1 Analog red Required at startup only
C2 Analog green Required at startup only
C3 Analog blue Required at startup only
C4 Analog horizontal sync Required at startup only
C5 Analog ground Return for R, G, and B signals Required at startup only

After a lot of trial and error, I didn’t seem to be much closer to the goal of getting my own video source to display.  I also began to consider that the manufacturer may have switched around some pins between the Unifi 35 and the projector to prevent consumers from servicing the unit.  The DVI cable I was working with was internal to the machine after all.  There’s no reason any one would ever try to connect their computer’s DVI output to the lamp itself.  Signals leaving the Unifi 35 could be sent on a different pin than the DVI standard suggests and then rearranged back into the standard configuration at the lamp assembly.  I never really dismissed that possibility, but I also didn’t see much to support it.

I trudged on and hooked up an oscilloscope to monitor was was going on with the analog pins, C1 through C5, because they seemed to be critical to the lamp turning on, but not necessarily staying on. This is what I found:

Pin Description In Standby Mode Once Powered On
C1 Analog red 0v constant +3.3v constant:
C2 Analog green +5v constant +5v constant for 0.93 seconds every second then a brief flash for 0.07 seconds of this waveform:

+5v (58% of the time)
0v (42% of the time)
at ~1.2 kHz
C3 Analog blue +5v constant +5v constant for 0.93 seconds every second then a brief flash for 0.07 seconds of this waveform:

~0v and a more complex pattern (0.8 ms/3.5 ms)
+5v (0.8 ms/3.5 ms)
~0v and a more complex pattern (1.1 ms/3.5 ms)
+5v (0.8 ms/3.5 ms)
at ~285 Hz
C4 Analog horizontal sync 0v constant 0v constant for 0.93 seconds every second then a brief flash for 0.07 seconds of this waveform:
C5 Analog ground Reference for all Reference for all

Unsure of what these signals represented, I consulted with Royce, Tom, and a few others and worked up the courage to use a logic analyzer for the first time.  Most of the work was wiring the thing up and assigning names to the leads in the software.  My breakout boards turned out to be more fragile than I expected so I ended up resoldering a all of the flaky connections.  The Intronix 34-channel Logicport Analyzer is pretty slick and comes with some great software tutorials.  Once I got it going, it was fairly straight forward.  I can definitely see how this device can come in handy now that I’ve used it.

One of the first problems I ran into was the multitude of different voltages at work.  The Logicport software has a logic voltage threshold setting to help weed out logic from other signals, but I found myself dealing with signals less than 0v, as well as +3.3v, and +5.0v.  I eventually scanned the spectrum and sat, clicking the threshold up in small intervals of 0.05v, and watched to see if anything appeared on the screen.  It would seem that while in standby mode, some of the the TMDS data pins and the DDC clock and data pins are held above +2.0v.  Around 0.0v, some of the data shields show some variation between low and high during standby but as the projector is starting up, there are definite patterns on TMDS data shields 2/4, 0/5, and the clock shield.  TMDS link 1 shows some activity during startup in the +3.3v range and then shortly after link 2 does as well as the analog red pin.  Why a digital signal might appear on the analog pin is unclear.  I could be measuring it wrong also, but there does appear to be a signal there.  I also checked the analog pins during standby against what I saw with the oscilloscope and the numbers seem to agree except that the C4 horizontal analog sync pin showed voltage at or above +2.00v with the analyzer when the oscilloscope showed no voltage difference at all.

Since I was more interested in the control data than the video data, I focused my attention to the DDC clock and data pins to see if I could decipher how the projector and Unifi 35 were talking to each other.  PC monitors and projectors with DVI connections use a display data channel (DDC) and a standard called I2C (I squared C).  I found some great information on I2C and DDC protocols online here and here.  At +5.00v I read a portion of the communication between the Unifi 35 and the projector and tried to analyze it.  Unfortunately, the data doesn’t seem to follow what I’ve read on the I2C standard. The clock rises and falls unexpectedly, the start/stop commands don’t appear where I would expect them to, nothing resembles a 7-bit device address and there is seemingly no pattern to data.  The other logic analyzer screenshots can be found here.

We considered trying to spoof the USB connection to the whiteboard at one point, but that seemed to be problematic also.  I set up the logic analyzer and monitored the USB connection, but to no avail.  It’s possible that without the board to receive power from the USB port, there’s no way of telling how the board would communicate with the Unifi 35 and projector.  In a last ditch effort some weeks ago, I contacted Smart Technologies, makers of these products, and flat out asked them if the projectors could be used without the whiteboards.  The answer was, unfortunately, no.

I began to lose interest after this and once I got back to the project after the holidays, I decided to finally give up on it.  I would rather use my time on other projects.  It was by no means a waste as I gained more experience etching my own circuit boards, soldering annoying small connections, and I got comfortable with the logic analyzer; assuming I used it right.  I also became wary of computer cable vendors on Amazon.com.  During the project I needed some dual-link DVI cables, but when my order showed up, the second data link pins (the six in the middle of the connector) weren’t even wired.  I stuck a multimeter to them and found continuity on all but those six pins.  Needless to say, I left them some grumpy feedback and got a refund.  Thanks to everyone who helped and gave me advice.  As Shane said, “I doubt anyone else would have gone this far.”  I took that as a compliment.

]]>
https://milwaukeemakerspace.org/2012/01/smartboard-projector-project-abandoned/feed/ 9
PWM Disco Ball https://milwaukeemakerspace.org/2011/12/pwm-disco-ball/ https://milwaukeemakerspace.org/2011/12/pwm-disco-ball/#comments Thu, 29 Dec 2011 18:44:27 +0000 http://milwaukeemakerspace.org/?p=2651  

At home, I have a small LED light that is designed for use under cabinets. I use it mostly to illuminate one side of my aquarium, and I occasionally pull it out to use it as a light for filming video.

The problem is that it is quite a bit brighter than the other LED light I have on my aquarium, and for video use, it would be nice to be able to adjust the brightness of the light as well.

However, LEDs just CAN NOT be dimmed with a regular old light switch dimmer the way an incandescent bulb can. I had heard that they can be dimmed through PWM – pulse width modulation. I was already familiar with the term, as that’s the same technique used to control the speed on the motor of my homebuilt electric car.

So, when I was in at the MILWAUKEE MAKERSPACE I asked Tom G if he had any suggestions for me to start learning electronics by building a simple PWM dimmer for my fish tank LED light. As a hobby, he has built a fair number of robots, and pointed me to the Dallas Personal Robotics Group web page, where they had a number of tutorials posted. Sure enough, they had atutorial on building a simple motor speed controller, using a 555 timer chip. It also included a very nice explanation of Pulse Width Modulation. It’s really a simple thing that is sometimes hard to describe. I don’t think I have ever heard it explained so clearly as in the DPRG tutorial.

Part of the fun of the Milwaukee Makerspace is just having lots of odds and ends around handy, instead of having to take a trip out to the hardware store or electronics warehouse. A 555 timer, a few resistors and capacitors, and a bread-board were I all right there, ready for me to prototype this simple circuit. Even with nearly no electronics experience, it was pretty easy for me to follow the tutorial and connect up the 555 and other components into a working circuit.

After some playing around with it, I found that this circuit could not only control the speed of a DC motor, or dim an LED light, but somebody else suggested I hook a speaker up to it. Sure enough, I could generate various frequencies of sound as well! (Although since it’s a square-wave, none of them sounded very nice!)

So, the next time I was going past Radio Shack, I stopped in and picked up some “Perf-Board”. It’s sort of the step between a breadboard and a custom circuit board – just a board with a bunch of holes in it, all evenly spaced, ready for you to insert electronic components and solder them together.

I then recreated my original breadboarded circuit on the perf-board and soldered it all together.

I also grabbed a used plastic case from the Makerspace parts pile to use as an enclosure for the circuit-board. A bit more scrounging meant that I had a power connector for it that matched the power supply for the LED light. I’d be able to use the same power supply whether I was using the LED with or without the dimmer.

A bit more soldering (only ONE soldering iron burn!) and installing the board in it’s case, and I now officially had a PWM Light Dimmer for my aquarium!

But here’s where it gets more interesting. I really built this not so much out of need for a dimmer, but as a learning experience to find out where theory and practice come crashing together in the real world. After assembly, I already noticed a few ways to improve the final version of the device. (I’m still thinking of this as a proto-type or first run!)

Ideas for future improvements include:
1) A power indicator light. If the PWM is turned all the way down, it’s hard to tell if the device plugged into the dimmer is even on or not.
2) A volt-meter display. It’s pretty neat to be able to see that the perceived output voltage of the dimmer is. I have several 12V devices that I would like to run from a large 14.4V battery. With a volt-meter built in, I could set the dimmer to send exactly the correct output.
3) Battery Operation. The surplus case that I used as an enclosure already has a removable cover. It shouldn’t be tough to fit some AA batteries in there to make the whole thing run without requiring a power cord to the wall.

Recently, we through a birthday party for a friend of ours. She requested a Disco Ball at the party. My sister found a disco ball at the clearance table at a store, but no matching disco ball motor.

Aha! Here’s my chance to not only save a few bucks by not PURCHASING one, but also learn about motors and gear reduction! Next time I was in at the Makerspace, I dug through the bin of scrap motors on the “Hack Rack”. An AC motor? No that’s no good, it has to run on batteries.. Stepper motor? I have no idea how to run one of those…. Hmmm. What’s this? I eventually found not one, but two motors, both connected to to some gearing and a pair of tiny square drive axles. The motors were marked as 24V DC, and I knew that if I drove them at a lower voltage, they would still work, but not spin as fast. I tested them both with a benchtop power supply and saw that they worked. The one was geared to a much faster speed than the other.

I later tried running both directly from a 9V battery, as it is the simplest power supply I could think of. The one motor, through the gear reduction, would spin the driveshaft at exactly 2 revolutions per minute at nine volts. That’s almost PERFECT disco ball rotation speed!

I bent a paper clip through a connector on the end of the drive shaft to hold the ball, and added a carbineer to hold the motor to the ceiling. POW – top-notch disco ball rotation!

For the party, I let it run on just the 9V battery. It got left on overnight, and was still running the next afternoon. What a nice, efficient motor!

But what if I wanted to spin that ball a bit faster or slower? Either motor was designed to run up to 24 volts. My PWM “dimmer” was really a motor controller anyways after all. That was all set up for 12V. I connected the dimmer to the more quickly geared motor, hung it up, and strung the disco ball from it. Sure enough, by varying the potentiometer on the dimmer, I could make the ball spin from way too slow to nausea-inducing quick!

I even noticed that at very slow speeds, the motor made a little bit of a high-pitched whine. Remember how I said an audio speaker could be hooked up to generate a tone? At slow speeds, the pulses of the motor controller can actually be heard – the frequency is within the range of human hearing. The first time I ever heard a Chevy Volt, I noticed that it made a quiet, yet distinct noise right as it accelerated away from a dead stop. That’s the sound of the car’s electric motor controller picking up frequency as the car increases speed.

So there you have it. From dimming a light, to spinning a ball, to driving an electric car, Pulse Width Modulation is a simple, yet useful, trick that’s all around us. If you would like to build your own basic light dimmer/motor controller, check out the info at: http://www.dprg.org/tutorials/2005-11a/index.html

But why stop there? Once you have some mad soldering skills, what’s to stop you from building a bigger version of a motor controller, maybe something that can push a full size car around? Check out the Open Revolt controller – a motor controller anyone is welcome to build!
http://www.instructables.com/id/Homemade-100-HP-Motor-Controller-for-an-Electric-C/

If you are anything like me, you like to learn new things, and find it fascinating how various areas of industry and science are all related. It’s far more fun to build and design something yourself then it is to just purchase somebody else’s.

 

]]>
https://milwaukeemakerspace.org/2011/12/pwm-disco-ball/feed/ 1
First DIY CNC Club Meeting https://milwaukeemakerspace.org/2011/10/first-diy-cnc-club-meeting/ https://milwaukeemakerspace.org/2011/10/first-diy-cnc-club-meeting/#respond Mon, 24 Oct 2011 04:29:23 +0000 http://milwaukeemakerspace.org/?p=2239

Today marked the first monthly meeting of The DIY CNC Club at Milwaukee Makerspace.  Ron Bean and Tom Gondek, the creators of the router, guided members and guests through the use of CamBam CAD software to generate G-code and Mach3 software to operate and control the router.  The day before, Tom and Mike tested the machine’s ability to cut aluminum.  On Sunday, Rich created a decorative wooden sign and Brant began making plastic shapes for a project enclosure. As Ron pointed out, in less than 24 hours we had worked in three different materials: wood, metal, and plastic.

Several items were also crossed off our wish list.  Two emergency stop buttons were added to the front of the machine and wired together in series.  Hitting either one stops all motion in the X, Y, and Z planes and pauses the program.  We also built a relay-controlled receptacle box that when wired into the CNC computer, will be able to stop the spindle so hitting the E-stop will kill all motion in all axes and the router.  For some reason the pins we’re using on the parallel port are only producing 1.6 volts instead of the 3 or 5 we expected and the relays won’t turn on.  All in all, a very productive weekend.

]]>
https://milwaukeemakerspace.org/2011/10/first-diy-cnc-club-meeting/feed/ 0
Junk Bot 1.0 lives! https://milwaukeemakerspace.org/2011/06/junk-bot-1-0-lives/ https://milwaukeemakerspace.org/2011/06/junk-bot-1-0-lives/#respond Wed, 08 Jun 2011 15:52:11 +0000 http://mm.bytedev.info/?p=710  

Greetings! 

   Hi, I’m David and this is my first post on the Milwaukee Makerspace site. I’m a video producer by trade, so you’ll be soon seeing some videos from some of my projects, however if you’re on the site you might have already seen some of my work. In late March I put together some videos of the Makers talking about what they make and what they think the Milwaukee Makerspace is. 
   Anyway, I didn’t even know what a Makerspace was myself till my friend Matt wrote me an e-mail and said, “If you want to walk the walk, come down to the Milwaukee Makerspace.” Needless to say I had no idea what that meant, but as soon as I stepped foot in our beautiful space with the warm welcoming logo above the hangar, I figured it out pretty quickly. 
   I have never done any robotics or electronics in my life, but seeing what the makers was up to inspired me. I picked up a soldering iron and started small. I’m the kind of Maker that works their way up to the big projects. Initially my ideas for projects mostly relate to my profession of video production. I would like to make a low to the ground camera platform, for wide angle shots, and a flying rig for some limited ariels. One thing at a time though, first I have to make something that works.

Introducing… JunkBot 1.0!!!

JunkBot 1.0 is my first attempt at what I want for a ground based camera platform. It sorta kinda does everything i want it to, but isn’t very robust. It’s functions are:

– Moves forward, back, turns using tank style steering
– Has a pan tilt camera mount
– Can wirelessly transmit video from the bot to a ground station
– Is controlled via a standard RC controller
– Falls apart slowly after about 15 feet of travel

My build process was:

1. Find plastic platform and half project box at the Makerspace “Hack Rack”
2. Get 2 continuous rotation servos & wheels. (Parallax servos sold at Adafruit)
3. Get an RC controller I am happy with (Futaba 7C 2.4ghz)
4. Get 2 servos and mounts for the pan tilt functions of the camera mount
5. Get 900mhz wireless video transmitter (RangeVideo)
6. Make front tire out of foam and a coat hanger
7. Strapped it all together with Velcro (TM).

I used my GoPro camera because it’s small, light, and gets 

the job done. I really love those cameras.

I got to show JunkBot 1.0 at the Makerspace Grand Opening and I think it went rather well. Next up I need to make some improvements:

– Better platform
– Better pan tilt
– Better propulsion
– Make it out of quality materials
– Add in some autonomous functions

But, you have to start somewhere, right? So we’ll see how this all goes. JunkBot 2.0 here I come!

Thanks for reading,
David

 

 

]]>
https://milwaukeemakerspace.org/2011/06/junk-bot-1-0-lives/feed/ 0