Archive for CNC

Camera Axe

I made a new version of Camera Axe.  Here is my store where I sell them.

Camera Axe is open hardware and open software project that helps you get some of those difficult to capture photographs. It can use various sensors like light triggers and sound triggers to activate a camera or a flash. Here are a few sample images of the things this hardware has captured.

Here is a gallery with more pretty pictures. I apologize that some of them are a little blurry. I dropped and damaged my flash about a week ago and don’t have the funds to buy a new one right now. The flash now does a few micro pre-flash outputs before the full flash is triggered. This is is why some of the images have a weaker ghost images in them causing a blurry appearance. (UPDATE: Here is are some new photos I shot once I got my flash repaired. And here are some more.)

These are just a few images I’ve used to test this software/hardware. The possible uses range from taking pictures of wildlife while you’re not there to photographing a bullet piercing an apple. The fact that everything is open source offers advantages over solutions that are being sold today (beyond the cheaper price). As an example lets say you want to take pictures of wildlife at sunrise/sunset. You could modify the software so the light sensor only actives the camera at light levels that represent sunrise/sunset and then you could use the microphone to actually detect animal movement. Since the hardware is easily understood you can add new sensors as needed, one sensor I’ve thought about making is piezo pressure sensor.

Camera Axe Component List

Here is a list of the components you need to make Camera Axe.

Break Away Headers $2.50
Mini Push Button Switch $0.35
Serial Enabled 16×2 LCD $24.95
16 MHZ Crystal $1.50
ATmega328 with Arduino Bootloader $5.50
DIP Sockets Solder Tail – 28-Pin 0.3″ $1.50
5V Voltage Regulator $1.25
Optoisolator with Darlington Driver – 1 Channel $1.25
0.1 uF Capacitor (4) $1.00
22 pF Capacitor (2) $0.50
10 uF Capacitor (3) $1.35
RF Link 2400bps Receiver – 315MHz $4.95
3-Pin Screw Terminals 3.5mm Pitch (2) $3.00
Super Bright LED – Green (4) $3.80
DIP Sockets Solder Tail – 8-Pin $1.50
Diode Rectifier – 1A 50V (2) $0.30
Custom Circuit Board PCB $21.43
NPN Transistor (2) $0.54
Plastic Enclosure $7.62
3.5 mm Audio Jack (4) $1.40
Push Button Switch (6) $7.80
1M Ohm Potentiometer $0.90
Op Amp $0.33
9V Battery Holder $1.05
1/4 Watt Resistors * 47 (1) * 220 (4) * 1K (1) * 10K (14) * 100K (1) $2.52
McMasters Carr
#2 Spacer – 3/16″ OD, 3/16″ LENGTH (4) $1.04
#4 Spacer – 3/16″ OD, 5/16″ Length (4) $1.16
Undersized 4-40 Nut (4) $3.28
Undersized 2/56 Nut (4) $5.23
2-56 Bolt – 5/8″ Length (4) $4.64
4-40 Bolt – 3/4″ Length (4) $5.09
Total Cost $119.23

Getting the bill of material cost significantly under $70 should be pretty easy if anyone want to make 10’s of these. Many of the parts above start significant volume discounts at pretty low quantities. Also some of the hardware from McMasters I only needed 4 of something but I had to buy a pack of 100 so building multiple (or finding a supplier where you could buy 4) would decrease the price by about $15. You could reduce the cost the the PCB from $21.43 to about $6.50 if you ordered them in quantities of 17 from BatchPCB’s supplier Gold PhoenixPCB (I’d really suggest using BatchPCB until you know what you’re doing). Lastly, redesigning the board to use surface mounted parts would lead to large cost savings.

Camera Axe Hardware

I designed this circuit and PCB board in Eagle. Eagle is a powerful circuit and PCB design tool. You can get a free version for non-commercial use. This is the first PCB I ever designed and must say that Eagle combined with these four great Sparkfun tutorials (1, 2, 3, 4) really got me up to speed. I then sent my design to BatchPCB. It took a little over a month to get my test board back, but it worked great. Here are my eagle files for this project and the Girber files I sent to BatchPCB. If you install the free version of Eagle you can look at and modify my schematic and board layout. Below is a picture of this boards schematic for those who don’t want to install Eagle to look at it.

Being my first board I made a few mistakes with the PCB that I’ll correct if I ever print more boards. Luckily all my mistakes were minor and the board I printed works fine.

  • Rename “Light” to “Sensor” on the silkscreen since that is a better description.
  • One of the bolt holes is one grid point off center so I should make sure all the bolt holds are centered.
  • I should label the value of the Potentiometer on the silkscreen (1M ohm).
  • The silkscreen for the RF receiver is missing +5 for one of it’s pins.
  • The LEDs are too bright and the 220 ohm resistors should be replaced with something larger.
  • The schematic is correct, but the parts I used for the focus and shutter are ECB transistors.  These have an odd pin layout for transistors (1=emitter, 2=collector, 3=base).  Switch these to a normal transistor (1=collector, 2=base, 3=emitter).

After I got the PCB back, it was just a matter of soldering all the components in place. If others want to build this and want more detailed directions on soldering the circuit board components into place, I may be willing to write an instruction guide to assist in this.


To make the enclosure I designed the holds I needed to drill and the few places I needed to cut with my Dremel in Inkscape. Then I just printed that out onto some sticky paper and had the pattern I needed to cut out on the box. This worked out pretty slick. Here is the cutout pattern I designed (drill/cut template, final sticker template).


I used an ATMega328 with the Arduino bootloader for my microcontroller. This means I could use the very popular and easy to use open source Arduino development environment. I used version 0014, but newer versions are usually backwards compatible with older ones. You can download the Arduino development software here.

In order to download software to this board you will need this programming dongle.

Here is the software I wrote for this project. I’ve created this video that demonstrates some of the features of this software.

Flash Trigger

Female Hotshoe (Cheaper ones available, but this one has is good quality) $16.50
3.5 mm Extension Cord $5.24
External Flash (I assume you already have one)
Total Cost $21.74

This allows you to plug the flash into Camera Axe. While Camera Axe can trigger your camera directly, if you need an instantaneous capture you should use the flash. This page gives the expected shutter lag for many cameras. The flash reacts to it’s triggering in well under a millisecond.

Notice: Camera Axe assumes you have an EOS compatible flash. Some older flashes use high voltages to trigger them. If you use one of these high voltage flash units you will likely blow Camera Axe’s optoisolater and need to replace it. I use a Canon 580EX flash, but there are many other options. Here is a list of flashes that should be safe.

Camera Trigger

Plug to trigger your camera (Price varies by plug (see below) under $5.00
Audio cord with 3.5 mm plug $3.15
Total Cost $8.15

The higher end Canon DSLR cameras (20D, 30D, 40D, 50D, 5D, 1D) have a a special Canon Plug called N3. I have not been able to find this plug for sale anywhere, but you can buy a cheap Chinese trigger for these cameras on Ebay for under $5 and use the N3 plug from it. I have a 30D so this is what I demonstrate here. Canon’s lower end cameras (300D, 500D, 1000D) use the much cheaper and easier to get 2.5 mm jack. I’m not sure what Nikon use, but I’m sure a little research will figure that out.

Sound Sensor

Electret Microphone $0.95
Audio cord with 3.5 mm plug $3.15
Total Cost $4.10

Electret microphones like this need some serious amplification. Luckily I put all that amplification on Camera Axe’s PCB. You can adjust the sensitivity of the microphone with the potentiometer on Camera Axe’s PCB. Just play with it until you find a sensitivity you like.

Light Sensor

Photo Transistor $0.42
Audio cord with 3.5 mm plug $3.15
Total Cost $3.57

Most photo transistors filter out visible light and only trigger on IR light. I did some searching and found this one that triggers on visible and IR light. This is nice because one of the uses I had for this was to use it in conjunction with a cheap $5 laser pointer (search Google or Amazon) to create a laser trigger. All you do is point the laser at this and when the beam is broken you trigger the camera or flash.

Another good use of the this sensor is taking pictures of lightning. It will make getting night time lightning less work and you can even get daytime lightning which is something human reflexes can’t manage.

Remote Control

RF Link Transmitter – 315MHz $3.95
Other parts ???
Total Cost ???

I put a receiver in Camera Axe so I could trigger it remotely. The transmitter I put in along with this receiver should have a range of about 200 ft, but I have not verified this distance yet. I did verify the remote works at closer ranges by putting together a breadboard circuit to verify it. The circuit is extremely simple since this device just needs power, ground, and a serial transmit wire to send the it the signal. Maybe I’ll make a nice remote someday, but until then you’ll need to design your own if you need this feature. Here is the Arduino software I used to test this feature.

Comments (76)

CNC Engraver Improvements

Previously I’ve written about my CNC build , a sound proof box I made for it and a description of the software I’m using with it.

After some usage I found a few weaknesses in my CNC machine. Today I’m going to cover 3 improvements that target those weaknesses:

  • Installing some new parts from CNCRouterParts (ACME Anti-backlash Nut, Z-Axis Plate and Low Profile Bearing Block)
  • Installing clamp-on couplers from DumpsterCNC
  • Building a custom dust control vacuum system

CNCRouterParts ACME Anti-backlash Nut

Previously I had used these ACME anti-backlash leadnuts from DumpsterCNC. These seem to be a common suggestion on CNCZone. They worked fine except that mounting them onto my 8020 Aluminum frame required some custom mounting brackets. I spent hours designing and making these brackets. I’ve had a few problems with them. One of my brackets was ever so slightly out of alignment causing some binding issues. They also had a few bolts/nuts that could vibrate loose so I had to keep an eye on these and tighten them from time to time. There were no major problems here, but these issues were annoying.

I ordered some ACME Anti-backlash Nuts from CNCRouterParts to replace the ones from DumpsterCNC. I was told these would mount directly onto my 8020 frame without any special brackets. Another advantage is that they are cheaper ($18.50 versus $22.50). As promised they mounted directly to my 8020 frame. I’ve used them for about an hour and they seem to work very well.

In my mind the CNCRouterParts solution is vastly superior to anyone building their frame out of 8020 due to fact that they are way easier to mount. I think that even on most non-8020 machines these would e easier to mount.

CNCRouterParts Z-Axis Plate

As a full discloser, I got this part free of charge from CNCRoutnerParts because I was the first to post an informative blog about other parts I’ve bought from them. I do not feel this has influenced my evaluation of this part.

This plate is well designed and a good deal at $28.75. Originally I spent many hours designing a steel plate solution. This gives more Z axis reach than my steel plate since the router is mounted lower than in my design. The biggest advantage is of this plate is time savings. I could just bolt my K2CNC router mount to this plate instead of spending the time to create my own. If you don’t mind spending a few hours you can save a few bucks by making your own, but I feel its money well spent.

CNCRouterParts Low Profile Bearing Block

As a full discloser, I got this part free of charge from CNCRoutnerParts because I was the first to post an informative blog about other parts I’ve bought from them. I do not feel this has influenced my evaluation of this part.

The low profile bearing block adds about one inch of Z travel to my machine over the standard bearing block because it lets the Z axis plate to travel over it. That said I like the standard bearing block more and after some testing went back to the standard bearing block. One reason is this new block uses a bushing instead of bearings so there is significantly more friction. I found this limited the speed I could run my Z axis at. Another issue is that I don’t need the extra Z travel and the standard block adds a hard stop to my Z axis, which I like as an extra safety precaution. With the low profile block I could run my Z axis rollers off their rails. If you need more Z travel you might want to look at the low profile bearing block, but I’ll stay with the standard bearing block which is an excellent product.

It’s also worth mentioning that the standard blocks are significantly more expensive after adding in the cost of the bearings so if price is a high concern that might give you more incentive to try and use this low profile bearing block.

DumpsterCNC Clam-on Couplers

I wanted to try these couplers from DumpsterCNC instead of the lovejoy connectors I used to mount my ACME screws to my stepper motors. The DumpsterCNC couplers are a little cheaper and they take up less space than the lovejoy connectors. They work just as well as the lovejoy connects so in any future builds I’ll likely use these instead of lovejoy connectors. I have nothing else to say since both products do their job perfectly.

Dust Control Vacuum System

My CNC machine is in an enclosed box so I don’t need to worry about dust getting all over my basement, but I found that having dust get all over my CNC machine was problematic. The biggest two areas of concern were dust on the ACME threads and dust on the roller rails. Instead of trying to stop dust from getting on these parts by covering them I decided to add a vacuum to suck up the dust before it could go on anything.

I bought this vacuum because is small, powerful, and cheap. I fabricated a small mount out of aluminum and wood to attach the vacuum to the router. The only other components I needed were some wire and duct tape. I used the wire as a structure and the duct tape to form a flexible skirt around the router to help suck up the dust. The pictures show this better than I can describe in words.

I am very pleased at how well this works. I really believe this is nearly an optimal solution. It took much less time to build than the solid wood/aluminum skirt designs I’ve seen, and I think this flexible design should perform better. It might not be pretty but it works great!


Here’s a few objects I made while testing.

Comments (10)

CNC Router Software

I’ve already written about building my CNC router and making a sound proof box for it.  The last step I needed to do in order to make pretty pictures is the software. This post will walk you through the software I used to draw an image and then engrave that image into a piece of wood.

First I needed to draw a picture.  I didn’t want to use something like Photoshop or Microsoft Paint because I these are raster based programs and I wanted my image to be stored as vector graphics so that I could tell my CNC machine exactly what vectors to draw.  There are ways to transfer raster graphics to a CNC machine, but for more things using vector graphics works better.  Corel Draw is probably the most popular software for drawing vector graphics, but it was pretty expensive.  I found the free open source inkscape worked very well.  I drew a picture in inkscape called and saved it as HelloWorld.svg (I will be giving links to all the files I created).

After this I had to change all the text and other complicated objects into paths.  The reason for this step is because these objects are stored as complex mathematical models that later software would not be able to properly understand.  Converting objects to paths is just a single mouse click in inkscape, but if you forget to do this you’ll be scratching your head trying to figure out why some parts of your drawing are missing.  After this I saved the image in inkscape again as HelloWorld.dxf.  The reason I used the DXF format is because it’s a wildly used vector format that other software can understand.

At this point I’m done with inkscape and I start using Mach3’s LazCam.  Mach3 is the software that I use to control my CNC machine through my computer’s parallel port.  Setting this up takes some time and I’m not going to discuss this here, but Mach3’s website has some excellent video tutorials.

LazCam comes with Mach3 and it converts DXF files into Gcode that can drive my CNC machine.  If you’re looking for a free alternative to LazCam there is a free version of CamBam, but I haven’t used it much.  In LazCam I imported the DXF file.  This takes a long time (5 minutes on my mid-ranged PC) so after this I save it as HelloWorld.LCam so I can open it quickly later if I want to tweak something.  Then I adjusted the scale of my image and saved it out as Gcode (HelloWorld.tap).

In Mach3 I opened up the HelloWorld.tap file and my CNC engraver engraved the image into some wood.

There are a lot of steps there, but once you’ve done it a few times it’s not so bad.  It would be nice if it was easier, but I couldn’t find an easier way.  Maybe I’ll write some software myself someday to help speed this up a bit, but until I do I’ll just follow these steps.

Here’s a link to a video of my CNC Machine in action or you can watch the youtube embedded video below.  The linked video is better quality, but might take some time to download.

Comments (6)

Sound Proof Box

FYI: This isn’t really a sound “proof” box, but I didn’t think sound dampening box had the same ring to it.

The construction of this box was done entirely with components from my local Home Depot. The total cost was about $200 for this 3ft x 3ft x 3ft box. The main components were:

  • 2x4s for box frame
  • 1/2 inch plywood for top/bottom (had Home Depot cut these free of charge)
  • 10 sheets of 1/8 inch hard board for sides and top/bottom (again Home Depot cut these for me)
  • Insulation to help sound proof the box
  • Lots of screws and nails
  • Hinges and a bolt lock for the door
  • 2 8×12 inch pieces of Plexiglass for the door’s window
  • Bathroom ceiling fan to suck out hot air from top (surprised that this was only $10)
  • Vent to let in air on the bottom
  • Cheap light for the box
  • Carpet or cloth to attach on the inside to help deaden the sound

I’m not going to detail the exact construction since it will vary depending on the size and options you need. For instance you might not need the fan, vent or window that my project needed.

The first main point about construction that I want to mention is that you should pick insulation that’s at least twice as think as the space between your walls. When you’re using insulation for heat you want to have it loose, but when using it for sound proofing you want it compressed. Another trick is to make sure a large part of the box’s interior is covered with cloth or carpet. I think carpet would be best, but I had some extra felt at home so I just used that.

Here are some pictures of a single wall’s stages of construction.

Here are some pictures of the finished box. I was quite happy with how much quieter my CNC machine is after I put it in this box.

Here’s a link to my CNC build.

Comments (2)

My CNC Engraver (Part 1)

The goal of this project is to design and build a CNC wood router/engraver.This turned out to be a much larger project than I had anticipated.  Bigger both in terms of dollars and hours I spent on it.  It took me about 50 hours to build the mechanical portion of my CNC machine and I still have to do the electrical and software work.  This posting will focus on the parts list and the mechanical systems.

I have done a lot with electronics and with software, but never have I build such a complicated mechanical machine before so I needed to do a lot of research before I started my build.  The best tools I found for this research phase where cnczone and google.  Eventually I decided on a gantry style table because the were the most common and simplest form of table. This thread in particular on cnczone influenced my final build. I didn’t do a very good job at recording the time I spent during this research phase, but it was probably something like 30 hours.

There is no way I’m going to take the time to explain every step of this build procedure, but here is a part list and the price I paid for each one.  I wish this list had existed before I started my build so I would have had an example of the different components you need to build a full CNC router and the approximate cost.

8020 Garage Sale Series 15 Aluminum Frame, connecting plates, bolts, nuts, … $581.80
CNC Router Parts (6) Linear Carriage with ABEC 7 Bearings $141.00
CNC Router Parts (2) Extended Linear Carriage with ABEC 7 Bearings $67.00
Speedy Metals Cold Rolled steel (2) 0.25x4x36, 0.25x6x32, 0.25x4x16 $89.26
K2 CNC RM-PC892 Porter Cable 690 & 892 Mount $57.95
Local Hardware Store Bolts, angle iron, washers, screws, … $50.00
HobbyCNC HobbyCNC PRO Driver Board Packages with 305 oz-in motors $240.00
Mouser Pactec case #DM-4 $37.21
Allied Electronics 24VAC 10A Triad Transformer $52.00
Amazon Porter-Cable 690 LR Router $125.85
XYZ Threaded Axises Go to CNC Router Part List to see how these axises are assembled (note: I did not use the drill that he listed as optional).
CNC Router Parts (6) Bearing Block and Cover for 1/2″ ACME $75.00
CNC Router Parts (3) NEMA 23 Motor Mount $37.50
McMaster (3)5 Start 10 thread/inch 1/2″ Acme Threaded Rods – 3ft $117.51
VXB 10 R8ZZ Bearings (only use 6) $31.34
DumpsterCNC (3)1/2″-10 ACME 5 Start Anti-backlash Nut $73.50
MSC (12)Thrust Washer $10.08
MSC (6)Clamping Collar $9.06
MSC (6)Thrust Bearing $17.52
MSC (3)Spider Lovejoy Connector $5.31
MSC (3)1/4′ Lovejoy Connector $9.90
MSC (3)1/2′ Lovejoy Connector $9.90
Total 1838.69

Some other parts you’ll need are an old PC and the CNC software, but I’ll discuss these in a future post.

The main tools I used were hammer, table saw with aluminum blade, hacksaw, screw drivers, wrenches, hand drill, drill press, threading die (5/16th-18 male), center punch, Allen wrenches, Dremel, and a measuring ruler.

The best way to describe the my machine is with pictures so here we go.

Images of my engraver from different angles.

Images of the threaded axis assembly.

The plate used to attach frame to threads.

Image of the moutned motor.

Image of the rollers on the y-axis.

Image of the y-axis (it’s upside down so you can see the bottom).

Image of the z-axis.

I’ll also haven’t tested it yet, but it feels extremely smooth and sturdy so I’m quite confident that the machine will work great, but complete confidence won’t exist until I’ve used the machine for awhile.  In future posts I’ll cover the electrical systems, software, possibly other add-ons, and the reliability of the machine (after I’ve used it for awhile).

Update: I’ve made some improvements to the engraver here.

Comments (54)