LegoLamp follow-up

There are some issues . . .

It’s not going so well . . .

In a previous post, I outlined the plan for constructing the LegoLamp.  It was good theory, but not really workable.  This post will be a “what I learned,” rather than “look at what I built.”  The picture tells the story.

Legos are rectilinear, the cylinder is not.  Which means the contact between them is a line.  That’s not a lot of gluing surface.  Ideally, I would have cut the brick-end to match the curve of the cylinder.  But Lego are hollow.  Removing that much material would have removed the end of the brick.  I counted on the relatively thick hot-glue adhesive to smoosh, expanding the area of the joint.

The laser-cut template has very tight tolerances.  This was deliberate.  Making the template tight allowed it to serve, in theory, as a substrate for the next layer of bricks.  The tight fit to the current layer of bricks would hold the template perpendicular to the cylinder.

In the background, you can see the hot-glue gun has been retired.  There is a yellow, plastic-razor-holder next to it.  Hot glue was not the proper adhesive for this job.   I installed, removed, and scraped, 3 layers of bricks — twice — before abandoning the hot glue.  The template is so tight, it leaves no room for adhesive.  The glue gets scraped-off and smeared onto the cylinder as the brick is fit.  After the first layer, placing a brick is not merely a matter of fitting it into the template.  The template must be aligned with the lower layer of bricks so that the new brick will snap onto the one beneath it.  The glue is not-so-hot by the time the template is properly aligned and the brick is inserted.  The resulting joint is weak.

I switched to two-part epoxy, to gain a longer working time.  In short, it still wasn’t sufficient.  Five minutes was long enough to place the persnickety first brick of a row, plus 3 more.  Then the epoxy became unworkable, and I had to dispense more.  I wasted a lot of epoxy.  Adding insult to injury, the working time was 5 minutes but the minimum set time was 20.  That means 30 minutes per layer.  Sixteen layers is 8 hours of gluing.  That’s too long.  And, the epoxy had the same smearing and small-contact-surface issues as the hot glue.  Some of the epoxy joints are no stronger than the hot-glue joints (i.e., they fall apart if touched).

The template works as a substrate for the next layer of bricks.  But the etched outline is not sufficient to accurately place that next layer.  When the template is rotated & raised to lock onto the 2nd layer, it doesn’t fit.  The bricks are not placed within the tolerance of the template.  I can’t use the template to support the new layer as the glue sets.  Without that support, the bricks tend to fall out of parallel as the adhesive sets.  This makes the next layer even more difficult to place, stresses the lower layer’s joint in the process, and results in collapses like the one in the photo.  I created support structures from other pieces of Lego.  These work for the initial layers.  But they add to the difficulty of placing a brick.  They can’t be used after the first 5 layers, because there’s no space for them.

Clearly, it’s time to back away from the project and rethink it.

LEGOlamp

Materials:

  • Clear acrylic tube, 3″ O.D.
  • 4×2 LEGO bricks, 6 per layer
  • Ceiling-mount shade holder (like this one)
  • Hot glue or specialty adhesive (e.g., Weld-On #1802)
  • Template material (flat, at least 6″ square, 5/16″ thick)

Initial considerations:

3″ O.D./2.75″ I.D. tube is appropriate for a ceiling-mount shade holder.  That greatly simplifies the wiring and allows a standard bulb to be used.  Incandescent bulbs get much hotter than CFL bulbs.  Airflow around the bulb is likely to be restricted.  Cooler bulb is better.  Distorted or discolored acrylic is not pretty.

Acrylic tube is not the only option.  Transparent PVC and polycarbonate are also viable.

Spacing between “vanes” is important.  Because the light-source is inside the bricks, they will cast dramatic shadows and restrict the amount of light projecting into the room.  The 3 screws attaching the tube to the shade holder require equidistant holes.  Space must be left for them.

A child may not understand the difference between decor and toy.  A ceiling mount places it out of reach.  The 3-screw attachment should be easily adaptable to other mounts, should they be desired later.

Template illustration

Each brick hinges on the corner nub of the brick below & behind it.  Thus each one is half a brick ahead of the one below & behind it.  Brick edges are straight, so the ends will only touch the tube at their centers.  A triangle, formed by the center of the tube and the centers of connected bricks, has a vertex of 12° (see illustration).

Use a template to ensure the bricks are glued in the correct orientation and spacing around the tube.  The template has brick-shaped holes for already-attached bricks, and indicator-lines showing where the next brick should be placed.

Correct thickness of template

 

 

 

The thickness & rigidity of the template material are important.  In this illustration, the template rests on the red layer of bricks, is held in the correct orientation by the yellow bricks, and supports the new, green, bricks while the glue sets.  If the template is too thin, the leading edge of the new bricks will drop.  Instead of stair-stepping up the side of the tube, the “vanes” will droop and level-off.  If the template isn’t rigid (say, cardboard), it will flex under the new bricks with the same result.  (I used sheet acrylic.)

The correct thickness of the template is equal to the distance from the bottom of the new layer of bricks to the top of the nubs on which it rests.  Note that this is not the same as the thickness of a brick!  It’s the thickness of a brick, minus the height of its nubs, then minus the height of the nubs on which the template rests.  7/16″-1/16″-1/16″=5/16″.

Construction:

The Tube:  How long should it be?  As long as you want.  In my case, I noticed that 6 inches is an even multiple of the brick-height (3/8″ per brick * 16 bricks = 6″).  So my tube is 6 1/2″ long.  The extra half-inch is to accommodate the nubs on the topmost layer of bricks and provide clearance for the shade-holder.  I cut the tubing on a table saw.  The technique recommended by the manufacturer is to raise the saw blade to just above the thickness of the tubing, then rotate the tubing, in place, on the blade.  In my case, I used a cross-cut sled to ensure the cut was perpendicular all the way around the tubing.

The LEGOs:  16 bricks per “vane” * 6 vanes = 96 bricks.  I decided to use equal numbers of each color, so I needed 24 bricks each of red, yellow, green, and blue.  I purchased used bricks and a large LEGO plate in an on-line marketplace.

Don’t cut the red ones!

Because each brick must rotate 12° relative to the brick on which it sits, 3 of the 4 nubs must be removed from one side of each brick.  Important: Decide which way your bricks will rotate before you remove the nubs, and remove the same 3 nubs from each brick!  In the illustration, the red nubs are closest to the tube.  Do not cut those!  Those are the pivots for the bricks that will attach to them.  If you want the bricks to spiral clockwise up the tube, remove the blue nubs.  If you want counter-clockwise, remove the green nubs.  Note: you don’t need to remove the nubs from the top-most 6 bricks.  In fact, it will probably look better (from the ceiling, anyway :~) if you don’t.

My set-up for removing the nubs

 

 

 

 

 

 

I used a rotary tool, fixed in a stand, to remove the nubs.  I used a standard cut-off disc.  I adjusted the height of the tool so that the bottom of the disc was at the bottom of the nubs.  I used a big, green LEGO plate to hold the bricks in place, while I cut them.  The plate allowed me to keep my fingers well-away from the spinning blade, but still manipulate the brick being cut.  I left a gap between the pivot end of one brick and the next brick.  This made it easier to avoid accidentally removing the pivot nubs.  (Note: molten plastic is hot.)  After cutting, the bricks required some touch-up work with a knife, to remove the plastic still attached to the edges.  Also, the nubs are discs that sit atop holes in the brick.  Removing the nub reveals the hole.

Laser-Cut template

The Template:I found some scrap acrylic of the correct thickness. Shane was kind enough to redraw my template sketch as a vector, and show me how to use the Makerspace’s laser-cutter (Thanks, Shane!).  We cut the template in multiple passes.  The first pass included the outline for the “next-up” brick.  Subsequent passes did not.  That produced the desired through-cut with adjacent guidelines.

Template test-fit

 

 

 

 

 

This image shows the template, a short length of tube, and a pair of test bricks (3 nubs have been removed from the red brick).  Notice how the template aligns the red brick, and how the guidelines show correct placement of the blue brick.  Note: The template is resting on the table, not on a lower layer of bricks.  That’s why the blue brick doesn’t rest on the template.)

That’s as far as I’ve gotten.  I’ll post again when the project is completed.

Moar Power!

DIY PSU

Power? We always need more power! Many months back Joel had an old computer power supply that he modified to use as a cheapo bench power supply. Sure, it doesn’t have all the bells and whistles (and adjust-ability) of a real bench power supply, but since we hate to waste, and love to recycle, it’s a good use of an old power supply.

I learned a lot about power supplies last month when I destroyed the one I use(d) with my RepRap, and in the process I ended up harvesting a few PSUs from old computers we had in the server room at work. I ended up using one of them to build my own project power supply with 5 volt and 12 volt outputs. I grabbed a pair of resistors from the component library to put a load on the supply, and drilled four holes in the case to mount a few posts I got at Radio Shack. I’ve now got plenty of power to power all sorts of powerful projects!

DIY PSU

Here you can see it powering up an LED ring light that requires 12 volts. I can also use it to run a small fan when soldering components. The uses for such a power supply are endless! (Well, within the supplied voltage and current anyway.)

Microtome

A microtome is a device for slicing very thin cross-sections of stuff, in order to view them under a microscope.  Commercial ones are available, but they cost upwards of $50.  There is a classic DIY solution, but it involves a piece of old technology — a wooden spool for thread.  Outside of antique stores, those aren’t common.  Plastic ones tend to be hollow, meaning there’s no guide surface for the razor blade; and the razor is likely to shave the plastic instead of slide across it.  Gluing a washer to the plastic spool would address both of those problems.  But there is very little gluing surface on the end of a hollow plastic spool.

 

 

Lacking a wooden spool, I cut a cube off the end of some scrap 2×2 and bored a slightly-oversize hole through it.  Using Gorilla Glue, I attached a flanged nut and a flat washer to opposite ends of the hole.  Before the glue set, I used the bolt to center and clamp them over the hole.  Gorilla Glue expands 30% as it sets.  To avoid permanently gluing the bolt into the body, I carefully removed it after a few minutes.  You can see glue in the threads adjacent to the bolt, in the image at right.  A few minutes with a wire brush cleaned the bolt threads.

 

 

 

 

 

Lastly, I flattened and polished the washer on a lapping plate.  The edge of the washer-hole was rough, and glue had expanded out of the hole and onto the surface.

The nut & bolt are 1/4 x 20.  One complete turn is 1/20″.  So a quarter-turn should be 0.0125″ thin.  That, and a fresh razor blade, should make slices thin-enough for a microscope.

MegaMax Lives!

The video shows the last few layers of the calibration cube “printing” at 414% speed (according to my LCD display).

The Bucketworks 3D printing meet-up on 8/12 paid off big-time!  Gary Kramlich helped me debug a problem that was preventing me from flashing the firmware on the controller board for the MegaMax 3D printer.  After a few tweaks I was able to get it moving.

Magic Mirror Theater Prop

My sister is a Theater Manager at the Patel Conservatory in Tampa, FL.  About two weeks ago she texted me and asked if I could make her a prop she needed for an upcoming production.  “How keen would you be on making me a mirror for “Beauty and The Beast,” she said.  “They want a mirror that lights up and sparkles like the one from the movie.” Even with limited experience just tinkering around, I knew I could do something fairly easily, so I agreed and got to work.

I combined two different circuits (a 555 timer to flash and a RC circuit to fade) and built a wooden frame with acrylic plates for the front and back.  The wood and plastic were CNC-milled, then sanded and painted before the electronics were installed and glued into place.

The result was a fairly decent-looking, shiny, light-up hand mirror with a small thumb button on the right side that flashes 16 bright green LEDs when pressed.  It all runs off a single 9-volt battery and the back can be unscrewed to replace it should it ever die.

Total build time from start to finish was probably close to 15 hours over the course of one week.  The play was Thursday, July 19th and from what I’ve heard, it was a great success.  I’ll add pictures from the performance if I get some.

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.