open-hardware transparent polygon scanner

laser scanner which uses transparent instead of reflective polygon

Similar projects worth following
An open-hardware laser scanner suited for Printed Circuit Board (PCB) manufacturing and 3D printing. The laser scanner uses a transparent prism instead of a reflective polygon with a f-theta lens.

The goal of this project is to develop the electronics and scan head for a PCB machine which can expose a PCB with a track width smaller than 100 micrometers, i.e. 4 mil. The PCB machine also has a spindle to CNC a PCB board and create through holes. The transparent polygon scanner, which can get a high accuracy and telecentric projection, has been developed. The electronics and software to cut boards with a spindle and expose it with a laser has been developed.
The current goal is to bring the quality of the scanhead to a higher level so it can be sold as minimum viable product.


The current version of the Hexastorm has the following specifications:

  • wavelength: 405 nm
  • rotation frequency:  up to 21000 RPM, current 2400 RPM
  • line speed: up to 34 meters per min @ 21000 RPM
  • spot size FWHM: circular, 25  micrometers diameter
  • cross scanner error: 40 micrometers  (error orthogonal to scanline)
  • stabilization accuracy scanning direction :  2.2 micrometers (disabling/enabling scanhead)
  • jitter: 35 microns (error parallel to scanline)
  • laser driver frequency: 2.6 MHz
  • maximum scan line length: 24 mm
  • typical scan line length: 8 mm
  • optical power: 500 mW
  • facets: prism has 4 facets


  • Beaglebone green
  • Firestarter cape  (laser driver, 3x TMC2130 stepper drivers, PWM spindle and fan control)


An image can be uploaded to the scanner and exposed on a substrate.
An exposure result on cyanotype paper is shown below.
Resolution looks to be around 100 microns. Stitching still needs to be fixed, results in white lanes.
The idea is that throughholes are made with a spindle.  There is a project on hackaday where a PCB is cut with an EDM.
At the moment, the goal is develop the scanhead so it can be sold with electronics as MVP.

An exposure goes as follows (for the result see above).

Hexastorm fork of LDGraphy
Hexastorm fork of BeagleG
Optical design
old FPGA code

PCB design

Hardware designs
CAD files

Literature Research
White paper (on Reprap)

Other Links

Official website

Failed kickstarter campaign

Adobe Portable Document Format - 5.57 MB - 06/13/2019 at 07:28


calibration data of current scanhead

Zip Archive - 278.28 kB - 01/25/2019 at 18:50



measurements and algorithm used to determine stabilization accuracy, see blog

RAR Archive - 594.17 kB - 01/25/2019 at 14:50



bom ofthe old firestarter and overview of layout. This board is no longer in use.

Adobe Portable Document Format - 912.66 kB - 05/07/2018 at 21:30


  • 1 × Quartz optical window, 2mm thick, 30x30 mm 40 euros, faces 60/40 < 5 arc min, chamfers 0.10 – 0.30mm, edges Polished 60/40, top bottom polished 60/40,
  • 1 × Beaglebone Green 45 euros, kiwi electronics
  • 1 × Heavy Duty Heatsink / Laser Diode Housing for 5.6 mm with Fan 11.93 euro, odic force
  • 1 × BDR-S06J 405nm, 500-600mW Blue-violet Cut-pin Laser Diode 27 euro. odic force
  • 1 × 25 mm focal length, cylinder lens, 12.5 mm x 25 mm 56.50 euro, edmund optics, faces 60/40, MgF2 coated

View all 11 components

  • finished height system

    Hexastorm4 days ago 0 comments

    The proof of concept module was hard to build. I used shims of 100 micrometers and a tweezer to set the height of the laser.  In the next module the build procedure is simplified so it is easier to scale the amount of single bundle transparent polygon scanners in the world from 1 to 10, and make a 10x improvement.
    The procedure is as follows; set height laser, set horizontal position laser by first cylindrical lens, set height diode..  Other components still need to be added an whole system needs testing.

  • disassembled POC head

    Hexastorm7 days ago 0 comments

    I want  to simplify the fabrication of a scan head. I disassembled the head so I could reuse the components. A colleague advised me to glue the lenses with CAF3 (silicon glue) to the plastic posts. This was good advice, lenses were very easy to take off. I was worried that i had to order the components anew.

    Components are ready for the next iteration.  Some remaining glue can still be seen.

  • Detector bar to allign scanheads

    Hexastorm06/14/2019 at 15:35 4 comments

    As always, I would like to generate some prior art to extend room of operation.  The following concerns the situation that multiple scan heads are used in a single machine. For an example see Kleo which uses 288 bundles by Carl Zeiss.

    If multiple scan heads are used, a challenge is to align these heads. The position of the laser in each head has to be known exactly.
    One way of doing this is by moving a camera under the scan heads and collecting position information per laser. The laser would project directly onto the CCD / CMOS chip and its position would be determined. This is however expensive as it requires an extra stage with camera. The chip has a finite size of for example 5x5 mm and has to be moved.

    Another solution of doing this would be to add a bar from diffuse glass, e.g. opal glass. The light would be scattered in this bar and reach the edges of it. At the edge of this bar there would be a photodiode. The bar could be made of opal glass. One might think that this  bar must be narrow so the position can be detected up to 10 micrometers accurate in one direction. The current photodiode used to calibrate the laser is, however, also not narrow.  You can simply use the rising edge of the signal recorded by the photo-diode used to monitor the diffuse opal bar.
    The stage upon which the scan head is mounted then moves in  orthogonal direction to this bar.
    By turning on the laser and moving it over the bar. The position can be determined exactly in that direction. It might be needed to add a cap-around the bar to minimize stray light. This is also done for the photo-diode  in the scanhead.
    Still, I need two dimensional information. I also need to know the position of the laser diode at the bar.
    To do this I could use multiple photodiodes along edges of the bar. These would all measure a signal if the laser hits the bar. The signals will however arrive at different points in time. This allows one to determine the position of the laser along the bar.

  • Designs

    Hexastorm06/05/2019 at 17:11 0 comments

    I have uploaded the current designs of the Hexastorm to hexastorm design.  The project goal has also been slightly altered. The current focus is to develop a scanhead which can be sold for R&D purposes.
    This scanhead in combination with the Firestarter cape and software would then be the MVP. The first target customers are R&D institutes, technical enthusiasts or corporates active in for example the field of 3D printing and PCB manufacturing.
    My current target is entities incorporated as business. The advantage of business customers is that they don't have to pay income tax before the purchase of scanhead and often can deduct value added tax.
    This can easily save you up to 60 percent in price in countries like the Netherlands, as VAT is 21 percent and income tax is around 52 percent. In the Netherlands you also have the change of multiple subsidies like WBSO. Imaging technologies are seen as a "key technology" which makes you applicable for all kinds of grants / collaborations.

  • Tested board

    Hexastorm05/29/2019 at 01:03 0 comments

    Good news! I have been able to test the Firestarter V2 board and most functionality works (still have to test the laser/photodiode but don't expect trouble here). Progress was slow as I had to port the TMC2130 Arduino library to the Beaglebone. You can find the ported library here, it works.
    A challenge was that with multiple SPI devices you have to acknowledge a command by setting and clearing the chip select pin. Although obvious, this took me quite some time as it was done automatically for the default chip select pin and I did not have the right settings which made it a confusing bug.

    I left the laser scanner in the car during day hours. The car became so hot that the PLA became more flexible and the scanhead started to warp. It could be that the laser is still aligned as the plate was reinforced with a metal bar but it doens't look good.
    I started a fork of BeagleG for the Firestarter V2 board.  Making the board ready for BeagleG seems quite easy.  I hope to finish testing soon and will then commit it back to the main branch.

    The Firestarter V2 will then be able to run two firmwares; BeagleG and my Python fork of LDgraphy. This will bring me a lot closer to start making PCBs with a spindle and the Hexastorm :-).

  • Populated board

    Hexastorm05/06/2019 at 18:08 0 comments

    Board is populated, next step is testing if it works.

  • Received new boards

    Hexastorm04/30/2019 at 15:32 0 comments

    Boards are in, added logo... hope they work!

  • Finished routing board

    Hexastorm04/18/2019 at 16:54 0 comments

    I finished the routing of the new Firestarter Cape;

    The cape has the following improvements;

    •    PWM control of spindle and fan
    •    added spindle
    •     TMC2130 motors can now be configured via SPI
    •   added third stepper motor for z-axis.
    •  board is now made with Kicad and not Altium.
    • hdmi pins are free, screen can be added

    The current board can be used for 3D printing.  Although, you might want to add a tilt motor, recoat motor and temperature control for your resin.  Some machines use force-feedback,  which is patented.

    The boards still have to go through some final checks, probably you can't run 30A through the board.

    Code can be found here ; firestarter

  • Form 3

    Hexastorm04/02/2019 at 18:48 0 comments

    Formlabs launched the Form 3 . It uses a parabolic mirror and a galvo mirror. The galvo-mirror is used to obtain a constant line speed as they don't use an f-theta lens. The parabolic mirror is used to get the spot into focus over the full scanline.

    The galvo mirror can be seen here;

    The properties of a parabolic mirror are shown below;

    The optical system will produce a better spot quality than their previous galvo design without f-theta lens.

    In comparison with the Hexastorm;
      - no cross scan errors / jitter
      -  long scan line
      -  scanhead has to be moved in only one direction, not two
      - low scan speed; don't use rotating mirror
      - diffraction limited spotsize is given by 2w0 = 4 lambda / pi * f/d
    In the Hexastorm, the focal lengths are very short. It for sure is able to produce a smaller spot size.
      - elliptical correction; seems unlikely that Formlabs is able to circularize the beam.

    Form 3 spotsize is 80 micron. For both SLA and SLS a smaller spot size then that does not seem required.  There are systems which use higher resolutions.
    A difference with the Form 2 will be that a part will be less smooth. Tracing the outline gives smoother results. Lines imply a discretization in one direction. It can also not employ writing strategies to cure parts. This can be used to mitigate shrinkage. Reflective lenses give errors due to fabrication faults, e.g. some sort of mustage error; the line is not straight.
    Reflective optics are  better with high power lasers, e.g. 10 kW lasers. Refractive optics have the problem of thermal lensing. Up to 1 kW you can still use Zinc Sulfide / Zinc Selenide beyond that you want to grab some mirrors (ref DOI: 10.1117/12.2037356 )

    Form 3 is 3,499 and begins shipping in June. While the 3L is 9,999 and ship near end of the year.
    Their system probably has a safety clearance for lasers of class 3B. This would allow them to ship up to 500 mW. For some reason they only use 250 mW.

  • Road ahead

    Hexastorm02/28/2019 at 16:50 0 comments

    I see multiple applications for the Hexastorm. I have explored  a vertical sales model where I cater the specifications of the scanhead to the needs of an industrial customer.  The challenge with this model is that industrial clients require exclusivity and there are still adoption costs.
    This is hard as I also want to use the technology in different markets and have a preference for open-hardware.
    Considering possible beach head markets (SLS, SLA, advanced ceramics, mircro-sla, bioprinting or CLIP-like, i.e. carbon 3D like technology), I have come to the conclusion that the PCB prototyping market has the lowest barrier for entry. 3D printing processes require multiple layers, a customer need which is best served by a fast illumination. This is possible but will drive costs. In addition, it requires some sort of layer application method which is hard to implement in the current setup.
    The current setup is not ideal for PCB prototyping. It is not possible to cut out a board and there are some obvious safety and maturity issues with the current machine.
    As such for a PCB prototype, you would currently need two machines which have to be cross-aligned.
    I plan to address the first issue and will add a spindle to the setup. At the moment, I am thinking about a 775 DC motor with RPMs between 3000 and 9000. They are quite cheap and great for a first test. The software can then be partly copied from Machinekit or Zeller's BeagleG. Personally, I think t-belt will suffice for the x- and y-stage. The scan-head is already fast enough at low stage-speeds for a dual layer PCB.  Besides PCB prototyping, the developed software could also be useful for bio-printing due its ability to parse G-code. The problem with current UV exposure methods in bio-printing is that they typically rely on a non-precise UV light source for resin curing.
    The mechanical design and dimensions have to be determined later.  Bungard sells the following board sizes; 100x160 mm, 210x300 mm and 510x1150 mm. They seem to be industrial standards. I think 210x300 mm should be feasible.
    In the following, I would like to make a remark with respect to Carbon 3D and Nanoscribe. Carbon 3D initially patented Continuous Liquid Interface Processing (CLIP) see patent WO2014126837A2.  The company currently seems to sell it as Digital Light Synthesis (DLS) technology and makes a more general claim; an AM process with oxygen inhibition. Given my current knowledge of its patent portfolio this seems too wide. In the patent it claims that the part moves continuously away. This does not have to be the case.  It would be more likely given a laser-scanner that the part does not move continuously away. You could expose a line multiple times and cannot illuminate a complete cross-section at once. It would circumvent the patent and the resulting parts might still be more flexible and have a higher z-accuracy than classical step-wise produced parts.
    Nanoscribe uses dual photon polymerization with a galvo scanner as can be seen from reference 1. Optically, the advantage of the Hexastorm light module is its telecentric projection. This allows a machine to stitch lanes accurately without a telecenric lens. As such, it could be useful for a dual-photon process. Naturally, this would have to be elaborated further with an optical design.



View all 28 project logs

Enjoy this project?



Conny G wrote 05/27/2019 at 12:36 point

What material is the prism made from? How is it manufactured?
Can i make it in my "maker lab"?

  Are you sure? yes | no

Hexastorm wrote 05/29/2019 at 11:39 point

Prism has the following properties; 2 mm thick, 30x30 mm square,  faces 60/40 < 5 arc min, chamfers 0.10 – 0.30mm, edges Polished 60/40, top bottom polished 60/40.  Price is in the order of 40 euro per piece at a minimum order quantity of 10. You will have to discuss details with manufacturers in China over Alibaba. I made the first in a maker styled lab, so yes it can be done.  Note that it will take you significant time. I mean getting the parts with some delay for customs can already set you back at three weeks lead time in Europe. You would then still have to assemble and align the scanner, build a PCB, integrate upon a frame and do some electronics testing. I am currently working at laser scanhead which will be sold to R&D enthusiasts for testing.

  Are you sure? yes | no

Gravis wrote 02/03/2019 at 19:16 point

I'm also interested in the possibility of using a motor from a hard disk drive instead of a breaking down a polygon motor.  HDD motors are cheap to buy and (as I understand it,) contain an encoder and have screw holes which makes affixing things easier.

  Are you sure? yes | no

Hexastorm wrote 02/04/2019 at 08:48 point

HDD seem too slow.  They typically spin at 5400 or 7200 RPM.  At the moment, I can go up to 24000 RPM with polygon motor. For some applications, I would like 50000 RPM or 70.000 RPM, like the roadrunner sold by precision laser scanner. Also the motors are not too expensive, they are like 20 euros. I understand 20 euro's can still be a lot but if you look at total costs; you can better pay attention to other components.

  Are you sure? yes | no

Gravis wrote 02/05/2019 at 06:00 point

Oh, I had no idea you were planning on high speed.  Where can you get the motors in the 20 euros range?

  Are you sure? yes | no

Hexastorm wrote 02/06/2019 at 13:40 point

You can find polygon motors at alibaba ( .  The system is a proof of concept; for desktop PCB prototyping 2400 RPM is fine. If you plan to compete with Kleo . You will need at least 50K RPM.  An option would be to encase the prism and remove the air. This will reduce the drag. You could also fill the encasing with Helium as it has low drag and a high thermal conductivity.  Like the roadrunner the encasing windows would be tilted out of plane to minimize back reflections, see

  Are you sure? yes | no

Gravis wrote 02/03/2019 at 15:57 point

My suggestion for this project is to isolate the scanner from the 3 axis robot part so that the scanner could be made into a tool that can be changed out.  I would also ditch using BB's PRU and instead use a dedicated chip (and maybe a RAM buffer) and connect it via CAN bus.

  Are you sure? yes | no

Hexastorm wrote 02/04/2019 at 08:58 point

I intend to isolate the scanner, and design it for specific machines. I like the idea of having a dedicated chip. In the past I used a FPGA (Xula-LX25) with RAM as  bufffer. I can imagine there are even better options. The problem is that developing a dedicated board costs time, money and a lot of experience. Zeller made a very accessible code for the Beaglebone, so I went with that. You are looking at a proof of concept. It's a technology demonstrator. Anyway if you have recommendations; or some example code; feel free to share. 

  Are you sure? yes | no

Gravis wrote 02/05/2019 at 07:48 point

Considering this is a project where accurate timing is vital, I think an XMOS processor (e.g. XS1-L4A) would be a good fit.  Each 100MIPS processing unit is 100% deterministic with fast GPIOs.  I don't know the rate of data throughput you need but it may be easier to just cache to workload on a local FLASH chip than stream it.

  Are you sure? yes | no

Hexastorm wrote 02/05/2019 at 10:53 point

XS1-L4A is nice... but I rather like something with lot of support and examples... probably first gonna optimize the current code and balance my prism.

  Are you sure? yes | no

Gravis wrote 02/05/2019 at 20:37 point

XMOS stuff actually does have lot of support (, examples ( and even an IDE but I somehow missed the part where you wrote that didn't want to build a custom board.  Sorry about that.  XMOS chips make it easy to glue things together since it's 99% software so it doesn't take too much skill to make a board with them.  Consider enlisting help to make a board as there is a good chance it will alleviate timing related issues.  Good luck! :)

  Are you sure? yes | no

Paul wrote 11/05/2017 at 03:49 point

You've certainly done your homework very thoroughly, and I see that in your application with very small optical cone angles (large focal ratio), the optical aberrations and field curvature appear to be tolerable.  That's great.

One question: You say that previous scan techniques require a large (and therefore expensive, you argue) f-theta lens, which must have one dimension at least as wide as the scan line.  In your approach, your polygons must be larger than the scan line length, but in *two* dimensions, making the volume of your optical element much larger.  Since either shape would use identical materials and fabrication processes in volume production (i.e. injection molding), one would naively expect the smaller element (the f-theta lens) to be cheaper.   How is this line of reasoning flawed?

  Are you sure? yes | no

Hexastorm wrote 11/05/2017 at 10:51 point

A telecentric f-theta lens requires one dimension at least as wide as the scan line. A non-telecentric f-theta lens does not require that.  In my approach, the polygon must have one dimension longer than the scan line. The second dimension is 2 mm. An f-theta lens consists out of multiple lens elements, e.g. a 3 element f-theta lens. These elements have curved surfaces. The prism consists out of a single element with a flat surface. The prisms now costs 40 euro's per piece with a minimum batch size of 10. They are not injection molded. You can't make the f-theta lens out of plastic, so you would have to injection mold quartz. I am unfamiliar with the prizes for that. Besides most likely a higher price and the fact you have to use multiple elements, you also need to worry about patents. Envisiontec patented the usage of reflective polygons; US 9079355 B2 . Finally, you need a thick reflective polygon as thick polygons can deflect collimated bundles with a large diameter and these can be focused to smaller spots.  A transparent prism uses a focused bundle and therefore typically can be thinner, which keeps the price of the bearing lower.

  Are you sure? yes | no

Paul wrote 11/05/2017 at 15:55 point

You have clearly thought about this a great deal, and have your arguments worked out well.

I wasn't considering that you might be requiring quartz.  I would have guessed even BK7 would be overkill for this application.

I mention injection molding because I look around my offices and see several laser printers.  Each of them contain a laser scanning unit with a rotating (reflective) polygon and a f-theta lens arrangement, with the final element being very large (>200 mm long).  All the optical elements of the ones I have inspected appear to be injection-molded PMMA or similar plastic.  The entire laser scanning unit must cost considerably less than $50, given the prices of the printers (all less than $200, two less than $70).  Granted, these are produced in huge volumes, but they serve as existence proof that these scanning systems with large optical elements are not intrinsically costly.

  Are you sure? yes | no

Hexastorm wrote 11/05/2017 at 16:52 point

PMMA absorbs light at 405 nm. The laser printers at your office use 800 nm and low power lasers. I use 405 nm and high power lasers. So yes; there is concrete proof that PMMA injection molded systems are not intrinsically costly. There is no proof that quartz systems are not intrinsically costly.  It's unclear what the prices of these systems would be .

  Are you sure? yes | no

Paul wrote 11/03/2017 at 13:21 point

A good variation on the usual way.  I build a few instruments based on this and similar methods between 1985-1989.  A couple of important notes:  

1. The scanned field is NOT flat: The optical distance to the target plane *increases* as the polygon rotates away from normal.  Not only is it geometrically longer, some of the increased  path length is in the high-index polygon too, increasing the path length even more.  The result is a curved focal or scan plane.  One of my instruments actually depended on this: a rotating polygon was used to tune the optical path length inside an optical resonator cavity, to adjust a tunable laser that was phase-locked to that cavity. 

2. You get some significant spherical aberration when you focus through a thick window like that, for similar reasons: the light rays at the periphery of the optical cone take a longer path to the target plane than rays going through the middle of the cone, with the result that they focus at a different depth.  For a laser at f/50 (or whatever it is), this probably isn't significant, but in an imaging system at f/2, it seriously degrades focus. 

  Are you sure? yes | no

Hexastorm wrote 11/04/2017 at 22:09 point

Paul, thank you for your reply!
A transparent polygon scanner with a single laser bundle was first patented by Lindberg in 1962.  The scan field is not flat and you can get some significant optical aberrations. A full numerical model is available here . A description of this model is available in the technical presentation. The result shows that in practice the scan field is flat and the optical aberrations are not significant.

  Are you sure? yes | no

Hexastorm wrote 11/03/2017 at 11:58 point

Well this is the first comment! If Hackers are interested in transparent polygon scanning let me know :P ..

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates