Monday, 28 December 2015

My DIY CNC upgrade project, the Z axis upgrade

I started with a major upgrade of my DIY CNC. The CNC, including the upgrade, is 100% of my own design, there is a long story about it here. 

The first version had its issues, and while it served me well, it is now time for a major upgrade. All axes will be replaced by new, much better designed ones.

One main mechanical upgrade was the changing from unsupported steel rods which made up the horizontal and vertical slides to fully supported and much stronger ones. The Z axis had 10mm rods, the X and Y had 12mm rods. All those are now 16mm fully supported.

The other thing was the lead screws. In my version one I used 12mm stainless steel threaded rods with 1.75mm pitch and the lead nuts were made of acetal (POM), all individually taped by a piece of the threaded rod, which I made a tap of and threaded the lead nuts with to get zero backlash. This worked very well, but the speed was slow, maximum 500mm / minute. These are now replaced with 16mm ball screws and ball nuts. Of course, the speed increased significantly, a quick test bench run shows 1500mm / minute without problems. I could probably get more with higher power supply voltage, but that's for the future.

Even some parts of the electronics will be redesigned when I am done. Already added a USB controller and running with an UC300, which seems to be excellent. I will add some control buttons and jogging wheel also, and will also upgrade the power supply. Maybe I will also change the spindle motor, which is quite weak, but doing what I want it to do.

Anyway, version one of my CNC served me well, but now it is time for a major upgrade. I will post pictures and video as well as more data later on, as I progress, but in the meantime here is a short one showing the Z axis and the differences between old and new.

This video is the first in a series, showing the upgrade of the weakest part in the first version, the Z axis.

Ooops... I am sorry... I have just noticed that I made a slight error in the video. When the new Z axis is shown the caption says "The new X axis" in large red letters. Of course, that's wrong, it is the new Z axis which this video is about. OK, the Z axis is on the X axis, but when I made this video the X axis was not really ready. Sorry about that.

Friday, 4 December 2015

Plastic or metal bayonets on the Nikon 1 lenses?

There was a discussion on a camera forum the other day about the type of bayonet Nikon is using on the Nikon 1 lenses which made me a bit curious. Some people claim that the majority of the lenses have plastic bayonet, others claim that some of the lenses have bayonets made of two parts, a metal ring and a plastic tube. To find out the truth I decided to check out the 10-30mm and the 30-110mm lenses.

After removing the screws and looking underneath it is clear that these two lenses have a 100% plastic bayonet, made out of one single molded piece. The circular marks underneath are typical marks after the molding process.

Never the less, it seems to be high quality, and while not as good as a metal bayonet could be, it doesn't really matter as long as it works. It is amazing that the surface still does not show any signs wear and tear, and it still looks like metal.

Please note, I have no idea if the majority, or perhaps all the Nikon 1 lenses have plastic bayonets, only these two.

The coating is pretty well done, but the fact that it is plastic will stop me from using my ring flash on those lenses, and I would advise every user of the V2-F1A to not use any ring flash on those lenses any more.

On the other hand, the FT1 is really well made and is definitely 100% made of metal, so if you intend to use a ring flash with the V2-F1A I would advise to use a real macro lens together with a ring flash.

If you are interested in the V2-F1A generic flash adapter for the Nikon 1 V series cameras then please read about it here:

Please click on the images if you wish to see them larger.

Wednesday, 18 November 2015

Testing the V2-F1A with an old high trigger voltage flash

One of my buyers complained about that the adapter he bought was not working, the camera simply not triggered the flash, nothing happened. He tried with another flash unit and the results were the same. The flash units were ProMaster FT 1700.

I don't have that flash so I can't test the same model but I immediately suspected that there must be something wrong with that flash model. It is not easy to find out data about that flash but eventually I found that most Internet evidence states that the flash has high trigger voltage. Of course, I immediately warned the user of V2-F1A about what I found out and asked him to measure the trigger voltage if he can and that he should test the camera and NEVER to use those flashes again until we know what happened. He confirmed that his camera was still working but never actually confirmed the trigger voltage. Never the less, I am certain that based on his fault description and the information found on the Internet the “problem” is isolated to that flash model and to the fact that it has indeed high trigger voltage.

The “problem” isn’t really a problem

The same evening I made some tests with one of my own old flashes with high trigger voltage. My tests resulted in confirmation of the same behavior he experienced, which is that when the adapter is attached to the flash the flash will not fire. I made some measurements and documented the results in a short video which I sent him the same evening.

Watch the short video above to see what is going on


This short video is made for demonstration only. The flash is not tested on the Nikon 1 V1 camera and I will not do that because I don't want to risk my camera. You should NEVER try this with your own V2-F1A, and absolutely never when the adapter is on the camera. There is a protection diode built in, but there is no warranty that it works with every flash every time.


The protection diode does what it is expected to do, i.e. protecting your camera from the high voltage. Without the diode his camera would have been destroyed by now.

Lessons YOU should have learned

There is an even more important conclusion, which is: Read the manual. The adapter is delivered with a short but clear manual stating NEVER to use the adapter with unknown flashes and that it is designed to be used with low trigger voltage flashes. Of course, you don’t have to buy the adapter to find that out, I never made a secret about this. This information and warning can be found all over this blog also, but the two most important posts are:

Worth repeating over and over again

I don’t know how many times this should be repeated, but because there is no information about the maximum possible trigger voltage the Nikon 1 cameras can handle the protection diode is necessary to protect the camera from getting destroyed when users ignore all information and go against common sense, trying to use just about any unknown flashes. If you do that, you do that on your own risk. There is a protection diode but how many times it can handle the high voltage is nothing I can answer.

The technical behavior of a Zener diode

When a Zener diode works normally it will clip the voltage at the level it is designed for. The diode in the V2 is a 33V diode, meaning that it will not allow voltages over 33V to pass through, this behavior can be seen in the video above.

When a Zener diode is exposed to very high voltage (a few thousand volts) the semiconductor in the diode becomes a conductor and will short circuit its terminals. If that happens then the V2-F1A becomes completely useless. Eventually the same thing will happen if the diode is exposed to high voltage in the lower range (few hundred volts) many times. There is no way to tell how many times you can abuse a diode, but sooner or later it will burn up. It can also result in the semiconductor burning up completely and in that case the protection diode won’t do any more protection, just like if it was not there at all. You can measure the existence and the health of the protection diode if you have the right knowledge but a normal user will not notice the absence of it unless he attaches a high voltage flash and tries to use it on your Nikon 1 camera.

Of course, it may result in a destroyed camera, but because I will never try this I don’t know and not sure if the camera can handle it without the diode.

Final words

The V2-F1A shall only be used with flashes designed to be used on digital cameras. Any other use is at your own risk. The adapter is NOT working with a high trigger voltage flash if the V2-F1A is fully functional. Don’t try this out, it is better to find out the trigger voltage before buying the adapter or buy a flash which is known to be having low trigger voltage.

Saturday, 19 September 2015

The making of V2-F1A adapter (milling)

I will publish some video clips showing the work behind the making of the V2-F1A adapter. This is the second in that series, showing the milling that must be done in each little plastic piece. It looks easy to make these adapters if you don't have a trained eye and a good imagination, but if you watch these videos you will realize that it isn't that easy after all.

Just a note, please don't ask about g-codes, measurement details, dimensions and so on. I will not assist anyone with making this adapter. No details, other than what you can find in these clips or on my blog, will be given away. I spent a lot of time in developing it and I have no wish to make it into a free product.

For more information about the V2-F1A, please read:

Wednesday, 2 September 2015

The making of V2-F1A adapter (drilling)

I will publish some video clips showing the work behind the making of the V2-F1A adapter. This is the first in that series, showing the drilling that must be done in each little plastic piece. It looks easy to make these adapters if you don't have a trained eye and a good imagination, but if you watch these videos you will realize that it isn't that easy after all.

Just a note, please don't ask about g-codes, measurement details, dimensions and so on. I will not assist anyone with making this adapter. No details, other than what you can find in these clips or on my blog, will be given away. I spent a lot of time in developing it and I have no wish to make it into a free product.

For more information about the V2-F1A, please read:

Sunday, 16 August 2015

The V1-F1A is dead. Long live the V2-F1A...

The news many people have been waiting for

It was a long journey, but finally the adapter is now ready. My CNC project, a machine necessary to make the adapters, is almost done, but ready enough to enable me to use it to make the adapters again, in better quality than before. I will keep the manufacturing volume fairly low because this is only a hobby activity for me so I have no possibilities to build up a large stock, but never the less, the adapter is available now again.

The new version does not look 100% identical to the V1-F1A, which is why I changed the name to V2-F1A. The design is changed to improve and eliminate the issues I had with the first version. The necessary changes does not mean change in functionality, only in looks.


The major changes are that the white knob is gone and that there is a 'glide guide' at the sides of the contact surface to improve accuracy for the tiny contact pin which triggers the flash. The contact surface is milled so that there is a slope which helps in guiding the contact, as well as the attaching of the adapter to the camera. It also increases the stability of the adapter when the adapter is fitted to the camera.

The white knob is gone for several reasons. In V1-F1A the knob gave the impression of a proper locking mechanism, which it was not, it was just meant as a GND contact for the trigger. Now, in the new version that is solved with a spring loaded ball contact at the bottom, just like the center contact in any other, traditional flash.

Some information about this adapter

The V2 in the name of V2-F1A has nothing to do with the Nikon 1 V2 camera model, it is just a version indicator, V1-F1A was version 1 and V2-F1A is version 2 of the functionally same adapter.

This adapter is designed to be used as a flash adapter on Nikon V1 (or equivalent) camera models. It will allow the user to attach a small standard flash unit with a maximum weight of 120 g (4.2 oz), including batteries. A cable or a radio trigger must be used if the user wishes to use heavier flashes. By not complying with this, the adapter or the camera may get damaged due to the weight and the forces involved. 

The hotshoe can be used to support a radio trigger. If you wish to trigger a heavier flash and don't have a radio trigger, you can use the PC contact on the side of the adapter to attach the flash to the adapter. TTL is not supported; you must use the flash in manual or in Auto mode if the flash you are using has that mode. Most flashes, but far from all, have a thyristor automatic mode; check out the manual of your flash. As an example, the Nikon SB-300 and SB-400 don't have this mode, so they can only be used in full manual mode with this adapter. As another example, the Nikon SB900 has this mode and can be used with the adapter but still not in iTTL mode.

Type of flashes the V2-F1A can be used with

Use the V2-F1A only with flashes which are designed to be used on digital cameras. Don't take a chance with any old flash because you may cause irreparable damage to your camera, or in the best case, to the adapter. Old flashes can have several hundred Volts high trigger voltage, which would be directly hazardous on the Nikon 1 cameras, not only for the camera, but also for the users of the camera. These cameras are not made for those types of old flashes, so make sure you know your flash well. The adapter has a built in protection diode, but don't take chances, the protection diode is not a 100% warranty against far too high trigger voltages.

I have previously written about how to measure trigger voltage in case you feel confident about doing it on you own, read this article before you start.

How to order

If you are interested, please send me a mail using the contact information below. Please don't pay in advance before I confirmed that I have an adapter reserved for you.

After I received payment, I will need one work day to pack it and to ship it to you, using registered, traceable post. I will use the Swedish Post and will charge you what they are charging me.

Please note that I will only sell this unit to buyers from Australia,  the Canada, USA, New Zealand, countries of European Union, Norway, Switzerland, Iceland, Liechtenstein, Jersey, Guernsey, Monaco, Aland, South Africa, Namibia, Botswana, Swaziland, Lesotho and Japan. Note that I make no exceptions made from this list.

Contact information

adapting(dot)camera at gmail(dot)com

Please note: the mail address above must be modified by you. You must replace the (dot) with real dots, the spaces before and after 'at' must be removed and the word 'at' must be replaced by @ sign. This is done to prevent internet robots from sending me spam mail. After your modification the mail address will look like:

Price and payment

I accept payments in EUR, USD or SEK only, no other currency. Payments must be made through PayPal, no direct money transfer, checks or any other means are accepted. You are paying the PayPal fee, payments without the fee will not be accepted. Currently the PayPal fee is an additional 3.4% + a fixed small sum on top of of the total costs. Shipping and handling costs will be added, this cost is not possible for me to predict, I will charge you what the Swedish Post charges me, which at this moment is 13 EUR or 15 USD for shipments outside Sweden. I will ship with registered, traceable post only.

The price for each unit is 84 EUR, 92 USD or 785 SEK, whichever you prefer. The price may change as exchange rates are changing. This price excludes the shipping and handling, the total price will be calculated when I have your personal data.

Prices and the terms are non-negotiable, if you think this is not acceptable for you or you think the price is too high, please don't buy it.

A final note about the V2-F1A

This is a do-it-yourself product. No warranty is given, other than that I guaranty I tested the flash adapter, not only before shipping it, but also during each stage the manufacturing process, and I guaranty that it is working on my Nikon V1 when I ship it. I have no possibilities to test it on the Nikon V2, V3 or any other future models since I only have the V1.

Please note also that the manufacturing marks and scratches on the adapter are the results of DIY manufacturing using a CNC mill. The marks and scratches are not defects and will not affect the functionality.

Remember also that a deal is a deal, if you bought it it is yours. I will NOT take it back, not even for a reduced price. This may sound harsh, but I have bad experience and this is the "lessons learned" from that experience. It is up to you to decide to buy it, and if the conditions are not acceptable, please don't buy this adapter.

The V2-F1A is now replaced by the V3-F1A

This is the latest, perhaps the last version. The differences between the V2-F1A and the V3-F1A are mainly aesthetic and are due to the fact that I made a major upgrade of my CNC and as a result I can make nicer adapters, slightly different in looks. The functionality is the same as before, no iTTL, only manual flash is possible. Read about the details in this post:


Apparently there are some false rumors created on the internet, at this moment I won't mention which site, saying that the latest firmware of Nikon 1 V1 camera, which is 1.40 at the moment, prevents the camera from triggering a non-Nikon flash. This "information" is a lie created by persons who have no clue, the adapter works fine even with the latest firmware. I keep my camera gear up to date to make sure I test everything with the firmware the equipment is recommended to be used with by Nikon. In other words, at this moment every firmware release works with this adapter and I honestly don't expect Nikon to ever create one which would stop this adapter from functioning on your camera, at least not until they start selling original Nikon flash adapters.

Please note that the images are click-able. If you are interested in seeing more detail, just click on the images and larger ones will become visible for you.

Monday, 29 June 2015

Making an acrylic sign

I am sorry, but the next version of my flash adapter is not ready yet. In the meantime, here is a short video showing what else my CNC can be used for. In this video I am making an acrylic sign.

This may not be interesting for those who are only interested in the flash adapter, but I know there are others, who are interested and ask me about the CNC project. The CNC is now fully usable, even if I already have some plans on improving it further, but that won't happen before I am ready with the flash adapters also.

Please, those of you who are interested in getting the flash adapter, please be patient. The adapter will definitely be available before the end of summer, hopefully by the end of July. Sorry for the delay.

Friday, 29 May 2015

My CNC story (part 6)

Two steps forward and one step back.

Please read previous parts first. Click here to find part 5, here to find part 4, here for part 3, here for part 2  and here for part 1. As you may have noticed, I have started to add pictures to the previously written material also, so it might be a good idea to revisit previous parts even if you have read all those already. I will continue adding new pictures, and also video, as I find the time to do it.

Some serious words of warning

In part 5 I spoke warmly about a USB controller, which I truly liked from the start because it seemed to work nicely. Well, yes, it works well in an ideal environment, if you don't want to implement any auto tool setter feature, not use a vacuum cleaner and don’t switch on lights or other machines when the CNC is working. In other words, if you are still just a spinner or milling only air, not real material, and live in an optimal environment. In other words, this card is totally useless in real world, so if you plan to buy one, save the money and don’t bother.

I have also sent a warning to Artsoft, the company making and selling Mach3. It is wrong that they advertise this card, their recommendation made me buy it and waste my money.

In short, I gave up on this card and went back using the parallel port solution.

The problems

There are several issues with this card, but two-three major problems make the HyCNC USB card totally useless, and even dangerous for real work.

  • The G31 probing code is not implemented

    This is not working at all, since it is not implemented. If you enter for example “G31 Z-10 F100” then the Z should start to travel towards -10 and stop on contact with the probe. Nothing happens, no axis will move on G31. I have been in touch with the maker of the card and they promised to solve it but that never happened. I think they lost interest in this card or realized that the second problem is killing the product anyway, so they have just dropped it all together. What is even worse is that they made their own probe function.

  • The built in Z probe has serious bugs in it
    There is a built in Probe function but it is improperly implemented and is only working for the Z axis. In any case, the function is not usable because the axis will overshoot, in one of the possible modes down, right into the work piece, or if you plan to use the other mode then it moves extremely slowly down, stops when necessary and moves up but overshoots and sets the wrong offset. Totally useless.
  • The most serious issue

    An extremely serious issue which could cause fatal or serious injury to the user or destroy the machine is the extreme noise sensitivity of this card and the way it can behave in a noisy environment. I am talking about electrical noise, not something the user can do much about. Switching on a light in the room, or starting up a vacuum cleaner or another machine while the CNC is under power, or running, cause the CNC to run away totally uncontrolled. This is caused by the HyCNC USB card “spitting out” a huge number of step signals on any axis, or simply stops reacting to input signals. The results can be that the CNC movement stops on one or all axes or in some cases one or more axes starts using rapids, smashing the tool, the work piece or the CNC itself if you can’t manage to stop it and break the power. When the runaway occurs, the eStop is also out, so the only way to stop the movement is by breaking the mains power. Uncontrolled movements are rare but they have happened twice in real use, and a few times while I milled air.

Time to take a step back in development of my CNC

After these problems and after I have managed to identify the cause I decided to remove the HyCNC card all together and took a step back in my design and returned to use the ordinary parallel port solution. I don't like that solution because it is a dinosaur, but it is reliable and never caused any problems ever since. I can start any machine in the room, never ever noticed not even an extra step, let alone a runaway CNC. The only problem is that Mach3 is not working with any laptops, at least not mine, which is a fairly new HP, even though I have a parallel port in the docking station which every other software is capable to use but not Mach3. I don't know why that is, but right now don’t care about it much, I reverted back to using an old desktop computer at the moment.

WARNING about the HyCNC USB card

In conclusion, my advice is a warning to anyone planning to use USB, be prepared for problems. If you can continue using parallel port, do it. It is simple and reliable, so unless you need something else just stay with it and enjoy using your CNC.

My CNC is now ready

I aimed mainly at milling plastics (POM and acrylic) and also some PCB, but after I have used the CNC for a while, I am pretty sure it works well even for aluminum, though not tried yet. All in all, I am quite happy with my CNC. The maximum milling speed I get is 450mm/min and for the rapids (movements without milling) I can drive with up to 550mm/min. This is more than enough for such small machine in my opinion. The work area is 250mm x 350mm and the foot print of the machine is about 800 x 700 mm, with a total height of about 1500mm. It is quite high because I chose to make it that way, it is on its own stand and the four feet are on wheels, so I can fairly easily move it around. It weights quite a lot. Not measured but it is heavy. Planned for a table top version but ended up with a bit larger than necessary. Never the less, it works just fine and now, finally I can start using it for real.

Will post pictures and will describe the final machine later on and in another post.

Friday, 10 April 2015

First cut with my CNC

I just couldn't wait to completely finish the building of my CNC and felt I had to try it out, not only with writing, like I did a few days ago, but also milling something. I picked up a piece of plastic, fixed it to the table and ran a surfacing program. The CNC seems to work nicely, nothing exploded and nothing fell off. The results aren't as expected, since the surface is really bad, but depends on the material, that plastic isn't really mill-able and even cutting it with a circular drill cutter, or a hand saw results in rough surface as you can see a bit in the video where my DIY hand wheels are shown.

Anyway, I am pretty happy with the results so far, and hopefully by next weekend the CNC will be completely ready, with proper feet, protection cover and all the instruments in place. In the meantime, here is a short video from yesterday.

Tuesday, 7 April 2015

My CNC story (part 5)

Please read previous parts first. This is the fifth part of my CNC story. Click here to find part 4, here for part 3, here for part 2  and here for part 1. As you may have noticed, I have started to add pictures to the previously written material also, so it might be a good idea to revisit previous parts even if you have read all those already. I will continue adding new pictures, and also video, as I find the time to do it.

Selecting a USB motion controller

There are not that many USB motion controllers on the commercial market, at least not those aiming at the more serious DIY CNC builders.  The number of these is growing, but most cards are special designs which require a special CNC software, not supporting the standard and most popular CNC software (at least that’s what I think it is), the Mach3, which I plan to use with my CNC.

Another thing is the price. These cards are not very cheap, especially considering the simplicity in their functionality. Never the less, just like with my V1-F1A adapter, I understand that low volume, special design and special function ends up with high price so I perfectly understand that these cards cost more than just an ordinary USB to parallel converter.

Anyway, after some survey I ended up with a small USB motion control card which had all the functionality and input/output ports I needed, and more than that. It allows me to introduce future enhancements in case I want to expand the CNC further, like for example the possibilities of using a 4th or even 5th axis. At least that was the case in theory… reality proved to be a little different, even this time.

HyCNC-4L USB card

I went for this card also because it is not based on a DB25 printer port interface but on an open standard connection solution, allowing easy connection to any stepper controller card, enabling me to throw the old cheap 3-axis stepper controller card away, which I was never really happy with. Of course, this was just a future plan, first I needed to start up with the stepper controller I have… well, at least this was the plan when I ordered the HyCNC-4L card.

Another reason to order this card was the fact that it is on the list of USB cards supported Mach3, the CNC software I will be using when my CNC is ready. I figured that it was a good idea to buy a card which is recommended by ArtSoft, the makers of Mach3.

The card is a small, credit card sized card and is well documented by the manufacturer. It is made in Australia and was shipped out from there, so it took a long time to get it, had to wait for over 6 weeks to get it, but finally it arrived.

Connecting my new card

After inspection of the quality and scrutinizing the soldering with a magnifying glass I concluded it is nicely build and very well soldered, so I decided it was time to fire it up and see if it works as expected. I started with a laptop, before connecting to my main computer, just in case it would blow my computer to pieces… Nothing dramatic happened. After following the instructions and installing the driver and the plugin software everything seemed to be fine. Mach3 recognized the card, and after configuring Mach3 according the HyCNC-4L USB manual, I could do some fake X, Y and Z axis movements as well as to switch the three on-board relays on and off. I also checked all the outputs and inputs changing state using an oscilloscope to see that every signal acts as expected. Everything seemed to work, no smoke came out of the card or my laptop, so it seemed safe to connect it to my main computer as well. I repeated the tests with my main computer and concluded that this was a very good decision.

Some HyCNC-4L USB bugs and errors

While the card is nicely build and originally it seemed to work like described in the manual, it didn’t take long to find some errors. Actually, within the first hour after initial connection to my laptop I found some issues, one very serious one, the others just manual error.

Error 1:  Pin 5, output 1, is matched to Mach3 Port #1 pin 5, not to pin 3 as the manual states.
Error 2:  Pin 8, output 3, is matched to Mach3 Port #1 pin 3, not to pin 5 as the manual states.

Both of those are just typing errors, the manual is wrong so that is easy for me to live with. I guess it is worse for those who don’t have the knowledge to measure the signals and can’t figure out why they can’t control pin 5 and pin 3 as they want, even though they follow every step of the manual. Anyway, those two are just minor issues since those only concerns the manual, functionality is as expected after correction of the syntax error in the manual.

The more serious problem was one concerning the control of Step Enable signals. The Step Enable signals should be activated when the Mach3 is running a G-code and disabled on any kind of stop signal, especially eStop and hardware limit switches. The options for these signals (one signal for each of the four axis) supposed to be software control by Mach3 (option 1) or controlled by Offline button via a Mach3 button (option 2). The signals could not be controlled by Mach3 G-codes (software) at all. The only way to control these signals was if the card was configured to control these signals as option 2, “Offline controls Step Enable”. This was not a very good solution, in fact it can even be dangerous, because every time the eStop (emergency stop) or any of the limit switches gets pressed the step motors should be disabled as well to release tension, not just kept in holding power. The only way to control Step Enable was by using three (or four if configured for axis use) other other outputs, but that means that some functionality is lost and also wasted some outputs. This was really a workaround, not a solution, and it was clear that the HyCNC-4L plugin had some bugs in it.

Excellent support from HyTechWorks

I contacted HyTechWorks support, and to my surprise, just three days later I received an apology and a new plugin which I was asked to test. The new plugin worked as expected, the bug seems to be fixed and Step Enable can now be controlled as needed and I was very satisfied with the support.

Currently the official plugin version is still 3.3.6, I don't know why he is not releasing my version 3.3.7, if any of you is interested in the fixed version ask HyTechWorks, or just send me a message and I mail the Version 3.3.7 dll file to you. Of course, since I have nothing to do with HyTechWorks, I can not guarantee anything and you use this plugin at your own risk. If you want support from HyTechWorks you have to contact them directly without my involvement.

Unfortunately, my joy didn't last long. I discovered some other, even more serious problems. I explained the problems to them and after that heard nothing more from them until today. They confirmed that G31 (read below about the details) is not supported and they also asked me to help out fixing the issues. I promised to help as much as I can. These guys deserve help since the product itself is very good and if everything would work well it would be great potential for the community, so I will help if I can.

Anyway, this error, which is a combination of two errors, is so serious that I would advise everyone against buying this card or any other one of HyTechWork products until this bug is fixed. This problem makes the card basically useless for serious works and there is no real workaround unless you are a programmer and have time to develop your own solution, and also you are a CNC expert.

I am a former programmer, but not a CNC expert. I managed to develop a solution based on my programming skills, but my solution is perhaps not the most optimal because I am not a CNC expert. Never the less, for now, my solution works for me, I will not give up just yet, but I am definitely not happy with the support from HyTechWorks.

The bug which renders the HyCNC-4L USB basically useless

The HyCNC-4L USB plugin has a nice function and the card has an opto isolated input called Probe. This can be used to automatically measure tool length or set the work piece zero point. This is necessary to do before use and after every tool change to make sure that the mill is not milling/drilling into the tool table or the fixture. Mach3 must know where the work piece begins, where it should start milling and drilling, how to lower and raise the Z axis to control the depth of milling/drilling. This can be done manually also but it takes time and is difficult to make it consistently as accurate as an automatic process would offer. Also, if you often need to change tools or work pieces then a manual process is very tiring, so some automation is definitely necessary.

There is a G-code for probing, G31, but the HyCNC-4L USB has a build in function, so that seems nice. Unfortunately, the built in function is not working as it supposed to, both of the two different type of probing results in serious errors, in type one at the end, the offset is wrong and in type two, the probe is lowered at full speed, smashing the probe into the tool table, and if this is done with a real work piece and real mill, it may even destroy the machine.

After a week of trying everything, including contacting HyTechWorks but not receiving any response, I gave up and decided to write my own G code using G31 instruction and everything around. This seems a fairly simple task for a programmer, so it sounded like a piece of cake, just some simple programming and more time is needed. That was what I thought…

GGGGGGG….  #¤%&!½§

For those of you who are not very familiar with G codes, G31 is a Mach3 function which, if used on the Z axis, lowers the Z axis until the Probe (sometimes called Digitize) signal is activated. When that happens the Z axis is stopped immediately and a proper zero offset is set. G31 can be used for any other axis as well, for example to find the edges of a work piece, the center point of a hole, or to digitize an object to create a 3-D copy of any object.

Well, once again, and this time definitely making me extremely upset, I concluded that the HyCNC-4L is not a product to recommend to anyone, and now finally I definitely regret buying it. I just couldn’t believe myself first, and it took quite some time and several different approaches to conclude that the plugin is not supporting G31 at all. Not only that, but several necessary Mach3 macro functions are not supported, like for example IsSuchSignal(SignalID As Integer) and IsMoving(), both are necessary for testing and identifying probe signal. Without these two and the G31 there is no way of making an efficient probe.

I think that until the problems are fixed, the card should be removed from the Mach3 site, which wrongly claims that the HyCNC-4L is Mach3 compatible. If it was not on that site I wouldn’t have bought this card the first place, but because it was listed there, I assumed it would work well. I consider contacting ArtSoft, the maker of Mach3, and ask them to remove HyCNC-4L from their list, since “Working with MACH3 PC based CNC software, including latest version 3.043.066.” is an incorrect statement.

Workaround for the probing issue

In the end, and after a week of programming, I managed to create a Visual Basic program which can be used as a macro in Mach3. This macro enables me to automatically set the necessary offsets for all the axes. It is a very long macro, perhaps not the most optimal solution because I am not a Mach3 expert, but it works. I have tested during many hours, so I am pretty confident about it, but when I have time over I will improve it further. Never the less, for now I will continue with my CNC building and initially I will use it as it is.

If any of you are interested in it, just drop me a mail and I’ll send a copy of this VB macro to you free of charge so you don’t have to go through the same ordeal as I did to get it working. I still hope that HyTechWorks will admit to this problem and fix it, but I can’t give up because of them, so I will continue the project.

In the meantime, here is a picture of the first work I did with my CNC. Not yet a milled piece, I attached a pen to simulate milling, but I am really happy with the results, the written text is definitely nice, circles are circles, not ovals, straight lines are straight lines. I have of course used also measuring tools to measure accuracy and knew that this is going to work, so I was not that surprised over the results, but it was anyway very satisfying to finally see X, Y and Z axes moving exactly as expected when I wrote this text on the CD.

( be continued...)

Tuesday, 24 March 2015

My CNC story (part 4)

Please read previous parts first. This is the fourth part of my CNC story. Click here to find part 3, or here for part 2 and here for part 1. I will add more pictures as soon as I have a little time later on.

Abandoning an old computer

When I started with this project my plan was to reuse some old computers I have. One reason for this was that the stepper controller card was, as almost every other DIY CNC controls are, based on parallel port and rely on this port. Parallel port does not exist in modern computers, but all older ones have it as standard. Of course, even modern desktop computers can use PCI cards, so even if the parallel port is no longer standard, that is easily solved even today.

It is worse for laptops, but laptops were not powerful enough a few years ago to drive a CNC anyway, so almost nobody was using laptops, and even today, laptops are rare in this fairly traditional environment.

OK, back to the parallel port

This port type was originally designed for printers, but it turned out to be very suitable to use for many other equipment outside the normal office or home environment.

If a complex machine, like a CNC, is to be controlled by a computer then there is a need for setting different control pins in real time, and those pins are varying in both the total number, and also in timing between different states. Some of those pins (bits) are high or low over a longer period during the work of a CNC than others, some of them, for example the ones giving the step pulses, are pulsing at a high pulse rate and with very short pulse widths, some others, like the step Enable or the Stop signal are constantly on during the whole milling work, but almost none of the signals are synchronous to each other in their state changes. Synchronization is based on needs for the movement, of course if all three (or more) axes must move synchronously then pulses are synchronized, but that is not always the case and is very much dependent on the shape of milling.

Anyway, when milling machines got computerized it was a natural, low cost and a very good solution to use this port. It is simply very easy to control complex machines with this type of port because of the availability of many input, and output signals and the flexibility this port offers.

Nothing lasts forever

Up to and including Windows XP professional, the control of parallel port pins was easy and very flexible for a programmer. However, Windows 7 changed all that, it made it more difficult to set each pins of a parallel port in real time. This type of port became less and less common in computers, today basically not existing in laptops at all, and communication with printers and other peripherals rely on USB interface instead of parallel port. Printers with parallel port are gone from the market, so there is no real need for this port in normal office or home environments.

Some advantages of USB

USB port has many advantages over the parallel port, but when it comes to controlling CNC, it has a huge disadvantage. It is a serial interface, so setting individual bits in real time isn’t that simple any more, not even if one connects a USB to parallel printer port converter to the computer.

To be able to control a CNC using the USB port, one needs a USB motion control interface, which is not only an advanced USB to parallel port converter, but also interprets the G-codes and converts those codes to real time signals, setting the different pins to the levels as needed. In other words, some of the functionality of the CNC software is moved out of the computer and into a USB motion control card because of the loss of possibilities to control individual signal pins in real time through USB.

Some disadvantage of USB

One disadvantage of using USB is, apart from added costs because of the need for a motion control interface, is the need for not just the card but also an interface software, also called plug-in, which interfaces the driver with the CNC software so that the CNC software can talk to CNC stepper controllers. This is necessary unless you have a CNC software which is exclusively designed for the USB motion control card you are using. This plug-in emulates a printer port, so that existing CNC software can be used. Every CNC software is different, so one plug-in which works with one software will not automatically work with another. In other words, the flexibility of use and possibilities of selecting, changing and trying out different CNC software is considerably reduced compared with using the old parallel port solution. Also choosing between Windows or Linux is not possible at all with USB motion controllers, these simply must be designed for the one or the other.

Decisions, decisions…

Using USB definitely has greater advantages then disadvantages, especially when it comes to future computers, so I decided to go for this change and to abandon my old Windows XP Pro based desktop computer, which I intended to use as CNC computer. This saves me a lot of space and offers greater flexibility since with USB I can use any computer, even a laptop, so I can do the design of the milled pieces in my living room, move the laptop to my workshop, plug in the computer and just run the CNC which will mill the pieces.

The old desktop is a dinosaur with the external screen, external keyboard, external mouse and a huge mini-tower case, so the possibility of moving all that functionality into a small laptop is really nice and offering great flexibility.

The decision is made in December 2014. The old computer is out of the loop and USB will be used. Of course, this meant some design change… again…

Please continue with reading part 5.