Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - RobotEyes

Pages: [1]
« on: April 09, 2017, 01:54:24 AM »
At the risk of being boring .....  :P
I repeat the instructions to install and REGISTER Your RobotLaser copy.

Foreword ... just for example.
A hypothetic user(we can call it, for example, Mark J.R.) decide to purchase a License
it made the donation through PayPal
and then has sat waiting to be able to use the software ..........
Not receiving the code, I send the instructions to generate it ....
and Mr. Mark.j.R open a dispute for non-delivery.
If I do not receive the identification code
I CAN NOT SEND the validation code.
Alternatively is possible to buy the Enterprise version
(at cost of 2,000.00) which allows to receive a program to validate on their own
up to 100 copies of RobotLaser for life.

* Download the package
* Unzip the package on the favorite hard disk or USB Stick.
* Start program RobotLaser.exe
* Press registration
* Complete the form with true and functioning email
* Press generates code
* Press Send by email

You will receive the activation code within 48 hours MAX (usually a few hours)

If you don't have Outlook or Outlook Express automatic generation of email may fail.
So send a email to (not other addresses)
with "Installation Code for application RobotLaser (V.1.x)" as subject
and the installation code (ALL caracters please) in the body.
Some message will be welcome, but not mandatory.
If you send e-mail to the address indicated , namely:
I receive a email and i can reply
if you send email to (for example) mylaser@some-address.something.....
I DO NOT receive and I CAN'T answer !!!!!!


Many people asked me what is the best support for RobotLaser;

Normally a USB stick is the simplest choice.
Easy to move and compatible with all PCs.

The size can also be very small (RobotLaser takes 4-5 Mb at the moment, certainly less than 10Mb in the future)

Many people use the key also to keep images and drawings.
You can use a 2 - 4 GB stick that is very cheap, and can contain lots of drawings.
If you plan to use very complex drawings you may also use a larger one,
but remember that with a 0.2 mm resolution a 100x150 mm engraver requires a 500 x 750 pixel image
that (in grayscale) occupies about 1-2 Mb.
It makes no sense to use images with much higher resolution (you can, of course, but the result does not improve)

The important thing is that the key is reliable,
if it breaks, the license dies with the stick.
While if it gets corrupted, it's not a problem you can ever reformat and reinstall in the same stick with the same license.


RobotLaser / About gray scale "Printing"
« on: March 07, 2017, 04:41:03 AM »
Many people asked me how to make a gray scale engrave.
Follow some of my considerations and advice.

First some general observations about Laser engraving:
We must understand that we are not printing on a sheet of paper with a variable amount of ink,
but we are burning the surface of a material.

The key thing to understand is that we are providing some energy in a very small area ( 0.01 to 0.04 sq mm[size=78%]);[/size]
this energy is formed by a certain power (laser light) for a certain time (inverse to the speed of movement);

Each material reacts differently to application of energy:
at low energies simply absorbs without structural changes,
then, gradually the energy increases, it begins to change its structure.
In materials that we use normally it "burns", in other materials (metals, plastic etc.) blends, and so forth.
Another very important factor is the type of reflectivity of the material:
A kitchen aluminum sheet never fuse with a 5W laser, because it reflects almost all of energy,
with a 100 W laser can hope that 1-2 w being absorbed.
A sheet of white paper will need more energy in the same blackened sheet.
Moreover, absorption also depends on the wavelength.
The most "efficient" is the infrared, the violet laser that we use are born for
data transmission and point and are not very efficient
Further consideration to be made, with regard to the "burning" is the speed or time of application:

Although 1 Joules per 1 sec is the same energy of 1 MegaJoule for a microsecond,
the materials react differently, almost all require a certain time to "burn",
and the energy must exceed a certain threshold to begin the oxidation process called combustion.
Then (even for the same energy) the slower application (assuming that exceed this threshold)
Iwill result in a more "deep burn".
Finally comes in the  structure of the material:
for example beech wood  react oxidizing much more quickly than a sheet of MDF (compressed wood powder).

After all this preamble we begin to understand that there are so many parameters to take into account what to think of
"Print" a photo with our laser is more a matter of luck than technical ability.
(If you can, immediately play the lottery)

My advice to "print" through RobotLaser are as follows:
Get a good amount of material that we will use to make the tests;
the results obtained will be valid ONLY for that material.
Obtain an image with a gray scale to 8 levels.
Adjust the brightness and contrast parameters to 0, and gamma to 1 (that does not change the image scale)
Make a VERY ACCURATE focus of the laser .
Print with maximum power (255) and speed as to have parts not burned and parts completely burned ,
recommend print so that the laser scan do the full scale  0 - 255 , ie horizontal image, horizontal scan.
The ideal would be to have the point that changes from white to black in the image center.
Find the point where the material starts to blacken slightly.
Find the point in which the material and totally burned.
These two points will have a power deduced from the series: 0 32 64 96 128 160 192 224 255

In the power curve page assign :
the gray 0 (black value) of the complete burning power
the gray 255 (white value) a value slightly less than the power of the minimum blackening.
Distribute the remaining values gradually (on the graph below helps you to see the results)

At this point, try to regenerate the GCode and print again.
After a bit of trial and error should be possible to obtain an acceptable result.

Another solution is to use dithering (dots) as did the old linotype.
The results are decent only "big" images (more than 50 mm)
In this case the dominant factor is the writing speed.

Following are some of greyscale images made of solid board (Amazon envelope )
This is what I got in about one hour of tests.
The power curve is: 50 40 30 22 18 16 14 12 8

The first thing you may notice is that the material I chose supports 4 levels of gray.
Perhaps, by working more, still can improve and get to 6/8 levels, certainly not more.

Obviously, by changing the laser power, the curve is scaled

Hope to have clarified some unclear points.

For any clarification or ask are at your disposal


RobotLaser / GRBL 1.1 is now supported !!
« on: March 01, 2017, 01:07:02 AM »
Goodmorning everyone.
RobotLaser version  1.0.1 is online !! (
The major update of version 1.0.1 is the support to grbl 1.1.
The new version of grbl has some fundamental options!
The most interesting are:
1: LaseMode
2: Dynamic Power
3: Power Scale.
4: Jogging

In laser mode, motion is no longer stopped at any power variation
(Previously was interrupted to wait on the spindle
reached the set point, but with the Laser is immediate)

But the most important thing for our applications is the dynamic mode.
I.e. the laser power is modulated according to the speed.
This is very important at the edges of the image, when the carriage
decelerating and then accelerating it again in the opposite direction.
With static power mode this caused an increase in the "burn" on the edges,
for this reason RobotLaser has the option to add a white border of some mm
around the image, which in a Dynamic Mode is no longer necessary.

NOTE: compared to the static power mode will be necessary to increase the
laser power or reduce speed. I'm still experimenting on what.
The Dynamic Power option can be switched on and off by configuration (tab Various)
OR with the new button on the main toolbar at the top.

The remaining two options have not yet been implemented.
The Power Scale allows you to set the power to the desired scale, instead of 0-255.
In any case, however, it is only a fictitious thing,
because it is always transformed back into 0-255 within grbl (the pwn works in 8 bits)
At the moment, on RobotLaser is FIXED to 255, it will be made variable in next releases.
The jog mode implementation will be covered in next releases.
(Stops immediately each movement to release the jog button).

Finally, in the 1.1 version of grbl it has also improved the data streaming,
I noticed a discrete reduction of transmission errors.
Unfortunately, the chips used on Arduino Nano does not allow to do much.

After starting RobotLaser_1.0.1
* open config-> firmware.
* Select the version 1.1f grbl
* Select them the type of card (normally Duemilanove / Nano / ATmega328)
* press [Flash] and wait for firmware to be written.
* Remember to set the Version field to "1.1"
* Test the installation with Serial tab -> [Test], the answer should be "grbl 1.1f ['$' for help]"
* Close Config, connect equipment and reopen config
* On the Parameters page, set the parameter $30 (Max Spindle) to 255, press [Save Parameters]
  Personally I strongly suggest, after flashing firmware, you press [Default] and then [Save Parameters]
  to be sure that the grbl setup is compatible with RobotLaser.
* In the tab Various, set Laser Mode and Dynamic Power at will (both ON is my advice)
* close Config

The maximum power (Max Spindle) can also be set from the "Manual" page by sending the command $30=255

I REPEAT, IS IMPORTANT The setting $30=255

The version 1.1f default in 1000 and we would find us to have a laser with 1/4 power.

For further information and help please write to and I will answer as quickly as possible.


RobotLaser / Robot Laser Final Version
« on: January 16, 2017, 04:39:08 AM »

Goodmorning everyone

The Beta version of RobotLaser has finished its cycle, and will no longer be managed, nor issued license after its expiry.

Before January 20 two versions will be available:
1)   RobotLaser FREE, which is derived from the last beta version (0.6)
2)   RobotLaser Standard, currently v.1.0.0

The FREE version will continue to be available for free, but no new features will be implemented. It will remain frozen as is.
To use it you will need to make a new registration of a duration of one year (of course always free)

The standard version will be available for purchasing.
There is a trial period of 15 days (instead of 10 as the beta) after which, will need to buy it.
In case of necessity, the test may be extended for another 15 or 30 days,
Please contact with the reasons for the request of the extension.
It will be possible only one extension of the test period.

The Standard license will be entitled to free download updates for all 2017.

The license, as usual, will be tied to disk on which RobotLaser is installed when requesting the activation code.
If you think you want to use RobotLaser on multiple PCs (one at a time)
we recommend you install on removable media (eg USB Key)
In this case, moving the key from one PC you can always use the same activation key that will be valid on all PCs.

If instead it is necessary to install the product on multiple PCs that operate simultaneously
an additional license (50% of the first) will be purchased.
For more than 3 licenses, contact me and we will find a solution.

Within one / two months, PRO version (with new features) and the Enterprise version will be availables.
Enterprise version enable to have RobotLaser installed and operational on all PCs of a company (max 25)

At the moment the license fee for RobotLaser Standard (with 1 year updates) is fixed at
promotional value of 30.00
For payment please click on the "Buy Now" button on the information page ([?] Button on the main menu)
From here you will be redirected to the PayPal payment page.

For any other types of payment, please contact me.

Last Note.
Those who have made donations for the Beta version, are entitled to a discount on the the license fees.
Please contact me for instructions on how to get the discount.

Have a nice day

RobotLaser / Installation Media
« on: November 28, 2016, 05:15:25 AM »

Many people asked me what is the best support for RobotLaser;

Normally a USB stick is the simplest choice.
Easy to move and compatible with all PCs.

The size can also be very small (RobotLaser takes 4-5 Mb at the moment, certainly less than 10Mb in the future)

Many people use the key also to keep images and drawings.
You can use a 2 - 4 GB stick that is very cheap, and can contain lots of drawings.
If you plan to use very complex drawings you may also use a larger one,
but remember that with a 0.2 mm resolution a 100x150 mm engraver requires a 500 x 750 pixel image
that (in grayscale) occupies about 1-2 Mb.
It makes no sense to use images with much higher resolution (you can, of course, but the result does not improve)

The important thing is that the key is reliable,
if it breaks, the license dies with the stick.
While if it gets corrupted, it's not a problem you can ever reformat and reinstall in the same stick with the same license.


RobotLaser / RobotLaser Updates (Beta 0.5.2)
« on: November 19, 2016, 06:09:17 AM »
Release 0.5.2 is available.

This closes the 0.5.2 development cycle; the next will be 0.6.0

News are:

Ellipses support in DXF Import
There is still a small bug on Mirroring (Flip) of the ellipse arcs, which are treated as rotated instead of mirrored (it's a subtle difference that involve the tracking direction)

At the moment I do not think of developing more in DXF, unless specifically requested.
I do not expect to support Text and Blocks.

MARLIN firmware support

using this option Laser can be installed instead of the extruder in a 3D printer
and use the structure as a laser engraver.
The laser must be connected in place of the filament cooling fan (D10 I suppose).

Z-axis managementis is available as "Focus."... a value of 0 inhibits the function.

I tested with 3DRag printers with dedicated card and with PRUSA 3 with Arduino Uno and RAMPS 1.4

Theoretically it should work on any 3D printer firmware, but I could not test it.

The laser modulation command is no longer M03 Sxxx but M106 Sxxx (0-255).
In the case of firmware "RepRap" the command is M106 Sy.y (0.0-1.0), selectable from configuration.
A out of standard baud rate of 250000 bps  was added because is native for Marlin firmware and derivatives.

Some users said me that are building an engraver using the hardware RAMPS.

If the purpose is to use the same hardware for even a 3DPrinter it's OK !!!

If the machine will only be laser engraver, I do not recommend this approach,
because Marlin and RAMPS are optimized for other purposes.
A normal Arduino with V2 or V3 CNC shield performs better.
Arduino 2 would be the top, but I dont know CNC Shield for Arduino 2

however a MOSFET (or a high speed SSR) will be needed to drive the laser.


Better management of Dirthering function.

The Dirthering function is born from newspapers printing, which once did not have greyscale.
In RobotLaser remains, for those who use it with GRBLv 8.0, without PWM.

In other cases the result of the gray scale is better that Dirthering.
Look at photos, the tests were performed on wrapping paper,
to show how the texture of support, sometimes, makes useless many niceties.


On the download page (
you can find the stable version, which includes all parts necessary for the functioning-
On the SnapShot area, there are the versions under development.

Typically they have better performance and or functions, but they are not fully tested.
In the snapshot there is just the executable RobotLaser.exe, to replace the one of the stable release

RobotLaser / DXF Import
« on: November 01, 2016, 08:25:05 AM »
The work on the import of DXF files is still in progress.
The software has been written based on the Draft R13
(if I remember AutoCAD LT2000)

Are recognized
some additional items such as THUMBNAILIMAGE and ACDSDATA,
but not implemented, only recognized to avoid errors.
Currently is implemented only ENTITIES Section,
Within this section are recognized
these entities:

Still under development:

In development on request only

is not supposed to be implemented the entities:

In the latest version was introduced an option to change laser power according to the Layer
by referring to Layer 0 = 100%
The colors associated with each layer are fixed, and are supported and a maximum of 16 layers.


RobotLaser / RobotLaser Beta Released
« on: October 29, 2016, 01:26:32 AM »
RobotLaser version 0.5 (beta) has been released

RobotLaser is a complete suite for laser engraver management,
It allows  upload images, elaborate them and send to the engraver,
there is also the possibility of moving "manually" the laser, moving it in any direction, with power on or off,
Small GCode programs  can also be manually written .

The suite imports almost any Windows compatible bitmap graphics(.jpg, .gif, .bmp, .png etc. etc.)
The image could be scaled to the desired size (in mm), is also possible to rotate and mirror images,
spatial filter (Laplacian etc.) may also be applied or profile can extracted (ex. to cut a material)
Is also possible to import DXF type vector files, particularly suitable for  "Cut" works.
Is possible to modulate laser power (in addition to grayscale)  assigning a different value to each image color

RobotLaser works with the widely used CNC firmware: GRBL v. 0.9 (for PWM power control).
Next release of RobotLaser (0.6) will work also with Marlin firmware in order to use a 3D printer structure.
for laser engraving and easy CNC works (ex. printed circuit engraving).

RobotLaser can be downloaded here:  or

Installation Guide is Here:
Draft Manual is here:

At the moment RobotLaser supports: English, Italian, French German.

This version is for the public testing, before the final release.
There may still be bugs, which will also be solved with the help of the tester.
For this reason, the BETA version is still free.
Obviously a small donation to support our efforts is always welcome,

Despite the Beta version is free, registration is required.
Trial license (free and anonymous) lasts 10 days, then you must register.

If you plan to use RobotLaser on multiple PCs, install it on a USB drive
BEFORE validating product.
This way you have a portable installation that will be validated on each PC
always with the same code received by eMail.

If you have questions or bug report please email us at

Information on the internal mechanisms of RobotLaser are available here:

I hope that this software helpful.
Any note, advice or critique is always welcome.

In a few days will be available some hardware accessories, such as:
*) Air Assist for lasers with 42mm and 33mm case
*) Home kit, to reset laser in a known position.
*) In 2017 it will also be available a large engraver (500x500 mm) with or without Laser head.

If anyone can improve the translation in various languages,
or want to help introduce a new language, is always welcome,
Please write to
and I will send the "language" files for correction / translation


RobotLaser / Genesis of a Laser Controller
« on: September 10, 2016, 02:45:54 AM »
For the curious ... this is the genesis of RobotLaser.

After the purchase of laser plotter, I looked the software,
what I wanted is an integrated suite to generate the gcode, and manage the laser:
*) Benbox is unusable
*) Grbl controller is very complex and unreliable,
*) T2Laser is great, but tied to a PC only.

So, I looked  a long on the internet and I found 3dpBurner, which only generates gcode,
but had some interesting features,
so I took the kernel and I integrated with a management module that I wrote,
and I got my version of Laser controller
(i'm quite sure that T2Laser was generated in the same way)

Then I added the research of the outlines, to transform images into vectors
(similar to the BenBox "Contour" function )
using the principle of Papert Turtle
(In 1967 Seymou Papert created the first graphical language (Logo)
 who had six commands: forward, back, right, left, write, not write)
Integrated with a labeling algorithms (Herman & Liu, 1978).
Finally I created a BitMap->Vector conversion quick and scalable,

Then I faced the problem of the GCode Raster generation.
I did not liked so much the Villamany algorithm (Image2GCode),
so I kept the external structure (flip, rotate, equalize, etc, which are functions provided natively by Microsoft)
and I decided to rewrite the algorithm Image2Gcode:
Villamany creates a grid in world coordinates with step "Resolution",
then overlaps with the bitmap and look for the nearest pixel.
This involves, however, an irregularity in the contours, such as when you scale an image magnifying the pixels.
Then, while maintaining the original image I created a work bitmap with the bicubic resizing (for me the best)
so you have the pixels of the size of resolution .
At this point is easy to scan the image by pixels and not by world coordinates,

Second thing,
Image2GCode generates a command line for each step of the grid,
eg: G0 X0 Y0 S0 - G1 X0.2 S0 - G1 X0.4 S127 - G1 X0.6 S127- ......... - G1 X9.8 S127 - G1 X10.0 S0
when would be enough G0 X0 Y0 S0 - G1 X0.2 S0 - G1 X9.8 S127 - G1 X10.0 S0.
My algorithm works on this basis.
It seems useless optimization, but Arduino Nano has serious, not solvable, problems
receaving many high-speed data (as reported on GRBL Wiki)
Less useless data you send, the better is.
Now I'm trying with Arduino Mega and GRBL Shield,
and all communication problems seem disappeared !!!!!!!

Image2GCode uses Microsoft native primitives to access the single pixels, this is very inefficient on large images,
so I wrote a class library that implements the concept of localization,
the image is copied in local memory as an array (x, y) of int32 (ARGB pixel)
being in the local memory, access is two orders of magnitude better,
at the end, the array is copied back on the image,
with marshaling techniques of .Net this is very fast.
Really the class library was written for tracking boundaries, so I only enriched.

End of the genesis .....
While giving credit to Villamany of inspiring me, the current version of RobotLaser is entirely written by me.
Of 3dpBurner I kept the idea of scanning the diagonal (I liked in T2Laser), but made with my software.
The tools (Flip, Rot, etc) are all native Microsoft System.Drawings
Probably I will eliminate dithering because the Microsoft algorithm does not satisfy me.
Having entered the Laser power linearization function, the grayscale is more efficient than dithering.
(This feature is unique and not present on 3dpBurner and its derivatives like T2)

If anyone wants more information on the algorithms used, send me an MP.

In version 0.4.5 there is a Sketch page, to draw small stuff,
this was a demo for an object programming course that I held many years ago.
It was written in C for WfW 3.0 (1986 ... someone remember Windows for Workgroups ???)
but the principle is still usable.

I do not think I'll leave it in the final version because the quality is not great
(comparable or less than Microsoft Paint) and my job is not to create a graphic editor,
there are many, good and free.

At the moment there is a very rough page from which you can have a Preview of RobotLaser.
We are currently in Alpha testing (not for public use).
Beta (public testing) is scheduled for October.
The first public release will probably be ready by year end.
Alpha and Beta versions are free, for the public version still do not know.

The software is written in portable technology, it does not require installation. (only .Net framework 4 or later)
Probably I will provide the public release on a USB key, so will be usable on different PCs.

I'm also thinking on a version to be put on a cheap tablet,
in order to integrate the controller with the laser unit.

Thank you and sorry for the very long post.

Other Software / RobotLaser My Laser controller
« on: August 17, 2016, 07:04:40 AM »
A couple of weeks ago I purchased the Laser A5 5500 mW.
Then I discovered that the software part is practically nonexistent.
BenBox is unusable, GRBL Controller is very complicated and does not always work.
T2Laser is the best I have found, it works very well, although not always as I want.
Downside has the license related to a single PC,
and for how it is organized my workshop, I should buy 4-5 licenses.

So last Thursday I started to write my own software.

Finally, after four days of hard work, my controller works.
I drew inspiration from image2gcode (open software) and I integrated the functions in my controller.
A major stumbling block has been the high-speed serial dialogue without loss of data;
I want to go at a fast speed (10 to 20,000 mm / min) and this is a limit.
So I used the (slightly modified) algorithm Image2Gcode then I added a portion of postedit
to jump all contiguous points at the same power.


This greatly enhances the fluidity of the stream
At the moment I have no interest in distributing the software,
It is not yet suitable for public use.

I have left two  "difficult" things:
1) Creating vector patterns
(Now I use wintopo, but I would like to incorporate into my sw)
Does anyone know a open sw who does that?

2) Another problem is the GRBL firmware.
Even after a M3S0 or M5 command
when moving motors the laser control PWM reactivate (Low-power, but active)
It is a known and documented problem  but not resolved.
When I have time I will try to see the firmware sources and
try to patch the problem.

If someone interested my efforts .... any advice is welcome.

Hello everyone,

T2 Engraving / High speed problem (Denim engraving)
« on: August 08, 2016, 03:30:10 AM »
I'm using gearbest 5.5W machine.
with t2laser  (so far the best tested software)
The goal is to etch / engrave images on Denim!

I understand that  high-speed is need for this purpose (raster mode);
so I changed the firmware parameters (Jtech 0.9g)
with maximum speed 50000 ($ 110 = 50000) and it seems to work,
the problem is that at the edges slows down the movement again with the laser on,
so... it cuts the edges.
I tried to leave a white border around it, but is ignored.
the only way I've found is to put two vertical bars far from the image
and mask it with aluminum foil.

How can i start slowing down after the image (laser off)?
I tried to increase acceleration, no results.
Any suggestions for the best setup on Denim is welcome,
it is the main destination of my new laser.

Currently i use speed 25000, power 127, 2-4 pass

My setup is as follows:

$0=10 (step pulse, usec)
$1=25 (step idle delay, msec)
$2=0 (step port invert mask:00000000)
$3=0 (dir port invert mask:00000000)
$4=0 (step enable invert, bool)
$5=0 (limit pins invert, bool)
$6=0 (probe pin invert, bool)
$10=3 (status report mask:00000011)
$11=0.020 (junction deviation, mm)
$12=0.000 (arc tolerance, mm)
$13=0 (report inches, bool)
$14=1 (auto start, bool)
$20=0 (soft limits, bool)
$21=0 (hard limits, bool)
$22=0 (homing cycle, bool)
$23=0 (homing dir invert mask:00000000)
$24=25.000 (homing feed, mm/min)
$25=500.000 (homing seek, mm/min)
$26=250 (homing debounce, msec)
$27=1.000 (homing pull-off, mm)
$100=80.000 (x, step/mm)
$101=80.000 (y, step/mm)
$102=80.000 (z, step/mm)
$110=50000.000 (x max rate, mm/min) (Previous $110=500.000)
$111=3000.000 (y max rate, mm/min)
$112=500.000 (z max rate, mm/min)
$120=2000.000 (x accel, mm/sec^2)  (Previous $120=200.000)
$121=10.000 (y accel, mm/sec^2)
$122=5000.000 (z accel, mm/sec^2)
$130=200.000 (x max travel, mm)
$131=300.000 (y max travel, mm)
$132=200.000 (z max travel, mm)

Thanks to All....... Carlo

Pages: [1]