Casting Furnace Update

Despite summer vacation and other obligations, work continues to progress on the Casting Furnace.  In the past few weeks Bret has pinched the end of a metal brake line tube used to feed the furnace diesel fuel and installed a needle valve to better control the fuel flow rate.

Brant has been milling and machining parts for a mechanism that will both lift the lid and turn it out of the way when someone steps on a foot pedal.  The next steps will be to finish the foot pedal, weld it to the rig, and secure the lid to the top of of the lifting post.  Bret also plans to improve the casting tongs so they are more easy to use.

For more information, see the project wiki page: http://wiki.milwaukeemakerspace.org/projects/casting_furnace

Android Blue or iOS Purple? Update on the OOMA project

The Object Of My Affection Lamp   I thought I would jump in and blog on my current progress at the Makerspace with a lamp called OOMA, or The Object Of My Affection. It’s a lamp that is shaped like a GPS Navigation pin that rotates to always points toward the one you love… as long as they allow you access to their Google Latitude account :). I am finalizing hardware designs and now moving into writing the software and how it talks to the Internet.

Initially I would have waived it off as using WiFi, or Ethernet, but work on another project (Marco) has illuminated several obstacles over multiple use cases (configuring Wi-Fi, closed networks, IP addresses); instead I think the approach will be to opt over USB (via Arduino Leonardo). I figure, if people will load up a coffee cup heater or foam missile launcher to USB, than there is no issue with port scarcity.

It’s not a lamp without light, and at some point OOMA will light up in either Android Blue, or iPhone Purple. Lighting the lamp will, however, have to relegated to a v.2 build, due to some complexity in the diffusion of light in such a cramped space. Additionally, I’d like to investigate EL panels to light it up.

Finally, I am coming up on the decision to be a DIY offering, or to design it to be marketable - do I build as a one off and just offer the blueprints to others or build an end-to-end consumer solution complete with potentially an NFC tag to tap and pair a user and their lamp.

MegaMax 3D Printer

MegaMax 3D Printer

MegaMax 3D printer based on MendelMax but bigger and minus plastic parts.

This is my on-going project at the Milwaukee Makerspace.  It is a 3D extruded plastic printer with about 1 cuft build envelope.  I want to print life-size human skulls (among other things) from CT scan data.  The printer is made mostly from salvaged parts and materials so the cost has been very low.  When it’s finished it will have a heated 12″x12″ bed (13″x13″ if I can find an aluminum plate that big) and dual extruder so it can print in two colors.

I have learned a lot on this project- some things that work and others that don’t work so well, and how to use a milling machine to drill holes precisely and square the ends of the 8020 extrusion pieces used to build up the frame of the machine.

I could not have done any of this without access to the people, materials, and tools at Milwaukee Makerspace.  Every time I go there to do some work on this project someone says something that gives me new ideas for improvements to the design.   I frequently find materials and parts left for me on the machine’s cart by other members who know what I’m trying to do.  If you have a project idea find your local Makerspace and get busy- there is nothing that will get your creative juices flowing like being around a bunch of people with similar interests and different skills and experience!

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

Runner’s Odometer

Runners's Odometer: Tracey's Miles as of December 25, 2011

Tracey, my wife, runs a lot. This year she is already over 2000 miles logged. She runs marathons and ultra-marathons and crazy things like 50 mile runs. We have long joked together that she clocks more miles running in a year than i put on my beloved 1999 Chevy Prism driving it to the train station and back. This made me think that i should make an odometer for her. I decided to do this for real a couple of weeks ago and had a prototype ready for her to open on Christmas morning.

Her immediate reaction? “You got me a box of wires and stuff?!” Once i explained it to her and showed it in action, she thought it was a lot of fun.

I initially wanted to use a real car odometer, but i didn’t have one handy. I went over to the fantastic American Science and Surplus and looked for some counters or an odometer there. While i didn’t find an odometer, they did have some 24v industrial counters from Durant. These are nice little counters that were (are?) made in Watertown, WI, not too far from our space. They are super simple devices. 6 geared dials have the numbers 0-9 on them. A solenoid ticks the rightmost number with each pulse of voltage it receives. When the dial on the right rolls over from 9 to 0, the next gear is ticked up by one and so on. These counters are not resettable or reversible, except by some manual intervention. I took the little guy apart and cranked the wheels over to where i wanted them.

A quick rummage through the hack rack turned up an 18V wall wart that we clipped the plug off of and used for our power source. Royce helped me out with this and with his help and a couple of alligator clips we proved that the 18V was enough to activate the solenoid and tick the counter up by 1. This particular counter moves 1 tick regardless of how long the voltage is applied. To crank up multiple ticks, i need to cycle the power on and off. I had an Adafruit MotorShield lying around that had all of the necessary high-voltage gear on it and we got the device up and running pretty quickly with it. I did not have time to build a circuit board just for this device, so the MotorShield is what is being used for the working device now. That wrapped up a quick night of experimentation at the space and at the end of it i had a working counter and the Arduino code to control it!

My next task was to integrate it with DailyMile, the social networking site that Tracey uses to log her runs and connect with her running friends locally and around the country. Thankfully, DailyMile has a nice little REST+JSON API that made it super easy to snag all of Tracey’s details. I used their ruby client, but will probably switch my app over to Python because i have been doing more Python development lately. The API returns a simple JSON structure for all logged activities and i simply snag that data and store it locally in a pretty-printed JSON file. A sample activity record and URL look like this:

Edited response from https://api.dailymile.com/people/tmgessner/entries.json?page=5

{"entries":[
{"id":10441284,
"url":"http://www.dailymile.com/entries/10441284",
"at":"2011-10-16T14:34:34Z",
"message":"My legs felt a little bit tired today but my lungs felt GOOD! I tried to stay relaxed and just enjoyed the feeling of breathing in and out. Really, a lovely Sunday morning.",
"comments":[...],
"likes":[],
"geo":{
"type":"Point",
"coordinates":["-87.8961323","42.9935854"]},
"location":{"name":"Milwaukee, WI"},
"user":{
"username":"tmgessner",
"display_name":"Tracey G.",
"photo_url":"http://s1.dmimg.com/pictures/users/9744/1322699474_avatar.jpg",
"url":"http://www.dailymile.com/people/tmgessner"
},
"workout":{
"activity_type":"Running",
"distance":{
"value":7.1079,
"units":"miles"
},
"felt":"good","duration":3968}},
...
]}

I save all of the activity events locally, but for this odometer, i am only interested in the “Running” events.

The ruby application runs forever and polls the DailyMile API every minute for new data and stops paging through the results if it finds entries that it has seen before. If any new runs are found, the app figures out how many miles are missing from the odometer and sends that value along as a byte to the arduino over the serial port using the serialport gem and waits for a successful response.

If you would like to build a version of this yourself, you can download the code used from http://code.google.com/u/jason.gessner/p/runners-odometer/.

The device and code work right now, but the presentation leaves a lot to be desired, though, so i am working on a version with a more lovely display. I like the analog odometer feel and I think the next step will be to make some larger gears for this project on the CNC router at the space and build a bigger version. I’d also like to work with my father on a nice wooden case for the display and the gear.

The more immediate next steps will be to make a smaller circuit for this that doesn’t need a full arduino and a motor shield. I can control the solenoid with a transistor (like we did for the Beer Project). The bigger challenge will be to make the connectivity to the data from the API more compact. I would love for this device to be wireless, but i need to figure out how much i want it to cost. This would be a fun project to offer as a kit or for sale, but i don’t want it to cost close to 100 dollars, so i’ll be doing some more prototyping to make it a bit more standalone. The other challenge i have is that Tracey typically only uses her laptop, so there is no desktop machine sitting around that she would hook this up to so it will constantly update. I do have some new Xbee gear that might work, but i think the trickiest thing to design will be the standalone version that doesn’t need a computer connected to it.

Runner's Odometer: The Motor Shield Powering the Counter

But is it Art?

My Completed Art Deco Wall HangingI sketch quite a bit and I’ve been doodling things like this for years without realizing that, technically, they fall under the “Art Deco” category.  If I were content with that, I’d paint it blue, pink, and silver.  However, because cerulean blue belongs in the sky and not on your wall, pink belongs in distant sunsets and not on your wall, and why the hell would you paint wood silver?  I decided that to bring this piece into the 21st century I’d need to radically rethink the colors.

At first, I had intended to only paint 3 elements of the composition.  After picturing it in my mind, I decided on the single yellow piece that you see here.  I’m quite pleased with the end result.  Unfortunately, the spray-acrylic sealer that I used was very old and I suspect that it was this that led to the strange patina you see on the main circle here.  No matter what I tried, I kept getting glossy parts and flat parts.

The primary material is MDF, some of which was cut with our very own CNC router, with hardboard being used for the yellow part, and split pine dowels (thanks to my own rig, clamped to our band-saw) for the 3 extending pieces.

*Note: When cutting a perfectly cylindrical piece length-wise on a band-saw, the piece will have a tendency to rotate as you’re cutting.  I’d have done a better job had I thought to clamp the piece to the jig that I set up.

The preliminary sketch of the art deco wall-hanging.This is the rough sketch of what I had planned on making.  Things change in a wonderfully organic way when you go from sketch to completed project.

The wall-hanging before painting and glueing.The piece before painting and assembly.

I laid the pieces out separately and hit them with flat-black spray paint.  This took very well to the MDF.  After painting and clear-coating everything, I waffled about how to assemble the many into the whole.  I first toyed with the notion of pre-drilling, then screwing everything in from the backside of the piece; I also realized what a pain it would be to try to locate each hole without being able to see the front first.

Next, I thought I’d use a brad-nailer and just pop everything in, but ours doesn’t take anything shorter than 5/8″ and this entire project is just under 1/2″ in depth and I didn’t want to bother cutting the ends of the brads flush with the back, plus, they could scratch the wall that it hangs on.

I finally decided on some epoxy that one of our makers had brought in.  It’s proven very workable and durable, as I found out when I used it to make the spools for our Makerbot ABS plastic filament.  I put several pieces on at a time, weighting them down with some paving bricks (covered in cloth, as I didn’t wish to scratch the paint).  After letting it cure for 24 hours, the project was more-or-less done.

All that’s left is to figure out how to mount it to a wall.  I think I might use a plunge router and hollow out a portion of the back for that.  Another idea has been brewing in the back of my mind, but it’s too cool to mention unless I actually do it.  Rest assured, if I use that idea, I’ll be posting about it here and on Instructables.

UPDATE: I found that it’s about the same weight as a moderately sized picture, so I picked up some picture-wire and attached it via two screws in the back.  It is now hanging on my bedroom wall.

Builder’s Night Out – October 6th

After weeks of revisions and sitting idle, the “Podium” project was completed last night.  Constructed from a tri-fold photo booth enclosure and a rolling base, the Podium holds a binder full of Guest Release Forms to introduce visitors to our space while also performing a very practical and necessary legal responsibility.

In addition to the variety of projects that were being worked on last night, Shane and Brant rewired Chris H.’s “American Horseshoes” game cabinet and reconnected the speaker.  After a few rounds, we understand why it had been disconnected.  It’s definitely a bar game.  Regardless, it will make a great addition to the Workshop.

Thursday Night Time Lapse

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.

Activities include:
- 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

Builder’s Night Out – September 29th

In addition to the usual hackery and makers working on their electric cars, Bret fired up the forge again last night.  Rich turned some horseshoes into hangers, Adam flattened a steel rod, and Royce folded a metal bar.

In preparation for BarCampMilwaukee6 (this weekend!) Royce and I have been mass producing circuit boards for a “learn to solder” class we’ll be holding.  The boards are 1.5″x1.5″ square and include a battery, two resistors, traces in the shape of our logo, and two red LEDs for eyes.  The copper traces were tinned using “Tin It” to prevent oxidation and make it easier to solder.  We’ve made 65 of the “tie pins” so far and the project gave us an opportunity to tweak our methods for PCB etching.  We prefer etching with ferric chloride, but muriatic acid and hydrogen peroxide are looking more attractive as they’re cheaper chemicals, can be obtained locally, and etch much faster without heating.  Also, red Sharpie markers seem to work really well at cleaning up traces with the muriatic acid solution.  Specifically red, not sure why.