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.

Messages - Macpod

Pages: [1] 2 3 ... 11
3D Printers / Re: New to lasers and SLA and need some info
« on: March 31, 2018, 05:46:47 PM »

Maybe I should phrase this differently. Since you have a much stronger knowledge of galvos, and coding and all the areas where I'm lacking, if someone came to you and said "I have this galvo head (the one I included the manual for in the last post) can you turn it into a laser sla 3d printer?" How would you go about it? Would you prefer a digital or analogue head since it can come as either one? What are the missing components and where would I source them in order to pull it all together.

With my limited knowledge and experience it seems like the best way would be to find some way to reconfigure a basic marlin/repetier firmware to drive a galvo instead of steppers on the XY axis, and swap the extruder bits for laser ttl on/off commands, and just use a ramps board to do it all. But I have no idea how to go about doing that, and I don't want to have to manually modify massive amounts of Gcode manually before doing a print. The solutions are definitely out there because people are doing it fairly inexpensively. I just keep running into brick walls, so maybe I need to take a whole new approach all together.
I would probably go with a digital head if it wasn't significantly more money and after I determined the speed would be sufficient (vs an analog head). Before I purchased anything I would make sure software existed and if not write the software.

There are two software approaches, one is to modify a slicer to export images, then draw pixel by pixel. The other means is to make a g-code to x-y point converter and use that in conjunction with either an xy2-100 head (easier and already integrated in) or lasershark board attached to an analog head (maybe faster).

3D Printers / Re: New to lasers and SLA and need some info
« on: March 29, 2018, 11:56:39 PM »
Sorry, I totally forgot to include the datasheet/manual they sent me with the stats on it. It seems like if it can interpret the digital signals, that it would already have a similar board type thing in the head, but I could be wrong. If not, I think going to the lasershark route is definitely the best and simplest way to go. I'm probably going to be purchasing the CW software license since that looks like the smoothest way to itegrate everything since I'm already way out of my knowledge base on this one.
It should for a digital head. The logic board I am referring to that would attach to an Arduino/etc would be for the purpose of level shifting (think 3.3v to 5v TTL Level conversion or TTL to RS232.. very simple/common) vs a processing or analog to digital module.

Before purchasing a copy of CW make I would encourage you to reach out to the developer to verify it still supports the LaserShark. CW used to be freely downloadable and supported the LaserShark but this support was removed and the product went to a license-based model. According to another post on this forum the LaserShark is not supported by the latest CW.

It looks like something changed with gcc and I'll need to update the code to have it compile.

In the meantime in the Makefile you can remove "lasershark_twostep" from the following line and run make again. This should build everything fine:
all: lasershark_jack lasershark_stdin lasershark_stdin_circlemaker lasershark_stdin_displayimage lasershark_twostep

I'll try and fix this gcc issue this weekend but since you probably don't have a twostep board the result likely won't matter much for you

edit: I have removed the inlines and corrected some code that was throwing warning too as a bonus :)

3D Printers / Re: New to lasers and SLA and need some info
« on: March 28, 2018, 01:11:58 AM »
Actually, the original company got back to me and they suggested another product they have that is a galvo scanner with the housing, the f-theta lens for a 405nm laser, set up for a 300x300mm scan area, all the mirrors, and galvo bits and a laser that mounts up to the head, and they said they could do that one for $700 total. That's about the cost of just the lens from other companies I've seen, and these guys sell tons and tons of scanners and their reviews look pretty solid. I think I'm going to go this route as long as you think it should work for a high accuracy 3d printer set up. I'm going to attach the manual for your to review and let me know what you think.
It sounds interesting for everything and having a pre-assembled head with galvo/power supply/galvo amplifiers/laser/controller could save you headaches. I couldn't comment on if there were any areas of concern without a datasheet but hopefully from my first reply you know about some of the things to look out for (i.e. monotonicity/linearity)

Also, it turns out they can do it in either a digital, or analogue. Which option would be easier to integrate into the software? If I went the digital route rather than analogue with a lasershark board would I need some kind of usb dongle to send the xy coordinates out to the galvo motors? Could I use a standard arduino set up of some kind like an fdm printer? But rather than sending steps to a stepper driver, it's basically sending steps to a galvo motor? I've got a lot to learn before I'm able to make this happen so I appreciate whatever help I can get.

This will be dependent on the software you are integrating with and the speeds needed. If starting from scratch digital would be easier. Going digital may increase you price estimates as the equivalent of a Lasershark will need to be integrated into the head but even so it may be worth it.

If you go the digital route you will still need something to output XY2-100 protocol. An Arduino could be sufficient or in conjunction with line level shifting/etc according to the head's input requirements.

It looks like you are missing twostep_common_lib.h and twostep_common_lib.c . Did you remember to initialize and checkout the github submodules?

cd ~/Desktop
git clone cd lasershark_hostapp
git submodule init
git submodule update

Hi Wan-anong,

What problem are you encountering specifically?

How do you plan to use the jack application too? I ask as there may be easier ways to accomplish your goal

3D Printers / Re: New to lasers and SLA and need some info
« on: March 19, 2018, 11:33:55 PM »

1. Laser power? I'm assuming approx 150 mw would be plenty?
405nm 50mW-150mW lasers seems popular for SLA printers. Would those work? Maybe...
This is a challenging question to answer without other system details. Some of these include:
-accounting for resin cure characteristics
-how fast the laser will be scanned
-beam focus
-beam diameter.
I see you plan to use an f-theta lense and that will help minimize some variable complexities.

2. digital or analogue galvo? I'm assuming analogue, but I haven't done a whole lot of research on how exactly I'll be driving the galvo? Will I need a separate galvo control board in addition to the ramps 1.4 I was planning on using? Can I control it directly from a raspberry pi? Again, totally new to galvos and how they work and all that, so feel free to enlighten me as to the electronics necessary to pull this off.
I suspect they are asking if you need a digital scanning head or analog scanning head vs galvo. If you purchase a digital scanning head I presume it will use the XY2-100 protocol and you will not need a LaserShark (nor will the LaserShark be compatible/make sense). If you purchase an analog scanner head you will need an analog controller board such as the LaserShark but first you will need to determine if the input characteristics of the heads input match. I would expect most things would follow the ILDA standard so this would be true but you would need to confirm this. I do not see analog specifications in the attached document.

3. connecting table? Not even sure what they mean by this, but hopefully someone here knows what they're talking about?

The documents suggest this might be a poor translation and correspond to the mounting interface between the scanning head and laser.

The supplier is a company from and the model they're offering is a Model JD2203 Galvanometer, with a 405nm laser and an f-theta lens lens specifically designed for a 405nm laser and a 300mm x 300mm working area. I'm expecting the total scanning head to come in around $500 or so, which is insanely cheap compared to the other options I've found online from American Suppliers. It's a big enough savings that I'm happy to drop the $500 on one of these scanners and give them a shot. Any feedback or input of any kind would be greatly appreciated since I'm in way over my head on this build.
That is quite low in cost. Generally this is an indicator that R&D costs could be avoided or that the product has been cost-optimized. I would be curious to know the KPPS rating of his scanning head as well as the stability characteristics in comparison other companies around the world.

I'm also trying to figure out exactly HOW all the components will play together. I've been hunting around for some info about what the lasershark board actually does, correct me if I'm wrong, and it looks like it essentially scans an image, line by line, and converts it translates that into movements so the laser will draw the image that is sent (via usb) to the board. So in this instance, it will essentially be working like a DLP Projector. Whatever control software I'm using (would love recomendations for slicers and control software for sla set up) would tell the stepper to move the Z axis up/down, then send an image (rather than a series of gcode commands for all the movements of an FDM printer) to the lasershark board and it will "project" the image onto the resin. Does this mean I could use software designed for DLP printers such as NanoDLP or others if I'm using a lasershark board to control the laser?
The lasershark driver (that runs on your computer) accepts x/y coordinates and power intensities for the laser channels, stuffs these into buffers and sends them over usb to the LaserShark. The lasershark in turn prints out these coordinates at the designated kpps rate you configured the points to be displayed at.

the lasershark_hostapp github repo provides two means to use this:
1. You can use lasersharklib to integrate the lasershark libraries into your codebase and drive the LaserShark as fast as possible
2. You can compile lasershark_stdin and pipe samples in a simple text format into the application. This latter approach is less efficient, but much easier as you do not have to learn how to use libusb/etc.

In this repo are two examples of how to use lasershark_stdin. One is lasershark_stdin_circlemaker. If you pipe this into lasershark_stdin, a circle will be drawn. The other is lasershark_stdin_displayimage which will line-by-line display a png image if you pipe the output into lasershark_stdin.

Your software would need to control the z-stepper motor (i.e. you could write a python app that controls this between layers). If you can get software to present you with a png image of each layer you could theoretically adapt it, but you would need to have some integration glue on and (all of which you should be able to confirm before buying any hardware).

3D Printers / Re: LaserShark and Creation Workshop
« on: February 12, 2018, 11:05:16 PM »
If you have a program that can slice a 3d model into layer images, you could make a script based off of using lasershark_stdin_displayimage.c.

3D Printers / Re: lasershark_3dp file?
« on: February 10, 2018, 06:14:18 PM »
I am unable to download these files.

Are these your files or someone else's? If the latter, where did you find these links?


1. Starting with the ascii interface (lasershark_stdin) is perfectly fine for prototyping, it was intended to allow an easy start for prototyping.
If you send X and Y values, yes, it will make the galvo motors move to those positions. You can read more about the lines that you must send by reviewing the lasershark_hostapp code.


And perhaps most useful for learning the protocol:
This file will tell you the format of commands to send (i.e. how to set rates, move galvos, and turn lasers on/off)

2. The galvo amplifiers require differential analog signals. The differential input voltage provided is what designates what position the galvos move to. A differential value of -10v will make the galvo rotate to it's fullest extent in one direction and a differential value of 10v will make the galvo rotate to it's fullest extent in the other direction. A differential value of 0v will make it move to a centered position.
The amount of rotation will depend on how much you change the voltage from one point to another. In the case of the LaserShark there are 4096 "steps" divided in the case of your galvos by 30 degrees. This means each "step" under ideal circumstances will correspond with a 0.00732421875 degree change. Note that in reality you will never achieve this small/consistent an angle change due to various imperfections related to each component in any galvo system.

3. It will require you to develop software but yes? Others have already done this to varying degrees. Unfortunately their works are closed source :(

3D Printers / Re: lasershark_3dp file?
« on: February 10, 2018, 01:40:01 PM »
Can you please clarify your question? I'm not sure what you are asking for

3D Printers / Re: LaserShark and Creation Workshop
« on: February 08, 2018, 12:16:49 AM »
Hi VitoB,

Creation Workshop is software developed by another company (Envision Labs). If you go to their website ( it suggests everything has moved to a new home (and maybe company?) of DataTree3D.

Have you tried talking with this company?


1. Yes, the LaserShark sends signals that can be interpreted by the "galvo drive" (usually referred to as a galvo amplifier) in order to steer the galvanometers.

Galvo amplifiers are analog devices and should not be advertised with a bit rating (i.e. 8bit or 12bit). These values are associated with the galvo controller board that is sometimes shipped as part of the galvo/galvo amplifier kit... and intended for setting up very cheap laser lightshows. You do not need this controller as the LaserShark replaces this component (and is thus a means for you to save money)

The galvo ratings you should pay attention to are scan angle, the KPPS rating (kilo-points per second, higher is better), drift (less is better), settle time (shorter is better), linearity, etc. When purchasing galvo/galvo amplifiers it is best to purchase those that have differential differential inputs (3 pins usually, sometimes 4) to minimize noise.

The galvo you have shown appears to have differential inputs which is good. I am concerned that the galvos you have purchased are slow/upsold for what they are due to the presence of square mirrors. To support high speeds, it is best to reduce the amount of material that must rotated. For this reason higher speed and quality galvo sets usually have specially cut mirrors.

2. A single LaserShark is capable of controlling two galvo/galvo amplifiers (For X&Y control)

3. The LaserShark does not work with stepper motors. You do not need to program the galvo amplifier boards but you may need to tune the pid loop using the various pots on the galvo amplifier boards. I would not touch these until you need to.
Please see:

4. Some windows software is available. Prior to purchasing please review the following link and my github pages to verify it is what you expect:

5. The source code on github for the firmware is the most up to date and is what is programmed on the boards.

6. The LaserShark will drive any galvo provided the input specifications of the galvo amplifiers match what the LaserShark will drive. This is mostly the same for galvo/galvo amplifier kits intended for laser lightshows (to accomidate the ILDA spec). LaserShark specifications are provided here:
and here:

7. The XY2-100 protocol is a digital protocol. You shouldn't need a LaserShark to drive heads that use this protocol however some do seem to support analog input and these may be drivable by the LaserShark. I have found these heads are generally more expensive than just a standard galvo amplifier/galvo kit but would be happy to be proven wrong :)

3D Printers / Re: Multiple Galvos
« on: January 23, 2018, 10:15:58 PM »
To properly calculate the value you would need to sum up (plus multiply for amplifiers) the errors and non-linearity of all the components. I wouldn't want to make a guess without significant experimentation which I have not formally done. What I would do in your design is try to keep temperatures as stable as possible.

I think if i were experimenting with this I would try to use as focused a beam as possible and then increase the diameter if you find you have problems. I suspect as-is this won't be a problem due to the beam width of your laser (assuming you will keep it stock) and it's transverse electromagnetic (TEM) mode.

3D Printers / Re: Multiple Galvos
« on: January 22, 2018, 07:33:52 PM »
I haven't played with these scanner head types before. I see that it supports the XY2-100 digital program (which you wouldn't need/want a LaserShark to control). In quickly looking around the web I see that some of these heads support both analog and digital input. One of these might be controllable by the LaserShark. Do you have or can you request a datasheet and pinout from the manufacturer?

Yes, the F-theta lenses are a means to correct the projection plane that is frequently used by engravers/3d printers.

The area the laser is able to draw upon will depend on how far away the galvo system is from the drawing surface. As you move further away, the laser movements will become greater between points. The LaserShark has a resolution of 2^12 bits = 4096 theoretical points*. With a setup that allows for a 100mm printable area that means that each bit shift will move the laser focus by (100mm/4096) = 0.0244140625mm. For a 300mm area these points would be 0.0732421875mm apart

* Note that neither the DAC in the LaserShark nor the galvo amplifier pid loop is perfect thus you will likely not have a full 12-bits to work with outside of a theoretical sense. You will also need to take into consideration "drift" caused by temperature in the LaserShark dac, amplifiers, galvo amplifiers, and galvo feedback components.

Pages: [1] 2 3 ... 11