Friday, 6 January 2017

Milling aluminium on my DIY CNC

I have a low profile centre gripping aluminium vise, which is excellent for plastic and PCB works or other things which need a shallow grip. Centre gripping is a good idea in some situations, but not always. Sometimes I wished it was a traditional type with one of the gripping ends fixed, because that allows better repeatability since it provides a fixed reference point or line, and that line remains the same even after changing the work material, so the items made with the help of this type vise can keep the same, very accurate references. With the centre gripping type both of the jaws are moving and due to the backlash of the screw there might be some differences when the work piece is changed.

After some considerations I decided to make two small modifications. One for the fixed end gripping mentioned above and the other was to make the fixing bolt pockets a little larger than the original ones.


Fixing new vise jaws

Never really milled aluminium on my CNC, so I was a bit pessimistic about the performance and also not wanted to cause any damage, so my idea was to use a BF20 I have access to also. It is not mine, so everything is not set up as I would like to have it set up, but I considered to try out, took off one end of my vise and milled one track on each piece. The results were good, but not good enough, it needed some fixing due to some slight parallelism error. This was best done on my own CNC. At the same time I changed my mind and decided to try out my machine, see what it can do with aluminium, after all, aluminium is not much harder than the Delrin I am normally milling, and my upgraded CNC is now so rigid that it should work.

Milled two new jaw traces at the other end of the vise on my own CNC and was very happy with what I have seen. Excellent finish, very nice and even edges. No lubrication, no cooling, not even air was used, only dry milled. With the right speeds it is not necessary to use anything. The tool or the work piece not even heated up to any sensible temperature and everything worked fine, no melting.

It was a really satisfying feeling to watch the aluminium chip spray flying away from the tool and to see the results when the machine stopped. The pre-milled jaw pairs were also fixed on my CNC to get them as good as possible.

The bolt pockets

The original pockets were too small and only the bolt head would fit in them, no washers. I take this as a design flaw of the manufacturer because it is not a good idea to omit the use of washers, especially not in aluminium, since the bolt eats its way inside the material when tightened hard enough. It is nice to be able to bolt the vise down firmly to the bed, much better than before.

Final steps

I made a vise fixture plate out of 12mm thick aluminium sheet which I will keep it permanently installed on. This gives it much better rigidity and is also easy to remove from the CNC table if I wanted to.

Once everything was as good as I could make it, I assembled and installed the vise, squared the sides on my CNC table and made another final milling run on the jaws to make them absolutely parallel, or at least as good as I could make it. I measured the parallelism error to 0.003mm from one side to the other, over a total width of 140mm, so that is 0.0214mm per meter error, which is good enough for me.

For those who are interested, here is a short video about the modifications I made.

This was the first time I milled aluminium with my upgraded DIY CNC. I am a bit surprised with the results, very satisfying and nice in my opinion. I know some people will disagree with me, but I will continue dry milling aluminium without any lubricant. For now, I see no problems with dry milling. Of course, the speeds must be right, but it seems to work just fine. Perhaps tool ware is much worse, and perhaps the results would be even better with lubricants, so it is a compromise, but at least I don’t have to handle chemicals and inhale the fumes.

Thursday, 8 December 2016

The making of the pulse stretcher

This is a follow up post about the pulse stretcher I made for my CNC, which you can read the details about here:

I made a video about it as well. The reason is that I am really happy with the results, the LEDs are flashing like crazy at the right pace, easy to see from any angle, unlike before, and if I wanted to see the status I had to be in front of them to see anything. The intensity is simply too low at high speed, so stretching is necessary.

The circuit is really simple, just a few resistors and capacitors and two 74HC14 inverters.

Anybody interested can just make the same circuit. If you are not happy with the pulse lengths you can play with the four resistors (R1, R2, R3, R4) and/or the four capacitors (C1, C2, C3, C4) to change the behavior of the circuit. I used Eagle to draw the circuit and to create the layout.

The PCB turned out really nice, no additional work needed with cleaning the tracks or anything at all. Traces are beautifully milled and follow what's been routed with the auto router of Eagle. Manually routing or double sided PCB would have created a more beautiful art work, but it is good enough.

I hope you enjoy the video, it shows not only the work flow, but also a before and after sequence.


I just noticed an error in the video. I mill the first pass at 0.04mm depth and the second pass at 0.07mm and nothing else. In the video I wrote that I mill the first pass at 0.4mm and the second at 0.7 and that is just too much for PCB milling. The copper layer is just 0.035mm, so there is no need to mill deeper but I double that value to be on the safe side, however, making it 20 times deeper than necessary would be crazy.

Friday, 2 December 2016

Making PCB with my upgraded DIY CNC

Upgrading to UCCNC and the UC300ETH means that the pulses are far too fast for the LEDs I have on the step pulse signals. Pulses are barely visible due to the 400kHz pulsing the UC300ETH allows, so I decided to make a simple circuit to stretch the pulses and make them visible. These stretched pulses are not affecting the milling, this is only a “good to have” feature for my electronic control box.

I used the same circuit before in some other project but never really bothered making a PCB, but now since I upgraded my CNC with a new high speed spindle, VFD, power supply, control electronics and new software as well as mechanical upgrade it is time to check how well everything turned out. So I decided to make a PCB for this circuit, as the first real job with everything finally in place and working.

The first thing I did was not really this PCB, but a test drawing to make sure the CNC was working as expected after the upgrade, and after that I levelled the MDF spoil board also, but the PCB was meant to be the first REAL job.


Of course, before milling the PCB the circuit must be designed, routed and the G-code must be generated and so on. The work flow I am using is the following:

1.    Schematic design
2.    Board layout
3.    Routing
4.    G-code generation
5.    Adding text traces to g-code
6.    Editing g-code to generate multi pass milling
7.    Test drawing
8.    Levelled G-code generation (not always)
9.    Milling
10.  Drilling

All software and plugins are freely available if you can live with the limitations. For this project I skipped auto levelling, for reasons which will be mentioned later on.

Electronic schematic and board routing

To design electronic circuits I am using EAGLE PCB Design software from CADsoft.

It is not always an intuitive tool, but it is very common in the business, not only among hobby designers but also among professionals, and is a complete tool for handling electronic projects, from schematic to PCB routing. It handles auto routing very well even if the art work is not always as logical as a pair of trained eyes can see and a human can do. Of course, even a simple circuit is routed faster automatically than manually, so unless visual impression is necessary, I prefer auto routing, though some connections are often necessary to route manually because for some reason the software occasionally creates all the routes but fails to route right and can create really ugly corners for no reason at all. I don’t know why, probably a bug of some sort, but no big deal. It can also create boards with several layers, but the freeware version is limited to two layers only, which is not really a limitation since we can only create double sided boards with a mill. The other limitation the freeware version has is that the card size is limited to 100x80mm, but that size, small as it sounds, is enough to create pretty complex boards anyway. Boards can also divided into several projects, so designing and milling larger sizes is not that difficult if it would be really be necessary. For this project the area needed is considerably smaller, so the limitations are really a non-issue. With this software I complete steps 1-3 of my workflow.

G-code generation

The software I am using for this is PCB-gcode.

It is a plugin for EAGLE PCB Design. It is pretty well documented on the Internet, so I will not go into details about it. When the plugin is started, there are some parameters to watch out for. In my opinion, some of the default values are wrong and must be adjusted, depending on the machine parameters and the cutter used. Parameters depend also on the type and quality of the PCB clad used. I am using FR4 with 35 micrometre copper layer, so the minimum depth to be milled to get isolation is 0.035mm. Of course, this is very optimistic, since these cards don’t have such precision, but inaccuracy is less than 100% so I decided to use a mill depth of 0.07mm, which gives me 100% error margin, more than actually needed.

I am using 30 degree 0.2mm V-bits. With this cutter tool the cut depth of 0.07mm, according to some trigonometric calculations, will result in exactly 0.02375mm isolation, which is good enough for me. The default G-code would generate three passes with slight position shifts and far too wide separation for my taste, so in the PCB-gcode settings I select single pass to keep the calculated 0.24mm.

The plugin generates several files, but only the etch and drill files are used. The etch file contains the traces and spot drilling for the holes. In the plugin I set 0.07mm Z depth for the etching and 22,000rpm spindle speed. I also set 450mm/min feed rate, which I know by experience is a good value. Since the plugin does not have a setting for milling in two passes with different Z depth, the file must be edited manually. Simply by opening the g-code file I separate the spot drilling part, copy the trace milling to get two identical passes, and in the first pass I replaced all Z-0.0700 with Z-0.04 and merge back the spot drilling at the end of the file. I changed also the feed rate of the second pass from 450mm/min to 650mm/min, but ONLY the second pass. I don’t want to break the tip halfway down the first pass, so being careful there is more important. Also to cut nicely through the cupper layer is easier with the slower speed. Perhaps another time I will optimize this and find more optimal values for the next PCB, but for now this feels safe and good. This manual editing takes 2-3 minutes and result in a multi pass milling of the same tracks, first pass at 0.04mm depth and with 450mm/min feed rate, and the second at the final 0.07mm and 650mm/min feed rate. The spot drilling depth is at default and is only done in one pass.

Engraving text

Now it is time to add the text which I intend to engrave. While it is possible to create the text in EAGLE, I prefer to do it with the help of F-Engrave, which is another freeware.

I am pretty familiar with this piece of excellent freeware, so text generation takes just a minute or two, the code is saved and merged to the PCB g-code etch file. Engraving is also done in one single pass, the depth I set is 0,1mm which will result in 0,25mm wide lines.

This completes steps 4-6 of my work flow and the g-code is now ready for milling.

Test drawing

Normally I prefer not to be too eager in starting the milling, I prefer making a test drawing first. This can save cutters and a lot of extra work, in case something is wrong with the files or the machine settings. In Mach3 there is a g-code simulator which I normally use to get an approximate time needed for the job, especially if the g-code has many lines and the job contains a lot of moves. UCCNC does not have this possibility, so users can only guess how long time a job may take.

Drawing is done in real time, and it gives me an opportunity to check that the g-code works as expected and also that the traces are going to be milled where I want them to be milled, no short circuits and no cut/broken traces. It also gives me a way of checking trace widths, in case I would not be happy and need to reroute because of too thin traces or too thin/wide isolation.

Test drawing is straight forward, nothing special. My pen holder has a weak point, the pen tip has a large play, which is why lines are not always as straight as they will be after milling. The result of this weakness is clearly visible in the engraved text, but also the traces are not exactly matching the final board.

Never the less, I am happy with the results since the traces and isolations are the most important. I will make a new pen holder another time…

Auto levelling

Sometimes there can be issues with the PCB skewed, warped or bent and with the very thin copper layer even a slight error can cause air traces or demand too deep milling. With that in mind, I thought I will try the auto leveller plugin which comes with the UCCNC software. I gave up that idea pretty fast. The reason is simple, I did not like that the plugin picks the dimensions from the g-code and automatically sets the area, based on and starting from the work zero position. Work zero is the corner of the PCB, so the auto leveller plugin would make a probing pass along the edges of the PCB, which is totally wrong. I could not find any settings to change that and narrow down the probing area. I decided to try editing the levelled g-code manually, which was pretty simple. Started the g-code and the probing began, but for some reason halfway down the probing work, when about 50% of the area was done, the plugin gave up and sent a message that it lost contact with the probe (don’t know the exact word) and the probing stopped. This was it, I gave up, threw away the g-code and loaded a clean one again, and since my table is levelled and I had a 100% depth margin compared to the required minimum, I decided to try it without auto levelling.

Perhaps there are settings I missed, but for now I don’t care about auto levelling, at least not for small areas like this PCB is.

Milling and drilling

Really, nothing special, everything as expected. After the first pass was done, I could clearly see that the 0.04mm depth was enough to cut through the copper layer, so it seemed that the second pass was not necessary. Of course, this was just a quick view impression, I did not stop the job and let even the second pass finish as well as the engraving and the milling before I removed the PCB for inspection.

The results were fantastic. Very clean and nice cuts, trace edges are excellent, nothing more is needed to be done to clean the surface.

There is also nothing to complain about regarding the engraved text. Unlike in the test drawing, lines are nice and straight, exactly as shown on the screen, curves are even and all the letters are nicly drawn.

Visual inspection against light shows that there are no air traces or short circuits, tracks and isolations are even and everything seems fine. I am glad I skipped auto levelling, it would have just been waste of time.

One problem/fault with the PCB is the final drilling. Unfortunately I had no PCB drill of the right dimension, which for the large holes is 1.2mm, so I used an ordinary twist drill. This was not tight enough in the collet and the drill was not sharp enough for the plunge feed rate of 250mm/min for the drilling, so after a while the drill slide into the collet. I have seen it when it happened but didn’t care doing anything about it because drilling those holes on a pillar drill will not be a big issue. For the next job I’ll buy PCB drill bits even for the large holes. The smaller holes are drilled with 0.6mm high speed PCB drill bits, so those turned out nice.

Total job time was about 15 minutes. This includes milling and drilling, tool changing and zeroing the machine. I doubt this would have been possible to do in such short time using chemical etching, since in that case all the preparations and afterwork would have taken more time than that. My conclusion is that milling PCB is a better way of prototyping or making small series than chemical etching. It is also less messy and less hazardous.

Summary of technical information

Spindle speed: 22,000rpm
Cutter: 30 degree 0.2mm V-bit engraving cutter
Drill bits: high speed PCB drills, 0.6mm and 1.2mm
Maximum milling depth: 0.07mm
Isolation distance: 0.2375mm
PCB type: fibre glass 1.6mm, FR4 with 35um copper layer
Feed rates: 450mm/min first pass, 650mm/min second pass
Z plunge rate for drilling: 250mm/min

Tuesday, 22 November 2016

Is CNC stepper motion really smoother with UCCNC than with Mach3?

Please note that this post is just a description of my findings and is based, apart from my short experience with UCCNC and longer experience of Mach3, on some mail conversations and experimental testing.

The causes of smoother motion

Some of the causes of smoother motion are improvements in predictions of movements and a more accurate timing between step pulses in UCCNC than in Mach3. The main contributing factor for smoothness is the timing between signals. Better prediction algorithm is contributing mainly to accuracy in movements, not exactly the smoothness, even though the better prediction also contributes to “better sounding” CNC, which gives the impression of smoother movements.

Smoothness is mostly caused by how precise the step signals are timed

Take a simple motion from 0mm to 100mm with X mm/min constant speed as an example. Looking at the constant velocity part (not the accelerations / decelerations), that part of the path in an ideal world should contain a constant stepping frequency of Y kHz. If the frequency of the steps is not constant then there are errors in the timing, and since stepper motors are actually synchronous motors with high pole count acting in open loop position control, they are very sensitive for timing errors.

Timing error in this case means that the pulsing is not at a constant time tick, and the interval between pulses is varying. This is not ideal; an errorless motion requires constant pulsing, ideally repeated at exact same interval between pulses.

Disadvantages of parallel port

When a parallel port (LPT) is used for stepper motor pulse generation the pulses are timed by Windows so the timing will not be as accurate as required for even and smooth motion. Pulses and the pauses between pulses will have varying times and as a result, the speed of the motors will not be smooth and constant in every situation.

Advantages of external motion controller

When using an external motion controller, like for example the UC300ETH, the pulses are timed by the motion controller. In this case the time base is only a few hundreds of nanoseconds (using the UC300ETH), there will be so little timing error that it can be ignored, and the motion will look and sound smooth, very stable and constant.

The benefits of smooth motion

The smoother and more accurate the timing is, the less is the risk for the motors to loose steps, and the higher is the speed which will cause them to get out of sync and loose steps due to motor speed. This is why it is possible to run at higher speeds with external motion controllers than using parallel port. The smoothness of the motion is the same when running UCCNC or Mach3 if the same motion controller is used because the timing base is the same.


If Mach3 users feel that their machines are not running as smooth as they wish for, the first step would be to have a look at the way those machines are driven. If they use parallel port then it is advisable to get an external motion controller of good quality. My experience is with the CNC Drive external motion controller products, and only with the UC300USB and the UC300ETH, but it is my understanding that even other external motion controllers will have a positive effect on smoothness. Some motion controllers have Mach3 plugins available, so of course, anybody interested in using an external controller must first find out if the supplier has a Mach3 plugin or not, before buying one. Also look for compatibility level. Not all motion controllers have a high enough G-code compatibility and all the necessary codes may not be supported, so don’t just buy an external controller, do your homework first. I made a mistake of buying a USB controller which was not compatible enough for my needs, so I wasted about $100 on that mistake, so watch out for this point as well.

Thursday, 10 November 2016

CNC upgrade progress - End of the cracked spindle holder story

The cracked spindle holder is now replaced. One reason is that because the cracked and fixed one did not allow me to attach the necessary accessories I want to use in a comfortable and secure way. There are currently two accessories I can't be without, these are the dust shoe and the pen holder.

The new spindle holder arrived some time ago but I could not find the time before to finish it, which means some drilling and tapping, as well as fixing a few dents it received during manufacturing and transport. Fixing meant also surfacing the bottom to get a 100% fit on the Z plate. The new spindle holder feels a bit better made than the old one, and the 65mm hole for the spindle was actually 65mm all around, unlike the previous one, which was a bit oval in shape. The spindle fits exactly, only a tiny expansion is needed to push the spindle motor in.

Maybe the reason why the previous holder cracked was the oval whole, which needed a larger expansion. Anyway, end of the story, this weekend I replaced the fixed one with the new and I even made a short video of it.

The spindle holder has a few extra tapped and untapped holes for future accessory expansion as well as for the currently used dust shoe and pen holder. Some of the future accessory plans I have includes 3D printer head, laser cross, laser engraver head, camera and LED light, so the extra holes will come handy later on.

Sunday, 11 September 2016

CNC upgrade progress - Fixing the cracked spindle holder

 Found a solution for the cracked spindle motor bracket. It is pretty simple, but very efficient. I simply cut off the cracked side, drilled and tapped two new holes and by using the two separate bracket halves, which are some sort of a car part I found in a hardware shop, my spindle holder is as good as new, perhaps even better. The brackets I found are for 70mm exhaust pipe, 5mm more than I need, but that wasn't a problem.
To improve it further, I added a 2mm aluminum strap between the steel bracket and the spindle motor. This gives a softer grip on the motor than just the steel brackets would give.

I am quite happy with this brand new spindle holder, in fact so happy that I decided to carry on, not wait for the newly ordered spindle bracket to arrive. 
I have installed it on the Z plate and I am very satisfied with the results, so perhaps I will keep this one, and once the one I ordered arrives I will keep that one as spare.

I believe that this solution does not need an additional safety bracket since it is made up of two individual brackets. I don't think the bottom of the spindle holder will ever crack, the top part is more sensitive.

Anyway, now I can carry on with my upgrade.

Tuesday, 6 September 2016

CNC upgrade progress - Disaster strikes

I am busy upgrading my CNC, basically it is a complete rework with mechanics and electronics changed, redesigned or changed, and even the spindle is going to be replaced. Details about the mechanical upgrade are here:

Feel free to read and comment. Other posts will follow, but in the meantime here is one about a small disaster, which actually could have been a major problem and could have caused serious damage if it would have happened at a later stage.

I finished the mechanical upgrade by making a nice new Z plate during the weekend. This was necessary to make, to be able to install the three phase brush-less spindle motor which is going to replace the old DC motor I used so far.

I was busy installing the spindle motor when I noticed that the screw to slightly expand the motor bracket to be able to push the motor into it was suddenly far too easy to turn, like if I was screwing it into a block of butter. Initially I thought that the thread was worn out, but then I saw the cause. A hair thin, fine line across the motor bracket gave the immediate answer to the softness, the bracket was cracked and split in two pieces.

The crack shows that the bracket is really bad quality. It is cast aluminum, but the work is really poorly done, the material is very porous and spongy, providing practically zero flexibility, probably due to the poor material quality, or bad heating, or too low pressure during the casting process. I am not an expert in casting, but the cast aluminum sheets I normally use are much harder, stronger and definitely not look like this when cut, or drilled.

I bought a new one immediately, but this sets me back by about two weeks due to delivery time. Will take a chance of buying a similar one, but not from the same seller. Hopefully the new one will be  a bit better but if not then I'll have to find a different one and make some changes to my new Z plate.

One can say that I was still lucky because it could have been cracked during use, in which case the spindle motor would have fallen to the mill table, causing all sorts of possible damage, especially if it would have been spinning at the time of disaster.

Lessons learned

I will modify my Z plate and make this broken motor bracket into a safety holder. In case the main bracket will crack during use this will prevent the spindle motor from falling down on the table, and possibly on my hand if I would be busy changing tool or would for some other reason have my hand under it. The weight of the spindle alone is enough, even if not spinning, to push a cutter right through my hand, especially since most of the time I am using very small cutters, mostly below 2mm diameter, and also a lot of V-bits. It would create a nasty mess and I would not like to get those pushed through my hand, and I figure if I have a safety holder then the risks are really minimal.

Tuesday, 30 August 2016

CNC upgrade progress (mechanical parts)

A few months ago I decided to start an upgrade of my DIY CNC. The target was to keep the same foot print size but increase the stability and the speed, as well as the accuracy. I did not want to build a brand new one from scratch, though looking in the mirror, only the feet and the bottom frame are the same, so basically I built a completely new CNC. Z and X axes were planned to be larger than before, mainly higher, to give me more Z clearance.

Of course, this upgrade had many advantages apart from higher possible speed. Being larger means also more weight and the larger mass gives higher stability. This is definitely positive, since the old CNC had quite a lot of unwanted vibrations and was generally too weak even for milling plastics.

My plans were not just to upgrade the mechanical parts, but also the electrical parts, basically keeping only the stepper motors and the stepper drives, the BOB and the motion controller. This includes new power supply and a VFD controlled spindle as well, in other words, practically a totally new CNC.

To be able to reduce down time as much as possible I had the following workflow for the order of upgrading.

Building a new Z axis.

This was done and ready at the end of 2015. I think that building the Z is the most difficult part, mainly because it is the smallest axis with very little error margins and little possibilities to correct small mistakes. I think that’s why many people buy readily made Z axis to build their CNC around that, instead of designing and building one from scratch, like I did.

There is a short post about that work here:

I was very happy with the results of that work, especially considering the huge speed increase, the jump from 500mm/min to 1500mm/min made a huge difference and gave me a confidence to carry on with the X-beam and was certain that the rest of the mechanical upgrade will be very smooth and well worth the efforts.

Of course, the speed change was easily explained by the screw change. Originally I used an ordinary threaded stainless steel rod with 12mm diameter and 1.75mm thread pitch as lead screw and unsupported 12mm round rods. This was replaced by a 1605 ball screw with matching nut and fully supported 16mm round rods. This means that the screw now is 16mm diameter with 5mm pitch, which is 2.86 times more than the old one, and that is almost the same as the speed increase from 500 to 1500mm/min.

Also additional benefits came from the use of ball nut, which slides much better than the DIY Delrin nut I used previously, but since I still used the original 24V switching supply as stepper power supply, it seems that this was the maximum possible speed for this machine until the power supply is replaced.

The new Z axis is also considerably larger than the old one. I made it to suit a high speed brush-less spindle, not just the small DC motor I used in my first CNC. Of course, it is also much heavier, which is an advantage because it makes the machine more stable and results in less vibration.

Building a brand new X-beam 


Next step was to build a new X axis to carry the new Z. After my first version of CNC was finished I realized that the Z clearance is not enough in the long run, so now it was time to correct this design flaw and build the second version with better clearance and more stability. The new beam is much higher than my original X-beam, allowing about twice the Z clearance I had before, which I think is going to be enough for my needs.


Building the new X-beam was not that exciting, even if it took some time to do it. It is made out of 45x90 and 30x60 extruded aluminum profiles. Pretty simple, straight forward design, fairly easy to adjust and align to get the machine squared.


Once the new X-beam was ready I installed the Z on it and tested on my desk. After aligning the Z to the X and once I was ready with my tests it was time to remove the old beam and replace it with the new one. This was really easy thing to do, due to the original design, and my CNC was fully usable during the whole process except for about the 2-3 hours I needed to remove the old gantry and replace it with the new, including the necessary wiring and squaring, so I was pretty happy so far.

Of course, at this stage I still had the old and slow Y axis with the table, but I could at least use the CNC in case I needed it.

New work table and Y axis

This was the easiest part. The table is just a 15mm thick aluminum plate, with 15mm thick T-slot bed on top of that to allow fixtures and / or spoil board installation. I have also decided to build an acrylic glass frame around to prevent chips flying out of the table area. This slides in under the X-beam, so the height is limited, but it provides enough protection to prevent the chips from falling in under the bed and onto the ball screw or the horizontal linear guides under the table.

Installing the new table in the CNC frame was also very easy. Even in this case, it took less than 3 hours and basically after this installation the mechanical upgrade was done.

Safety first!

For personal safety, I also have a much higher acrylic glass frame around the whole CNC. I had this also before in my original design also, and in my opinion this is absolutely necessary. In case a tool breaks and the cutter flies off like a projectile it stops the tool from causing damage. It happened more than once that I made a mistake and heard the snapping and the loud bang when the end mill hit the acrylic wall, preventing this “projectile” from hitting me or somebody or something else in the room. I guess this is even more important with the high speed spindle and the stronger, faster CNC than it was before. Remember, safety first…

Some technical data of my current CNC

Material used (mainly, but not a complete list): 49x90 and 30x60 aluminum extruded profiles, 10mm, 12mm and 15mm thick aluminum plates, hundreds of stainless steel screws, T-slot nuts and bolts mainly in 5, 6 and 8mm diameters. Total weight is approximately 80kg, including wiring, motors and all the electronics and power supply. CNC fixed to its own feet with four lockable rubber wheels for ease of moving around.

  • Footprint (total area it is occupying in the room): 750 x 650mm
  • Table height from floor: 910mm
  • Y table size: 450 x 300mm
  • Weight of Y: 17,5kg
  • Working area: 310 x 270mm
  • Weight of X-beam: 13,7kg
  • Size of the X-beam (height x width): 500 x 540mm
  • Size of Z: 350 x 150 mm
  • Weight of Z: 8.5kg
  • Z clearance from table top: 135mm
  • Maximum speed: 1500mm/min
  • Stepper motor data: NEMA23 2.7V/phase, 3A, 1.6uh, 0.9 Ohm/phase
  • Stepper motor driver: DQ542MA
  • Power supply to stepper drivers: 24VDC 15A switching supply (to be upgraded)
  • Motion controller: UC300
  • Spindle motor: 400W 48V DC motor, maximum 12,000 RPM, 52mm diameter with ER11 collet (to be upgraded by a 24,000 RPM 1.5kW spindle)
  • Spindle motor power supply: 36VDC fed to a manual PWM speed regulator providing 9000 RPM (will be replaced by VFD)

Next upgrade steps

These steps will be described more in detail separately, this is just a list of what is coming.

New power supply

This is already finished and working. In a few words I can say that it is providing unregulated 44VDC to the stepper drivers. It is an analogue power supply based on a toroidal transformer. This new PSU allows me to increase the maximum speed to 5500mm/min, so it is a huge step forward.

Also in the box is a separate 12V and 5V supplies, these are regulated and will be used for the electronics in the control box.

New control box

It will be separated from the power supply and moved below the CNC work table. Moving the power supply and the control box to below the table will increase the balance since the centre of gravity will move down with these items as well, which is an advantage in stability.

New spindle and a VFD

I bought a Bosch Rexroth EFC 5610 VFD from a UK company and a cheap Chinese air cooled 1.5kW high speed spindle with ER11 collet from an eBay dealer. It is tested and working but not yet installed. The VFD and the spindle will be controlled via RS485 and Modbus, using the functions provided in Mach3. I think this is a much better and safer solution than using digital outputs and 0-10V. Of course, the new spindle means some modification of the Z axis, but it will be worth the efforts.

Thank you for now, stay tuned, I’ll be back.

Sunday, 1 May 2016

Using a ring flash on Nikon 1 V series camera

The V2F1A and a ring flash

One of the advantages of the V2F1A adapter is that it enables the camera, not only to use larger and more powerful flashes, but also to use a ring flash, which in many cases might be necessary.

The advantages of using ring flash

Ring flashes are frequently used by macro photographers, as well as product photographers and of course, even by medical or dental photographers. In general, a ring flash is very useful everywhere where there is not a lot of space between the camera and the subject, or where the camera lens can obstruct far too much light, or even cause serious shading.

I provide some sample images, the one on the right is a ruler, the full image coverage is about the same size as the Nikon 1 camera sensors, so the 13mm covered is equal to 1:1 magnification. Please note that the images are not cropped, just resized.

The next sample image is more of a "real thing", an example of an image taken in a very narrow space, where taking an image without a ring flash would have been difficult due to the problems one would encounter setting the lights up.

The third and fourth sample images are an eye. This is also normally pretty difficult because it requires a lot of light. Taking it with a ring flash which is in manual mode, no TTL pre-flash, and with the flash set to 1/128 of full power means that it is not uncomfortable for the model and not as blinding as a normal flash would be, or if available lights would be strong enough. Of course, the depth of field (DoF) is very narrow, so it is not easy if you want the whole eye in focus. These images are just some quick examples, not exactly work of art, but they demonstrate well some different use of a ring flash.

The disadvantages of using a ring flash

In some cases the the flash can demonstrate dual shadows, left and right of the subject. This is not very nice, but if the light is carefully adjusted between the left and the right tube then the dual shadows are avoided. Not all ring flashes have this possibility, mine has. Dual shadows are not always a problem, and especially in macro images, this is basically invisible. Some people use ring flash for model photography, but in my opinion, a ring flash is not suitable for that purpose because the light is far too even and flat, very boring and featureless for portraits. Never the less, photographic tastes are different, what is my taste is just my taste, must not necessarily be accepted by everyone, and some people prefer flat light for portraits.

Another disadvantage of using a ring flash is that considering it's GN power, they are pretty heavy. The one I have is only a GN14 (meters) flash and it is almost as heavy as the SB-900, which is a considerably more powerful flash. This means that the ring flash can not be used on a Nikon V camera as you would use it on a much larger DSLR. The ring flash must be mounted on a bracket and triggered using a PC cord. Mounting directly in the V2F1A would mean a heavy load on the flash shoe and risk causing problems, like contact failure or even some damage to the the camera or the flash or the adapter.

A third disadvantage in respect to the Nikon 1 cameras is that the Nikon 1 lenses are very small, light and most of them have plastic tubes. This means that the weight of the ring flash head is simply too much for those, especially the 10-30mm and the 30-110mm lenses. These are the only Nikon 1 lenses I have, but I would not use a ring flash on these, not only because these are also plastic lenses, but also because these are zooms with an expanding front, so these are not made to hold more than a filter and a hood. A ring flash is best used on a fixed focal length lens, or at least a heavier, more robust zoom.

Never the less, using a ring flash can be very rewarding and once mastered, pretty easy. It is very nice to use it in places where there is not much space and where the lights can not be set up in a way so that it suits the scene. Every time one needs to get close to the subject and there is not enough light or there is a risk for serious shading the use of a ring flash is really a great way if improving images, making it easier to take and with better results.


Please note that the V2F1A is not supporting iTTL, so it is important that the ring flash has manual settings as well.

Note that the sample macro images in this post were taken with the Nikon 1 V1 and the Nikon AF-S Micro Nikkor 60mm f2.8 macro lens. The flash was set to 1/128 power due to the short distance to the subject. If the flash would have been used at full power the image would have been washed out, completely white and overexposed.

The ring flash must be connected to the V2F1A through a sync cord and the flash must be mounted on a bracket, not on the V2F1A.

Please note that the images in this post are clickable, if you wish to see a larger image, just click on the image.

For more details about the V2F1A adapter or how to buy it, please visit my other posts, specifically start with this post:

Saturday, 26 March 2016

Making a pen holder for my CNC

This post is about how to make a pen holder. It took me about one hour to figure out how to make it and to actually make it, so it is really simple if you have the material and the tools. Click on the images if you want to see them larger.

My CNC upgrade project is progressing quite well. All axes are now up and running, most of the mechanical upgrade works are done, so it is time for a test ride. I didn't immediately wanted to start with milling just to test accuracy, so I decided to use the good old cheap and very clean pen method, which simply means that instead of milling real material place a pen on the Z and use that, not the spindle motor. Basically, this converts the CNC into an old flat bed plotter, except that it can't read HPGL files, which is the most common file type for plotters.

I created a G-code pattern manually and tried it out with an ordinary permanent marker pen. Of course, the results were not so pleasing. Not because there was anything wrong with my CNC, but it isn't really possible to use a pen instead of a spindle, at least not this way, by simply fixing the pen on the spindle holder.

Failed first test, with ugly results

The paper to draw on was on the spoil board, which is MDF, not the very best surface for the purpose, especially since it has been used on my CNC version 1, so it had some marks on already. Also the ink in the pen made the paper soft, the paper expanded under the pen, got soaked and became soft as soon as the pen was lowered if the pen was not moving. Finding the Z zero was also tricky, and by the time I was happy with the Z zero position, the tip of the pen was no longer thin enough to be able to measure any accuracy.

Time for a "Plan B"

I needed a proper pen holder, one which allows constant pressure but in a flexible way, like when we, humans, are using a pen. I didn't want to buy something so simple, so I decided to make one. The principles of mechanism for a plotter pen holder is pretty simple. You need a pen, something to install the pen in and a spring which allows to apply pressure but without pushing the pen into the paper and the table beneath and without breaking the tip of the pen.

Click on the image for a closer look if you decide to copy my design.

Finding a pen was easy. Just look for a good enough ball point refill, one which can be used at high speeds without leaving stain or interruption in the lines. I decided to use a pop rivet to actually push the pen down with the help of a small, short coil spring. The spring which was in the pen was of no use, I needed the type with two ears.

Next step was the actual design of the holder. I decided to use 15x15 mm U profile. Marked all the places for wholes, the cut and the bend and that's it. Simple, but very functional.

The reason why it is so long is that I wanted to be able to use it even if I'd have a tool in the spindle, without the need of removing the tool. This makes it useful even in the future, after I am ready with the initial tests.

It was time to go out to my tiny work shop to cut, drill and bend, in other words, to actually make the pen holder.

I was a bit too eager to get it done and to get started with my CNC tests, so I did not do a very nice work concerning cutting and bending. Never the less, it is good enough for the purpose.

The pop rivet is cut to about half the length to be able to easily remove, or change the pen any time I'd like to do so. Maybe I want to change colour or use a different pen... you never know. With the shorter pop rivet it is easy to do that, without the need of a screw driver.

Time for a final assembly. A short aluminium tube is going to be used for preventing the pen to fall through the hole when the pen is lifted up.I decided not to use that exclusive Parker but went for a cheap plastic copy instead. The drawback of that decision is that the hole where the tip is going through is a bit too large, but that doesn't really matter for the moment.

It looks pretty neat on the spindle holder. After installation I placed a sheet of acrylic glass on the waste board and fixed a sheet of paper on top of it. The work origins were set up manually, setting Z zero was no longer an issue since the pen had a spring, so it was flexible. I lowered about 2mm below the paper surface to give enough pressure and quickly tested just by manually driving X and Y across the table at maximum speed, which is for now 1500 mm/min, and was very happy. So I replaced the paper sheet with a fresh one, loaded the G-code for my test pattern and started the program.

I must say that I am very pleased with the results.

After the first run, I removed the paper sheet to check the angles and all the dimensions with a caliper and a protractor. This is not the most accurate method but good enough to give me a clue if I would have some serious problems. The 90 degree angles read 90 degrees, circles were exactly as I designed, 50, 100 and 150 mm in diameter, checked from various angles, and the writing looked very good as well.

I replaced the paper sheet once again and run the same G-code four times to see how repeatability is and what difference would be visible after that. Practically no difference at all, except that the print which was run four times looked stronger due to the fact that all the lines were drawn four times, which is normal. So I am very happy with the results and will test mill as soon as I have time for doing it.

Feel free to use my idea of this simple pen holder. It will serve me well in the future, even for testing G-code of the objects I plan to make with my CNC.

Finally, I finished editing the video and published it tonight. Have a look and enjoy.