Sunday, May 12, 2019

Laser Engraving on Anet A8 Plus 3D Printer

Hi, I'm KDH.
This post is about making my Anet A8 Plus into an multi-purpose 3D printer that can engrave with laser.
Before I start the post, I was able to do all of this work thanks to an user named vandenmar who posted about laser engraving on prusa MK3.
If you use different type of printer, better check out his post.

Step 1. Materials


In order to laser engrave, of course I need an laser module.

The one I bought is an Eleksmaker's LA03-3500 with 3500mw power and has an TTL control.
Then, I prepared an Arduino Uno R3 board, Small breadboard, some resistors, cadmium sulfide cell(CdS), LED, and some wires to control the TTL signal with the cooling fan power.

Step 2. Mounting the Laser


In order to use the laser, I need to mount it somewhere in the extruder parts. So I decided to design a Laser Mount that uses the 4xM4 screws placed in the extruder holder.(It uses the screw that is already in the printer, don't need to buy M4)
In this way, the laser mount will be hold tight, even when the printer head moves quickly getting a lot of acceleration.
[Sketch of Mount]
 [Modeling With SolidWorks]
[Printed Mount]
This version of laser mount is an advanced version of the one, that I made before.
It can hold the laser module, TTL controller, Arduino Uno R3 with M3 screws. And It is more stable than before.
Also It is compatable with all LA series laser of Eleksmaker
Here is the link of this mount : https://www.thingiverse.com/thing:3624983
Now, we need to assemble the modules, board to this mount.
[Diagram of Assembly]
[Assembly of Arduino Uno R3]
[Assembly of Laser Moudle/TTL Controller]
[Assembly of Mount to Printer-M4 Screw]
Now the assembly is done, and wiring is left.

Step 3. Wiring Cooling Fan's Power Line to Arduino


I will use the power signal of the cooling fan, to control the TTL signal. So I need to wire the cooling fan's power line to an LED, that will give  a signal to the arduino.
Anet's cooling fan voltage is 24V so I need to regulate it to about 5V.

(At the first, I tried to wire the cooling fan's signal directly to the TTL signal port, regulating it to 5V, but it didn't work properly. Don't know the exact reason, but TTL signal read the frequency of the input voltage so I used the arduino to produce 5V signal for TTL)

This regulating can be done very easily with 24V-5V regulator Module but, the one I ordered in banggood didn't arrived so I used 3 resistor to make 5V.

So now, the 24V is successfully changed to 5V, so I connected an LED. And the LED is going to turn on/off by the cooling fan's signal.
(Also, I added an switch to change the cooling fan mode. Normal status, the power goes to the cooling fan, and when I switch, the power goes to the LED)
Then I connected an CdS cell to read the LED's light signal. And then connect the CdS cell to the Arduino to read the signal.
Then I need to wire the OUTPUT Signal of the Arduino to the TTL port of the Laser. This way the arduino can read the CdS signal, and send 5V signal to the TTL module.
[Complete Diagram of Wiring]
[Picture of Wiring]
So It is going to be like this
Cooling fan on -> LED on -> CdS resistant LOW -> 5V to TTL
Cooling fan off -> LED off -> CdS resistant HIGH -> 0V to TTL

Step 4. Programming Arduino for TTL Control


The wiring is done, and I need to program the arduino to send signals to the TTL.
Program code is almost same with the example code with CdS sensor. 
This is the code, I made

int laz = 9;
int cds = A0;
void setup(){
  pinMode(laz,OUTPUT);
  pinMode(cds,INPUT);
  Serial.begin(9600);
}
void loop(){
  int num = analogRead(cds);
  Serial.println(num);
  if(num<100)
  {
    digitalWrite(laz,HIGH);
  }
  else{
    digitalWrite(laz,LOW);
  }
  delay(50);
}

I used digital pin 9 to Send signal to the TTL module, and used analog pin 0 to read signal from the CdS cell.
So if the reading value of the CdS, is below 100, the TTL signal is on. (CdS signals 20~30 when LED is full bright, signals 255 when LED is off).
Now, the programming is complete and, I uploaded this to the arduino and tested it using Gcode command.
M106 S255 will trigger the LED, and M107(or M106 S0) will turn of the LED.
[Relation between LED, LASER]
[Testing with Gcode command]

As like the testing video, it was a success.
Now all left is to engrave some images.

Step 5. Preparing Files to Engrave


To Engrave, we need to have an svg file(vector type). Rather we can get a vector file directly or we can make an covert an raster type to vector with Adobe Illustrator.

If you got an raster image, then use 'image trace' in Adobe Illustrator to change it into black/white picture. Then save it in svg type file.
[Image Tracing]

Step 6. Engrave using Software


Whether you got an vector file directly or converted an raster, the next step is to convert vector to Gcode that printer can move.
The program that I use is 'Laribo'.
It is made by the user named vandenmar that I mentioned at the starting of this post.
Links again : https://www.instructables.com/id/Laser-Engraving-on-Your-Prusa-MK3/
This program converts the vector line into Gcode, that the printer can move, and also the most important thing is, it gives M106 S255 command in the engraving line, and while moving outside the line it gives M107 command to turn off the laser.
[Converting svg to gcode with Laribo]
We can control the engraving speed, moving speed, Laser position height, and curve resolution. High Curve resolution gives more detail but, it takes more time, and it slows the speed in curves, so the laser might burn too deep.
So I recommend to use low value.
After saving, all left is engraving.

When engraving, you need to calibrate your focus of laser by the height.(Laser Height - height of engraving thing)
Then, you need to position the plate you wanna engrave.
After that, Just enjoy the laser show.

(Must use your safety goggles. Safety is first than fun)

[Engraved Wood Plate]

Thank you for reading this post. See ya next time~

Bonus Engraved Photo



Thursday, May 9, 2019

Laser module on Anet A8 Plus

Hi, I'm KDH.
Today I bought an blue laser module from banggood.
Its Eleksmaker's LA-03 with 3500mw power and has a TTL control.
LA-03 : https://www.banggood.com/LA03-3500-450nm-3_5W-Blue-Laser-Module-TTL-Modulation-Fan-Heat-Sink-for-EleksMaker-DIY-Engraver-p-1103261.html?rmmds=myorder&cur_warehouse=CN

It has a Laser Module and an TTL control module. The laser has an cooling fan at the top, that cools the aluminum heat sink of the laser.

Now, I need to assemble this laser to my 3D printer. Luckily the laser module has a pre-drilled M3 holes, so I was able to design an mount.
 [3D Modeling with SolidWorks]
[Printed Parts]
The right plate with the rectangular 4 holes is used to hold the laser itself, and the left side straight 4 holes is to assemble with the 3D printer.
This red-highlighted 4 holes is going to be used to assemble the mount.
This is the picture of the assembled laser. This model is still a prototype so I didn't made a hole for the TTL control module. Soon I will upgrade it.
This is the test video of laser module.
It works good but I didn't used my TTL control. Just manually moving the extruder.
In the next post, I will introduce how to control the laser power(ON/OFF) with Gcode signal to the cooling fan and make some engraving artworks with it.
Bye~

Tuesday, May 7, 2019

Modeling I/O Port Cover for Anet A8 Plus

Hi, I'm KDH.
I have used this printer for about few weeks, and I was printing with my SD Card(Now I'm using pronterface), and the main board aluminum cover has a gap between the SD card port.
So I dropped my SD Card inside that gap few times, and every time I had to disassemble the mainboard cover.
And it was very annoying, so designed a cover to prevent that kind of situation.
 [3D Modeling with SolidWorks]
 [Printed Parts]
[Assembled at mainboard cover]
After few calculations, I was able to print a nice fitting part and assembled it to my mainboard cover. Now I don't need to worry about dropping my SD Card inside the mainboard. :)

Modeling BLTouch Sensor Mount for Anet A8 Plus

Hi, I'm KDH.
Since I was using my 3D printer, I was tired to do my bed leveling so I bought a BLTouch Sensor.

So I searched for a mount to setup this sensor for my 3d printer.
But the problem was Anet A8 Plus's extruder frame was different from the original Anet A8, so all of the models in online was useless to me.
So I decided to design myself.
I visited the homepage of ANTCLABS, the company which made the BLTouch, and got the CAD information.
ANTCLABS : https://www.antclabs.com/
This is the image from the manual of BLTouch which shows the CAD dimension of the sensor.
[3D Modeling with SolidWorks]
 [Printed Parts]
[Assembled at A8 Plus]

After some calculations and some fails, I managed to design a accurate model which fits at the Anet A8 Plus.
The 3D Model of this sensor mount is on thingiverse : https://www.thingiverse.com/thing:3547279

But even though I mounted the sensor, still I am struggling with the marlin firmware(I bricked many times), so even now, I am manually leveling the heating bed :(



My first 3d printer and my workplace

Hi, my name is KDH, opening my new blog.
Its been a while since I bought my 3d printer(bought it at March 16), and now I am trying to upload some things I have done and also keep uploading some stuffs I will do.


The one that I bought is Anet's A8 Plus, which is an upgrade version of the famous Anet A8. Which has a larger build volume(300x300x350) and did some safety upgrades to the main board and is made of aluminum frame.
I bought an DIY version and assembled it.(Didn't take a lot though)

This is my main desk. Which I do my printing and 3d modeling.
And this is my second desk. Which I assemble and manufacture electronics, and do some programming.


Anyway, I will keep upload some stuffs I do, and some 3d models I design, so hope you enjoy watching this. :)