oni305, thanks for your work in designing an open control board and Inkscape extension. I was able to modify your extension for use with my RepRap/RAMPS setup by using the fan control PWM output to drive the laser. Additionally, I did some experimentation with your plugin to generate grayscale raster graphics. I initially tried modulating the laser intensity, but was not getting very good results. I ended up modulating the feed rate with constant laser intensity to generate different shades of gray. The issue with this is that the feedrate/darkness is not linear, however, there is a range where it is linear enough to show good results. I was able to generate a calibration script to test different feed rates to determine the optimum max/min values for the feed rate. It turns out that this is also a function of resolution as a higher resolution results in slight overlap of the layers and everything turns out darker. I have attached several images (each has a date/timestamp) so you can see the progression. The final two images were generated after calibration, all prior images used arbitrary values that I tried to tweak to improve quality. The zip file raster2laser_gcode_gray.zip contains: raster2laser_gcode_gray.inx -- this goes into inkscape extensions raster2laser_gcode_gray.py -- this goes into inkscape extensions calibrationgen.py -- Python3 script that generates calibration gcode I'm currently not at home at the moment and do not have access to good pictures of the calibration, but I needed to post this and I'll probably have motivation to complete this now that this is posted. Caveat: My machine is running Marlin and I'm abusing the fan control to drive the laser. There may be some delay in processing the buffer moves (very short travel) and the calibration emulates this delay by producing gcode in the same manner as the plugin Since I am using the fan control, I use the following command to engage/disengage the laser: M106 SXX where XX is the duty cycle (0-255). I am unable to test that this will work fine for a machine that uses M03/M05. I've modified the plugin attached to use M03/M05. Calibration Usage (note, this requires python 3 although I could make a python2 script if there is demand): python calibration.py -n <MIN FEED> -x <MAX FEED> -r <RESOLUTION> -o <OUTPUTFILE> There are other options, look at the first 12 lines to see all parameters. Please note that this is not "production ready" and all of this is experimental!
Thanks, for your support! in the future i plan to make the new version of the control board (already started) and after that i'll work again on the extension to extend with new features !
I'm looking forward to your new version. I'm currently working on a laser PCB exposer so your board would be a good example to work with and I'll have a new control board if it all works out!
I'm working on a new version of the plugin with the option to output a grayscale image! The Gcode format will be this: M03 S255 (S from 0 to 255)
Great work Oni305! Sounds like the new implementation is going to be similar to the 8 bit engraver from the guys over at http://www.picengrave.com/ Do you know if your control board will work on a Core XY stage? I'm interested in building something similar to the https://www.kickstarter.com/projects/1537608281/lazerblade-the-affordable-laser-cutter-engraver
I don't know but: if you can run Corexy on an Arduino UNO you can run in on my board. I've also planned a new version of the board, with an integrated PWM control (thanks to the version 0.9 of GRBL !!!)
Awesome Work! One question on the M03 Power levels. The PWM values for my board are 0 - 1000. Would that be fairly easy for me to change the scale with-in the plug in? And as a side note, It would be nice to set the min/max values and have the greyscale raster the image with those values vs. 0 to max. i.e. M03 S3 does not put a dent in balsa. Thanks again for such an awesome plug-in/extension!
Yes, you can modify the S scale. You have to modify the lines 460 / 477 / 485 / 502 scaling the S value example 1000/255 = 3.921.... (original 460) file_gcode.write('M03 '+ ' S' + str(255 - matrice_BN[y][x]) +' ; Laser ON\n') (edited 460) file_gcode.write('M03 '+ ' S' + str( int ( 3.92 * (255 - matrice_BN[y][x]) ) ) +' ; Laser ON\n') For the min/max i don't need it and i don't like it, i won't implement this function. You can already change the grayscale resolution & the feed rate to change the effect of the laser on the object
I would just like to add my thanks to all of you for switching the light at the end of the tunnel back on again. Awesome work and great community spirit. Thanks again.
Hi Oni305, Great looking board and extension. I am planning to build a laser cutter for foam and 3mm plywood cutting purposes. I really like the OX-CNC design and I may build that one. Can you please tell me if this controller board is suitable for what I intend to do? Also, is this board going to be available in parts store? If not, how can I get one? Thanks!
Hi. I don't know if a laser diode is capable to cut 3 mm of wood. My board can andle up to 3A (changing a resistor) laser diode. for this board i have some unpopulated PCB that i can ship
I am new to this and would not know how to solder all the components, Sorry. Do you have any "ready to go" boards? Also, I am planning to build the OX-CNC which uses both nema 23 and nema 17 motors. Do you think it will work with this board?
Hi oni305 If we take a standard Grbl Gcode sequence as generated by your “Raster 2 laser gcode generator" For example G00 X0.0 Y0.0 - M03 - G01 X102.5 Y0.0 F4000 - M05 - G00 X102.5 Y0.1 - M03 - G01 X0.0 Y0.1 F4000. Now between each G code the machine accelerates to maximum speed then decelerates then turns the laser either on or off as required, then repeats the procedure over and over. Is there a way of keeping the speed constant and just simply turning the laser on and off without having to slow down? Obviously at each end of each line, this would need to be done. What are your thoughts on this?
The new features will be: -Full support for GRBL 0.9 (Full PWM support) -Interchangeable "tool expansion board" ( Laser / Spindle / Plasma / Voice coil motor / ecc... ) -Possible expansion board for standalone working (or wireless) -Can be powered up to 24V
Oni, I appreciate all of your hard work on your plugin. It works better and is simpler to use than anything else I have found!
Hi, I've uploaded some precompiled versions of GRBL v0.9 with PWM enabled at various settings: - Different prescaler (different PWM duty cycle) - Two different PWM value range (from 0 to 100 & from 0 to 255) http://www.openbuilds.com/attachments/grbl_v0_9-rar.7016/