NSL gets a laser cutter
We’ve been trying to sort out a laser cutter for a while now, last year we bought a 40W tube and a PSU and burned holes into things. While hugely entertaining, it lacked some precision
That was as far as it went, so i had enough and just decided to order one, after a few stops and starts we bought an LC900N directly from wklaser in China, they’re the same ones FS laser and hurricane etc sell but they do some mods to the software/boards, but nothing that is worth the price increase that i can see. It cost us under $4,000 USD for a 90W laser with a 600x900mm cutting area, with a motorised Z table from china to us.
We’re on the third floor and our elevator is ( A ) too small ( B ) out of order, so we had to levitate it in.. Having hindsight we could have taken it apart, but had been previously assured we couldn’t do that. Anyway…..
We did what anyone would do and removed the window, hired a crane and lifted it in through the window.
Taking it out to inspect the contents etc.
Building a landing table
Scientific weight test, the window is gone and 3rd floor, proceed to start jumping. Some people were confused about what don’t go past the blue line meant.
Yes this is a good idea.
We put out cones, people removed them and parked anyway, I told a few people they may not want to park there, most people got annoyed and asked why not? So i explained, most of them changed location. But only most….
ok we’ve gotten it to here, what now ? Time for a meeting.
The tricky part, removing the first strap, everyone pitched in to help.
The Rapunzel method started off well but we discovered a problem in the hair length dept.
And its in!
Books are useful. Dropping it the last meter was harder than getting it from China.
Put the window back, respackle it and no one is the wiser.
Ok so the laser is purchased, shipped from china, craned in through a window. What next?
First install the tube
The laser needs a vent, preferably hilarious. (needs video)
Obviously take it apart and improve it.
The height setting tool needed improvement, so made that and labelled it as such
Test cuts. Lots of test cuts.
Align mirrors, the manual came in useful here. (bits of paper)
Now change mind, remove the mirrors, turns out they’re dirty! So we swapped them out for ii-iv’s, increasing the power 20%. Interestingly there is a technique to make CO2 laser mirrors from hard drive platters hard disk platter co2 laser mirror
The new lens vs old one.
Ply Wood 5.2mm 8speed 90power OLD LENS
ply wood 5.2mm 15speed 40power NEW LENS
The T4 28” fluorescent bulb burned out after a day or so so we replaced it with some halogens, especially since they’re hard to source locally, test fitted with duct tape. The whole machine gets covered in grease for shipping so lots of cleaning first.
Next well they said we can’t cut steel. So quick trip to home depot for some O2.
The glo-stick is vital
well it is cut but…. not really useable, however great progress
Here we cut some 1” acrylic
The GUI is full of odd chinese-english conversions, but they use a UTF8 .ini file so you can edit it all you want. Instead of Datum, it is now Home . Just edit language.ini or use Resource Editor on the .exe for permanent changes the software does nt self check, even though it uses a senselock dongle.
Next is hack the software, we figured out the control software, reversed most of the API it actually rasterises vectors in the PC side and sends them over as points!! I’m shocked and amazed since the machine has a ‘DSP’ based controller board. It generates a TXT file and compiles it ,then uploads it the API has move, p-move, arc and circle functions but the software never uses them..
CLASS_DECLSPEC int APICALL M05_m_fast_line2(int chx,long disx,int chy,long disy);
CLASS_DECLSPEC int APICALL M05_m_set_vector_profile(double ls,double hs,double ac);
CLASS_DECLSPEC int APICALL M05_m_set_vector_profile2(double start_ls, double hs, double end_ls, double ac, double dc);
CLASS_DECLSPEC int APICALL M05_m_curve_vertex();
CLASS_DECLSPEC int APICALL M05_m_curve_begin();
CLASS_DECLSPEC int APICALL M05_m_curve_end();
CLASS_DECLSPEC int APICALL M05_m_set_period(double period);
CLASS_DECLSPEC int APICALL M05_m_set_power(int LowPower,int HighPower);
CLASS_DECLSPEC int APICALL M05_m_set_laser_mode(int mode);
The are all set ramp speeds, laser on, move here, move here move here, move here. Not set point, radius calculate in controller.
Oddly the first command we figured out (unintentionally) was fire the laser at full power indefinitely.
Is it off, no, is it off now , no ? how about now ,, no ? OK what’s the tube temp? still not off ? Easy to fix though, its just a toggle on/off. You also can’t easily jog the laser head around with the laser on, it’ll work but you can’t turn it off easily!
Knock out a quick GUI in Visual Studio.
I updated the header file for the DLL on our SVN. I’ll document it as i go along
Example of the txt file, which it compiles on the PC side.
CMD409,416,880,3000,41666,900,5000 //set ramp speeds and power
CMD050,1,1 //laser on
CMD001,63556,42631 // move
CMD050,1,0 //laser off
i’m surprised it rasterises the vectors though, i was expecting to see a command for a circle that defined a center,radius etc.
speed change. 100 to 300
power change 9 to 99 ( *100)
horizontal line moved in y
horizontal line moved in x
Lots of boxes were cut
boxmaker scripty thing
Found a nice dragon box on thingverse
bVector made a nice mod to that case.
So this ends our first week with the cutter, we have to decide if we’re replacing the controller, Leetro apparently want us to buy $25,000 of stuff to get the SDK documentation, but we’re so far into reversing it, that won’t matter. The controller might be ok. It has some strangeness we want it to speak GCODE so maybe another GRBL based controller like we did for Pickobear.
We’re also building a new frame for it, and updating it to 170W laser tube (maybe)
more to come….