Those who know me know that besides being cheap (hey, it’s part of being a maker and being DIY) I tend to use cameras a lot. Well, on occasion camera related things break, or I’ll need a part that doesn’t exist yet, or exists, but it too expensive, or isn’t designed right, or whatever.
All of the issues mentioned above lead me to create “CAMS” the “Camera Accessory Mounting System”, which will be a modular system that allows me to mount things to cameras, and mount cameras to things.
The connecting pieces of CAMS are 3D printed, and design is happening in OpenSCAD. The other parts of CAMS consists of standard 1/4″ hardware, nuts, bolts, screws, etc. There are also knobs that fit onto the nuts to allow for easy finger tightening.
Wanting to up the ante a bit after having the Makerspace laser cutter chop out hundreds of city blocks to form a big map of MKE, I decided to laser cut a 24” by 18” halftone image! As it required the laser cutter to carve 10368 circles out of an off-yellow piece of 98 Lb paper, the cutting took 1.3 hours and produced quite a bit of confetti. I’ll display this with a purple (rather than black) paper behind the off-yellow laser cut paper. In person there is an interesting transition from an abstract purple/yellow shape into a black and white image as one moves further away from the image. You may even want to sit back from your monitor to improve the “image quality.”
Check out this video of the laser cutter in the middle of cutting 10000 circles! Note the mysterious logic employed by the laser cutter to determine the order of its cuts.
I imported a photo into GIMP, and desaturated it to produce a black and white image. After bumping up the contrast and darkening it slightly to nearly saturate the darkest areas (and avoid any totally white areas), I brought it into Inkscape. Inkscape can create halftones in a two step, manual process. The first step is to draw an 8 pixel by 8 pixel circle in the upper left corner of the 1133×720 pixel image, and select Edit->Clone-> Create Tiled Clones. To create a rectangular grid of halftone dots whose sizes are set by the color of the image below, use these settings:
From a quick test cut of a particularly dark area, I found that I needed to add an offset between each row and each column to account for the kerf of the laser. I.e. the laser beam has a cutting width that is wider than that of the line, and so in the darkest areas of the photo the halftone dots overlapped, causing a large section of the paper to fully detach. That led me to make this test strip with 11 shades of grayscale, evenly spaced between pure black and white. I laser cut this test strip with various offset distances between the rows and columns in order to arrive at the optimal 10% extra offset between adjacent rows and columns shown in the above settings. Note also that the smallest size circles may not even be exported from Inkscape due to their infinitesimal dimensions (i.e. if you export as a .pdf). The minimum gap between circles with 42% speed and 100% power on an 1133 pixel wide image blown up to 24″ is 0.79 pixels, which is 0.017″.
Applying these same settings to the image created a 128 by 81 array of circles, for a grand total of 10368 vector objects. In my first trial run last weekend, I found that sending this much data to our 60 Watt Universal Laser takes 5 minutes and results in a print error I noticed only after hitting start! After 1.3 hours of vector cutting, I found that a few of the rows and columns were shifted a bit from their intended location. It’s not clear whether this had to do with the print error, or if the paper moved slightly during the cutting process.
In order to improve the second version (shown at top), I chose to move away from the rectangular grid of halftone dots – recall that Kays and London teach that hexagonal close packing is for champions. The reason to abandon the rectangular spacing is to improve the dynamic range (i.e. to make the blacks blacker). For example, rectangular grids of circles pack at an “efficiency” of Pi/4, which is 79%, whereas hexagonal close packing results in a pi/6*sqrt(3) packing, or 91%. That means that the darkest sections of the image will be darker, as more of the light colored “front” piece of paper can be cut away. See the image below, and note that the hexagonal pattern does indeed appear darker.
It turns out that Inkscape doesn’t easily permit this. I ended up spending an hour or two fiddling with the column and row offset settings using my 11 black/white tone test strip to find settings that gave the hexagonal offset with the closest, even hexagonal spacing between adjacent circles. The following settings worked great for an 8 by 8 dot on the darkest square of the test strip:
I test cut this yesterday, sending ¼ of the data at a time to the laser to avoid printing errors. However, part way through the cutting, cut-out paper circles stuck to the long air assist nozzle of the laser head (ironically) hit a washer I was using to weigh down the paper to prevent movement while cutting. The paper shifted by about 1mm, which was enough to make some adjacent halftone dots overlap and cause others to have a visibly wider spacing.
In the process of cutting that photo, Shane happened by and mentioned that vector cutting 10368 objects may be just as fast as the typically-very-slow raster cutting time. With three clicks, I turned off the vector outline of the halftone dots, and selected a fill color. After test cutting a row, I found that he was right. Check out the difference between raster (100% speed, 100% power) and vector (42% speed, 100% power) in the darkest section of the image – the area with the closest spaced circles:
The vector halftone dots are perfectly circular, though the edges are a bit rough. Some of them have a very small border and so are a bit fragile. The raster halftone dots are not very circular, but the edges are very smooth and the boarders are slightly wider. I chose to raster cut the 24″ x 18″ image, and found that the raster cutting time of 1.4 hours was nearly equal to the 1.3 hour vector cutting time.
Note that many programs can create halftones, though often the results will not be suitable for laser cutter use:
The next step is to laser cut this image into wood. Also, Inkscape will let you draw any shape to create tiled clones from – so please do share photos of any halftone images you create with star shapes!
One of the biggest problems with FDM 3D printing is hot-end jamming. There seem to be a lot of causes, most of which are not readily identifiable when a jam occurs. One thing I have found is that after a hot-end jam I can usually grab the filament and manually push it and get it flowing through the hot-end again, though it is too late to save the failed print. The most common means of driving the filament into the hot-end is to pinch the filament between a gear and a bearing and have a motor drive the gear, either directly (with 1.75mm filament) or via a gear reduction/torque multiplier arrangement (3mm filament). When the hot end jams, the large force applied by the gear over the small area of the filament that is pinched between the gear and bearing usually chews a divot in the filament thus destroying the grip.
A couple weeks ago I started designing a 3mm filament extruder for 3D printing. My hope is that this extruder will provide sufficient force on the filament to prevent hot-end jamming from ruining prints. My design uses two counter-rotating 6-32 nuts twisting on the filament (like the way your hands twist in opposite directions when you give a “snakebite” to your friend) to drive it into the hot-end. One is a normal, right-hand threaded nut, the other is left-hand threaded. When the nuts turn in opposite directions, the torque that would try to twist the filament is cancelled while moving the filament forward and reverse without twisting.
The motor has to turn about 1.26 times to move 1mm of filament so there is a huge torque to axial force conversion. The gear diameter is about 30mm. That 1.26 rev moves the gear about 119mm at its perimeter. That means there is about a 119:1 increase (ignoring losses in the gears, bearings, and nuts) in the force at the filament compared to the force at the gear. That force is applied over a larger area of the filament than the usual pinch arrangement, so it is less likely (I hope!) to carve the filament and lose grip. I tried stopping the filament by grabbing it with my fingers and holding as tightly as I could but it didn’t even slow down.
The firmware in the printer has to be tweaked so that it knows exactly how many steps of the motor are required to drive 1mm of filament. The formula is:
32 rev/ 1 inch X 1 inch /25.4 mm X 200 steps/1 rev X 16 microsteps/1 step = 4031.496 microsteps/mm
For initial tests I just input 4031.5 using the rotary encoder on the LCD interface to the RAMPS board in MegaMax.
I’ve been on a laser cutting kick lately. In the last two weeks, I made 9 travel coasters, two of which feature neighborhood maps of places I’ve lived. Though I could have just raster cut these very small coasters, generating the vector version allowed me to create this big map of Milwaukee, Wisconsin! This wall hanging map is the maximum size of our largest laser cutter: 24″ by 18″! Boom!
This map was inspired by a project made by my friend NJStacie a while back. While she has both the infinite patience and the limitless awesome that allowed her to use an X-acto knife to cut out all the city blocks of Boston from an actual map, I used a laser cutter and software. To create images for my roadtrip coasters, I simply took screen captures of google maps, and processed them into vector files using GIMP and Inkscape. There are so many extraneous details in google maps (lines for buildings, the text labeling street names, etc), that it was clear I needed an alternate approach for making this map.
Its easy to get a small google map without text labels, check out the url of this page. My first approach to get more than 512×512 pixels was to use the Google Maps API, which is a toolset to imbed an interactive google map into webpages using Java. The great thing about it is that the rendering style is completely configurable. Even better, there is a GUI to quickly configure your desired style, and automatically generate the JSON object to pass to the style property of the MapOptions on your webpage. Instead of investing 10 or 15 minutes reading about how to integrate all these steps, I just created the style, and took a few .png screen captures. I opened them as layers in GIMP and combined them to create the following grey and black image:
I saved it as a .png, and imported it into Inkscape, selecting Embed Upon Import. I created vector data from this raster image by first selecting Path -> Trace Bitmap, opening a dialog box with many choices. I really only experimented with the top two import choices, Edge Detect and Brightness Cutoff. I found that Edge Detect gives two outlines, one of the streets and one of the city blocks. For this reason, Edge Detect seems to be the best choice to create the widest streets, and therefore the strongest paper cutout. It required some cleanup though, so I selected Path -> Break Apart, adjusted the Fill and Stroke, and then just deleted all the street outlines (thereby widening the spaces between buildings, which is effectively the streets). As some of the streets were to narrow to really form one continuous outline, they formed a lot of smaller street segments that I deleted in five or ten minutes of fast and furious clicking. After all those steps, a vector version of the following image was produced:
I did a few test cuts to find a power/speed that cut all the way though some colorful, 98lb, 25″ by 19″ acid-free archival paper I picked up. The goal is to use enough power to cut though, without using too much power, which widens the kerf (laser cut width), thereby undesirably narrowing the streets. This ended up being 100% power, with 52% speed. Check out the laser cutter in this real-time (not sped up) video. Note that one typical problem of having both air assist and super-power fume-removal suction while cutting is that the laser cut bits tend to flip over into the cutting path, potentially resulting in an incomplete cut. That meant when the laser cutting was complete, I had to carefully punch out the 15 or 20 stubborn city blocks that weren’t completely cut though.
I also cut this design into a coaster, and made one with my old Massachusetts neighborhood too. Naturally this was a lot of data on a small surface, but the results are pretty good despite the vector cutting time approaching that of the raster cutting time! I cut these at 100% power, 100% speed, like the other coasters.
After I completed all these steps, I learned about a way to access vector map data directly. The Open Street Map site allows export of .svg vector data just by clicking the share button on the right side of the page! Even better, one can zoom in to Milwaukee, and press the big green Export button on the upper left to export an .osm database of the visible section of the map. This OpenStreetMap archive can be opened in Maperative! and a style can be applied to the rendered map. Maperative has several styles built-in, and I simply edited the google maps-like style to omit all the buildings, and draw all roads, highways, on-ramps, etc in a black with no border. Maperative can export .svg files, but I found the content of these files are a bit of a wreck. For example, each different road type is a separate vector path, meaning that there are many separate paths in the file. Ultimately I found I’d taken the wrong approach, as I should have rendered all the city blocks as black vector outlines, and omitted the roads – as that is what I really need to laser cut. With a bit more work, using Maperative would likely be a quite quick path from map to laser cutter. However, I abandoned this approach as I’d already created a somewhat reasonable workflow.
I used the Makerspace 60 Watt laser cutter to make coasters that show the path of some road trips I’ve taken. That way I can enjoy the sweet irony of sitting on my couch enjoying a tasty beverage while having thoughts of travel! This project was somewhat inspired by mmassie’s OpenPaths Zurich vacation keep sake project.
As I don’t use OpenPaths, I used Google maps to plot the course of past road trips, and simply took screen captures. I wanted to create vector images with hairline width (0.001″) lines so the laser cutter can make each coaster in 45 seconds instead of 20 minutes. There are many ways to generate vector data using these raster .png images. I chose to semi-manually edit out unnecessary parts of the images using GIMP, and then used Inkscape to extract vector data from the resulting simplified images. If you’re new to these tools, just search for “Inkscape raster to vector” tutorial videos. An alternate approach is to just import the raster image into Inkscape, and use the Bézier line tool to trace the important paths. Yes it is manual, but this alternate method also only takes 5 minutes to complete.
The coasters are cut from 3/16″ 4″ x 24″ solid basswood using fairly standard settings of 100% power, with 100% speed for etching, and 3.5% speed for cutting.
I made quite a few coasters, and above is a photo of three of them. The coaster on top is a rail trip through Italy, the second is a 1000 km, 12 day (right hand) drive through Ireland, and the last is a much longer than 12 day road trip through the southwest – note the vertical and horizontal lines are the state borders of NV/NM/CO/UT.
A few days later, after polishing my vector editing skills in Inkscape, I made an improved version of the above three coasters. I added circles to more clearly highlight each stop, and I etched the names of each stop on the reverse side of each coaster. One group of raster to vector settings I used in Inkscape resulted in the creation of two sets of (closely spaced) hairlines for the outline of Italy, as shown in the coaster above. I really liked how distinct the outline of Italy is relative to the path of the trip. I chose to intentionally create two offset hairlines for the other country or border outlines, using Inkscape’s linked-offset path command.
Check out the new and improved design of the front, with dual country/border outlines and circles to denote the stops:
Check out the reverse sides of these coasters shown below, with names of each stop etched on them. Albuquerque.
When I recently was at the thrift store and saw a pair of ice skates next to a kick-scooter, it got my mind going. “What would a scooter look like with skates in place of wheels!?”
The next time I was at the Makerspace, I saw my old electric scooter over on the Hack Rack. This was a scooter I originally rescued from a dumpster. Although it didn’t have batteries, just adding power and a little tinkering got it up and running again. A few of the EV Club and PowerWheels Racing guys played around with the scooter a bit, but eventually the controller got toasted, and who knows what happened to the front wheel.
Oh well, I’d be replacing that front wheel with an ice skate anyways.
Turns out that the heel of an ice skate is actually sturdy enough to drill right through and use as a mounting point. I simply drilled through the skate, inserted a spacer, and then ran a 3/8″ bolt through the skate and the front fork of the scooter. I finished it off with a couple of washers and a nut.
Then next thing to fix was to get the motor going again. Turns out that it’s a brushless motor. While I have a fair amount of experience now with BRUSHED motors, this was my first experience with brushless. I did a little research, and then ordered a 24V, 250 watt generic brushless controller from a mail-order scooter parts company. Unfortunately, it used a different style of throttle than what was already on the scooter, so I had to order a throttle to match.
Connecting the controller was pretty easy, three wires to the motor and the black and red one to power. I first bench-tested it with an old printer power supply, and once everything was working right, bit the bullet and bought a brand new pair of 12ah SLA batteries. The two batteries are wired in series, along with a 20 amp fuse, and then go to the controller.
I still needed a deck for the scooter. I dug through some scrap materials and found a pair of cabinet doors that were about the right size. I cut them down just a bit and bolted them to the scooter. I even re-mounted a cabinet door handle to have as an attachment point for towing a sled.
With that, I was ready to go for a test ride, so it was off to the lake. Once I was on the ice, I turned on the scooter and gave it a go! What fun! It really zipped along, but it was almost impossible to steer, as the back tire would slip right out from under me! Time for more traction!
I decided to make a spiked tire. I removed the rear wheel, then disassembled the two-part rim and removed the tire and inner tube. I stuck 1/2″ self-tapping, pan-head, sheet-metal screws through the tire from the inside, so that their points stuck out. I evenly spaced out 24 screws and alternated them to be slightly off-center side to side. Next, I put some old scrap bicycle inner tube over them as a liner to protect the scooter tire inner-tube. After that, it was just a matter of reassembling everything.
Now for test #2 out on the ice. Remembering how much it hurt to fall on the ice, I was prepared this time by wearing my motorcycle jacket (which has padding built-in) and my helmet. Good thing too, as I would learn while steering with one hand and holding a GoPro camera in the other…. (Note to self, keep both hands on handlebars at all times.)
Overall, the Ice Scooter works great! I still have a few little things to do on it. For example, the motor is running “sensor less”, and I’d like to learn about how brushless motors use the sensor system. I’d also like to get a small 24V dedicated charger. As it is right now, I have to remove the deck and manually charge with a little 12V charger.
From thrift store idea, to hack rack, to life on the ice, it’s always fun to see what you can do with just a little ingenuity. I hope you like this project. If you want to see more on it, please check out the write-up I did on Instructables. It’s even in a few contests there, and I’d love your vote!
Marcin Jakubowski, TED fellow & founder of Open Source Ecology, will be visiting Milwaukee and speaking at three public lectures on the topic of Social Entrepreneurship.
Open Source Ecology is a non-profit organization with the goal of designing 50 industrial machines that it takes to build a small, sustainable civilization with modern comforts. The idea is that true economic power can be unleashed in developing countries when they gain access to the CAD files, how-to videos and other engineering specs required to make tools to build houses, agricultural equipment, etc.
(We’ve got a few members who are huge fans of Open Source Ecology and the ideas behind it.)
Here’s the details on the three lectures taking place:
When: Tuesday, February 18th at 7pm
Where: 1025 N Broadway St. Milwaukee, WI 53202
Multi-Purpose Room, Campus Center Building, 3rd Floor
When: Wednesday, February 19th at 12pm
Where: 2200 E. Kenwood Blvd. Milwaukee, WI 53201
ANSYS Institute for Industrial Innovation, EMS Building, 1st Floor
Marquette University Lecture
When: Wednesday, February 19th at 8pm
Where: 1637 W Wisconsin Ave. Milwaukee, WI 53233
WI Energy Foundation Classroom, Engineering Hall, 2nd Floor more info
And here’s a video of Marcin talking about Open Source Ecology:
This weekend I made an end table for my living room. Its in the style of two night stands I made, this one for the tool at hand contest, and this second one! The legs of this series of small tables are getting increasingly eccentric. To build it, I started with three pieces of 2×12 lumber, and a 1/2″ diameter dowel rod. I avoided using metal fasteners, and instead used only wood glue and 8 3″ long dowel pegs to attach the legs to ensure that sculpting the table with my chainsaw-blade-equipped angle grinder would be safe(r). To save some labor with the grinder, I actually cut some of the zig-zag legs with a band saw first. Even with the pre-cutting, I ended up making 1.5 cubic feet of wood chips and saw dust.
5 years old have many things in common. A penchant for poor personal volume control, meth-addict levels of energy, and an OCD like compulsion to make noise. Mine in particular has the “drummer” variant of that condition and so loves to bang on anything and everything. This affliction made manifest is the Blue Man Group, naturally his favorite musical group. So when he needed a new headboard for his bed, we decided to see what we could do let him exercise his inner Blue Man.
4 pieces of 6’ long, 4 inch PVC
4 pieces of 10’ long of 2 inch PVC.
2 & ½ bags of 2 inch 90 degree elbows
You’ll eventually need PVC primer and glue as well once you’re ready to lock everything in place.
2 3/8” hole drill bit. (Exterior diameter of 2 inch PVC is 2 3/8)
“I got an equation from nate true that will give you the length of the pipe you need when you plug in the frequency: Tube Length (in) = (13300/(2*Frequency))+(Tube Diameter/2)
For the frequencies of the notes in the range of the piano go here: http://en.wikipedia.org/wiki/Piano_key_frequencies
My low note was number 16 (C2) in the list on the wikipedia page.”
Drilling the holes through the 4 inch pipe was easy, just lay two parallel lines opposite each other on either side of the pipe and mark your drill holes on either side at equal distances from one end. The 2 3/8 hole bit went through easily but you had to keep it completely perpendicular to the pipe or it would jam. I highly recommend you use a drill with a torque setting so you don’t snap your wrist or have the pipe turn and crack you in the head when it jams. Don’t ask me how I know this.
Also, PVC power / flecks have amazing static cling powers so be aware that it’s rather messy.
Since I was worried about the pipe length hitting the ceiling and didn’t want a spaghetti mess of pipes on it I opted for a C3-C4 whole note scale with an extra C2 at the bottom for a nice low note.
It turned out well, we need to paint and glue the PVC together and drill the elbows to the lower cross member but even with the dry fit they stay together pretty well. With the 90 degree elbow on the end, he could continue to stick pipes on it and change or add notes if he’d like.
Paddles for now are just a pair of old flip-flops that will be modified to have handles. Any dense foam rubber will do.
This was also a great excuse to try out my new GoPro 3 on Time Lapse, so here is a video I did of the build:
With a lot of hard work from Ed H. and Steve P. our 4′ x 8′ CNC router has achieved a milestone, instead of the X axis sitting on the ground it has taken a leap up and is now mounted, ready for the Y and Z axis to be mounted to it along with the electronics and motion control.
The X-axis is ready to be milled here.
Connect with Milwaukee Makerspace
Join our public mailing list to talk with Milwaukee Makers about projects, techniques and more.
Check out some behind the scenes info on our wiki.