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):
|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:
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.
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!
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.
The laser cutter is now connected to the new vacuum pump! I’d still like to do some endurance testing on it to fully put it through it’s paces, and we need to finish the last leg of the vent pipes up in the loft, but otherwise you can use it to cut wood and such just as you did before. I wouldn’t suggest cutting any plastic just yet as the vent pipe is just discharging over the hallway by the bathrooms. There’s an instruction sheet on how to turn the vacuum pump on and off taped to the machine and my contact number if you run into problems.
Alert others to your presence outside, in style!
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.
A time lapse video complied from the Milwaukee Makerspace CCTV system. 7 hours of video compressed into 4 minutes. All events took place between 4:30 and 11:30 PM Thursday, September 29, 2011.
- Rich welding
- Chris and Rich working on their electric cars
- Chris driving his electric car in and out of the shop
- Tom, Adam, and Royce working in Diptrace
- Bret, Rich, Royce, and Adam blacksmithing items with the forge
- Various people working on misc. projects and chatting
- Royce, Brant, and Adam etching and tin-plating circuit boards
- Pete working on his Makerbot 3D printer
Do you ever want to watch a movie at home, but can’t decide between your favorite two? Maybe your favorite TV show is about to start, but you’re still watching a film on DVD? Perhaps you and a friend can’t agree on which film to watch? Well, you need not fret if you’re an early adopter of StrobeTV – a new device that enables the viewing of TWO films simultaneously on a single television by simply alternating between them! The basic version features two knobs for fine-tuning your experience. One sets “impatience,” which is how long you’ll view and listen to one film before switching to the second film. This can be set from once every10 seconds and mere fractions of a second! The second knob controls “preference” or the relative amount of time spent watching the first or second film – perhaps you want to view the first film 60% of the time, and the second 40%. Or, might it be 25% first and 75% second?
If you’re the proud owner of the Premium StrobeTV, a world of customization is achievable using the eight three position switches and two knobs. The upper row of switches configures the experience you’ll enjoy for an amount of time set by the upper knob. When this time expires, your experience is set by the lower row of switches for the amount of time selected by the lower knob. Naturally, the process repeats, endlessly alternating between your two chosen forms of entertainment – be that TV, DVD, Netflix, gaming consoles, etc. Perhaps you feel you’ll miss out on important action while you’re watching one film? Premium StrobeTV allows you to listen to the left and right audio channels of the second film, while you view the image from the first film! Maybe you’re more comfortable reserving the left speaker for playing the left channel audio for the film you’re not currently viewing? Or maybe the audio alternates? With StrobeTV, the possibilities are virtually endless. Premium StrobeTV has an enhanced switching range, from once per 15 seconds to over forty times per second, ensuring you won’t miss a single detail!
Premium StrobeTV features an ingenious 2 meter long cable that allows the controls to be at your fingertips, while the wiring remains hidden away. Note that Premium StrobeTV, like its more economical sibling, allows for the switching of four signals: right audio, composite video, left audio, and a forth signal of your choice!
Several Smartboard projectors arrived at Tom’s warehouse recently sans the whiteboard parts. The devices consist of a “Smartboard Unifi 35″ computer with various video/audio connections and a projector mounted on the end of a telescoping arm. The whole rig is mounted on the wall above a touch-sensitive whiteboard and the projector beams the image back at the board. Unfortunately, without the whiteboards, the projector won’t display anything more than a prompt telling us to connect the board.
I immediately took interest in this project as I’ve been using boards like these at work for a few years now. So with the help of several other makers, we’ve managed to cobble together some ideas on how to make use of the projector portion.
The best strategy we’ve come up with so far is to substitute the video signal from the original computer with our own. In order to do so, we’ve built three DVI breakout boards to pick individual pins from one device or another and feed them into the projector.
We’ve spent $0 and about 20 man-hours of labor so far. It would be less but my DipTrace and PCB etching skills are rusty. The boards took all day Saturday, 9/10 to design, etch, drill, solder, and test, but around midnight I got to check my first two hypotheses:
- Substitute the (6) data link 1 pins from our own source and connect all the rest from the Unifi 35
- Substitute the (6) data link 1 pins from our own source and TMDS shield/clock pins and connect all the rest from the Unifi 35
If none of this pans out, we’ll probably look into faking the whiteboard signal. I’d hate to think the projectors are useless without the whiteboards. These things are just too cool to scrap.
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,