2013-07-04

Travel CNC/3d printer/vector cutter combination


There are people who have a travel toothbrush.
There are people who have a travel hair dryer.
For years I had a travel 3d printer.
So why can't I have a travel CNC? ;)
So why can't we have CNC mill, 4th axis, 3d printer, vector knife and resin casting and a work table in a single, mobile, quiet, clean tool?

Here's the plan:
  1. disassembly my old, unreliable Thing-o-Matic to reuse the (non-original) toolhead and extruder controller.
  2. mount it onto a not-too-small (400x300), very quitet, 4 axis CNC milling machine
  3. make sure I can swap between CNC spindle, 3d printer and mounting the 4th axis to orient a vector knife
  4. put everything into a custom made stage box including locks, cooling-grills and properly sunk cable holes and a low enough side wall to reach the part you're working on easily
  5. sound proof the box
  6. Fit drawers for small parts, legs to make the box-lit a table, light and enough power sockets.
  7. win!
Sounds easy enough, doesn't it?
I have the CNC right here (awaiting a conversion to USB while converting my large CNC machine from USB to Ethernet and from 4 to 5/6 axis), ordered foam and box and am 3D printing the adapter to use the 3D printing head and all other alternative Makerbox heads I have.

THIS BLOG POSTING GETS UPDATED REGULARLY AS THE PROJECT CONTINUES.

Updates:
2014-04-13
 Prepared a metal XL timing belt pulley for the 4th axis to replace the 3d printed one.
2014-01-25
  The portal height extension is coming along nicely. Will do the drilling and thread-cutting tomorrow.
  Then it should be done. Got mail from the customs office. Maybe one of these packages are the replacement drivers. With the help of my new Makibox I can make the missing parts for 3D printing and vector cutting.
2014-01-12
  Most of the metal-milling done to raise the portal and Z-axis by 100mm to increase the maximum diameter of parts on the 4th axis.
 Spacers for 4th axis and tailstock have been made out of wood during 30C3 to demonstrate the CNC.
2013-12-30
  2 more stepper drivers blown during 30C3. Dealer "Thomas Wu" confesses they are only good for 45V, not the advertised 50V. (I'm using 48V)
2013-11-20
  Tried to attach the foldable table legs and found that I made a mistake.

2013-11-13
  I finished the sound proofing and the electrical wiring.
  All 4 axis are working again (replacement arrived).
  Waiting for some small parts to install tool height probe and E-Stop.
  Work on integrating 3d printing can resume now.

2013-10-27
  Made molds and tried to cast my own sound proofing anchor fittings but they didn't dry in time for my weekly return from the home workshop to the city I work during the week.
  Prepared foldable table legs to make the upper part of the case into a table.
  Prepared fittings to slide the electronics panel in and out for service.
  Packed the tools needed to improve the 10A power supply cabling to 16A. (just to be way on the safe side.)
  Still waiting for my replacement Y-axis stepper driver. (3D printing and vector cutting on hold due to that.)

2013-10-24
Found that soundproofing needs a lot of improvement.
Tried to upgrade to a 16A power plug...to find that the hole for the plug is too small. :(


2013-10-22
 Parts arrived to add the electric tool height probe.
 Tailstock of 4th axis has the correct height now.
 Broke my edge-finder while testing the 4th axis.
 Still waiting for the replacement Y stepper-driver. Limping around with the A axis driver driving Y .
 Ordered a tiny vacuum cleaner to modify. It's quite difficult to clean the inside of a stage box from the top. ;)

2013-10-21
Need to move the 4th axis 10mm higher to have space for the longnegh NEMA23 stepper.
Milling the required spacer to have the tailstock of the 4th axis at the same height as the collet.
 Parts arrived toupgrade from a 10A to a 16A power plug and cable and to add a power socket for manual power tools or laptop.

2013-09-25
  Dry run of the Mach3 cncPrinter3D plugin failed but Slicr worked fine with Mach3.
  Extruder-Stepper not yet connected to receive STEP+DIR from CNC board in parallel with 4th axis
  Y-axis stepper driver went up in smokeFirst real milling using the A driver for the Y stepper.
  NO LOST STEPS ANYMORE!!!

2013-09-24 
 First test cuts in cardboard.

2013-09-23  mounted CNC into the flight case and mounted the wooden board with the new electronics.

2013-09-22
  230V wiring of new electronics finished.

2013-09-19
  cables to finish the 230V wiring arrived.

2013-09-18
  All 4 axis working.

2013-09-16
  new electronics working on 1 axis. Some trouble with the X driver.

2013-09-15
  tested new Ethernet control board on large CNC, not that it's USB control board is in the TravelCNC

2013-09-09
  preparing the new electronics. Mounting control board, power supply, ... to a new wooden board that will act as a separator inside the flight case.

2013-09-02
  testing one of the new stepper drivers.

2013-08-20
  vacation

2013-08-08
  48V power supply finally arrived

2013-08-05
  Added a ramp to load/unload it from the car.
  Will get the new 48V 400W power supply from the post office tomorrow.
  Then I can test if the new stepper drivers can drive these steppers and the USB board works.
  (no driver for Y+Z yet, only X arrived).

2013-08-01
 I'm at OHM2013 (Village "Sandbox" of CCCfr). The case is finished. I can control the CNC3040 using the control box of the USB6040 and my USB-controller. Still have to wait for 1 power supply and 2 stepper-drivers to arrive before I can finish the control box for the 3040.

2013-08-01
  wheels mounted (before leaving for OHM2013)

2013-07-31
  presenting the CNC at OHM2013 (CCCfr Village)

2013-07-23
 Got myself a cheap Dremel 4000 to drill.
 Casebuilder.com did NOT include the required drill bits as promised. A 6mm one to mount the wheels is missing and I dont' have one at hand.
 They also included both face plates for the cooling fans but only one side of the case has the hole to mount it.
 All the locks and half the face-plates have pre-drilled holes. But the other half of the faceplates has not and while at it they could have CNC drilled the holes for the rivets too in the same run.
 (They are pre-drilled in the aluminum but not the wood).

2013-07-23
  need a faster drill, so the wood doesn't spliter. Time for OHM2013 is running out.

2013-07-22
  got the missing drill to assemble the case. Also brought the blue control box of my YOOCNC6040 over to see if new electronics really take care of the lost steps.

2013-07-16
  case arrived

2013-07-11
 PROBLEM! T-slots on the CNC3040 are some odd, non-standard size.
 planned test with Ethernet/USB instead of LPT postponed.
 Basotect acoustic foam arrived.
 Stage box was shipped
 fastener material arrived
 First milling tests
 Using the supplied LPT board the 3040 looses steps in Y and Z.


2013-07-10
 Jogging 4th axis tested and still not working now. LED doesnt glow.

2013-07-09
 CNC working on LPT except I can't jog the 4th axis.
 PCB for convertion to Ethernet/USB arrived.
 Beefed up 4th axis tested (on CNC6040). Holding force fine now. (on Y-stepper channel)
 Waiting for the Case.

2013-07-08
 First 3D printing test failed.
 Metal plate on Makerbot hot-end too large.
 3D printing postponed.





2013-06-30

Chinese 25mm f1.4 and 35mm f1.7 CCTV Lenses für Micro Four Thirds



    I found these 2 chinese lenses for $18 and $38 and wanted to give them a try.


    • C-Mount 50mm f1.4 covering a 2/3" sensor
    • C-Mount 35mm f1.7 covering a 2/3" sensor
    I'm trying to evaliate their usefulness for FullHD video recording and for 5MPx photography.
    Since they are f1.4 and f1.7, I'm comparing them to a completely unfair competition of modern high end lenses with similar apertures.



    • Panasonic/Leica 25mm f1.4
    • Voightländer 25mm f0.95
    • Voightländer 17.5mm f0.95
    My camera is a Panasonic GH2 (with hacked firmware but that doesn't change the results here).
    EX-Tele mod is not used. Aspect ratio is 16:9 . Thus the crop factor is 1.86 since it's a multi-aspect sensor and no regular  4/3 sensor.

    A normal 4/3 sensor would have 2.0 and a 16mm Blackmagic Pocket Cinema Camera 3.0 .
    These would have less of an issue with the blurry corners of these lenses made for 2/3" or 1"=3/3" sensors. We are using these lenses way outside their intended sensor size.
    • All Photos (Including other apertures. Scaled to FullHD due to Picasa quota.)

    Here are the references:
    Leica 25mm Voightländer 25mm Voightländer 17.5mm
    (All wide open at the fastest aperture)

    Panasonic/Leica 25mm f1.4

    Voightländer 25mm f0.95

    Voightländer 17.5mm f095

    Now the C-Mount 50mm wide open and fully closed.
    I know they are hard to compare since the focal lengthes put the C-Mount lenses at a disadvantage.
    On the other hand trees are known to have tons of detail at any field of view.
    C-Mount 25mm f1.4Add caption

    C-Mount 25mm f1.4 at >f10
    These photos have been scaled down to 1920x1080 FullHD since the lenses are completely unusable beyond that.
    Both lenses are extremely prone to stray light. So don't judge the contrast using these images.
    They must be used with a lens hood (no thread, must be improvised) or french flags.
    The center of the f1.4 image is somewhat usable if moving. Everything outside the center is so blurred that this only works out when it's
    • either a dream sequence or 
    • something in the center of the frame is to be shown in a very shallow depth of field anyway or
    • it's an action cam that's only visible for a short period with the viewer distracted by the action and the lens is at risk of being destroyed.
    Stopped down it gets somewhat better but why would you use this lens stopped down except to get lots of motion blur in an action sequence.

    Now the 35mm f1.7 C-Mount:

    C-Mount 35mm f1.7

     
    C-Mount 35mm f1.7 at >f10

    Same issues. Just another focal distance.
    These may yield slightly better results on a Blackmagic Pocket Cinema Camera due to the higher crop factor yet they still will be very blury outside the center.

    Both are nice toys where it's not important if they break or not since they cost next to nothing.
    For a few Euro extra you'll get some old Canon FD glass that may have purple fringing and just match the sharpness of these in the center but keep that sharpness into the edges.

    2013-06-18

    custom XL45 pulley for 8mm D-shaped shaft



    My CNC milling machine has a weak 4th axis.
    I want to attach a larger stepper motor with seriously mor torque.
    However that motor has a D-shaped 8mm shaft while an XL45T10 pulley always has a 6mm shaft.
    I ordered a conventional one, hoping to drill it up but it was stuck in transit (damn Hermes. An envelope would have worked better.).
    So I had to design a custom pulley that could me machined without a rotary axis (less of a top guard) and fits snugly onto an 8mm shaft.

    In fact, I'm 3d printing a first one and plan to do the final one with a full sized top guard on the, thus fixed, 4th axis.


    2013-06-03

    Email to Makerbot Industries support

    After this hilarious answers from Makerbot Industries to a discussion thread on Google+, I sent the following email to Makerbot Industries....let's see what the answer will be (and open our strategic popcorn reserves).
    The support-Ticket number is #121248.


    Aparently whoever manages your Google+ page is under the impression I would get actual help with any of the following questions:
    (I doubt it.)

    Device: Thing-o-Matic



    Is there any kind of support infrastructure to send in my bot in Europe to get the brownout fuses fixed,
    so the devices doesn't erase it's settings every time is stays connected via USB while powered off?
    (And a way to ship it without the extruder breaking off in transit.)


    Is there any "service kit" or similar to fix the following design failures in your after-sales suport:
    * inadequate mechanical extruder support
     (third mounting hole unused, stepper motor hangs in mid-air. Only supported by 2x M5 bolts through 5mm balsa wood with a 100mm lever for the heavy stepper to break that wood any time the bot is transported and thus shaken or even placed in a not-upright position)
    * Glued together lower parts of the "dinos" not connected strong enough for long-time usage.
    * any way to dismount the extruder for transport despite the next issue named here?
    * missing plugs on the cables to mount any of the alternative tool heads you sold without disassembling the entire machine just to swap between extruder, plastruder MKII or unicorn.
    * missing plug on the interface kit -cable.
    * missing mechanism to tighten the belt (or mount a fresh belt since they come 1-3mm too short to mount by hand and expand to be 1-3mm too long/wavy when in use.)
    * non thermoplastic replacement belts that don't expand and stay flat when heated often for long times
    * metal support tube to support the PTFE being supposed to stay cool yet being directly screwed into the hot-end, thus warming up the filament, causing it to expand and thus jam.
    (Using a dozen heat-spreaders and 2 fans to keep the effect of this design failure to a minimum at the moment. Not exactly pretty. RepMan 3.0 had a PEEK tube years before you started designing the ToM.)
    * The delrin plunger in your 6th generation extruder filament drive mechanism. (high friction, no spring, no lever. Thus shakes loose every 5 minutes and doesn't react in any way to minute changes in filament diameter. Everyone else hat this one sorted out while you where still playing with DC motors.)
    * Any official way to organise the cables in the lower "cable hell" compartment?


    as expected:

    Hi Marcus,

    Thanks for contacting MakerBot Support!

    Unfortunately, no, we do not have any official repair shops in Europe, or even in the USA, which can work on a Thing-O-Matic. We haven't sold this product in over a year, nor have any of our distributors to my knowledge, and there is at this point simply a lack of resources. For the same reasons, there is no available service kit.

    I took a look at your order, and it seems like we've got a record of some support parts being purchased back in June of 2011, but no record of your Thing-O-Matic being purchased through us. If it is the case that you purchased it through us, please provide your original order number so that I can look it up. If it is the case that you purchased it through a distributor, I'd recommend contacting that distributor to see if they have any repair parts available.

    If you have any other questions, feel free to let me know and I'll be happy to help!

    Best,

    Alex
    MakerBot Support
    Just as I expected.
    I didn' ask for any kind of repair. There's nothing broken. What's broken is the design itself.

    PS:
    I ordered via a UK distributer since that meant european consumer protection laws apply. 

    2013-06-01

    new Zoom H4n camera rig handle

    I'm currently designing a new camera rig.
    Based on the idea of the RotoRig it shall be shoulder rig and travel-jib in one unit.
     However mine shall be CNC made and feature my camera-remote handle and a new version of my Zoom H4n remote control handle.

    So I designed the new handle and prototyped it on a 3D printer during GullaschProgrammierNacht.
    Next step: verify that it fits and CNC machine it in wood.#

    I already designed the other parts for the rig but they are too big to prototype on the crappy ThingOMatic 3d printer. So I'm planning to prototype them in cheap wood and later do them in aluminum.

    Update: Added photos.



    2013-05-31

    Yongnuo YN560-II + SF18 as mains powered studio flashes

    Just modified a (Canon compatible) Yongnuo SF18 battery pack to accept mains power.
    Now I can use the cheap YN560-II flashes on mains power.
    With my older YN460-II I had to disassemble the flashes and modify them.
    With these it's enough to modify the external battery pack.
    Pro: I can pull the cable and use them on battery power without powering them off. (e. G. When the cable is in the way or I'm tripping over the cable)

    GulaschProgrammierNacht

    First day of GulaschProgrammierNacht #GPN was great.
    I took a few minor projects with me that I didn't have the time to finish in recent month.
    A small, slow going hacker meet is exactly what I need to finish them.
    Currently I'm on the train back home to take a shower and collect some missing that tools.
    My 3d printer had been resurrected.
    I hacked an IPreAmp into the 20 eur phantom power injector with additional headphone output.
    Planning to attach the larger stepper onto my 4th axis of the CNC and finish some Arduino work later.

    2013-05-23

    Investigating 5 axis CNC milling


    Motivation


    Since I have a 4 axis CNC machine and already converted the electronics to USB and am working on a 4/5/6 axis CAM program, let's investigate what would be involved to upgrade to 5 axis machining!

    Current setup


    I have a YOOCNC CNC6040 from carving-cnc.com with the 4th axis option.
    The 4th axis is very weak and nearly unusable.

    I have lisended MACH3 as  control software and am very happy with it.

     Mechanics


    Electronics


    Antonio Eduardo Martins Palmeira pointed me at the PLCM-E3P CNC Controller (For use with Mach3).
    Let's see...

    5V DC via XP9 or
    5V from USB or
    48V via Ethernet (PoE)

    Maximum frequency of STEP signals 100 kHz (my current board does 200KHz pulses)
    15 buffered CMOS(5V) inputs
    36 buffered CMOS(5V, 10mA) outputs
    6 axis
    extra status LED connectors (connect, estop, power, traffic)
    max 2500ms buffer on card in addition to max 5000ms buffer in MACH3
    logging can be enabled for debugging
    The controller does the actual step generation using it's own clock and the acceleration profile provided by MACH3.
    It also does probing and limit switches by it's own (no software=no delay)

    Stepper driver

    TODO

    2013-05-16

    Free 4+5 axis CAM software


    I got an idea and am currently implementing it.
    It's a very simple 4 (and 5) axis CAM software to generate G-Code from STL models.

    The problem


    Well,  I have an affordable 4 axis CNC milling machine. The 4th axis "A" is commonly a rotational axis along Y or X.
    But aparently all free software you can get only does 3 axis milling.
    The only affordable software I that claims to support 4 axis milling was DeskProto. A fine piece of software and using it with the 4th axis works very well but it only does 3 Axis milling using X,A,Z and keeping Y stationary.
    All "real" 4 axis software costs an arm and a leg. Any 5 axis software I could find is completely and utterly out of every hobbyists budget.

    The idea


    Now what I'm implementing won't work for every type of geometry.
    I'm trying to but there will always be cases that don't fit my algorithm.
    The idea is as follows:
    1. Run along the A axis from 0 to 360 and along the Y axis, determine the location of the surface (classic pseudo-4-axis milling up to now)
    2. Then determine the surface normal at that collision point.
    3. Now calculate the inverse kinematic required to turn the part until the surface normal of that collision point points straight up.
    4. Determine if this new orientation creates collisions of the tool with other parts of the part or the machine, is outside the movement ranges of the axis or otherwise impossible.
    5. If it is impossible or if there is a cave beneth the surface, find the start and end of the region that has this property, put a plane through these 2 points that is normal to the A axis and do classic 3 axis milling in these planes.

    Why this strategy?


    The idea of following the surface normal is that this works like cutting along a contour. You get a surface without any visible steps.

    The problems


    Dents in the surface that can only be reached from certain directions are one problem. The fallback strategy of 3 axis milling takes care of many such cases but cannot work for all cases.

    Optimizing the collision detection for finding the surface is much more difficult then in 3 axis milling since you cannot partition your model in advance to only test the triangles that actually can be below the cutter.

    I haven't yet thought of any proper algorithms to deal with the fact that the tool has a shape.
    Currently it assumes a ball cutter of diameter 0 that can cut with the side just as well as with the tip.

    The details of the collision detection of tool and collet with the part are still not clear.

    As you see, I need a lot of help with thinking about the proper algorithms, implementing them correctly and a ton of testing.


    Update: 4 axis milling with this surface-normal strategy works in the emulator! Debugging mostly done.

    2013-05-06

    "R. P. M." 3D printer with serious CNC mill




    Tim Rastall on Google+ showed me an interesting project today. This is a beta of a combined 3D printer and desktop CNC mill. Future upgrades for a 4 th axis, laser 3D scanner,… are planned.

    R.P.M. Rapid Prototyping Mill ( 3D Printer / CNC Mill )

    Context

    There have been many attempts to mount small Dremel, Proxxon and other hand tools to 3D printers for small milling jobs. Usually these suffer from the low mechanical stability of 3D printers compared to heavy CNC mills, the high runout of the mounted hand tools and the low mechanical
    strength of the axis and axis stepper motors.

    Description

    This one is different. It uses a water cooled, heavy spindle with a dedicated VFD. Just like a conventional “desktop” CNC mill. The frame looks very sturdy and employs ball screws. It looks more like portal style desktop CNC reshaped into a cube. The Z axis is done RepRap “Darwin” or BitsFromBytes “RepMan” style. On these 3D printers it is overconstrained and introduces the well known “Z wobble” because 4 cheap, threaded rods are employed that are never really parallel or straight. This design uses 4 precision ball screws. So it may work out and allow for the (for a CNC mill) very large Z travel and support the very heavy tool.

    Analysis and outlook

    I am finding a combination of 3D printing (clean, no storage of blanks), CNC milling (very high precision, diverse materials and tools) and resin casting (diverse material properties, easy small-scale production) to be one of the most interesting fields of research In hobby machines.
    As for myself this could be an ideal tool if it would employ metric parts (for easy repair) and the performance in 3D printing and in medium duty CNC milling was known. My own CNC6040 is very limited in it’s Z travel and very long and wide. This one could be small enough to be transported to Hacker meets and –conferences with a car. (Much too heavy to carry a long in a train. 70lbs=30Kg)

    2013-04-22

    Cage for BMPCC and GH2

    I'm currently designing a cage for the Black Magic Pocket Cinema Camera.
    But since the camera won't be shipped before July, I'm testing my basic idea with a GH2 first.

    Let's start with the requirements:
    • small
    • follow the form of the camera
    • handheld operation, meaning I can stil grab the camera and not have to attach handles to the cage.
    • GH2: access to the battery door (not for BMPCC since it can be powered via 12V and even charge the battery while at it)
    • Access all connectors, buttons on top and the full back side.

    Mark I


    Originally I thought about a conventional design like this one and just leave a larger gab on the right side to slip my hand between camera and cage.
    The result looks like this:


     This looks nice in theory but has one important flaw.
    Because both cameras are tiny, my hand extends a significant way below the camera.

    Mark II

    So I started to look around and found this cool design.


     I liked the way it put the right side forward.
    I disliked the space below the camera as it adds bulk to the cage.

    So now I'm changing my design to put the right side forward and allow a hand to grip the camera.
    The result is this:
    Now this may be easy to grip but...it's in the way when you want to grip the lens from below to change focus or zoom.
    Turns out it is quite hard to design a cage that does not get in the way when the camera is to be used handheld, gripping the actual camera body.

    2013-03-26

    CCC Freiburg visits RaumZeitLabor Mannheim

    Last weekend the CCCfr Hackspace visited the RaumZeitLabor Hackerspace in Mannheim.
    Smaller then the ShackSpace in Stuttgart, we visited before, but wich much more food. ;)
    We made us 3 CCCfr T-Shirts using the cool cutting plotter and shirt-press they had to offer and I found the time to drill and solder the PCB I made.
    (Originally wanted to drill it on the CNC but I didn't have the right collets to mount the tiny drills.)






    2013-03-22

    Milling stamps

    I'm currently collecting information regarding milling my own stamps on the CNC machine.
    The main inspiration is to make some Hackerspace Passport -stamps for CCCfr.

    Material

    You can get stamp rubber easily.
    I thought about deep freezing it but a friend suggested against it and to cut deep with a real sharp bit to get large shavings.

    Tool

    Aparently an engraving cutter seems to work fine.
    Conneticut uses a 1/32"=0.8mm one FFM a 1mm one.

    Speed

    FFM: 16K RPM and 200mm/s
    Conneticut: 6 ipm = 2.5mm/s ???? 

    Depth

    Both use 2 passes. 
    FFM: delta-Z=-0.75mm depth=-1.5mm
    Conneticut: delta-Z=0.75mm  depth=0.060" = 1.5mm


    2013-03-20

    My first PCB

    My first (hopefully) working, etched PCB.
    Made in CCCfr last night.
    This time the problem was not the (stored warm and brightly lit) PCB from the store but that my acid simply cooled down.
    I didn't have access to a heated machine this time, so I used a 10eur kit and hot water.
    We tried to warm it up again using hot air from a distance and later a large hot water tub but it just didn't work again.
    Maybe it was already saturated.


    2013-03-15

    Mobile Fräs-Kreissäge-Stichsäge -Tisch


    Update: This project got postponed indefinitely.

    Lately I've been playing a lot with my CNC and woodworking.
    Gaining experience in what cutters work up to what depth, what spindle speed burns rather then cuts the wood, how fast I can go, how to mount the parts properly and what tollerances I have to calculate with due to the wood bending, vibrating and flexing.

    So here is my next project:
    I'm designed myself a portable table that I can mount
    1. my large circular saw (using 2 flat bars),
    2. my cheap router (using 2 round rods) and 
    3. my jigsaw (using 4 bolts).
    As you can see, apart from the jigsaw, non of these tools are equipped to be mounted below a table.

    Having a CNC, I'm planning not only give them
    • precise mounting points but also 
    • pocket out the shape of these tools on the underside of the table and 
    • provide a bedstop that has precise stops every 10mm, starting at 0mm from the middle of the blade/cutter. ...and use an engraving bit to 
    • actually label these stops as well as a number of distances and angles on the table
    • and label heights on the bedstop-slider (for the router)
    I'm not sure I can pull this off.
    For once the table is quite large compared to the working size of my CNC and I have no experience in mouting anything flat yet.
    I'll have to cut provisional holes. Use these to mount it onto the CNC. Then use the precise holes to mount it while cleaning up the provisional holes.
    I'll also have to think about a sacrificial plate below this part, so I don't hit the CNC's bed when drilling all the way through.
    I'll also have to have an easy to center on origin location in case MACH3 crashes, takes the current coordinates with it and I have to find my origin again to resume the program.
       
       IF I get this done, the design files will of cause be released as CC-BY . The mounting holes are very specific to these 3 tools but can easily be adapted to other ones.
       

       

    2013-03-13

    Ätzworkshop im CCCfr





    ...by first time of etching PCBs.
    Workshop in our CCCfr Hackerspace.

    USB Isolator

    Last night at the weekly CCCfr meeting, I found the time to SMD solder again.
    This time a USB (full speed+high speed) opto isolator.
    It is based on the ADuM 3160 chip and can generate isolated 5V from the USB input or be powered from 5-12V externally.
    The PCB is version 1.2 or a design by CircuitsAtHome. It is larger then version 1.1 and quite easy to solder by hand.
    I still have a 1.1 PCB here that I plan to do another day.

    I plan to use it on my CNC to further reduce electric noise leaving the spindle VFD and interfering with the rest of the equipment.

    2013-03-12

    Yongnuo YN560 II on the inside

    Last night at CCCfr I had two defective YN560 II flashes with me and took them apart to look for obvious problems.
    So in case you wonder how these look on the inside, click on the album below:
    2013-03-11_inside-YN560II

    2013-03-10

    improving Firefox for Android

    I'm looking into fixing the fact, that you can't access your stored passwords on Firefox for Android.

    Status

    • Added new menu item "Passwords" in Fennec preferences, just below sync
    • TODO: create dialog for displaying the passwords.
    • TODO: get and honour master-password.
    • TODO: how to localize my strings?
    • TODO: how to access stored passwords?
    • TODO: how to submit my patch?

    Setting up

    I've set up the development VM as per the instructions .
    What they didn't mention was to
    • increase the memory of the VM from 512MB to something like 4GB+swap. Else ld crashes (see below)
    • You need to run an Ubuntu distribution upgrade to get the required yasm 1.0.x
    • You also need to install your language to get your localized keyboard layout and everything.

    Where stuff is




    The Android UI code seems to be Java but it's not stored as pack/age/name/Classname.java as it's supposed to be but flat in
    • mobile/android/base/*.java .
    It is set up not like a Java/Android project but like a C project. So all sources have to be manually added to
    • mobile/android/base/Makefile.in

    Sync related code is read-only and comes from a separate sync-repository. See
    • mobile/android/sync/README.txt

    String resources for english are in mobile/android/base/locales/en-US .
    It it not enough to edit the
    • mobile/android/base/locales/en-US/android_strings.dtd but also
    • mobile/android/base/string.xml.in

    Non-String resources like xml/preferences.xml are in
    • mobile/android/base/resources and each new file you add needs to be added to
    • mobile/android/base/Makefile.in






    2013-03-09

    Remote Filemanager for Dropbox ported to API1

      The CCC-Freiburg is visiting the Shack hackerspace in Stuttgart for the weekend.
      Apart from getting ready to do some programming in the Firefox for Android sources,
      I took the time to upgrade my "Remote Filemanager for Dropbox" app to the new Dropbox API1 instead of the old API0.
      It still needs a lot of graphical work and I had to drop the AccountManager for a first version but it can accept new users again.
      I find the northon commander style much easier to work with for transfering files then the official Dropbox app.

      Privacy  

      Because it has the permission GET_ACCOUNT it needs a privacy declararion.
      That permission exists to access it's own account. the credentials you enter into the app to access your dropbox accounts. Not accounts of other apps.
      It has no advertisement. No tracking. Does nothing except the file operations you tell it to perform.

      2013-03-03

      Camera Flash comparison Metz 58 AF-2 and Youngnou YN560-II

      Comparing the
      1. Metz 58 AF-2 and the  
      2. Youngnou YN560-II (also a 58)

      Made the same photo.
      • Both flashes on 1/1 = full power and 50mm zoom
      • Camera on full manual (aperture, exposure, ISO)
      • Using a 25mm lens on a camera with 1.86x crop factor (GH2 multi aspect sensor on 16:9).

      Wanted to know of the "58" on the Yongnou was just advertisement.
      ...aparently it isn't.

      The Metz is 200eur and has all the bells and wistles.
      It can do TTL and even wireless slave with Panasonic GH3 (Flash firmware 2.0) and with Olympus cameras.
      The Yongou is 60eur, full manual only, very dump but has simple zoom (as opposed to the 460-II).

      2013-03-02

      Java program to probe Z for PCB milling VERSION 2

      I learned a bit more about g-code and completely rewrote my "PCBZCorrect" program.
      Usage now:

      1. create g-code to mill a PCB (or engrave anything else) using pcb2gcode or any other program
      2. Mount the blank PCB and mount the electrical probe onto your CNC machine
      3. optional: modify the sources to use EMC2 or another grid then 5x5 
      4. run the jar file, select the g-code file
      5. run the created *_zprobed.ngc g-code in MACH3.
      6. it will probe the actual z height in a 5x5 grid and store these values in variables #100 to #124.
      7. it will then stop
      8. disconnect your Z-probe and get ready to mill.
      9. press "Cycle start" to continue the program flow
      10. it will mill the PCB using a bilinear interpolation to follow the actual, meassured surface height of the PCB to ensure a consistent cutting depth in the micrometer range
      11. it will also have broken up all long movements at z<=0 to follow the surface at the right height



      Proto:
      left = before (45° engraving tip)
      right = corrected  (10° 0.1mm engraving tip)
      (Yes, I was too deep on the right side. Z-0.0008" was hovering above the copper, Z-0.0016" was cutting too deep into the glass fiber. )

      2013-02-26

      Java program to probe Z for PCB milling

       In my first attempt at PCB milling last weekend I had my PCB bend by as little as 0.04mm.
      Clamping a PCB in a vice the center will bend upwards or one side be lower/higher then the other.
      Even if you can't see it and can't meassure it with hand tools but only with the z-probe of your CNC.
      Given a cutting depth of 0.02mm to barely remove the copper layer, this is too much.
      So last night at the CCC-Freiburg meeting I wrote myself a small Java program.

      It takes the g-code output of PCB2GCode. (See last blog posting about parameters.)
      You have to have your PCB mounted already, positioned your cutting tool and set an initial Z=0.
      You also need an electrical Z probe (simple cable clamped to the PCB and your actual cutting tool with an input pin configured as probe shortened to GND or VCC when both touch).

      Then it determines the position and size of the PCB and asks you to take a number of Z-probe meassurements on your CNC to see very precicely what height the PCB actually starts at in these locations.
      (It will be more likely to be Z=-0.0123 or Z=0.0234 instad of a perfect Z=0.00000)
      It tells you exactly the G-code you have to copy&past&run for MACH3.
      (including G20/G21 setup of the proper unit first, to raise yourtool  and jog to the right location.)
      By default it asks for a 3x3 grid of 9 meassurements.
      One per corner, one in the center and one in the center of each side.

      Then it reads the g-code again and writes a new g-code file with the following changes:
      1. Adds a bilinear interpolation of you real position Z=0 as an offset for each Z position mentioned in the code.
      2. Adds a Z value to all movements in X+Y that don't already have one using the last Z position seen plus the offset.
      3. Breaks up all movements that are longer then 1/6th of the diagonal of your PCB into smaller movements to follow the curvature of the PCB.

      Update: Version 2

      2013-02-24

      Milling PCBs using PCB2GCode


      I'm trying my hands at milling a PCB.
      It will be a USB isolator for my CNC.
      Here I'm collecting my notes as a step by step guide to do the same again later.

      Even if you are etching your PCB, drilling mounting holes and vias automatically could be a reason to visit your local CCC Erfa Kreis, Hackerspace or FabLab.

      Files

      You start with Gerber files. (If you have hpgl or svg data, your CAM software should already be able to do this without pcb2gcode.)
      • .gbs - Gerber Bottom Solder Mask Data
      • .gbo - Gerber Bottom Overlay Data
      • .gbl - Gerber Bottom Layer Data
      • .gbp - Gerber Bottom Paste Mask Data
      • .gdd - Gerber Drill Drawing Data
      • .gko - Gerber Keep Out Layer
      • .gpb - Gerber Pad Master Bottom Data
      • .gpt - Gerber Pad Master Top Data
      • .gtl - Gerber Top Layer Data
      • .gto - Gerber Top Overlay Data
      • .gtp - Gerber Top Paste Mask Data
      • .txt (not human readable)
      ( filesuffix.com helped be with that list)

      Tools

      The go-to tool seems to be PCB2GCode.
      Sadly it is only available for Linux. Not for Windows (where my MACH3 CAM software lives) nor MacOS.
      However there seems to also be a beta website PCB2GCode online by Fablab Amersfoort.

      Usage

      The PCB2GCode website tells you to look at pcb2gcode --help. Nothing more.
      No example. Not even an explanation of the file endings listed above. (They speak of .gbr wich is the only extension you'll not find a file for.)
      Top-layer (.GTL) and bottom layer (.GBL) are easy.
      TODO: Outline I have not a clue.
      TODO: Drill data seems to be missing for me. :(

      example:

      pcb2gcode --front USB_Isolator.GTL --back USB_Isolator.GBL --metric --zsafe 5 --zchange 100 --zwork -0.02 --offset 0.02 --mill-feed 100 --mill-speed 6000
      Importing front side... done
      Importing back side... done
      Importing outline... not specified
      clearing
      clearing
      Calculated board dimensions: 1.7in x 1.7in
      Current Layer: back, exporting to back.ngc.
      Warning: pcb2gcode hasn't been able to fulfill all clearance requirements and tried a best effort approach instead. You may want to check the g-code output and possibly use a smaller milling width.
      Current Layer: front, exporting to front.ngc.
      Warning: pcb2gcode hasn't been able to fulfill all clearance requirements and tried a best effort approach instead. You may want to check the g-code output and possibly use a smaller milling width.
      No drill file specified.

      Parameters


      Attention: Website only expect everything to be in these strange and obsolete "inches" thing.
      The command line tool can be changed via
      "--metric                            use metric units for parameters. does not affect gcode output"
      for it's parameters but the output will still be imperial g-code.
      No Rebels seem to have converted this imperial stronghold into metric units yet.

      The website seems to require a drill file. The command line tool can do without.

      --zwork The default seems to be "0.0008 inches = 0.02032 millimeters" for isolation milling.
      --offset  You need to set half your tool diameter or a greater value for the --offset parameter.
      --zsafe travel height
      --zchange z height for changing from milling to drilling tool
      --mill-feed feed rate
      --mill-speed spindle RPM

      Milling

      Even when set to metric, MACH3 shows the maximum dimensions in imperial inches.
      Use an electrical probe to set Z=0.
      I made a special probe cable for this purpose as the toolheight-sensor wouldn't reliably touch the top side of the PCB.
      Also make sure the PCB is insulated against the machine so the probe isn't always triggered.

      I used paper to do this and also to level out the board (after meassuring all 4 corners).
      TODO: My board was still slightly bent. I need a way to compensate for Z-differences in the 4 corners+center by software.

      --mill-feed 100 --mill-speed 6000 seems to be a good value to start with.

      Cutters

      I tried a chinese engraving tip and it wasn't a good fit.
      The tiny Z errors and the fact that the engraving tip quickly gets bigger the deeper it gets are a bad combination.
      The smallest flat cutter I could find is 0.8mm. Way too large. I need to look for something along the lines of 0.1mm.

      TODO

      DONE:  Wrote a program to take 9 Z meassurements and adjust the g-code PCB3GCode returns.

      (EMC2 specific) There seems to be script named "etch_z_adjust" that uses the electrical probe to meassure the exact Z=0 height every 10cm before starting to mill.

      A thin layer of cutting oil seems to help too.

      (Reprap specific) This "PcbSubtraction " pcb2gcode postprocessor adds probe commands to the g-code itself but is limited to 315 probes per PCB.

      There is also a MACH3 visual basic macro but I just can't find the actual code to try it.






      2013-02-17

      electrical noise issues with CNC


      Starting yesterday I got terrible electrical noise issues with my CNC milling machine.

      Update:

      • I was able to see the noise on my super-cheap pocket-oscilloscope
      • Replacing the RS485-cable with a shielded one and connecting the shield to GND on the USB2RS485 converter helped a bit
      • I'm investigating some USB isolators one, two and RS485 isolators
      • It was pointed out to me that the VFD is not connected to PE. PE ends in the line-filter. I should change that.
      • Connecting VFD-GND to the Spindle case reduced the noise as meassured on the Z-stepper case a lot but did not eleminate it.
      • Noise is greatest on the VFD line filter case, second on the spindle and steppers, least on the USB cable shield and RS485 cable shield now. 
      • Currently revisiting CNC Noise
      • Connecting VFD-GND to mains PE (protective earth) didn't change a thing. At best it made the noise much worse. 

      The Players

      1. Touchscreen PC running MACH3
      2. Huanyang VFD inverter - controller and power supply for the spindle (motor that does the milling)
      3. powered USB hub
      4. USB to RS485 interface
      5. Control box containing:
      6. USB control board -  creating opto-isolated STEP+DIR signals for the
      7. 4x Stepper Driver Boards

       The Problem

      Whenever the spindle is running and USB from the USB control board is connected to either the USB hub or the PC, the steppers twitch and jog around wildly.
      This issue did not happen since october and just started yesterday.
      4 hours earlier I dan 6+hour milling jobs without even loosing a single step.
      Changes made:
      • coiled up cable to some lamps
      • coiled up power+USB cable to PC (undone, no change)
      • coiled up DC power cable of USB hub (undone, added ferrit core, no change)
      • switched oin a refrigator in the room (undone, no change)

      The Setup

      All share the same power socket.

      PC connected to  Powered USB Hub.
      USB Hub has ferrite core on it's DC supply power.

      Powered USB Hub is connected to USB-RS485 converter.
      RS485 converter connected to VFD via TX+ and TX- but not GND

      VFD connected to spindle via shielded cable.
      Shield on the cable not connected to anything.
      VFD connected to mains via line filter element.

      Powered USB Hub is connected to USB control board via USB cable with 2 ferrite cores.


      USB control board connected to Stepper Driver Boards via +5V, STEP and DIR.

      Stepper Driver Boards connected to their own 24V? 48V?  power supply.
      Stepper power supply connected to mains via filter element.

      Page 17 of the manual of the USB control board (link below):
       Photo of the inside of the Control Box containing the USB control board, the 4 stepper driver boards and their power supply:

      Possible solutions

      • Should I connect GND on the USB control board to GND on the stepper power supply even though the manual doesn't mention it?
      No.
      The stepper driver boards get A+ A- B+ B- as STEP+DIR. So they clearly expect a differential input independent from GND. getting A+=B+=+5V and A-=STEP B-=Dir that is exactly what they get.
      • Should I add a capacitor between USB control board GND and it's +5V to filter anything but DC?
      No.
        since the stepper driver boards get a differential input and don't care for either.
      • Should the GND contact on the VFD be connected to anything?
      Manual of the VFD only mentions to use that to give muiltiple spindles a single connection to ground.
      •  Maybe I should connect the VFD GND to the spindle case as mentioned here?
      Original wiring didn't do this.
      DONE, did not solve the problem
      • ????? 
      The PC power cable and the RS485 cable seem to have a large influence on the frequency of these interferences.