Raspberry Pi Project Ended

I’ve really struggled with the Raspberry Pi Project. As I posted earlier, the Raspberry Pi kept killing the file system on the SD card. Pete traded me for a different Pi, which behaved much better, making the card last at least long enough to get the operating system and other software installed. Yet the Raspberry Pi continued to corrupt the file system if left running for longer periods. The latest time it totally killed the SD card; I couldn’t even reformat it on my computer.

If I include the Pi in the traveling mascot, I’m convinced it will not survive the inevitable rough treatment. The only other use I can think of for a Raspberry Pi in a travelling mascot is as a home base server for the mascot, publishing the travelogues. Yet it’s too unstable for even that task.

I still like the idea of a traveling mascot that can track it’s own travels, but I’m convinced that building it around a Raspberry Pi is not the proper foundation. I really like the little GPS unit that came in this kit, and will try to build a scaled down version of the traveling mascot with a USB interface to hook up with any computer for collecting data.

Thanks again Adafruit Industries, we really appreciate the kit, and we’ll continue to work with the parts on other projects. Like vultures, some other members have already picked off some pieces of the kit for their projects.

Raspberry Pi Challenge Update

Eric

Previously on The Raspberry Pi Challenge

Just a quick update on the “Milwaukee Makerspace Traveling Mascot” project as I caught Eric doing a bit of Raspberry Pi + GPS hacking last night.

Raspberry PI + GPS

I’m excited to see how this project progresses. I’ve not had a chance to get hands-on with the Adafruit Ultimate GPS Breakout yet, but there’s a great tutorial on using it with a Raspberry Pi and one that covers Arduino usage as well.

The Raspberry Pi Challenge!

Raspberry Pi Challenge

Thanks to our friends at Adafruit Industries, we’ve got an awesome Raspberry Pi Starter Pack (and a few other goodies) and we decided that rather than fight over who gets to play with it, we’d issue a challenge to our members: Tell us what you’d build with the kit.

The results are in, and we’ve got a bunch of entries to look at before we decided who will be chosen take on the challenge. Hopefully in the next week or so we can reveal what the winning entry is.

But don’t worry, we’re going to share a bunch of the ideas right here on the blog. We may not get to build them all, but we’ll do our best to highlight some of the ideas that our members have come up with.

(If you’re looking to get into using the Raspberry Pi in your projects, you’d do well to check out the Adafruit Learning System’s category on the topic.)

I am the Cult of “Foamy”

Hello all:

I have been a member here at the Milwaukee Makerspace for about 15 months now.  One of my favorite things to do here is machine architectural reliefs from foam.  I studied architectural history extensively at UWM, so I have a lot of influences to draw from.

The first piece I did was 3/8″ deep, since that’s the bit we had at MMS.  I first tried a piece with all flat surfaces.  It turned out very well, so I tried another piece that has slanted roof surfaces; again, success, so then I did some searching and found a 1/2″ deep milling bit.  I did several pieces “on a theme”, taking the first one and making slight modifications. All of these designs are my own creations, I just daydream and think them up.

I have found that I can get 1/64″ details on these pieces.  I have recently started using 1″ deep bits, and the results are fantastic!  The best part is that the foam is really cheep-cheep-cheep, $25 for a big sheet at Home Depot!

My process is:

1) design in Solidworks (CAD)

2) Export to .STL file format

3) Import into Cut3D, where I generate G-Code

4) Load into Mach 3, the software that controls the CNC router.

5) Let the foam fly!

I started out on the MMS router, which uses leadscrews; my newer Zenbot machine uses belts, and is blazing fast.  I can now machine 8 times faster!  The largest piece shown here went from about 19 hours down to 2.5 hours.

My next challenge is to get small lines onto my pieces that will represent bricks/mortar, etc.  I’ll have to generate different code for that; the milling code runs in 3d, but the “bricklines” will need to be in 2d, so I’m looking forward to that challenge.  I’ll be using Vectric’s “Aspire” software for that.  More to come!

-MattN

 

The Critic

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.

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.

First DIY CNC Club Meeting

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 Tribute to Steve

Apple][+

If you haven’t noticed, I’ve been spending a lot of time with the MakerBot at the space lately. (And yes, it’s now much quieter and doesn’t force you to yell in the lab when it’s running.)

Last night Dustin stopped by to work on calibrating it a bit more. (He maintains one of the MakerBot Thing-O-Matics at Discovery World.)

We made a bit of progress by tweaking things in Skeinforge, and after much calibration test printing I thought we should print one “fun” thing before the night ended.

We chose the 1:9 scale model Apple II+ from Thingiverse. It seemed a fitting tribute to Steve Jobs.

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

Smartboard Projector Hacking

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:

  1. Substitute the (6) data link 1 pins from our own source and connect all the rest from the Unifi 35
  2. 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

Sadly neither worked, but after some research on various protocols (see: EDID, DVI, TMDS, etc.), swapping additional pins may give us what we want.

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.