After a lot of editing I think the attached document will give an in depth understanding of how to use FlatCAM based on Version 8.5. The document is based on our experiences and a steep learning curve. We now have a repeatable process for milling PCBs from Gerber and Excellon files exported from a PCB design package.
The document may well have mistakes and we would appreciate feedback good or bad.
One of our group of ‘silver experimenters’ is building an Arduino based celestial camera tracker. This will be deployed in the garden and he needed all control to be routed back inside the house. The garden installation consists of a USB webcam mounted on a servo controlled platform all powered by 12V DC.
We pondered long on how we might remotely connect to the garden. The crucial thought was that the Arduino servo board was a two wire interface using the I2C format data exchange. Given that the USB needed four wires and the DC supply two wires we had a need for an eight core cable connection. It seemed like a length of CAT5 cable would do the job and we could elegantly use standard CAT5 sockets.
The PCB was designed in Design Spark and milled on the Tormach PCNC440 using FlatCAM.
There is a problem with running USB over more than 5m but I did some tests at 10m and all seemed fine which should be adequate for the application.
The breakout boards had a male and female USB connector fitted and the connections had to ‘cross over’ on one of the breakout boards to maintain continuity. We also paired the Data + and Data – connections with the +5 and Ground twisted pairs in the CAT5 so the Data + and Data – were not twinned together.
Nothing technically magic but a simple solution to a project need.
I & J Arc Code Calculator (with updated spreadsheet)
I had a need to hard code a circular PCB cut out CNC code that would cut four arcs around a milled PCB and leave four breakout tabs to retain the board in place in the blank until the job was finished.
To create I & J codes you need to know the start point, end point and radius of the arc. The end point becomes the X and Y. The delta X and Y location relative to the radius centre point X and Y becomes the I and J values. You can also add a depth of cut value for Z as part of the block. Note that the Arc is assumed to run anticlockwise when using a G3 code running from start point to finish point. Use G2 if you want a clockwise motion. The principle is the same with both rotations.
You end up with a block code of the format G3 (G2) Xa Yb Zc Id Je where a,b,c,d,e are the coordinate values. I found that working with positive and negative values when trying to find the I and J values relative to the centre was hurting my brain. A spreadsheet was needed …..
You can download the sheet as a ZIP file from the link below.
Another piece of the clock wheel cutting hardware completed.
The Tormach USB expansion board is now boxed and the connectors wired to the board. I milled a viewing window in the box with a matching piece of perspex. This allows me to see the status LEDs on the pcb. Port #P0 is now dedicated to the Sherline CNC rotary table controller which requires a closure to increment the table stepper motor.
The connectors are all 8 pin MiniDIN which matches the interface on the rotary table.
You will also have read about my preoccupation with trying to hold the PCB material flat to avoid variations in milling depth.
I have got it to a reasonably repeatable process using mechanical clamping but you know when a perfectionist starts something it has to be as good as possible …. step forward the Vacuum Clamping Table.
The thinking for this followed on from the Rosebud Grate experiments on my live steam locomotive. The grate consisted of a matrix of larger holes on the underside of the grate leading to a small bore hole on the top side of the grate. The theory as I understand it was that the reduction in size creates a Venturi type effect and boosts the air stream into the fire. I wondered therefore if I reversed the air flow i.e. sucked the air from the large hole into the small hole whether this would be beneficial in providing a boost of the suction. It is a bit tenuous I must admit and I can’t point to lots of science to back this up, but certainly worth a play.
First stop was Fusion 360 and a two part plate was designed. This consisted of a top and bottom part. The bottom part is 15mm cast aluminium with a milled trough and the top plate is 10mm cast aluminium with 6.8mm holes (no science – this is tapping size for M8 that was already in a Tormach collet) on the top side that reduce down to 1.3mm holes (ditto also already in a collet) as breakthrough holes on the bottom surface. Around the edges are M6 screw holes to clamp the two plates together and also M8 mounting holes to fasten the plate to the tooling plate on the Tormach. I didn’t quite think the suction connection fully. After I had worked out the total area of the 1.3mm holes I realised that to accommodate this I needed a 16mm diameter hole for the air inlet. This was not going to be possible to mount on the 25mm overall edge of the plate. The solution was to 3D print a connecting pipe and mount this on the top surface. This adapts to the vacuum cleaner pipe being used as the suction source. The 3D printed adapter did not provide a good seal to the top plate so I had to fit a rubber gasket on it. The parts were all put together as shown below.
To my amazement it seems to work !
There does not seem to be leakage on the joint between the two plates and the vacuum pipe adapter with the rubber gasket seems to seal alright. If I put a large piece of PCB material over all the holes it is very difficult to move it. Single sided board is naturally bowed in the manufacturing lamination process and I can see it visibly jump flat when I turn on the vacuum. If the PCB is smaller than the total area of suction holes it does not seem to matter about covering over the ‘non-used’ holes to maintain the grip.
Proof will be when I try to run a board.
The milling process will not have major sideways pressure as the depth of milling is quite small so it should be fine. Clearly I can’t go drilling the component mounting holes in the PCB material with this holding technique but I can spot drill them to say 1mm depth and then finish them by hand having got a guide hole to start me off.
But all this will have to wait as the X axis limit switch has come apart on the Tormach and a spare has been ordered and is on its way.