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.

2013-01-29

Upgrade YOOCNC6040 from LPT to USB


Since my new touchscreen PC for MACH3 is way too new and uses TTL levels on it's LPT ports,
I just got myself a USB control board.
Originally I wanted to wait until the RS485 version of the famous Gecko G540 (with >3 axis) I couldn't wait and use my very, very old laptop any longer.

With the new board I can control all my 4 axis and got a ton of space inputs and relay-outputs to spare.
It's supposed to give 200KHz output. No idea if that means 200'000 step+dir for all 4 steppers or just 200'000 time per second switching the level of one step+dir pair. (so 100KSteps/4 steppers=25000 steps/second when all 4 axis are moving at the same time)
Also no idea if and how much it buffers.
It seems to come with an integrated g-code and jog -buffer.
The well known (and much more expensive) smoothstepper card only gets speed+direction from the PC and does all the pulsing autonomously. Thus also independent of any timing-issues from the PC.

The second thing I got me was a USB handweel.
Except it doesn't have an actual weel but it was only 20eur.
I can always use the potentiometer that came with the USB board for that task.
Aparently that handweel is still on it's way to europe.


2013-01-27

CCC-Freiburg "Hack 'n Play"

Had a very nice evening at CCCfr during today's "Hack'nPlay".
A mixture of talks and lightning talks and a free software lan-party.
Including a ton of retro games. Handheld, console and early PC based.

We're so lucky to have share in the infrastructure of the ArTik with our small Club in Freiburg.

I was called to help my record the talks while hackers from Karlsruhe would take care of a live stream and a media trainee took photos. (Being there, of cause I took my fair share of photos too.)
I hope to have my photos up on Tuesday. The videos will take a few days as I have to get the official audio recording first and sync my clips to it.


Met some nice folks from Chaos Computer Club in Zurich, Switzerland.

2013-01-22 CCCfr HackNPlay

2013-01-24

ThingOMatic broken, making a better one


When installing a tensioning mechanism for my heated, titanium conveyor belt,
the acrylic side on my Thing-o-Matic broke.

Now my bed it too long and hits the Z-rods during the normal homing sequence. (left, then back, then center).
I wrote a custom homing homing sequence that avoids this. So I can still print small parts that don't require the back lack 2x4cm of the print bed.

As I need a replacement anyway, I'm now working on a new ABP design that combines:
 into one design that can be printed using only 2/3 of the already tiny build surface of a Thing-o-Matic.

Installing Conveyor Belt Tensioner on ThingOMatic 3d printer

Am about to install the heated conveyor belt -tensioner to my . The belt itself is already replaced with 0.025mm titanium with a Kapton surface.

The missing tensioning mechanism is some heavy oversight in the original Mekerbot Industries design as is the original plastic belt that expands+warps due to temperature ('heated' conveyot belt *hint*) and wear, is slightly too short after purchase because it hasn't expanded yet and the completely missing bed-leveling mechanism.

Designing a shortened lever-arm for this one as the lower bolt is a bit higher due to my removable ABP mod.This allows me to quickly replace the belt with e.g. my PCB routing platform to mill electronics.
Have to start from scratch as there are no original design files for the tensioner are posted. Only an STL export and only as a complete bed of 4 parts.

2013-01-23

3d printed camera slider


 A while ago I designed a 3d printable camera slider using cheap LM8UU bearings.
(Why use 608ZZ ball bearings if you can get real linear bearings for cents.)

Now I finally found the time to make one.
I also updated the design to include a clamp on the sled. So this can be upgraded to a motorized slider later!
On the photo I haven't inserted all the bolts yet that hold this together.

I wanted to use steel rods but they turned out to have vastly inconsistent diameters.
So I had to use aluminum rods and am currently inserting a second, smaller rod into them to keep them from deflecting in the center.

PLA: heated bed(/belt) too hot

    I just learned that some of the warping I'm experiencing with PLA may be due to my heated bed being too hot.
    Usually warping in ABS is caused  by very hot ABS from the nozzle of the 3d printer cooling down fast and shrinking. Thus the higher the temperature difference betwee nozzle and bed, the more warping. That's what you learn everywhere.

    So I usually crank the heated bed up as hot as I can to keep the temperature difference between top and bottom of the object low and thus hope to reduce warping.
    So my bed is usually at 120°C and with problematic prints at 130-135°C.

    It seems that PLA melts and expands at these temperatures and thus creates warping of it's own.
    I should run the bed at 55-65°C and run a fan as strong as possible.

    (During CCCongress I ran a big fan and the warping became much stronger instead of lower.
     But then again I had raised the bed temperature to 130°C because the fan would cool the bed.)

    Didn't try 55°C yet, will do so in the next print and update this posting with the result.

    2013-01-19

    New Multimeter

    I've beet putting off getting a good multimeter for some time now.
    My original requirements where:
    • auto range
    • hold+peak
    • USB/serial to log meassurements against time
    • meassure inductance (for stepper motors) directly
    I couldn't find anything that had inductance AND USB.
    So now I got myself a Uni-T UT61.
    • auto range
    • hold, peak, range, delta
    • USB
    • no inductance


    2013-01-15

    Help us develop an alternative design hosting website

    Anyone up to develop an alternative hosting site for 3d printable/laser cuttable/CNC machinable designs?
    Outside the control of a single, commercial company?
    At least help in brainstorming the ideas and coming up with options (e.g. where to host the files and images)?



    We're still filling up the wiki, starting to brainstorm and plan and have a quick skaffolding to experiment with:

    2013-01-09

    Engineering link collection

    I'm not a mechanical engineer, so let's collect links to quickly look up best practices, part nomenclature (e.g. bearing name codes) and similar information
    Obviously this blog posting will be updated every so often

    Best practices

    Stationary

     Nuts and Bolts

    Moving

      Bearings

     Shafts and couplings 

     Planar linkage

    Electrical

     Wires

    General

    2013-01-08

    monetizing open designs for 3d printed parts

    Current state


    There's a lot of talk about unrealistic DRM schemas for 3d printed designs.
    Mostly centered about limiting the ability to print replacement parts by putting DRM on the design files. ...and forgetting that the original design files are never published but instead reverse engeneered using screwdriver and caliper.

    There's also a lot of talk about selling the right to print a published design (a bad and unrealistic idea) and about the selling of physical manifestations of designs instead.

    We've had small CNC machines in above-average hobby-workshops for years now.
    Particularly in the model-building works these are common and parts made in these hobby-workshops are regularly sold.
    Personally I don't think that the world will suddenly collapse just because a new kind of CNC device that is less dirty and produces plastic instead of wood and metal arrives.
    Parts still need bolts, bearings, electronics, labeling, painting, ... . There is no reason to believe that any design consisting of only one plastic part with no regards for material and tollerances (in the case of selling a DRM-controlled right to print a design) is of particular relevance or importance.

    The experiment


    So I'd like to try something.
    I published quite a few designs under CC-BY-NC(-SA).
    Due to the -NC part I'm the only one allowed to monetize them. Sell them, advertise with them, sell physical copies.
    So I'm posting some parts that I find useful to a general public on eBay.
    1. The designs are still CC and published, so everyone is free to print them for themself.
    2. Everyone is also still free to ask someone else to print them and they can even charge a fee for the service of printing.
    3. I only sell physical objects after they are printed and tested and found to be of good quality.
    4. I include required non-printed parts and may even go so far as to do some simple packaging and instructions. 

     Expected results

     

    I don't expect many items to be sold at all.
    I expect the need to brush up my skills of presenting the parts in a more professional way in order to actually sell some.
    Prices will probably stay very reasonable (1-5eur, maybe more).
    I expect a more practical discussion about licenses, where we want the world to be headed and where it will be headed regarding open designs and personal 3D printers.

    2012-12-29

    29C3


    I'm currently visiting 29C3, the 29th Chaos Communication Congress in Hamburg together with my fellow CCCfr (Chaos Computer Club - Erfa Kreis Freiburg) members.
    Had a great time so far.
    Sadly I found out I'm nearly out of filament just when I packed the car and there are (surprisingly) only 2 other people with 3d printers here and both use 1.75mm filament. ...while I run on standard 3mm.

    talks


    Missed most of the talks because I was either talking to people and getting great solutions for current issues, lectures being full or by being tied up because the 3d printer was still running or the soldering iron hot.

    personal projects done and presented


    Managed to get quite a lot done too.
    • At the moment I'm printing a belt tensioner for my titanium ABP belt on the 3D printer.
    • Designed and printed a first prototype of an adapter to use Saeco dual-height coffee pad holders in my coffee machine.
    • Converted a japanese EEG toy to european 50Hz mains frequency, added a port to get the raw signal and decoded the protocol in a logic analyser. (Didn't manage to connect the EEG to my R0cket because of issues setting up the R0cket module build environment.)
    • Designed a completely new camera flash based on the YN460 II but with a better battery case,  switch between batteries and mains power supply, integrated umbrella holder, space for an Arduino Nano to remote control the power and not just trigger the flash remotely.
    • Did a lot of Arduino prototyping using different sensors.
    • I still plan to reanimate my old N.S.E.C.T. toy robot and connect it to an Atmel in the remainng 2 congress days.

    2012-12-18

    Necomimi EEG on the inside

    I'm trying to connect a TGAM1 EEG sensor to a R0cket badge for 29C3 / Chaos Communication Congress of the Chaos Computer Club.

    Because I have not found and photos online:
    This is what the Necomimi EEG toy looks like on the inside.
    Below the sticker. Are 4 PH0 bolts.
    A main PCB on top of a breakout-board and a

    The large breakout PCB is secured by 2 PH00 bolts.
    This is the 60Hz US Version.
    Beware of the third PH00 securing the tiny main board below.

    The main board looks to be a
    Thinkgear TGAM1

    So to convert the notch filter to european 50Hz interference:
    "Tie the M pad to VCC pad to select 60Hz, and to GND pad to select 50Hz notch Filtering frequency."
    The M pad being on the hidden side of the board.
    M=TP7 has 100KOhm to P4-1(square)=VCC and 1MOhm to P4-2(round)=GND .
    So M is indeed tied to VCC for 60Hz.
    B1=GND
    B0=VCC
    So we have " 57.6k Baud with Normal* + Raw Output Mode"
    "Normal Output mode includes the following output: poor quality value, EEG value, Attention value and Meditation value.".
    Thus maybe it's enoug to sniff the existing serial communication instead of replacing/reprogramming the original microcontroller.

    There is a surprisingly large solder-bridge below TP1 and R12. No idea about it's purpose.


    Interestingly P4=power is not connected. Instead the GND and VCC on P3=serial communication are used.
    All test points are easily accessible, so attaching a microcontroller should be easy.

    I don't know if the boards are permanently connected or if this is a very tight socket as there is some black plastic beweet the board where they connect.
    I also can't see the microcontroller used as it's hidden by the TGAM1 board.
    ...stay tuned (My Multimeter battery is dead, so I can't continue to check how the solder bridges are wired.)

    The protocol seems to be 57600bps UART at 3.3V as documented and is described here and here linking here.
    (frame structure: 2x 0xAA sync, 1x payload-length, payload, 1 byte checksum (sum payload, lowest 8 bit, inverted))

    18.12.12

    2012-12-15

    3d printed vacuum cleaner attachment for CNC done

    I finally got around to actually mounting this.
    Works great!
    Sits super tight and sucks like hell even without brush brisles added yet.

    Maybe some day I'll add LED lights and a mounting for a cheap USB endoscope camera.
    ...or you can do that as the design is published under CC-BY-NC-SA.
    It's paramtric, so you can easily change the meassurements to fit different spindles and vacuum cleaners.



      2012-12-11

      Thing-o-Matic 3rd dino

      The Z stage of the Thing-o-Matic has 2 unused mounting holes in the back.
      Yet it only supports it's heavy extruder from the left and right using long levers.

      When transporting the ToM in a vibrating vessel, maybe even non-upright, there is lots of stress on these tiny bolts.
      (Think of having it on it's back in the overhead compartment of a train.)

      So I designed this to support the extruder stepper from the back with a third "dino".

      License: Creative Commons CC-BY-SA (no -NC)
      11.12.12

      2012-12-10

      Parametric tablet stand

      I just mounted a selfmade 0.025mm thick titanium conveyor belt with Kapton surface to the smaller one of my 3d printers.  ..works great!


      One of the first things I printed with it was this:
      I really like Nexus7 Stand by Parametric Design but I wanted some changes.
      Using the stand in a train I found the viewing angle to be too steep.
      It's also very small. So the headphone cable on one side of the (landscape) tablet pulls it away.

      Thus I made a parametric stand.
      One that has 2 slots to use the tablet in 2 different viewing angles and that is wider.
      Both angles and the sizes are asjustable before it's 3d printed.
      And yes, it does carry it's own Thingiverse ID engraved.




      2012-12-10 Titanium belt and parametric Nexus7 stand

      2012-12-06

      The Long List of Google+ Issues


      This started as a looong Google+ comment.

      Android app still sucks. Here is why: (long list)
      Apart from the already mentioned things it has major issues with notifications and bad networks.

      Like you clicking on a notification about a new comment... And it silently fails, showing just the comments it already loaded, not informing you that there are a dozen other ones it failed to load.

      Why can't you add additional circles to share a posting with after it's posted?

      And of cause that notification is gone forever once clicked.
      No matter if it actually succeeded in loading the content you are being notified about.
      ... So much for transactions.

      Notifications between multiple Android devices and the web (with the Nexus7 and 10 tablet usage grew even stronger)

      Why is there still no Google+ for GoogleTV?
      It's so image centric that it's unusable for reading the texts on tablets (the background image has higher priority then the few bytes of comments), yet it needs to be sideloaded=pirated for the big screen of a GoogleTV.

      And images not being zomable in the web?
      The larger your physical screen is, the less you are able to read text in images.

      Having to log out and in In the Android client all the time because it does notify only for that one account and one page?
      What's the point of having e.g. a GoogleTV or a tablet that's shared between people? People having work and private accounts! Discouraging the Businesses that spend tons of money in Google advertisement and want to work "on social". Be agile. React fast to follower comments and posts!

      Still no API!
      Not a single multi-protocol twitter client can integrate Google+ and give people a smooth way to move over by cross posting for a while, their posts becoming longer and more image-heavy then Twitter allows and finally leaving Twitter for Google+.
      Your competitor is Twitter, not so much Facebook!

      There is not even an account and page selector in the "share with" activity of the Google Plus app.
      Very bad user experience. 
      You have to select and download and type content again because you suddenly notice that your Google+ app is currently in the Page instead of the account or the personal instead of some after-dark account.

      What's the issue with *Nicknames*?
      I can't find people that I have known for years because I know them by their nicknames. I have no clue and I don't care about their "real names".
      They don't want me to know their real name and for good reason!
      PS: in the Android contacts app it doesn't fine people when I search for their nickname entered in gmail-web as "nickname: _____" in addition to their real name that I don't know from the top of my head because I only use it for paper-mail and door-bells.

      *Image ordering*!

      The ability to *add additional images* to your last post. Not making all images you could possibly need, then typing, then sending, then finding out you are missing one but only being able to edit the text.
      (It's already an improvement that you can edit texts you entered on the phone in the web. Previously they turned up empty when you hit "edit".)

      Why isn't *Blogger* better integrated into Google+ ?
      Google+ is microblogging, Blogger is (macro)blogging.
      I can inform people here about a blog-post but I can't turn a microblog-posting that gets too long into a full blog post.
      I *can't copy&paste* because all + and # will be removed from the text, garbling the text beyond recognition!

      Don't get me started on how poorly practucally all Google Android software is tested on slow and unreliable networks.

      Every Twitter client stores a posting you send and *retries* until it can upload. Google+ doesn't. It forces you to keep the Google+ client open, thus highjacking your phone until network stabilizes enough to send out the posting.

      Edit the posting you just sent due to a type? The one that's still in memory?
      You have to load it from the network again!

      When you use multi-signin on the web and select menu->link to this post?
      It keeps the /0/ and /1/ in your link. So you can't jsut paste that link anywhere because if this happens to be your work account /1/, people clicking that link will get a login screen instead of the posting.

      The Google+ web site fails terribly when Ajax responses are login-pages injected by hotspots you're passing by. It doesn't retry and you have to load all that heavy, bandwidth eating imagery again! While not a bug in Google+ it is becomming very common and should be dealt with in error handling code soon.

      Oh and there is no reasonable place to give bug reports like these...


      2012-12-05

      testing asymetric speeds per 3d printer axis

      Since I mounted my new extruder and replaced that unreliable Makerbot MK6 junk,
      my Thing-o-Matic got much more reliable.
      I can actually think about larger prints again.
      It cannot possibly reach the speeds of stare of the art printers like the Ultimater (lightweigth Bowden-Extruder and Y stepper not moving a heavy X stage) or the Type 1 (strong longneck stepper motors).

      Testing a long pause


      Today I tested doing long running prints by simply doing a pause.
      Pause while bed and extruder are kept warm works well.
      A pause with both cooled down mid print for 9 hours had the undesired effect I expected. The ABP belt cooled down and the object fell of.

      Testing asymetric speeds


      So now I'm trying to speed up the print job instead.
      30mm/s worked fine.
      60mm/s worked fine too and has become my new default speed. (Twice what I had for 2 years now.)
      At 90mm/s and 120mm/s the Y stepper lost steps. It has to push around the X stage, so it bears the most heavy load.
      Now I tightened everything down and greased the Y axis with PTFE.
      I'm trying to limit the Y axis to 80mm/s via machines.xml
      (Value ius "4800" because the unit in there is mm/MINUTE while everything else uses mm/SECOND.)
      At the same time the X axis is allowed to move at 120mm/s extruding and 150mm/s travelling.

      ...let's see how this works out!
      Print time estimation changed from 1h40m zu 1h1m .

      Fist result: FAILED
      ReplicatorG seems to generate correct g-code that stays below the maximum speed on each axis.
      However when executing it, movements that specify multiple axis (as is the default in 5G = use of G1 commands with 5 arguments covering all 3 axis + extruder + speed) some sanity checking code comes in and disallows the movement. Even though the slower Y axis isn't moved in the command or it's part of the motion-vector is below it's per-axis limit while the total speed is above the limit.

      That test is a bug in ReplictorG and can be disabled with the preferences setting
      "[ ] Review GCode for potential toolhead problems before building"

      Second result: FAILED

      X at 120mm/s
      Y at  80mm/s
      Error message disabled.

      Made a proper bug report and submitted a patch for the Line 420 in replicatorg/machine/Machine.java at http://replicat.org/reporting-bugs .
      "We should have a response for you within one business day"
      ...let's see about that.
      Answer a few hours later:
      Ben McCallum, Dec 05 15:02 (EST):
      Hey Marcus, Thanks for the email. I'll pass this along to the devs. Best, Ben
      Update: One week later I need to "update" my ticket so it won't be automatically closed because nobody acted on it.

      The second layer was nearly 5cm off due to lost steps on the X axis. It seems that X cannot go to 120mm/s either.


      Third result: 


      Limiting both axis to 80mm/s now.
      Layer height increased from 0.27 to 0.4mm to reduce layer count and thus print time.
      No larger nozzle to test with. ;)

      I think I need some kind of wire card or cable drag chain for the ABP platform.
      The cables are shaking loose at these speeds.
      (Already tighened a lot of bolts. They'll have to get nylocs. That threatment helped with nuts shaking loose on my beloved RepMan. However tiny M3 nylocs will be expensive and hard to find compared to common M5.)

        


      I'm not sure if this is the X axis skipping or of a cable from the ABP platform got entangled and prevented the platform from moving in X.
      I secured the cables with tape and will try again.
      At 80mm/s.

      Fourth result:

      Looks like when you use all of the tiny 100x100mm platform, the X+ end switch cable and the ABP cables do touch and can entangle.
      Given that the steppers have much less force at higher speeds, my hypothesis may be correct.
      If there was X skipping, I should have seen it happen much more often and not all at once.

      ...still printing.
      This is a >1h print. Both to get the part done (an upgrade to my CNC) and to get reliable results by printing for a long time.

      Lost a lot of steps in Y but none in X.


      It's getting late.
      Premature results:
      maximum speed for X: 80mm/s
      maximum speed for Y: 64mm/s

      Maybe X can go up to 100 or 120mm/s. That remains to be tested.
      Increasing layer height from 0.27mm to 0.5mm had issues with convex surface details but generally works.