Sunday, December 14, 2014 from 1:00 PM to 5:00 PM (EST)
This class will be a fast introduction on not only how to set up and use your Pi but how to program it to do something useful and fun. Blink an LED? Move a motor? Read a switch? All great and there are other things like Arduino that do a good job at this. Where the Pi shines is that it is also a “real” computer and makes it easy to get information from the internet and to share information.
Be sure to purchase the $60 Pi kit with this class, tickets are here:
MakeIt Labs recently had a 3′x4′ 80W CNC laser cutter move in. This is an amazing tool that can be used to create all sorts of wonderful stuff out of wood, acrylic, leather, and many more materials. If you’re interested in learning how to use it, check our class listings for the next training session and sign up!
Laser cutting a jigsaw puzzle is a project that I started experimenting with yesterday. A friend found a simple puzzle template and sent it to me as an adobe illustrator file. I then converted it to dxf and imported it into the laser cut software. From there I can easily resize and rotate it to fit the material.
I tested a couple materials and methods. First up was 5.5mm thick plywood. For the initial attempt I sprayed a flyer with adhesive and stuck it to the wood, then put it on the cut table face up. This cut fine, but there was a lot of scorching on the “image” around the cut lines. I don’t have a picture of this test.
Next, I tore a page out of a magazine and stuck it to the wood the same way. However, this time I put it face down in the laser. This turned out better, as the vacuum table was able to remove more of the soot before it deposited on the image. There is still some discoloring though.
Here’s a shot of the back (the side that was up while cutting): And this is the front: Finally, I tried using acrylic since it produces no soot when cutting. In this case I coated the “top” side of the photo with adhesive and glued it to the acrylic. This way you look through the pieces to see the image and it gives a nice effect. As an added bonus, the back of the page I took out of a magazine had another great picture on it, so this became a reversible puzzle.
Here’s the back (another nice photo!): Notice the little black dots along the cut paths? Those are caused by the laser reflecting off the iron honeycomb cutting bed. This can be avoided by placing the piece to be cut on plastic egg crate (the white grids you see on overhead fluorescent lights) to elevate it above the table. Still, not too bad.
Here’s the front: The reflectiveness of the acrylic makes it hard to photograph well, but it turned out pretty nice. The spray adhesive had a slight effect on the image, but a higher quality spray (or one that wasn’t 5 years old) would probably take care of this minor issue.
Here’s a close up: Nice clean edges, and no burning! Future improvements for this project will be a more varied puzzle template with more pieces, using actual high resolution photographs, testing cardboard stock more similar to what typical jigsaw puzzles are made out of, and using a protective, lightly adhesive paper to prevent burned edges. Stop by MakeIt Labs any Thursday night for open house to check out the laser cutter along with the rest of our awesome equipment!
We’re excited to announce that Instructables is sponsoring a build night at MakeIt Labs on Tuesday, May 21st, starting at 7pm. This event is free to members and non-members, but space is limited, so please reserve a spot by claiming a ticket. The intent is that this will become a regular monthly event, with different creative materials featured for each build night.
This month instructables will be supplying us with Bare conductive paint Instructables will also be buying everyone pizza, and we know how much you like pizza (empty boxes are our chief export).
In return, we will be creating awesome instructables featuring a variety of the projects that go on at MakeIt. If we produce enough high quality posts, we will also be eligible to receive some really cool equipment like a CO2 Laser Cutter, Industrial Sewing Machine, A/V Package, 3D Printer, Electronics package, or CNC Router!
Come by on the 21st, get fed, try out some neat conductive paint, and make stuff!
After the people, one of the greatest resources we have at MakeIt is the shelving full of “junk” and parts, free for any members to pillage for projects. Many of these treasures were scavenged out of the trash/recycling, including most of the electrical components. Thousands of dollars worth of unused parts that would have been wasted now have a second chance!
Thousands of parts, free for members to use
With a bit of reverse engineering, whole sub-assemblies can be also reused. In this post I’ll demonstrate how an indicator board from a junked UPS (uninterruptible power supply) can easily be modified to create an interface for an array of LEDs.
Here’s the bit I found in the recycling. It’s the front panel to a UPS and has 16 LEDs of various colors and two soft buttons:
Front Panel of UPS
Holding it all together is a single screw and some plastic tabs. Here’s the panel broken down into its parts:
CC from top left: PCB Assembly, Buttons, Light Pipes, Insulator, Plastic Housing
For this project, we’re only interested in the PCB Assembly, so the rest can be returned to the recycle pile. Here’s the front and back of the PCB:
Front of PCB Assembly
Back of PCB Assembly
It’s a fairly simple board. On the front you can see the 16 SMD LEDs and two ICs. The back only has a handful of SMD capacitors and resistors. The board also has an 8 pin ribbon cable attached to it. This is the only way this board interfaces to the rest of the UPS. Right away this gives an important clue. Of the 8 pins, 2 are almost surely power and ground, leaving only 6 for signals. 16 LEDs and 2 buttons is 18 I/O devices, so it stands to reason that one or both of the ICs on the board are being used to handle the I/O, and that these other lines control the IC. This is very useful when you want to control a large number of I/O lines since I/O pins on an Arduino (or other micro-controller) are a limited resource. Let’s take a look at those two ICs and see if we can figure out what they do.
ICs on the PCB Assembly
First let’s investigate the large IC since it seems to be connected to the LEDs. The markings on the top of the IC read “MBI5026GD” and “A3P05511EA”. Figuring out what chip this is used to involve flipping through phone book sized catalogs, but now it’s as easy as Googling those two markings, starting with the top one. “A3P05511EA” is likely a manufacturing code that specifies manufacture date, lot, location, etc. It probably won’t give any good info. “MBI5026GD” gets a bunch of results though, including a link to a pdf titled “16-bit Constant Current LED Sink Driver“. Hmm, LED driver? That sounds like what we’re looking at! I happen to have a few of these boards, and one of the other ones uses a chip of the same size and shape, but marked “A6276ELWT”. Searching for this yields a pin and function compatible chip made by a different manufacturer. This is pretty common, as most designers try to find multiple sources for their components to minimize risk of part shortages. Here are the data sheets for both parts:
Let’s take a closer look at the datasheets. Here’s a block diagram from the Allegro datasheet:
The Product Description reads as follows:
MBI5026 is designed for LED displays. MBI5026 exploits PrecisionDrive™ technology to enhance its output characteristics. It contains a serial buffer and data latches which convert serial input data into parallel output format. At MBI5026 output stage, sixteen regulated current ports are designed to provide uniform and constant current sinks for driving LEDs within a large range of VF variations. Users may adjust the output current from 5 mA to 90 mA through an external resistor, Rext, which gives users flexibility in controlling the light intensity of LEDs. MBI5026 guarantees to endure maximum 17V at the output port. The high clock frequency, 25 MHz, also satisfies the system requirements of high volume data transmission.
Datasheets product descriptions are a great example of what happens when you mix engineers with marketing folk.
Here’s what that block distills down to:
This is an LED driver IC that uses a serially interfaced latch to drive 16 LEDs at a current of 5-90mA. Drive current is fixed by a resistor connected to the chip.
This chip has 3 main parts: The serial interface, the latch, and the output driver. Here’s what each component does.
Serial interface The serial interface is a simple 16 bit shift register. It uses three pins – Serial Data In (SDI), Serial Data Out (SDO), and Clock (CLK). Each time the signal on the Clock pin transitions from low to high (GND to+5V), the value on the SDI pin is shifted into the first bit of the 16 bit shift register, pushing each of the 16 bits in the register over one spot. The last bit in the register is pushed out and onto the SDO pin. Think of it like a shelf only wide enough to hold 16 blocks. If you slide a block onto the shelf from the left, the blocks on the shelf are each forced over and the 16th one will be forced off the shelf. The SDO pin exists so that multiple shift registers can be connected in daisy chain fashion with the SDO pin of the first tied to the SDI pin of the second. This is like putting two of the previously mentioned shelves next to each other to make one 32 block wide shelf.
Instead of falling off, the 16th block on the first shelf becomes the first block on the second shelf.
The latch is used to store the value of the shift register. It uses a single pin – Latch Enable (LE). When LE is high (+5V), the output of the latch matches the input. When LE is low (GND), the output is locked, or “latched” and the input can be changed without affecting the output. This enables you to output the current state of the latch while you are setting up the shift register with the next value. Once this new value is ready, the LE line is switched high and the latch output changes to the new value. The LE line is then switched low again to latch the value and the process starts over.
The output driver takes the value stored in the latch and uses it to set the state (high or low) of output pins. This translates into turning the LEDs off and on. It uses a total of 18 pins – Rext, Output Enable (~OE), and the 16 output pins. The output driver also regulates the current to each LED based on the value of a resistor connected between GND and Rext. Typically, each LED would need its own current limiting resistor, but this way the LEDs can all be directly driven by the IC. The state of ~OE determines if the output is enabled or not. This is an active low pin, which means that it must be low to enable the output and high to disable it.
OK, enough of the electronics lecture, let’s get back to the hacking!
Now that we know what’s driving those 16 LEDs, we can make a few more guesses about the ribbon cable attached to the board. The LED driver definitely needs CLK and SDI signals or it’s useless. LE is also probably used, but ~OE may be directly connected to GND since there’s no reason to disable the outputs. SDO probably isn’t connected since there’s no reason to chain these boards. So out of the 8 signals on the ribbon we’ve now likely figured out at least half of them. Now it’s time to check our work. We could probe everything out with a multimeter, but there’s another trick to help trace out connections on simpler boards like this one.
Take a photo of each side of the board, then flip one photo and layer it on top of the other in a photo editing program like GIMP or Photoshop. By adjusting the transparency of the top layer you can easily trace out lines that transition from one side of the board to the other. Using a multimeter to verify the endpoints is still a good idea though.
Layered Photos With Transparency
From a combination of probing and tracing I was able to determine where each of the pins on the ribbon went. Pin 1 is designated by a square pad and is the farthest to the left when looking at the back:
GND through R527 (a 0 ohm resistor acting as a jumper)
VDD (+5V) through R526 (a 0 ohm resistor acting as a jumper)
IC47 Pin 13 through R524 (2k resistor)
IC47 Pin 11 through R522 (2k resistor)
IC47 Pin 9 through R520 (2k resistor)
Pin 1 wasn’t connected to anything, meaning we only have 7 lines in use on the ribbon cable instead of 8. Pins 2 and 3 were ground and power, and pins 6 and 7 went to the buttons. That leaves pins 4, 5, and 8 to control the LEDs. They all go to IC47, so it’s time to see what that IC does. Googling the part marking “CD40106″ reveals that this is a Hex Schmitt Trigger IC. This chip is a collection of 6 inverting buffers – a signal coming into it high leaves low and signals coming in low leave high. According to the datasheet, the outputs of the Schmitt Trigger gates connected to pins 13, 11, and 9 are 12, 10, and 8, respectively. Going back to the probing and tracing we can update the list:
Serial Data In
Now we know enough to test things out! I had an Arduino handy, so I wrote a quick sketch to walk an alternating bit pattern (01010101…) through the shift register with one second delays between each bit.
Success! We’ve figured out how the board works and we know how to control it. What’s left? Turn it into something cool!
The board is of limited use in its present state, but the LEDs can be unsoldered and replaced with wires to drive other LEDs. Since the board switches the GND side of each LED, we’ll need one wire per LED plus a wire to feed +5V to all of them. With the help of Adam B., I used the Sherline CNC to mill out a disc of aluminum and drill 16 holes in a circle around the edge. I won’t go into detail now on that process (maybe in a future post!), but here’s a few action shots:
Sherline Mill with Aluminum Plate
Facing the Plate to Smooth It
Facing is Done, Drilling Pilot Holes
Almost Done Drilling Pilots
Drilling Out the Holes to LED Size
Holes All Drilled
Adam B. Changing the Drill to a Cutting Tool
Cutting Out the Disc, LED for Reference
I mounted 16 LEDs in the disc, and housed it in an old cordless phone charging station that was also picked out of the trash. I wired the the board to these LEDs and crammed everything into the charger base with 5 wires coming out the back for SDI, CLK, LE, +5V, and GND.
Aluminum Disc With LEDs Wired to Board
I then wrote another Arduino sketch that allows me to send different patterns (including random ones) to it at different rates. Here’s a video of the results:
These boards can also be combined to drive even more LEDs. One method would be to chain them by connecting the SDO line from the first to the SDI line of the second, and so on. This is slightly difficult because the SDO line isn’t used by these boards and would need to be brought out. The ribbon does have an unused pin (pin 8), which would be a good option. Multiple boards could also be driven in parallel. The LE and CLK lines could be shared, but a separate SDI line would be needed for each board. The advantage here is that data can be written faster. Rather than having to clock 32 bits of data through 2 chained boards, 16 bits could be clocked into each at the same time if they were in a parallel configuration.
That’s what I ended up doing in my maze box project.
Maze Game Made With 4 Boards Driving 64 LEDs
I used 4 of these boards, with each SDI going to a separate I/O pin on my microcontroller. Each board controls 2 rows of LEDs in the 8×8 display. I wrote the code to keep track of the screen as a whole and adjust each board as needed. This way I could modify the entire screen without having to keep track of each individual piece. The end result is a maze made up of 64 8×8 screens arranged as a square. With each “pixel” represented by a single bit, the maze data takes up only 4,096 bits (512 bytes) of memory.
Additional IO lines on the micro are used for the directional buttons and center bi-color LED.
In both of these projects, the only thing I had to buy was the microcontroller. Everything else was salvaged from the scrap heap and parts bins at MakeIt. There’s tons of treasure just waiting for someone to find it. Go take something apart!
P.S. There are a bunch more of these LED Boards available at MakeIt, free to any members!
Unlike many of the other 3D printers geared at the hobbyist community, the Replicator 2 requires very little tinkering, adjusting, and tweaking to get high quality prints. Here it is, hard at work printing a stretchlet:
Here’s that stretchlet, along with a length of chain, nut&bolt, and comb that were all printed as test pieces on the day the machine arrived.
Comb, Stretchlet, Chain, Nut&Bolt
Access to the Replicator 2 will be free to Pro members provided they have completed the required 30 minute training course. For Non-Pro members there will soon be a workshop posted to our Eventbrite listing. There will be some PLA (the type of material it uses to print objects) available at MakeIt for trying out this amazing new technology. If you have large projects or anticipate doing a lot of printing, you will need to supply your own PLA. If you’d like to learn how to create your own 3D designs, there is a 3D Design With Sketchupworkshop scheduled for December 15th.
Please see the wiki for more information on this printer.
Stop by for our open house on Monday and check out the new 3D printer!
The legs were loose on this awesome painted stool, so I set about fixing them. In this case all that was needed was to tighten the hex bolts holding the legs on, but I had to re-set one of them, and in the process I dropped the fastener that anchors the bolt into the leg.
I dropped it in the somewhat cluttered laundry room of my house where I also have a small workspace. This room is no more than 8′x8′, yet even after I carefully searched through everything in the drop zone (cleaning the room as I went) and checked behind and under the workbench, furnace, washer, and dryer, it was no where to be found. My best guess is that it rolled too close to the dryer and got sucked through the missing sock wormhole. This thing had simply winked out of existence.
I had no idea what this part was called, or where I could find another one. I could probably hunt one down at the hardware store, but why buy one when I could make it from scratch and had MakeIt Labs (complete with its machining tools) and a half hour of free time at my disposal?
To get started, I unscrewed another leg, being extra careful not to drop anything this time, and took it along with the bolt and fastener to the shop.
Fastener, Leg, and Bolt
The fastener is simply a metal rod with a threaded hole drilled through the side and a slot on one end to align it in the stool leg. I measured the diameter of the fastener with a set of calipers and found it to be 3/8″. I had a good hunch we’d have at least one 3/8″ bolt laying around, so I went to the big blue bucket of bolts and dug around a little.
Bucket of Bolts
In a few seconds I had a perfect match:
Calipers on Bolt
The only portion of the 3/8″ bolt I cared about was the smooth, unthreaded shaft. This was the stock material I planned to use to make the new fastener. In order to make the threaded hole I first had to drill out a rough opening, and then use a tap to cut the threads into the drilled opening.
I measured the bolt from the stool and found that the threading on it was 1/4″-20 NC. This means the the bolt was 1/4-inch in diameter with 20 National Coarse (a standard) threads per inch. I opened our tap and die set and grabbed the 1/4NC20 tap and the tap handle. According to this chart I’d need a #7 drill bit to make the hole I planned to tap, so I grabbed one of those too and headed over to the drill press.
I clamped the stock bolt into the vise at the drill press, put the bit in the drill, and centered it over the shaft of the bolt:
Then I squirted on some cutting fluid and slowly drilled the hole:
Drilling Hole in Bolt
After cleaning off the shavings here’s the result:
This would be good enough for what I needed to do, but at this point I decided to try and make my replacement fastener match the old one as much as possible. The old one had a taper leading from the surface to the hole, to help guide the leg bolt in. To add this I put a larger drill bit into the drill press and drilled slightly into each side, using the hole as a centering guide.
Now I was ready to tap the hole.
Tap and Bolt
I left the bolt clamped in the vise, added a bit of cutting fluid, and slowly started to thread the tap into the hole. If it felt like it was binding at all, I’d back it out, clean away any cuttings, add more fluid, and re-thread. Eventually I could turn the tap smoothly the whole way through and the threads were done:
To test the threads, I took the bolt from the stool and screwed it into the freshly tapped hole. Perfect fit!:
Now I needed to get rid of the extra parts of the stock bolt. I used the old fastener as a rough guide to estimate the first cut, clamped the bolt in the small chop saw, and cut off one end:
Cutting on the Chopsaw
Then I clamped it the other way, again using the old fastener as a guide, and cut off the other side:
Both Ends Cut Off
The newly cut one is a bit longer than the old one, but this is fine since I planned to grind the ends a bit to smooth them out. To grind the ends I clamped the piece in the jaws of a hand drill and used it to hold the end at an angle to a bench grinder while I spun the piece with the drill.
Using a Drill and a Bench Grinder
This made a nice taper to the end
I flipped the piece around the other way and did the same thing to the other end. Here is the new one next to the old one. You can see it’s still slightly longer, but since the tolerance in the stool leg is low it won’t be an issue at all.
Both Ends Tapered
The last thing to add was a slot on one end of the piece. This slot is used to turn the fastener in the stool leg so that it will be aligned with the bolt. I did this by clamping the piece in a vise and cutting a shallow groove with a hacksaw.
Now all that was left was to reassemble the stool. Everything fit great and the stool is now as good as new!