The Library

The Library

If you’re ever at the Milwaukee Makerspace and you hear someone say “It’s in the Library!” you might wonder to yourself (much like I did) why it’s called the Library.

Yes, we do have some books in there, but we’ve also got a giant wall of electronic components, as well as a sewing machine, embroidery machine, computers, projects, supplies, and miscellaneous junk.

I ran the question past Royce, and he had this to say:

It’s because we have a library of electronic components.

For example, if you are reading the Arduino Cookbook and a circuit in there calls for a 47uF capacitor or a 2N2222 transistor that you don’t have, you needn’t pay $5 shipping for a 50 cent part and wait three days to boot. It’s almost certainly in our parts library. Just go grab it!

We have most every value of through hole resistors and capacitors in a variety of working voltages. We also have common discrete silicon devices such as diodes and transistors. We are more limited on the ICs because of the colossal variations in ICs, but we have a lot of common beginner type stuff such linear power regulators, silicon controlled relays, 74 series logic, the venerable 555 timer, RS-232 level shifters and more.

So there you have it! Sure, there’s some books, but mainly it’s a “library of electronic components” which for a hackerspace, is a pretty awesome thing to have.

XBee Breakout Board

I recently purchased a couple of XBee modules from Sparkfun for a new project I’m working on.  I’ll be using them to send a wireless signal from an ice fishing tip up when a fish is on the line. I was frustrated after I received my XBee modules because I realized they do not fit into a standard breadboard!

After I got over the initial frustration I started designing a breakout board that would allow me to use the XBee modules with a breadboard. I used Dip Trace to design my first two sided board.


After I got everything laid out in Dip Trace I etched the board using the equipment at the makerspace. I used our standard process for etching the board.

  1. Print the board design on press and peel blue using a laser printer.
  2. Transfer the circuit design from the press and peel to the copper clad fiberglass board using a heated press.
  3. Etch the board in ferric chloride.
  4. Drill all of the pads with a #65 drill bit using a Dremel.


Here is the finished breakout board.

Smartboard Projector Project Abandoned

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  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.

Food Not Bombs Bronze Pendant and Final Star Trek Assembly

Previously I had blogged about a Star Trek logo that I cast as gift for my sister-in-law. I’ll update that project later in the post, however, I held a second casting back from the blog as it was intended as a gift for my wife.

For a couple of years my wife co-ran Milwaukee’s Food Not Bombs movement. She has always had fond memories of that time and has on more than one occasion brought up their logo: a hand clutching a carrot. So, I decided to make her a pendant with a relieved carving of that logo. To begin with I pulled the jpg logo into Inkscape loaded with the Better Better DXF Output plugin. I used the Inkscape drawing primitives to trace over the major outlines of the logo and then export the tracing to DXF. Once in DXF I imported the file into CamBam where I cleaned of the drawing a little more and defined machining operations for our CNC Router to perform. I turned the outlines into a series of adjacent polygons. (e.g. a wrist polygon, a thumb polygon, etc.) I then setup pocket operations of varying depths on each polygon. Finally, I exported the file to G-Code for consumption by the Mach 3 router control program.

FNB Logo in Mach 3If you look you can kind of see the polygons even if the depth setting of each pocket is not apparent.

Above you can see the pendant in the process of being routed out and also the finished wax mold after routing. Below you can see the pendant after casting! She loved it and wears it frequently. I was a really good feeling to actually put some effort into making a gift this year. It made the act of giving the gift that much more special.

I also completed the Star Trek logo. I turned that into a broach.

Above you can see that I have mounted the Star Trek logo to a plastic backing. I’ve also cut one of Adafruit’s EL Panels way down in size and hooked it up to another one of her small inverters. The small inverter normally cannot run her panels, but after being cut down so much, it wasn’t a problem. Below you can see the two pieces put together.

And finally the finished gift!

As I said, I really enjoyed giving gifts that I made this year. I am going to try to do more of that!





I got my BeagleBone in today! In brief it is a high speed (720Mhz) ARM development board that takes a lot of inspiration from Arduino. At 720Mhz, however, there is plenty of juice to run Angstrom Linux or even Android.

It comes with a Linux SD card so I fired it up an gave it a whirl. Out-of-the-box the board runs a web server that runs Node.js and serves a web-IDE called Cloud9. They’ve set up Node.js libraries to make the programming look a whole lot like the Arduino. Check it:

They say it’s not quite ready for prime time and won’t be until sometime in 2012. But the blinky light program worked just fine. Seems like they are off to a great start.

I am thinking about this device as a fixed function server that will serve up a configuration GUI for my access control system and poll the door readers. Right now the Access Control server runs on a normal Ubuntu server, but in a commercial application you’re going to get folks who just plain have a black thumb with computers. These folks can be a real drain on support. This BeagleBone device could possibly be made black-thumb proof.

Holiday Make-A-Thon 2011 Photos

Wow! We had a great turnout at the Holiday Make-A-Thon, and besides teaching people to solder, and providing blank ornaments to decorate, we just generally had a good time.

Here’s some photos from the event:


Here’s Royce teaching someone to solder with our Tie Pin Kit. We plan to have these at all the events we participate in so we can show people how easy it is to get into soldering.


Here’s Brant working on some ornaments. We used the CNC Router to cut out a bunch of different shapes for people to decorate.


Here’s a collection of finished ornaments.


Here’s a dried gourd that was transformed into an awesome penguin.

Some crazy looking reindeer Brant made out of scraps from one of my projects…

And finally… Starclops. (Does Starclops really need any sort of explanation? I think not.)

Thanks to everyone who came out to make this event awesome!

Tie Pin PCBs!

The tie pin PCBs came in and they look great! We’ll use these PCBs to teach folks how to solder and spread the word about Milwaukee Makerspace!

In the photo above you see two identical boards each showing the opposite side. On the logo side two flashing rainbow LEDs go into the eye sockets and two current limiting resistors go to the left and right of the welder’s mask. On the back side, near the bottom of the pcb you can see two large rectangular pads that bracket a very large circular pad. The feet of a surface mount coin-cell battery holder that goes up and over the circular pad are soldered to the rectangular pads. The resulting cavity is a perfect fit for a standard CR2032 coin cell battery. Near the top is an oval shaped pad where the tie pin is soldered down.

Whenever we offer a Learn to Solder session at an event we’ll have these PCBs and associated electronic components in kit form available in exchange for only the time and effort required to learn to solder one together. (Small donations are appreciated, but in no way required) Most folks take less than 10 mins to master the basic soldering technique and are rewarded not only with a flashy tie pin or broach but also with a newly opened door to possibilities by virtue of their new ability to construct electronic circuits.

RN-42 Carrier Board


I got that RN-42 carrier board populated and working! Its ready for the GyroSkirt driver board, once I get that built.

There are a few errors on the board. TX and RX are swapped somewhere. Either on this board or on my USB to TTL-Serial board or in the RN-42 documentation. Also it seems the LEDs were meant to go to Vcc rather than ground. As a result my LED indication for connection status and RF traffic is inverted.

I can live with the errors as the actual data transmission works like a champ. To test the tranmission I hooked the carrier board up to a PC via a USB to TTL serial converter configured to operate at 3.3V.  The venerable Hyperterminal program was used to open the virtual com port on the PC. Then I downloaded Sena’s Bluetooth terminal program to my Android phone and used it to form a Bluetooth serial connection between my phone and the modem. The result: keys pressed on my phone’s keyboard appeared inside the Hyperterminal running on the PC and keys pressed on the PC keyboard appear inside the Sena Bluetooth terminal running on my phone. Bi-directional data flow at 115,200 baud.

Now that I have proven my wireless link works, I need to update the GyroSkirt/GryoBelt firmware to allow me to adjust the gain and the deadband over the Arduino’s serial port.  (In addition to actually making a driver board that has a spot for the modem.)

iTead Boards


I got my first batch of iTead Studio boards in!  iTead Studio is a  pcb printing shop that offers absurdly cheap prototype boards. The new boards look great. I’ll definitely use them again. It only took 2 1/2 weeks to get here. For the price its an awesome service.

The particular board shown is a carrier board for the RN-42 Bluetooth modem, which is only $15 from Sparkfun if you buy it in its surface mount form. For another $15 I now have 10 12! carrier boards that allow me to adapt the surface mount device to through hole technology as well as control infrequently utilized device specific features such as factory reset, BT Master mode, force 9600 baud and more. The more you know the cheaper electronics gets.

The carrier, populated with the modem, etc., is destined for the GyroSkirt. The idea is that I’ll be able to adjust the gain and deadband processing on the gyro sensor reading wirelessly from a program on my Android phone via the Bluetooth radio in my phone and one of these boards affixed to the GyroSkirt driver. The GyroSkirt will again be driven by an Arduino,  so I hope to leverage the Amarino library to speed my development time.