enhering

Forum Replies Created

Viewing 15 posts - 1 through 15 (of 15 total)
  • Author
    Posts
  • in reply to: Connecting TinyG to Laser (L-Cheapo) #7834
    enhering
    Member

    One question: Does TinyG have a second PWM output, or only the spindle one?
    I’d like to use a second one to control laser power.

    in reply to: Connecting TinyG to Laser (L-Cheapo) #7833
    enhering
    Member

    I have posted the latest laser results here:

    http://gabuleu.blogspot.fr

    The 0.5W is producing nice results against a black ink covered PCB.

    in reply to: Connecting TinyG to Laser (L-Cheapo) #7809
    enhering
    Member

    jlauer,

    Thank you for your suggestion. I implemented it using boost::regex and now I can activate a LASER MODE on the program. If activated it translates the Z movements as coolant ON/OFF.

    Wed-03.06.2015-20:19 (001.008086 s): (GCodeSender)  LASER MODE: GCode is G1Z-0.6943F50.0
    Wed-03.06.2015-20:19 (000.003339 s): (GCodeSender)  LASER MODE: Z instruction found.
    Wed-03.06.2015-20:19 (000.003266 s): (GCodeSender)  LASER MODE: Substituted GCode is G1F50.0
    Wed-03.06.2015-20:19 (000.003265 s): (GCodeSender)  Sent: {rx:n}
    Wed-03.06.2015-20:19 (000.053243 s): (GCodeSender)  Received: {"r":{"rx":254},"f":[1,0,7,2570]}
    Wed-03.06.2015-20:19 (000.003262 s): (GCodeSender)  Sent: {"gc":"G1F50.0"}
    Wed-03.06.2015-20:19 (000.003434 s): (GCodeSender)  Sent: {rx:n}
    Wed-03.06.2015-20:19 (000.053341 s): (GCodeSender)  Received: "r":{},"f":[1,0,17,76]}
    Wed-03.06.2015-20:19 (000.004451 s): (GCodeSender)  Sent: {rx:n}
    Wed-03.06.2015-20:19 (000.053482 s): (GCodeSender)  Received: {"r":{"rx":254},"f":[1,0,7,2570]}
    Wed-03.06.2015-20:19 (000.003367 s): (GCodeSender)  Sent: {"gc":"M07"}
    

    Instead of using a specify program for generating GCode from GERBER files, I decided to follow the following workflow:

    1 – Draw your board, export the layers to GERBER format;
    2 – Open gerbv, installed on a Mac through MacPorts, load the GERBER layer and export it to PNG;
    3 – Open MeshCAM, load the PNG layer, set the Z thickness to 0.1mm and set black to +Z. Follow the normal procedure and generate a tollpath only with the pencil pass. Save the G-Code to a file;
    4 – Send the GCode file to your CNC machine.

    In this way I get a GCode sequence that does the insulation milling around the circuit paths.

    Everything seems ready to test, but I still have to wire the laser to the driver and the driver to TinyG. When I have the first results I can post them here if you wish.

    Thanks again for your kind attention.

    Best regards,

    Eduardo

    in reply to: Communication issue with TinyG #7808
    enhering
    Member

    Hi jlauer and Moderator!

    Thank you for the suggestions. I’ll think about them. I just won’t change anything now because the code is working well. I could solve the problems that were holding me back and the GCode is being sent to the CNC respecting the queue buffer size and the rx buffer size. I can monitor the log while the job is done and now I see no issues.

    I have also finished implementing a simple GCode translator using boost::regex to turn a laser on and off every time I get a Z+xx or a Z-xx instruction. As I connected the laser driver TTL input to the coolant port of TinyG, I can use this translation to drive the laser on and off while sending a PCB design to the machine. I plan to use the laser to burn a black ink layer over the PCB and, then, to drill the PCB holes and cuts using the spindle.

    If I run into more communications trouble I’ll seriously consider using JSON server. If not, I’ll keep using my own libraries.

    Regarding the reply from the moderator, my serial reading function blocks the program execution until it finds a specified character, in my case a \n. Another reading function blocks execution until the nothing is left to be read. As they hold the execution until the condition is satisfied (or a timeout is reached), they are considered blocking reads.

    I also have not invested any time in a GUI. I used ncurses for a very, very simple text mode interface with one key menu options that control the machine, file sending, laser mode, simulation mode, offset control etc. The most comfortable characteristic of my solution (for me) is that I can control what, and in which order, I send to the machine in the setup cycle. And I can follow the ins and outs from the log file, with microsecond resolution delay measurements.

    I am not rejecting your solutions. I just move faster developing the needed solutions in my own code. In this case, I’m using the serial communication libraries that I developed (or customised) for other micro controller projects or for communicating with laboratory instrumentation. But the regex modules came from boost and the JSON parser came from libJSON.

    Thanks again for your help, your time and your consideration.

    in reply to: Connecting TinyG to Laser (L-Cheapo) #7792
    enhering
    Member

    Thanks, jlauer.

    I have just found this:

    Shapeoko 1 and 2 CNC Upgrade

    in reply to: Connecting TinyG to Laser (L-Cheapo) #7790
    enhering
    Member

    Please let me add some more information:

    10 – If the LD driver is controlled by a digital TTL signal, the laser can be either ON or OFF;

    11 – If you plan to engrave a picture into a piece of wood, for example, the picture should be transformed into a dithered picture;

    12 – I’m not sure about this: In dithered picture we have big and small dots. If so, bigger dots should be translated into more laser power, but we do not have power control in digital TTL LD drivers so it would be useful to find a way to emulate more power using constant power;

    13 – I’d like to believe that the higher power needed can be translated into a higher integrated laser intensity, i.e., instead of modulating the laser power we leave the laser on, over the same spot, for a longer time;

    14 – But this would rely on a good timing control on the TinyG, and the TinyG was not built to count the time between events. I believe it has not. So what else can I do? Maybe the bigger dots can be translated into deepness. In this way, if the dot is bigger, the CNC machine would act as if it should move the spindle into the material. By setting the plug rate to a small value, if a dot is big the z-axis would be moved slowly down and this would give us the time control we need to illuminate that spot for a longer time and make a darker print in the material;

    15 – The solution proposed on the last item may be employed through a CAM software such as MeshCAM, but there are others, many free. But not all others run, well or not, on a Mac.

    For now, that is all I got.

    in reply to: Connecting TinyG to Laser (L-Cheapo) #7789
    enhering
    Member

    Hi.

    I’m bringing some insights to this discussion:

    0 – I have a ShapeOko2 fitted with a few upgrades;

    1 – My controller is a TinyG. It was bought in December 2014;

    2 – I bought the following items from eBay to build 2 diode lasers:

    Personal protection:
    111416683541 Protective Goggles for Violet/Blue 200-450/800-2000nm

    Laser diode mount (very good):
    181095664813 3 pack 12x30mm Copper 5.6mm LD Mount Module & Press Tool

    Support for laser mount that fits easily to ShapeOko2:
    161259035015 12mm SK12 Linear Rail Shaft Guide

    Heatsink to prevent overheating:
    231319696413 Heatsink/ Heat Sink for 12mm Laser Diode Module

    405nm laser:
    120894912588 New 405nm-410nm 120mW TO18 5.6mm Sony Laser Diode
    400520360369 405nm 50mw-400mw Violet/Blue Laser Driver 12V with TTL
    261553641530 Power Supply AC 100-240V To DC 12V 2A
    180715232691 445nm 405nm Three Element Glass Lens for Aixiz Module

    808nm laser:
    260834691532 808nm 500mW 5.6mm TO-18 Infrared IR Laser Diode No PD
    330875517474 Laser Diode Driver for 808nm&532nm +660nm with TTL
    221572050124 AC Converter Adapter DC 5V 3A
    261230108802 808nm 3 layer Glass Laser Collimation Lens

    3 – Both laser diode (LD) drivers support TTL, on/off, control with switching frequency up to 20kHz;

    4 – Only one of the lasers will be installed at a time on the machine;

    5 – The LD driver can be connected to TinyG via, for example, the coolant control;

    6 – I’d like to use the setup to burn the ink over black painted PCBs, or just to impress a photoresist coated PCB, whichever works better. After drawing an insulation path over the PCB, I will use the ShapeOko2 Spindle to drill the holes and to cut out the PCB;

    7 – I have mounted the laser on one side of the ShapeOko2 part that holds the spindle, while the spindle is mounted on the opposite side, as a regular ShapeOko2 is built;

    8 – GCode needs to be generated from the product of a PCB design program such as Eagle. Usually Eagle output is in the gerber format and gerber can be translated to GCode. One way of doing it is by using the Cirqoid open source solution. I believe it is called cirQWizard;

    9 – BUT, whatever is the format of the GCode produced, the laser on/laser off commands needs to be translated to the commands that effectively control the laser module TTL switch. In this example, every time the TinyG control program sees a LASER ON/LASER OFF command, it should substitute that command for a COOLANT ON/COOLANT OFF command.

    These are my contributions to the topic at this moment. If you find them useful or you can contribute to them, please comment. Thanks.

    in reply to: Communication issue with TinyG #7779
    enhering
    Member

    You mean a blocking read? I will try that then.

    How long should I wait to read after writing? Can it be consecutive?

    Edit: I usually read until a \n. I can also read until the buffer is empty, but I’m afraid this can mix messages on a race condition.

    • This reply was modified 9 years, 5 months ago by enhering.
    in reply to: Communication issue with TinyG #7773
    enhering
    Member

    Hi Alden!

    I’d like to thank you and the moderator for your helpful comments. And to apologise for the long files.

    I suspected I was writing too fast without waiting enough for the controller to answer the last request. But I was afraid of using a too long delay, so I never increased it above 30ms. I’ll try 50ms now.

    But I could find another solution to the problem and the code is working fine without increasing that delay. To make it work I implemented the following procedures:

    1 – I flush the serial port before I write anything;
    2 – My write functions have a boolean parameter that specifies if the message requires an answer or not;
    3 – If the written message requires an answer, the answer goes to the JSON parser;
    4 – If the parser finds an ‘err’, it sets a flag and the message is retransmitted to the controller after a small delay;
    5 – Before transmitting any message I check for the rx buffer size;
    6 – When sending GCode instructions from a file, I first check the rx buffer, then I check the queue size, than I transmit the GCode;
    7 – If the queue availability is 10 or less, I do not send any more GCode;
    8 – I only send a qr after, at least, 50ms have passed from the last qr;
    9 – I never expect answers from GCodes.

    In this way, I still get some errors and some empty reports, but the transmission is repeated until the parser gets a good answer. I hope the retransmission rate falls to zero when I increase the delay between two consecutive commands.

    Now the best news is that the code is running on MacOS Yosemite and on a RaspberryPi. On the Pi I could run it through SSH. As the (poor, not mature) interface is in text mode, no unnecessary complexity was added to the program.

    Thanks again for your kind attention.

    in reply to: Communication issue with TinyG #7762
    enhering
    Member

    Hi again!

    Can you please shine some light on the problem below?

    I’ve implemented a rx buffer availability checking before sending a command to TinyG, but sometimes it returns an error without any information about what happened:

    Fri-29.05.2015-13:49 (000.003381 s): (GCodeSender)  Sent: {"p1csh":10000}
    Fri-29.05.2015-13:49 (000.041353 s): (GCodeSender)  Received: {"r":{"p1csh":10000},"f":[1,0,16,5892]}
    Fri-29.05.2015-13:49 (000.003148 s): (GCodeSender)  Sent: {rx:n}
    Fri-29.05.2015-13:49 (000.005354 s): (GCodeSender)  Received: {"r":{"rx":254},"f":[1,0,7,2570]}
    Fri-29.05.2015-13:49 (000.003084 s): (GCodeSender)  Sent: {"p1cpl":0}
    Fri-29.05.2015-13:49 (000.040352 s): (GCodeSender)  Received: {"r":{"p1cpl":0.000},"f":[1,0,12,9585]}
    Fri-29.05.2015-13:49 (000.003130 s): (GCodeSender)  Sent: {rx:n}
    Fri-29.05.2015-13:49 (000.005208 s): (GCodeSender)  Received: {"r":{"rx":254},"f":[1,0,7,2570]}
    Fri-29.05.2015-13:49 (000.003145 s): (GCodeSender)  Sent: {"p1cph":1}
    Fri-29.05.2015-13:49 (000.040516 s): (GCodeSender)  Received: {"r":{"p1cph":1.000},"f":[1,0,12,9314]}
    Fri-29.05.2015-13:49 (000.003065 s): (GCodeSender)  Sent: {rx:n}
    Fri-29.05.2015-13:49 (000.005284 s): (GCodeSender)  Received: {"r":{"rx":254},"f":[1,0,7,2570]}
    Fri-29.05.2015-13:49 (000.003055 s): (GCodeSender)  Sent: {"p1pof":0}
    Fri-29.05.2015-13:49 (000.040359 s): (GCodeSender)  Received: {"r":{"p1pof":0.000},"f":[1,0,12,6665]}
    Fri-29.05.2015-13:49 (000.003368 s): (GCodeSender)  Sent: {rx:n}
    Fri-29.05.2015-13:49 (000.004980 s): (GCodeSender)  Received: {"r":{"rx":254},"f":[1,0,7,2570]}
    Fri-29.05.2015-13:49 (000.003170 s): (GCodeSender)  Sent: G21
    Fri-29.05.2015-13:49 (013.060834 s): (GCodeSender)  Sent: {rx:n}
    Fri-29.05.2015-13:49 (000.003453 s): (GCodeSender)  Received: {"r":{},"f":[1,0,4,4397]}
    Fri-29.05.2015-13:49 (000.003071 s): (GCodeSender)  Sent: {rx:n}
    Fri-29.05.2015-13:49 (000.005004 s): (GCodeSender)  Received: {"r":{"rx":254},"f":[1,0,7,2570]}
    Fri-29.05.2015-13:49 (000.003129 s): (GCodeSender)  Sent: G28.2 X0 Y0 Z0
    Fri-29.05.2015-13:49 (015.-79402 s): (GCodeSender)  Sent: {rx:n}
    Fri-29.05.2015-13:49 (000.003304 s): (GCodeSender)  Received: {"r":{},"f":[1,0,15,74]}
    Fri-29.05.2015-13:49 (000.003716 s): (GCodeSender)  Sent: {rx:n}
    Fri-29.05.2015-13:49 (000.005409 s): (GCodeSender)  Received: {"r":{"rx":254},"f":[1,0,7,2570]}
    Fri-29.05.2015-13:49 (000.003260 s): (GCodeSender)  Sent: G10 L2 P1 X3.6 Y0 Z0
    Fri-29.05.2015-13:49 (000.003307 s): (GCodeSender)  Sent: {rx:n}
    Fri-29.05.2015-13:49 (000.036814 s): (GCodeSender)  Received: {"r":{},"f":[1,0,21,101]}
    Fri-29.05.2015-13:49 (000.003079 s): (GCodeSender)  Sent: {rx:n}
    Fri-29.05.2015-13:49 (000.005708 s): (GCodeSender)  Received: {"r":{"err":"{r"},"f":[1,108,3,7863]}
    Fri-29.05.2015-13:49 (000.003230 s): (GCodeSender)  Sent: {rx:n}
    Fri-29.05.2015-13:49 (000.005013 s): (GCodeSender)  Received: 

    Thank you for your patience.

    Eduardo

    in reply to: Communication issue with TinyG #7744
    enhering
    Member

    I’m posting here the log file of my last try, in case you are interested in seeing how the answers from qr requests are coming:

    This is the initialisation part:

    Sun-24.05.2015-21:48 (000.000002 s): (GCodeSender)  Starting GCodeSender.
    Sun-24.05.2015-21:48 (000.008025 s): (GCodeSender)  Parsing config file
    Sun-24.05.2015-21:48 (000.015359 s): (GCodeSender)  Serial port opened successfully
    Sun-24.05.2015-21:48 (000.001929 s): (GCodeSender)  Serial port configured successfully.
    

    This is the setup part:

    Sun-24.05.2015-21:48 (003.-913145 s): (GCodeSender)  Sent: {defa:1}
    Sun-24.05.2015-21:48 (002.555374 s): (GCodeSender)  Received: {"r":{"fv":0.970,"fb":438.02,"hp":1,"hv":8,"id":"3X3566-GHM","msg":"Initializing configs t
    Sun-24.05.2015-21:48 (000.105622 s): (GCodeSender)  Sent: {"ja":2000000}
    Sun-24.05.2015-21:48 (000.053070 s): (GCodeSender)  Received: {"r":{"ja":2000000},"f":[1,0,15,558]}
    Sun-24.05.2015-21:48 (000.000559 s): (GCodeSender)  Sent: {"st":1}
    Sun-24.05.2015-21:48 (000.049497 s): (GCodeSender)  Received: {"r":{"st":1},"f":[1,0,9,9723]}
    Sun-24.05.2015-21:48 (000.000502 s): (GCodeSender)  Sent: {"mt":10}
    Sun-24.05.2015-21:48 (000.045426 s): (GCodeSender)  Received: {"r":{"mt":10},"f":[1,0,10,3997]}
    Sun-24.05.2015-21:48 (000.000486 s): (GCodeSender)  Sent: {"ej":1}
    Sun-24.05.2015-21:48 (000.015483 s): (GCodeSender)  Received: {"r":{"ej":1},"f":[1,0,9,2005]}
    Sun-24.05.2015-21:48 (000.000469 s): (GCodeSender)  Sent: {"jv":1}
    Sun-24.05.2015-21:48 (000.048552 s): (GCodeSender)  Received: {"r":{"jv":1},"f":[1,0,9,4386]}
    Sun-24.05.2015-21:48 (000.000478 s): (GCodeSender)  Sent: {"js":1}
    Sun-24.05.2015-21:48 (000.015485 s): (GCodeSender)  Received: {"r":{"js":1},"f":[1,0,9,93]}
    Sun-24.05.2015-21:48 (000.000434 s): (GCodeSender)  Sent: {"tv":1}
    Sun-24.05.2015-21:48 (000.015581 s): (GCodeSender)  Received: {"r":{"tv":1},"f":[1,0,9,4294]}
    Sun-24.05.2015-21:48 (000.000435 s): (GCodeSender)  Sent: {"qv":0}
    Sun-24.05.2015-21:48 (000.015601 s): (GCodeSender)  Received: {"r":{"qv":0},"f":[1,0,9,8355]}
    Sun-24.05.2015-21:48 (000.000482 s): (GCodeSender)  Sent: {"sv":0}
    Sun-24.05.2015-21:48 (001.-952492 s): (GCodeSender)  Received: {"r":{"sv":0},"f":[1,0,9,1603]}
    Sun-24.05.2015-21:48 (000.000484 s): (GCodeSender)  Sent: {"si":1000}
    Sun-24.05.2015-21:48 (000.047522 s): (GCodeSender)  Received: {"r":{"si":1000},"f":[1,0,12,6454]}
    Sun-24.05.2015-21:48 (000.000484 s): (GCodeSender)  Sent: {"ec":1}
    Sun-24.05.2015-21:48 (000.047516 s): (GCodeSender)  Received: {"r":{"ec":1},"f":[1,0,9,8653]}
    Sun-24.05.2015-21:48 (000.000535 s): (GCodeSender)  Sent: {"ee":0}
    Sun-24.05.2015-21:48 (000.015415 s): (GCodeSender)  Received: {"r":{"ee":0},"f":[1,0,9,533]}
    Sun-24.05.2015-21:48 (000.000450 s): (GCodeSender)  Sent: {"ex":1}
    Sun-24.05.2015-21:48 (000.015589 s): (GCodeSender)  Received: {"r":{"ex":1},"f":[1,0,9,2379]}
    Sun-24.05.2015-21:48 (000.000443 s): (GCodeSender)  Sent: {"1ma":0}
    Sun-24.05.2015-21:48 (000.015546 s): (GCodeSender)  Received: {"r":{"1ma":0},"f":[1,0,10,7975]}
    Sun-24.05.2015-21:48 (000.001141 s): (GCodeSender)  Sent: {"1sa":1.8}
    Sun-24.05.2015-21:48 (000.014832 s): (GCodeSender)  Received: {"r":{"1sa":1.800},"f":[1,0,12,328]}
    Sun-24.05.2015-21:48 (000.000464 s): (GCodeSender)  Sent: {"1tr":40}
    Sun-24.05.2015-21:48 (000.047586 s): (GCodeSender)  Received: {"r":{"1tr":40.0000},"f":[1,0,11,2474]}
    Sun-24.05.2015-21:48 (000.000481 s): (GCodeSender)  Sent: {"1mi":8}
    Sun-24.05.2015-21:48 (000.015635 s): (GCodeSender)  Received: {"r":{"1mi":8},"f":[1,0,10,7984]}
    Sun-24.05.2015-21:48 (000.000406 s): (GCodeSender)  Sent: {"1po":1}
    Sun-24.05.2015-21:48 (000.047472 s): (GCodeSender)  Received: {"r":{"1po":1},"f":[1,0,10,2653]}
    Sun-24.05.2015-21:48 (000.000496 s): (GCodeSender)  Sent: {"1pm":0}
    Sun-24.05.2015-21:48 (000.047514 s): (GCodeSender)  Received: {"r":{"1pm":0},"f":[1,0,10,1756]}
    Sun-24.05.2015-21:48 (000.000762 s): (GCodeSender)  Sent: {"2ma":1}
    Sun-24.05.2015-21:48 (000.015311 s): (GCodeSender)  Received: {"r":{"2ma":1},"f":[1,0,10,2463]}
    Sun-24.05.2015-21:48 (000.000486 s): (GCodeSender)  Sent: {"2sa":1.8}
    Sun-24.05.2015-21:48 (000.015567 s): (GCodeSender)  Received: {"r":{"2sa":1.800},"f":[1,0,12,2462]}
    Sun-24.05.2015-21:48 (000.000460 s): (GCodeSender)  Sent: {"2tr":40}
    Sun-24.05.2015-21:48 (000.047611 s): (GCodeSender)  Received: {"r":{"2tr":40.0000},"f":[1,0,11,2225]}
    Sun-24.05.2015-21:48 (000.001072 s): (GCodeSender)  Sent: {"2mi":8}
    Sun-24.05.2015-21:48 (000.014846 s): (GCodeSender)  Received: {"r":{"2mi":8},"f":[1,0,10,1658]}
    Sun-24.05.2015-21:48 (000.000434 s): (GCodeSender)  Sent: {"2po":1}
    Sun-24.05.2015-21:48 (000.047615 s): (GCodeSender)  Received: {"r":{"2po":1},"f":[1,0,10,6326]}
    Sun-24.05.2015-21:48 (000.001092 s): (GCodeSender)  Sent: {"2pm":0}
    Sun-24.05.2015-21:48 (000.046963 s): (GCodeSender)  Received: {"r":{"2pm":0},"f":[1,0,10,5429]}
    Sun-24.05.2015-21:48 (000.001069 s): (GCodeSender)  Sent: {"3ma":2}
    Sun-24.05.2015-21:48 (000.015099 s): (GCodeSender)  Received: {"r":{"3ma":2},"f":[1,0,10,3786]}
    Sun-24.05.2015-21:48 (000.000434 s): (GCodeSender)  Sent: {"3sa":1.8}
    Sun-24.05.2015-21:48 (000.015281 s): (GCodeSender)  Received: {"r":{"3sa":1.800},"f":[1,0,12,1432]}
    Sun-24.05.2015-21:48 (000.000389 s): (GCodeSender)  Sent: {"3tr":2.116}
    Sun-24.05.2015-21:48 (000.048683 s): (GCodeSender)  Received: {"r":{"3tr":2.1160},"f":[1,0,14,351]}
    Sun-24.05.2015-21:48 (000.001012 s): (GCodeSender)  Sent: {"3mi":4}
    Sun-24.05.2015-21:48 (000.047628 s): (GCodeSender)  Received: {"r":{"3mi":4},"f":[1,0,10,5239]}
    Sun-24.05.2015-21:48 (000.000336 s): (GCodeSender)  Sent: {"3po":1}
    Sun-24.05.2015-21:48 (000.046837 s): (GCodeSender)  Received: {"r":{"3po":1},"f":[1,0,10,0]}
    Sun-24.05.2015-21:48 (000.000465 s): (GCodeSender)  Sent: {"3pm":0}
    Sun-24.05.2015-21:48 (000.047544 s): (GCodeSender)  Received: {"r":{"3pm":0},"f":[1,0,10,9102]}
    Sun-24.05.2015-21:48 (000.000480 s): (GCodeSender)  Sent: {"4ma":3}
    Sun-24.05.2015-21:48 (000.015490 s): (GCodeSender)  Received: {"r":{"4ma":3},"f":[1,0,10,8273]}
    Sun-24.05.2015-21:48 (000.000464 s): (GCodeSender)  Sent: {"4sa":1.8}
    Sun-24.05.2015-21:48 (000.015541 s): (GCodeSender)  Received: {"r":{"4sa":1.800},"f":[1,0,12,402]}
    Sun-24.05.2015-21:48 (000.000456 s): (GCodeSender)  Sent: {"4tr":360}
    Sun-24.05.2015-21:48 (000.015583 s): (GCodeSender)  Received: {"r":{"4tr":360.0000},"f":[1,0,12,6186]}
    Sun-24.05.2015-21:48 (000.000414 s): (GCodeSender)  Sent: {"4mi":8}
    Sun-24.05.2015-21:48 (000.015560 s): (GCodeSender)  Received: {"r":{"4mi":8},"f":[1,0,10,9004]}
    Sun-24.05.2015-21:48 (000.000459 s): (GCodeSender)  Sent: {"4po":0}
    Sun-24.05.2015-21:48 (000.015519 s): (GCodeSender)  Received: {"r":{"4po":0},"f":[1,0,10,2859]}
    Sun-24.05.2015-21:48 (000.000460 s): (GCodeSender)  Sent: {"4pm":0}
    Sun-24.05.2015-21:48 (000.047550 s): (GCodeSender)  Received: {"r":{"4pm":0},"f":[1,0,10,9611]}
    Sun-24.05.2015-21:48 (000.000479 s): (GCodeSender)  Sent: {"xam":1}
    Sun-24.05.2015-21:48 (000.015600 s): (GCodeSender)  Received: {"r":{"xam":1},"f":[1,0,10,9624]}
    Sun-24.05.2015-21:48 (000.000507 s): (GCodeSender)  Sent: {"xvm":1000}
    Sun-24.05.2015-21:48 (000.047447 s): (GCodeSender)  Received: {"r":{"xvm":1000},"f":[1,0,13,9222]}
    Sun-24.05.2015-21:48 (000.000594 s): (GCodeSender)  Sent: {"xfr":1000}
    Sun-24.05.2015-21:48 (000.047375 s): (GCodeSender)  Received: {"r":{"xfr":1000},"f":[1,0,13,4533]}
    Sun-24.05.2015-21:48 (000.000526 s): (GCodeSender)  Sent: {"xtn":0}
    Sun-24.05.2015-21:48 (001.-982913 s): (GCodeSender)  Received: {"r":{"xtn":0.000},"f":[1,0,10,7295]}
    Sun-24.05.2015-21:48 (000.001149 s): (GCodeSender)  Sent: {"xtm":400}
    Sun-24.05.2015-21:48 (000.045265 s): (GCodeSender)  Received: {"r":{"xtm":400.000},"f":[1,0,12,3308]}
    Sun-24.05.2015-21:48 (000.000456 s): (GCodeSender)  Sent: {"xjm":5000}
    Sun-24.05.2015-21:48 (000.047514 s): (GCodeSender)  Received: {"r":{"xjm":5000},"f":[1,0,13,4786]}
    Sun-24.05.2015-21:48 (000.000430 s): (GCodeSender)  Sent: {"xjh":10000}
    Sun-24.05.2015-21:48 (000.047688 s): (GCodeSender)  Received: {"r":{"xjh":10000},"f":[1,0,14,9982]}
    Sun-24.05.2015-21:48 (000.000496 s): (GCodeSender)  Sent: {"xjd":0.01}
    Sun-24.05.2015-21:48 (000.047521 s): (GCodeSender)  Received: {"r":{"xjd":0.0100},"f":[1,0,13,9211]}
    Sun-24.05.2015-21:48 (000.000689 s): (GCodeSender)  Sent: {"xsn":3}
    Sun-24.05.2015-21:48 (000.047273 s): (GCodeSender)  Received: {"r":{"xsn":3},"f":[1,0,10,6373]}
    Sun-24.05.2015-21:48 (000.001257 s): (GCodeSender)  Sent: {"xsx":2}
    Sun-24.05.2015-21:48 (000.047800 s): (GCodeSender)  Received: {"r":{"xsx":2},"f":[1,0,10,8631]}
    Sun-24.05.2015-21:48 (000.001096 s): (GCodeSender)  Sent: {"xsv":3000}
    Sun-24.05.2015-21:48 (000.046912 s): (GCodeSender)  Received: {"r":{"xsv":3000},"f":[1,0,13,3987]}
    Sun-24.05.2015-21:48 (000.000984 s): (GCodeSender)  Sent: {"xlv":100}
    Sun-24.05.2015-21:48 (000.014954 s): (GCodeSender)  Received: {"r":{"xlv":100},"f":[1,0,12,1278]}
    Sun-24.05.2015-21:48 (000.000421 s): (GCodeSender)  Sent: {"xlb":20}
    Sun-24.05.2015-21:48 (000.047586 s): (GCodeSender)  Received: {"r":{"xlb":20.000},"f":[1,0,11,5738]}
    Sun-24.05.2015-21:48 (000.000457 s): (GCodeSender)  Sent: {"xzb":3}
    Sun-24.05.2015-21:48 (000.047600 s): (GCodeSender)  Received: {"r":{"xzb":3.000},"f":[1,0,10,3135]}
    Sun-24.05.2015-21:48 (000.000512 s): (GCodeSender)  Sent: {"yam":1}
    Sun-24.05.2015-21:48 (000.015461 s): (GCodeSender)  Received: {"r":{"yam":1},"f":[1,0,10,3298]}
    Sun-24.05.2015-21:48 (000.000876 s): (GCodeSender)  Sent: {"yvm":1000}
    Sun-24.05.2015-21:48 (000.046952 s): (GCodeSender)  Received: {"r":{"yvm":1000},"f":[1,0,13,5943]}
    Sun-24.05.2015-21:48 (000.000471 s): (GCodeSender)  Sent: {"yfr":1000}
    Sun-24.05.2015-21:48 (000.047531 s): (GCodeSender)  Received: {"r":{"yfr":1000},"f":[1,0,13,4418]}
    Sun-24.05.2015-21:48 (000.000479 s): (GCodeSender)  Sent: {"ytn":0}
    Sun-24.05.2015-21:48 (000.015513 s): (GCodeSender)  Received: {"r":{"ytn":0.000},"f":[1,0,10,6265]}
    Sun-24.05.2015-21:48 (000.000454 s): (GCodeSender)  Sent: {"ytm":400}
    Sun-24.05.2015-21:48 (000.047538 s): (GCodeSender)  Received: {"r":{"ytm":400.000},"f":[1,0,12,6223]}
    Sun-24.05.2015-21:48 (000.000475 s): (GCodeSender)  Sent: {"yjm":5000}
    Sun-24.05.2015-21:48 (000.049175 s): (GCodeSender)  Received: {"r":{"yjm":5000},"f":[1,0,13,4671]}
    Sun-24.05.2015-21:48 (000.001227 s): (GCodeSender)  Sent: {"yjh":10000}
    Sun-24.05.2015-21:48 (000.045331 s): (GCodeSender)  Received: {"r":{"yjh":10000},"f":[1,0,14,8952]}
    Sun-24.05.2015-21:48 (000.001008 s): (GCodeSender)  Sent: {"yjd":0.01}
    Sun-24.05.2015-21:48 (000.046880 s): (GCodeSender)  Received: {"r":{"yjd":0.0100},"f":[1,0,13,5757]}
    Sun-24.05.2015-21:48 (000.000473 s): (GCodeSender)  Sent: {"ysn":3}
    Sun-24.05.2015-21:48 (000.047527 s): (GCodeSender)  Received: {"r":{"ysn":3},"f":[1,0,10,47]}
    Sun-24.05.2015-21:48 (000.000460 s): (GCodeSender)  Sent: {"ysx":2}
    Sun-24.05.2015-21:48 (000.047442 s): (GCodeSender)  Received: {"r":{"ysx":2},"f":[1,0,10,9140]}
    Sun-24.05.2015-21:48 (000.000487 s): (GCodeSender)  Sent: {"ysv":3000}
    Sun-24.05.2015-21:48 (000.047547 s): (GCodeSender)  Received: {"r":{"ysv":3000},"f":[1,0,13,3872]}
    Sun-24.05.2015-21:48 (000.000638 s): (GCodeSender)  Sent: {"ylv":100}
    Sun-24.05.2015-21:48 (000.015492 s): (GCodeSender)  Received: {"r":{"ylv":100},"f":[1,0,12,3328]}
    Sun-24.05.2015-21:48 (000.000364 s): (GCodeSender)  Sent: {"ylb":20}
    Sun-24.05.2015-21:48 (000.048670 s): (GCodeSender)  Received: {"r":{"ylb":20.000},"f":[1,0,11,2284]}
    Sun-24.05.2015-21:48 (000.000996 s): (GCodeSender)  Sent: {"yzb":3}
    Sun-24.05.2015-21:48 (001.-950410 s): (GCodeSender)  Received: {"r":{"yzb":3.000},"f":[1,0,10,2105]}
    Sun-24.05.2015-21:48 (000.000500 s): (GCodeSender)  Sent: {"zam":1}
    Sun-24.05.2015-21:48 (000.012704 s): (GCodeSender)  Received: {"r":{"zam":1},"f":[1,0,10,6971]}
    Sun-24.05.2015-21:48 (000.000463 s): (GCodeSender)  Sent: {"zvm":800}
    Sun-24.05.2015-21:48 (000.015567 s): (GCodeSender)  Received: {"r":{"zvm":800},"f":[1,0,12,4554]}
    Sun-24.05.2015-21:48 (000.000461 s): (GCodeSender)  Sent: {"zfr":800}
    Sun-24.05.2015-21:48 (000.019676 s): (GCodeSender)  Received: {"r":{"zfr":800},"f":[1,0,12,7869]}
    Sun-24.05.2015-21:48 (000.000538 s): (GCodeSender)  Sent: {"ztn":0}
    Sun-24.05.2015-21:48 (000.011463 s): (GCodeSender)  Received: {"r":{"ztn":0.000},"f":[1,0,10,8399]}
    Sun-24.05.2015-21:48 (000.000622 s): (GCodeSender)  Sent: {"ztm":40}
    Sun-24.05.2015-21:48 (000.047238 s): (GCodeSender)  Received: {"r":{"ztm":40.000},"f":[1,0,11,4013]}
    Sun-24.05.2015-21:48 (000.000458 s): (GCodeSender)  Sent: {"zjm":50}
    Sun-24.05.2015-21:48 (000.047540 s): (GCodeSender)  Received: {"r":{"zjm":50},"f":[1,0,11,7847]}
    Sun-24.05.2015-21:48 (000.000475 s): (GCodeSender)  Sent: {"zjh":1000}
    Sun-24.05.2015-21:48 (000.047528 s): (GCodeSender)  Received: {"r":{"zjh":1000},"f":[1,0,13,3619]}
    Sun-24.05.2015-21:48 (000.000479 s): (GCodeSender)  Sent: {"zjd":0.01}
    Sun-24.05.2015-21:48 (000.047529 s): (GCodeSender)  Received: {"r":{"zjd":0.0100},"f":[1,0,13,2303]}
    Sun-24.05.2015-21:48 (000.000467 s): (GCodeSender)  Sent: {"zsn":3}
    Sun-24.05.2015-21:48 (000.047525 s): (GCodeSender)  Received: {"r":{"zsn":3},"f":[1,0,10,3720]}
    Sun-24.05.2015-21:48 (000.000449 s): (GCodeSender)  Sent: {"zsx":2}
    Sun-24.05.2015-21:48 (000.047545 s): (GCodeSender)  Received: {"r":{"zsx":2},"f":[1,0,10,2814]}
    Sun-24.05.2015-21:48 (000.000467 s): (GCodeSender)  Sent: {"zsv":600}
    Sun-24.05.2015-21:48 (000.047612 s): (GCodeSender)  Received: {"r":{"zsv":600},"f":[1,0,12,256]}
    Sun-24.05.2015-21:48 (000.000491 s): (GCodeSender)  Sent: {"zlv":100}
    Sun-24.05.2015-21:48 (000.015417 s): (GCodeSender)  Received: {"r":{"zlv":100},"f":[1,0,12,5378]}
    Sun-24.05.2015-21:48 (000.000469 s): (GCodeSender)  Sent: {"zlb":20}
    Sun-24.05.2015-21:48 (000.047547 s): (GCodeSender)  Received: {"r":{"zlb":20.000},"f":[1,0,11,8829]}
    Sun-24.05.2015-21:48 (000.000479 s): (GCodeSender)  Sent: {"zzb":3}
    Sun-24.05.2015-21:48 (000.047528 s): (GCodeSender)  Received: {"r":{"zzb":3.000},"f":[1,0,10,4239]}
    Sun-24.05.2015-21:48 (000.000469 s): (GCodeSender)  Sent: {"aam":0}
    Sun-24.05.2015-21:48 (000.047534 s): (GCodeSender)  Received: {"r":{"aam":0},"f":[1,0,10,145]}
    Sun-24.05.2015-21:48 (000.000491 s): (GCodeSender)  Sent: {"avm":3600}
    Sun-24.05.2015-21:48 (000.048514 s): (GCodeSender)  Received: {"r":{"avm":3600},"f":[1,0,13,2181]}
    Sun-24.05.2015-21:48 (000.000503 s): (GCodeSender)  Sent: {"afr":3600}
    Sun-24.05.2015-21:48 (000.047589 s): (GCodeSender)  Received: {"r":{"afr":3600},"f":[1,0,13,656]}
    Sun-24.05.2015-21:48 (000.000431 s): (GCodeSender)  Sent: {"atn":-1}
    Sun-24.05.2015-21:48 (000.015638 s): (GCodeSender)  Received: {"r":{"atn":-1.000},"f":[1,0,11,8801]}
    Sun-24.05.2015-21:48 (000.000885 s): (GCodeSender)  Sent: {"atm":-1}
    Sun-24.05.2015-21:48 (000.015063 s): (GCodeSender)  Received: {"r":{"atm":-1.000},"f":[1,0,11,8916]}
    Sun-24.05.2015-21:48 (000.000434 s): (GCodeSender)  Sent: {"ajm":24000}
    Sun-24.05.2015-21:48 (000.047690 s): (GCodeSender)  Received: {"r":{"ajm":24000},"f":[1,0,14,6200]}
    Sun-24.05.2015-21:48 (000.001179 s): (GCodeSender)  Sent: {"ara":1}
    Sun-24.05.2015-21:48 (000.046726 s): (GCodeSender)  Received: {"r":{"ara":1.000},"f":[1,0,10,3509]}
    Sun-24.05.2015-21:48 (000.000682 s): (GCodeSender)  Sent: {"ajh":24000}
    Sun-24.05.2015-21:48 (000.047360 s): (GCodeSender)  Received: {"r":{"ajh":24000},"f":[1,0,14,2785]}
    Sun-24.05.2015-21:48 (000.001156 s): (GCodeSender)  Sent: {"ajd":0.1}
    Sun-24.05.2015-21:48 (000.046801 s): (GCodeSender)  Received: {"r":{"ajd":0.1000},"f":[1,0,12,8937]}
    Sun-24.05.2015-21:48 (000.001113 s): (GCodeSender)  Sent: {"asn":0}
    Sun-24.05.2015-21:48 (000.046696 s): (GCodeSender)  Received: {"r":{"asn":0},"f":[1,0,10,5265]}
    Sun-24.05.2015-21:48 (000.000537 s): (GCodeSender)  Sent: {"asx":2}
    Sun-24.05.2015-21:48 (001.-952565 s): (GCodeSender)  Received: {"r":{"asx":2},"f":[1,0,10,6801]}
    Sun-24.05.2015-21:48 (000.000487 s): (GCodeSender)  Sent: {"asv":6000}
    Sun-24.05.2015-21:48 (000.047656 s): (GCodeSender)  Received: {"r":{"asv":6000},"f":[1,0,13,9728]}
    Sun-24.05.2015-21:48 (000.000391 s): (GCodeSender)  Sent: {"alv":1000}
    Sun-24.05.2015-21:48 (000.047480 s): (GCodeSender)  Received: {"r":{"alv":1000},"f":[1,0,13,3841]}
    Sun-24.05.2015-21:48 (000.001833 s): (GCodeSender)  Sent: {"alb":5}
    Sun-24.05.2015-21:48 (000.014307 s): (GCodeSender)  Received: {"r":{"alb":5.000},"f":[1,0,10,4297]}
    Sun-24.05.2015-21:48 (000.000406 s): (GCodeSender)  Sent: {"azb":2}
    Sun-24.05.2015-21:48 (000.015609 s): (GCodeSender)  Received: {"r":{"azb":2.000},"f":[1,0,10,9911]}
    Sun-24.05.2015-21:48 (000.000374 s): (GCodeSender)  Sent: {"bam":0}
    Sun-24.05.2015-21:48 (000.015711 s): (GCodeSender)  Received: {"r":{"bam":0},"f":[1,0,10,3818]}
    Sun-24.05.2015-21:48 (000.000567 s): (GCodeSender)  Sent: {"bvm":3600}
    Sun-24.05.2015-21:48 (000.015392 s): (GCodeSender)  Received: {"r":{"bvm":3600},"f":[1,0,13,2066]}
    Sun-24.05.2015-21:48 (000.000438 s): (GCodeSender)  Sent: {"bfr":3600}
    Sun-24.05.2015-21:48 (000.015460 s): (GCodeSender)  Received: {"r":{"bfr":3600},"f":[1,0,13,541]}
    Sun-24.05.2015-21:48 (000.000423 s): (GCodeSender)  Sent: {"btn":0}
    Sun-24.05.2015-21:48 (000.047646 s): (GCodeSender)  Received: {"r":{"btn":0.000},"f":[1,0,10,972]}
    Sun-24.05.2015-21:48 (000.000930 s): (GCodeSender)  Sent: {"btm":-1}
    Sun-24.05.2015-21:48 (000.014875 s): (GCodeSender)  Received: {"r":{"btm":-1.000},"f":[1,0,11,5462]}
    Sun-24.05.2015-21:48 (000.000488 s): (GCodeSender)  Sent: {"bjm":20000000}
    Sun-24.05.2015-21:48 (000.015637 s): (GCodeSender)  Received: {"r":{"bjm":20},"f":[1,0,17,5956]}
    Sun-24.05.2015-21:48 (000.000413 s): (GCodeSender)  Sent: {"bra":1}
    Sun-24.05.2015-21:48 (000.015593 s): (GCodeSender)  Received: {"r":{"bra":1.000},"f":[1,0,10,2479]}
    Sun-24.05.2015-21:48 (000.000439 s): (GCodeSender)  Sent: {"cam":0}
    Sun-24.05.2015-21:48 (000.016574 s): (GCodeSender)  Received: {"r":{"cam":0},"f":[1,0,10,7491]}
    Sun-24.05.2015-21:48 (000.000436 s): (GCodeSender)  Sent: {"cvm":3600}
    Sun-24.05.2015-21:48 (000.015565 s): (GCodeSender)  Received: {"r":{"cvm":3600},"f":[1,0,13,8786]}
    Sun-24.05.2015-21:48 (000.000377 s): (GCodeSender)  Sent: {"cfr":3600}
    Sun-24.05.2015-21:48 (000.015506 s): (GCodeSender)  Received: {"r":{"cfr":3600},"f":[1,0,13,7261]}
    Sun-24.05.2015-21:48 (000.000381 s): (GCodeSender)  Sent: {"ctn":0}
    Sun-24.05.2015-21:48 (000.047744 s): (GCodeSender)  Received: {"r":{"ctn":0.000},"f":[1,0,10,9941]}
    Sun-24.05.2015-21:48 (000.000533 s): (GCodeSender)  Sent: {"ctm":-1}
    Sun-24.05.2015-21:48 (000.015454 s): (GCodeSender)  Received: {"r":{"ctm":-1.000},"f":[1,0,11,2008]}
    Sun-24.05.2015-21:48 (000.000404 s): (GCodeSender)  Sent: {"cjm":20000000}
    Sun-24.05.2015-21:48 (000.015591 s): (GCodeSender)  Received: {"r":{"cjm":20},"f":[1,0,17,845]}
    Sun-24.05.2015-21:48 (000.000486 s): (GCodeSender)  Sent: {"cra":1}
    Sun-24.05.2015-21:48 (000.015494 s): (GCodeSender)  Received: {"r":{"cra":1.000},"f":[1,0,10,1449]}
    Sun-24.05.2015-21:48 (000.000413 s): (GCodeSender)  Sent: {"p1frq":5000}
    Sun-24.05.2015-21:48 (000.047575 s): (GCodeSender)  Received: {"r":{"p1frq":5000},"f":[1,0,15,8597]}
    Sun-24.05.2015-21:48 (000.000492 s): (GCodeSender)  Sent: {"p1csl":0}
    Sun-24.05.2015-21:48 (000.047503 s): (GCodeSender)  Received: {"r":{"p1csl":0},"f":[1,0,12,183]}
    Sun-24.05.2015-21:48 (000.000479 s): (GCodeSender)  Sent: {"p1csh":10000}
    Sun-24.05.2015-21:48 (000.047444 s): (GCodeSender)  Received: {"r":{"p1csh":10000},"f":[1,0,16,5892]}
    Sun-24.05.2015-21:48 (000.000496 s): (GCodeSender)  Sent: {"p1cpl":0}
    Sun-24.05.2015-21:48 (000.047536 s): (GCodeSender)  Received: {"r":{"p1cpl":0.000},"f":[1,0,12,9585]}
    Sun-24.05.2015-21:48 (000.000580 s): (GCodeSender)  Sent: {"p1cph":1}
    Sun-24.05.2015-21:48 (000.047555 s): (GCodeSender)  Received: {"r":{"p1cph":1.000},"f":[1,0,12,9314]}
    Sun-24.05.2015-21:48 (000.000988 s): (GCodeSender)  Sent: {"p1pof":0}
    Sun-24.05.2015-21:48 (000.047052 s): (GCodeSender)  Received: {"r":{"p1pof":0.000},"f":[1,0,12,6665]}
    Sun-24.05.2015-21:48 (000.000511 s): (GCodeSender)  Sent: G21
    

    This is the coordinate system manual (keyboard) offsetting part:

    Sun-24.05.2015-21:48 (005.-488853 s): (GCodeSender)  Sent: G28.2 X0 Y0 Z0
    Sun-24.05.2015-21:48 (020.511523 s): (GCodeSender)  Sent: G10 L2 P1 X0 Y0 Z0
    Sun-24.05.2015-21:48 (000.000381 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (000.191255 s): (GCodeSender)  Sent: G10 L2 P1 X0 Y0 Z0
    Sun-24.05.2015-21:48 (000.000370 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (001.-680779 s): (GCodeSender)  Sent: G10 L2 P1 X0 Y0 Z0
    Sun-24.05.2015-21:48 (000.000445 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (003.511670 s): (GCodeSender)  Sent: G10 L2 P1 X3.4 Y0 Z0
    Sun-24.05.2015-21:48 (000.000379 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (001.-496736 s): (GCodeSender)  Sent: G10 L2 P1 X6.8 Y0 Z0
    Sun-24.05.2015-21:48 (000.002152 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (000.430388 s): (GCodeSender)  Sent: G10 L2 P1 X10.2 Y0 Z0
    Sun-24.05.2015-21:48 (000.000392 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (001.-144914 s): (GCodeSender)  Sent: G10 L2 P1 X13.6 Y0 Z0
    Sun-24.05.2015-21:48 (000.000435 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (001.-375962 s): (GCodeSender)  Sent: G10 L2 P1 X17 Y0 Z0
    Sun-24.05.2015-21:48 (000.000383 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (000.583335 s): (GCodeSender)  Sent: G10 L2 P1 X20.4 Y0 Z0
    Sun-24.05.2015-21:48 (000.000355 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (001.-399712 s): (GCodeSender)  Sent: G10 L2 P1 X23.8 Y0 Z0
    Sun-24.05.2015-21:48 (000.000588 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (000.622456 s): (GCodeSender)  Sent: G10 L2 P1 X27.2 Y0 Z0
    Sun-24.05.2015-21:48 (000.000406 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (001.-455693 s): (GCodeSender)  Sent: G10 L2 P1 X30.6 Y0 Z0
    Sun-24.05.2015-21:48 (000.000444 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (000.415352 s): (GCodeSender)  Sent: G10 L2 P1 X34 Y0 Z0
    Sun-24.05.2015-21:48 (000.000374 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (001.-720587 s): (GCodeSender)  Sent: G10 L2 P1 X37.4 Y0 Z0
    Sun-24.05.2015-21:48 (000.000368 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (000.271776 s): (GCodeSender)  Sent: G10 L2 P1 X40.8 Y0 Z0
    Sun-24.05.2015-21:48 (000.000444 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (000.255985 s): (GCodeSender)  Sent: G10 L2 P1 X44.2 Y0 Z0
    Sun-24.05.2015-21:48 (000.000420 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (001.-713038 s): (GCodeSender)  Sent: G10 L2 P1 X47.6 Y0 Z0
    Sun-24.05.2015-21:48 (000.000387 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (000.295186 s): (GCodeSender)  Sent: G10 L2 P1 X51 Y0 Z0
    Sun-24.05.2015-21:48 (000.000366 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (000.304310 s): (GCodeSender)  Sent: G10 L2 P1 X54.4 Y0 Z0
    Sun-24.05.2015-21:48 (000.000440 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (000.278883 s): (GCodeSender)  Sent: G10 L2 P1 X57.8 Y0 Z0
    Sun-24.05.2015-21:48 (000.000454 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (001.-624107 s): (GCodeSender)  Sent: G10 L2 P1 X61.2 Y0 Z0
    Sun-24.05.2015-21:48 (000.000371 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (000.439692 s): (GCodeSender)  Sent: G10 L2 P1 X64.6 Y0 Z0
    Sun-24.05.2015-21:48 (000.000387 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (001.-632714 s): (GCodeSender)  Sent: G10 L2 P1 X68 Y0 Z0
    Sun-24.05.2015-21:48 (000.000442 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (000.383573 s): (GCodeSender)  Sent: G10 L2 P1 X71.4 Y0 Z0
    Sun-24.05.2015-21:48 (000.000430 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (000.480527 s): (GCodeSender)  Sent: G10 L2 P1 X74.8 Y0 Z0
    Sun-24.05.2015-21:48 (000.000409 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (001.-625044 s): (GCodeSender)  Sent: G10 L2 P1 X78.2 Y0 Z0
    Sun-24.05.2015-21:48 (000.000411 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (000.503555 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y0 Z0
    Sun-24.05.2015-21:48 (000.000443 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (002.-624143 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y3.4 Z0
    Sun-24.05.2015-21:48 (000.000397 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (000.318882 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y6.8 Z0
    Sun-24.05.2015-21:48 (000.000467 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (000.303546 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y10.2 Z0
    Sun-24.05.2015-21:48 (000.000441 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (001.-719937 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y13.6 Z0
    Sun-24.05.2015-21:48 (000.000370 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (000.255049 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y17 Z0
    Sun-24.05.2015-21:48 (000.000456 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (000.312302 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y20.4 Z0
    Sun-24.05.2015-21:48 (000.000385 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (001.-688373 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y23.8 Z0
    Sun-24.05.2015-21:48 (000.000411 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (000.814583 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y27.2 Z0
    Sun-24.05.2015-21:48 (000.000382 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (001.-687535 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y30.6 Z0
    Sun-24.05.2015-21:48 (000.000395 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (000.271426 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y34 Z0
    Sun-24.05.2015-21:48 (000.000481 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (000.255454 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y37.4 Z0
    Sun-24.05.2015-21:48 (000.000374 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (000.255227 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y40.8 Z0
    Sun-24.05.2015-21:48 (000.000442 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (001.-720557 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y44.2 Z0
    Sun-24.05.2015-21:48 (000.000389 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (000.271674 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y47.6 Z0
    Sun-24.05.2015-21:48 (000.000458 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (000.263968 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y51 Z0
    Sun-24.05.2015-21:48 (000.000383 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (001.-383954 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y54.4 Z0
    Sun-24.05.2015-21:48 (000.000393 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (000.446736 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y57.8 Z0
    Sun-24.05.2015-21:48 (000.000445 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (001.-416485 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y61.2 Z0
    Sun-24.05.2015-21:48 (000.000457 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (000.415400 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y64.6 Z0
    Sun-24.05.2015-21:48 (000.000383 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (001.-687283 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y68 Z0
    Sun-24.05.2015-21:48 (000.000419 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:48 (000.382764 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y71.4 Z0
    Sun-24.05.2015-21:48 (000.000630 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:49 (001.-175895 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y74.8 Z0
    Sun-24.05.2015-21:49 (000.000390 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:49 (000.631177 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y78.2 Z0
    Sun-24.05.2015-21:49 (000.000441 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:49 (001.-464699 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y81.6 Z0
    Sun-24.05.2015-21:49 (000.000377 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:49 (001.-446928 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y85 Z0
    Sun-24.05.2015-21:49 (000.000613 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:49 (000.589625 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y88.4 Z0
    Sun-24.05.2015-21:49 (000.000469 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:49 (001.-352563 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y91.8 Z0
    Sun-24.05.2015-21:49 (000.000472 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:49 (000.648012 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y95.2 Z0
    Sun-24.05.2015-21:49 (000.000414 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:49 (001.-360313 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y98.6 Z0
    Sun-24.05.2015-21:49 (000.000396 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:49 (001.-416654 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y102 Z0
    Sun-24.05.2015-21:49 (000.000444 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:49 (000.615120 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y105.4 Z0
    Sun-24.05.2015-21:49 (000.000371 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:49 (001.-448331 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y108.8 Z0
    Sun-24.05.2015-21:49 (000.000421 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:49 (001.026188 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y112.2 Z0
    Sun-24.05.2015-21:49 (000.000983 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:49 (001.557001 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y112.2 Z3.4
    Sun-24.05.2015-21:49 (000.000369 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:49 (001.-528697 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y112.2 Z6.8
    Sun-24.05.2015-21:49 (000.000379 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:49 (001.-64385 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y112.2 Z10.2
    Sun-24.05.2015-21:49 (000.000598 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:49 (001.-64633 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y112.2 Z13.6
    Sun-24.05.2015-21:49 (000.001622 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:49 (001.-209866 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y112.2 Z17
    Sun-24.05.2015-21:49 (000.000425 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:49 (001.007358 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y112.2 Z20.4
    Sun-24.05.2015-21:49 (000.000477 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    Sun-24.05.2015-21:49 (000.712269 s): (GCodeSender)  Sent: G10 L2 P1 X81.6 Y112.2 Z23.8
    Sun-24.05.2015-21:49 (000.000380 s): (GCodeSender)  Sent: G0 X0 Y0 Z0
    

    And, finally, this is the file sending part:

    Sun-24.05.2015-21:51 (143.-75383 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.019763 s): (GCodeSender)  Received: {"r":{"qr":32},"f":[1,0,10,9617]}
    Sun-24.05.2015-21:51 (000.000566 s): (GCodeSender)  Opening file:
    Sun-24.05.2015-21:51 (000.000306 s): (GCodeSender)  ../tasks/owl.nc
    Sun-24.05.2015-21:51 (000.002833 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.012289 s): (GCodeSender)  Received: {"r":{"qr":32},"f":[1,0,10,9617]}
    Sun-24.05.2015-21:51 (000.001149 s): (GCodeSender)  Sent: G21
    Sun-24.05.2015-21:51 (000.002912 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.020937 s): (GCodeSender)  Received: {"r":{},"f":[1,0,4,4397]}
    Sun-24.05.2015-21:51 (000.000466 s): (GCodeSender)  Sent: M6 T1
    Sun-24.05.2015-21:51 (000.002751 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.021825 s): (GCodeSender)  Received: {"r":{},"f":[1,0,6,4399]}
    Sun-24.05.2015-21:51 (000.001040 s): (GCodeSender)  Sent: G0X0.0000Y0.0000Z4.5010
    Sun-24.05.2015-21:51 (000.003026 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.024726 s): (GCodeSender)  Received: {"r":{},"f":[1,0,24,104]}
    Sun-24.05.2015-21:51 (000.000509 s): (GCodeSender)  Sent: G0X27.4444Y-2.4930
    Sun-24.05.2015-21:51 (000.003061 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.012504 s): (GCodeSender)  Received: {"r":{},"f":[1,0,19,78]}
    Sun-24.05.2015-21:51 (000.000456 s): (GCodeSender)  Sent: G1Z-0.6943F50.0
    Sun-24.05.2015-21:51 (000.002899 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.012671 s): (GCodeSender)  Received: {"r":{},"f":[1,0,16,75]}
    Sun-24.05.2015-21:51 (000.000420 s): (GCodeSender)  Sent: G1F100.0
    Sun-24.05.2015-21:51 (000.002797 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.021641 s): (GCodeSender)  Received: {"r":{},"f":[1,0,9,4402]}
    Sun-24.05.2015-21:51 (000.000476 s): (GCodeSender)  Sent: X-27.4444
    Sun-24.05.2015-21:51 (000.002899 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.012606 s): (GCodeSender)  Received: {"r":{},"f":[1,0,10,69]}
    Sun-24.05.2015-21:51 (000.000465 s): (GCodeSender)  Sent: X-28.1606Y-1.4872
    Sun-24.05.2015-21:51 (000.002614 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.012928 s): (GCodeSender)  Received: {"r":{},"f":[1,0,18,77]}
    Sun-24.05.2015-21:51 (000.000436 s): (GCodeSender)  Sent: X-28.4567Y-0.4930
    Sun-24.05.2015-21:51 (000.002532 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.013020 s): (GCodeSender)  Received: {"r":{},"f":[1,0,18,77]}
    Sun-24.05.2015-21:51 (000.000422 s): (GCodeSender)  Sent: X28.2658
    Sun-24.05.2015-21:51 (000.002696 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.023933 s): (GCodeSender)  Received: {"r":{},"f":[1,0,9,4402]}
    Sun-24.05.2015-21:51 (000.000526 s): (GCodeSender)  Sent: Y1.5070
    Sun-24.05.2015-21:51 (000.002712 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.023933 s): (GCodeSender)  Received: {"r":{},"f":[1,0,8,4401]}
    Sun-24.05.2015-21:51 (000.001264 s): (GCodeSender)  Sent: X-28.4930
    Sun-24.05.2015-21:51 (000.003002 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.011690 s): (GCodeSender)  Received: {"r":{},"f":[1,0,10,69]}
    Sun-24.05.2015-21:51 (000.000509 s): (GCodeSender)  Sent: Y3.5070
    Sun-24.05.2015-21:51 (000.002975 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (001.-976607 s): (GCodeSender)  Received: {"r":{},"f":[1,0,8,4401]}
    Sun-24.05.2015-21:51 (000.000531 s): (GCodeSender)  Sent: X28.2658
    Sun-24.05.2015-21:51 (000.002823 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.023636 s): (GCodeSender)  Received: {"r":{},"f":[1,0,9,4402]}
    Sun-24.05.2015-21:51 (000.000497 s): (GCodeSender)  Sent: Y5.5070
    Sun-24.05.2015-21:51 (000.002971 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.023751 s): (GCodeSender)  Received: {"r":{},"f":[1,0,8,4401]}
    Sun-24.05.2015-21:51 (000.001166 s): (GCodeSender)  Sent: X-28.4930
    Sun-24.05.2015-21:51 (000.003249 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.011440 s): (GCodeSender)  Received: {"r":{},"f":[1,0,10,69]}
    Sun-24.05.2015-21:51 (000.000536 s): (GCodeSender)  Sent: Y7.5070
    Sun-24.05.2015-21:51 (000.004506 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.022647 s): (GCodeSender)  Received: {"r":{},"f":[1,0,8,4401]}
    Sun-24.05.2015-21:51 (000.000482 s): (GCodeSender)  Sent: X28.2658
    Sun-24.05.2015-21:51 (000.002596 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.024167 s): (GCodeSender)  Received: {"r":{},"f":[1,0,9,4402]}
    Sun-24.05.2015-21:51 (000.000534 s): (GCodeSender)  Sent: Y9.5070
    Sun-24.05.2015-21:51 (000.002844 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.023621 s): (GCodeSender)  Received: {"r":{},"f":[1,0,8,4401]}
    Sun-24.05.2015-21:51 (000.000471 s): (GCodeSender)  Sent: X-28.4930
    Sun-24.05.2015-21:51 (000.003509 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.012098 s): (GCodeSender)  Received: {"r":{},"f":[1,0,10,69]}
    Sun-24.05.2015-21:51 (000.000470 s): (GCodeSender)  Sent: Y11.5070
    Sun-24.05.2015-21:51 (000.004809 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.020857 s): (GCodeSender)  Received: {"r":{},"f":[1,0,9,4402]}
    Sun-24.05.2015-21:51 (000.000476 s): (GCodeSender)  Sent: X28.2658
    Sun-24.05.2015-21:51 (000.002725 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.024884 s): (GCodeSender)  Received: {"r":{},"f":[1,0,9,4402]}
    Sun-24.05.2015-21:51 (000.000519 s): (GCodeSender)  Sent: Y13.5070
    Sun-24.05.2015-21:51 (000.002859 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.023327 s): (GCodeSender)  Received: {"r":{},"f":[1,0,9,4402]}
    Sun-24.05.2015-21:51 (000.000495 s): (GCodeSender)  Sent: X-28.4930
    Sun-24.05.2015-21:51 (000.004818 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.010839 s): (GCodeSender)  Received: {"r":{},"f":[1,0,10,69]}
    Sun-24.05.2015-21:51 (000.000438 s): (GCodeSender)  Sent: Y15.5070
    Sun-24.05.2015-21:51 (000.002799 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.023653 s): (GCodeSender)  Received: {"r":{},"f":[1,0,9,4402]}
    Sun-24.05.2015-21:51 (000.000452 s): (GCodeSender)  Sent: X28.2658
    Sun-24.05.2015-21:51 (000.002763 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.012899 s): (GCodeSender)  Received: {"r":{},"f":[1,0,9,4402]}
    Sun-24.05.2015-21:51 (000.000404 s): (GCodeSender)  Sent: Y17.5070
    Sun-24.05.2015-21:51 (000.002873 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.012573 s): (GCodeSender)  Received: {"r":{},"f":[1,0,9,4402]}
    Sun-24.05.2015-21:51 (000.000508 s): (GCodeSender)  Sent: X-28.4930
    Sun-24.05.2015-21:51 (000.002883 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.012720 s): (GCodeSender)  Received: {"r":{},"f":[1,0,10,69]}
    Sun-24.05.2015-21:51 (000.000400 s): (GCodeSender)  Sent: Y19.5070
    Sun-24.05.2015-21:51 (000.002858 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.013761 s): (GCodeSender)  Received: {"r":{},"f":[1,0,9,4402]}
    Sun-24.05.2015-21:51 (000.000506 s): (GCodeSender)  Sent: X28.2658
    Sun-24.05.2015-21:51 (000.002767 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.012706 s): (GCodeSender)  Received: {"r":{},"f":[1,0,9,4402]}
    Sun-24.05.2015-21:51 (000.000526 s): (GCodeSender)  Sent: Y21.5070
    Sun-24.05.2015-21:51 (000.002651 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.012877 s): (GCodeSender)  Received: {"r":{},"f":[1,0,9,4402]}
    Sun-24.05.2015-21:51 (000.000401 s): (GCodeSender)  Sent: X-28.4930
    Sun-24.05.2015-21:51 (000.002864 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.012717 s): (GCodeSender)  Received: {"r":{},"f":[1,0,10,69]}
    Sun-24.05.2015-21:51 (000.000415 s): (GCodeSender)  Sent: Y23.5070
    Sun-24.05.2015-21:51 (000.002775 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.220683 s): (GCodeSender)  Received: {"r":{"qr":4},"f":[1,0,10,2550]}
    Sun-24.05.2015-21:51 (000.002970 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.012973 s): (GCodeSender)  Received: {"r":{},"f":[1,0,9,4402]}
    Sun-24.05.2015-21:51 (000.003074 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (002.-305942 s): (GCodeSender)  Received: {"r":{"qr":4},"f":[1,0,10,2550]}
    Sun-24.05.2015-21:51 (000.003590 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.012254 s): (GCodeSender)  Received: {"r":{"qr":4},"f":[1,0,10,2550]}
    Sun-24.05.2015-21:51 (000.003017 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.013149 s): (GCodeSender)  Received: {"r":{"qr":4},"f":[1,0,10,2550]}
    Sun-24.05.2015-21:51 (000.003596 s): (GCodeSender)  Sent: {"qr":""}
    Sun-24.05.2015-21:51 (000.012283 s): (GCodeSender)  Received: {"r":{"qr":4},"f":[1,0,10,2550]}
    Sun-24.05.2015-21:51 (000.003039 s): (GCodeSender)  Sent: {"qr":""}
    

    The qr requests are not being answered to. When the answer comes qr is already 4 and the buffer is probably overfull. So I probably have to wait until I get a qr on the JSON answer before sending another line of GCode.

    Thanks again for reading.

    in reply to: Communication issue with TinyG #7743
    enhering
    Member

    Alden,

    Thank you for your help. Here are my answers:

    – Are you using the JSON protocol? It appears so, but I want to confirm.

    In fact I was sending the parameters as text and was getting a timeout on the junction acceleration. I was also getting a timeout on a G21 that I was sending, by mistake, in between the setup parameters.

    Yesterday I changed the format of the parameters from text to JSON and removed the G21 from the group. Now the timeouts disappeared. I’m pasting part of the log below to show the answer times:

    Sat-23.05.2015-22:32 (000.000574 s): (GCodeSender)  Sent: {"st":1}
    Sat-23.05.2015-22:32 (000.047543 s): (GCodeSender)  Received: {"r":{"st":1},"f":[1,0,9,9723]}
    Sat-23.05.2015-22:32 (000.000725 s): (GCodeSender)  Sent: {"mt":10}
    Sat-23.05.2015-22:32 (000.047232 s): (GCodeSender)  Received: {"r":{"mt":10},"f":[1,0,10,3997]}
    Sat-23.05.2015-22:32 (000.000714 s): (GCodeSender)  Sent: {"ej":1}
    Sat-23.05.2015-22:32 (000.016154 s): (GCodeSender)  Received: {"r":{"ej":1},"f":[1,0,9,2005]}
    Sat-23.05.2015-22:32 (000.000472 s): (GCodeSender)  Sent: {"jv":1}
    Sat-23.05.2015-22:32 (000.047553 s): (GCodeSender)  Received: {"r":{"jv":1},"f":[1,0,9,4386]}
    Sat-23.05.2015-22:32 (000.000485 s): (GCodeSender)  Sent: {"js":1}
    Sat-23.05.2015-22:32 (000.015686 s): (GCodeSender)  Received: {"r":{"js":1},"f":[1,0,9,93]}
    Sat-23.05.2015-22:32 (000.000383 s): (GCodeSender)  Sent: {"tv":1}
    Sat-23.05.2015-22:32 (000.015605 s): (GCodeSender)  Received: {"r":{"tv":1},"f":[1,0,9,4294]}
    

    – Which parameters time out? None of them should. Could it be that you are writing parameters when the queue is full? You can determine how many of the 254 bytes in the receive queue are available by requesting (rx:n}. It returns the number of available bytes.

    I’ll include this in my code now. Thank you for the suggestion. I’ll check the buffer availability before sending more code.

    As for SR’s, you should set up a listener for them and handle them when they come in. They are not synchronous commands such as request/response pairs. The normal communications is:
    – Send request, get response almost immediately. Listen for SRs. Most people look for the stat:3, which means the machine has stopped.

    I have a working JSON parser that looks for important parameters like the stat and the qr ones. The problem of setting up a listener is that it will timeout at some time, unless I increase the reporting frequency, but if I do that the report may come before the expected answer. I do not know if this is a real problem or not. I’ll try what you suggest and see how it works.

    Regarding the last question asked by cmcgrath5035:

    Just a thought for your consideration: It is unclear from this thread how your implementation is handling GCode buffering, buffer fill and the like.
    Commands sent while running a Gcode job are likely placed into the receive buffers and have to wait for their turn to be processed (with the exception of the Freehold command). Command execution is therefore difficult to predict as it depends on what Gcode is ahead of it.

    I’m just testing the following procedure to avoid overfilling the planner buffer:

    Open GCode file
    –if not open yet;
    If not EOF,
    –Send a qr and get a number;
    –If that number is greater than 10
    —-Send a GCode line to TinyG;
    Check for possible pause/resume keystrokes.

    This is a very naive approximation. I do not know if it will work fine yet. I’ll let you know if you wish.

    Best regards and thanks again for your kind patience.

    PS: The code I’m writing is open source and available through a Mercurial repository in the URL given above. I know it is quite boring to read other people’s codes, but it is there in case anybody gets curious. I’m doing my best to keep the repository updated with working code.

    in reply to: Communication issue with TinyG #7739
    enhering
    Member

    Thanks for your answer, cmcgrath5035.

    I am doing the same as you. I mean, I write a parameter and then expect an answer. This works fine for most parameters, but one or two of them usually timeout.

    For the status reports, I have disabled the automatic ones and was sending {sr:} periodically during GCode sending, but that as you explained, produced many errors. If I turn the automatic reporting back on, I do not know when to expect them.

    I will try to guess how other programmers did this before and solve for my case.

    Thanks a lot for your kind attention.

    in reply to: Communication issue with TinyG #7735
    enhering
    Member

    Thanks for answering, cmcgrath5035!

    I’ll assume you have read (and re-read) the wiki at

    https://github.com/synthetos/TinyG/wiki/Tinyg-Communications-Programming

    I did. Many times.

    Are you properly handling EEPROM delay whith parameter writes?

    I do a write and a read after that. The read operation usually returns 15.6ms after the parameter write. Do you think I should delay 30ms before doing a read operation?

    Your focus is setting up the configuration Parameters?

    No. I want a simple text mode way of controlling my cnc. I tried a few solutions and always ended finding a problem that could not be easily solved without a third person intervention. Some python solutions do not run easily on a Mac without minor fixes, for example. And I could not find how to send configuration parameters using ChiliPeppr until your answer came. I may not have tried enough, I confess.

    The point is that now my work has advanced enough for me to feel comfortable using it. I have good logging facilities, a menu the way I want it to be and every possible option that I may need can be easily programmed into the code.

    I would really like to know if there is a universal way of sending data to the tinyG and dealing with the answers it may, or may not send back to me. As I said before, my main problem is to know when to expect an answer and when not to.

    I also do not understand how should I expect to read periodic status reports. Should I be always listening for them or there is a way of knowing that the TinyG has something to tell me?

    Thanks a lot for your patience,

    Eduardo.

    in reply to: Communication issue with TinyG #7729
    enhering
    Member

    Sorry. I need to correct the text above:

    I decided to write it because I felt a need to control all the configuration options and could not figure how to do it using existing programs.

    • This reply was modified 9 years, 5 months ago by enhering.
Viewing 15 posts - 1 through 15 (of 15 total)