Close
0%
0%

open hardware fast high resolution LASER

bringing additive manufacturing to the next level

Similar projects worth following
An open hardware fast high resolution LASER suited for Printed Circuit Board (PCB) manufacturing or 3D printing. The laser head uses a rotating prism instead of the industry standard rotating mirror circumventing patent US9079355 valid up to 2033 and many more; e.g. US10209226B2.

The goal of this project is to develop a laser head for 3D printing or PCB manufacturing which uses a rotating prism and is easy to assemble.
Cyanotype paper is currently used as it can be developed with water. The current electronics provide the possibility to cut a PCB with a spindle.

Specifications

Specifications were determined from the proof of concept model by exposure onto a camera without lens and OpenCV. More technical details are available in the whitepaper or the business case pitch.

  • wavelength: 405 nm
  • rotation frequency:  up to 21000 RPM, current 2400 RPM
  • line speed: up to 34 meters per second @ 21000 RPM
  • spot size FWHM: circular, 25 micrometers diameter
  • cross scanner error: 40 micrometers  (error orthogonal to scan line)
  • stabilization accuracy scanning direction:  2.2 micrometers (disabling/enabling scan head)
  • jitter: 35 microns (error parallel to scan line)
  • duty cycle: 47%
  • 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
  • prism dimensions: 30x30x2 mm

Electronics

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

Status

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 through holes are made with a spindle.  There is a project on Hackaday where a PCB is cut with an EDM.

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

Acknowledgement
Special thanks go to Henner Zeller for his work on LDGraphy. The electronics and software in this project helped me a lot with constructing the laser scanner, see video.

Software
Hexastorm fork of LDGraphy
Optical design
old FPGA code

Electronics
PCB design

Hardware designs
CAD files
Cartesian frame was donated by FELIXprinters.

Literature Research
White paper @ Reprap

Other Links
Official website

analysts_presentation.pdf

Pitch intended for analysts who want to get a brief overview of the key markets prism scanning will disrupt.

Adobe Portable Document Format - 781.75 kB - 09/24/2019 at 08:39

Preview
Download

pcb_scanheadfixed.pdf

schema of the pcb for the scanhead

Adobe Portable Document Format - 45.07 kB - 09/23/2019 at 13:51

Preview
Download

bomlist.ods

bill of materials for the photodiode detector

spreadsheet - 13.26 kB - 09/23/2019 at 13:33

Download

scanheadpcb_bom.ods

bill of materials for the scanhead pcb

spreadsheet - 13.04 kB - 09/23/2019 at 13:33

Download

firestarterbase_bom.ods

bill of materials for the cape of the beaglebone

spreadsheet - 14.97 kB - 09/23/2019 at 13:32

Download

View all 8 files

  • 1 × prism, 30x30x2 mm edges parallel to < 1 arc minute 20pcs @ 48 USD per piece
  • 1 × Beaglebone Green 44 USD
  • 1 × BPW34-B (photodiode) 7 USD (works also without a blue enhanced photodiode)
  • 1 × Laser diode housing chrome with copper 4.9 USD
  • 1 × BDR-S06J 405nm, 500-600mW Blue-violet Cut-pin Laser Diode 30 USD

View all 11 components

  • hackaday supercon

    Hexastorm3 days ago 0 comments

    Won the honorable mention for best communication; 3000 dollars and a lot of branding. It was great to meet you all! Thanks for the award!

  • photoacoustic effect

    Hexastorm11/07/2019 at 12:32 0 comments

    Recently, I was reading Hacker news and realized I hadn't created prior art in the field of photo-acoustic imaging.
    The photoacoustic effect or optoacoustic effect is the formation of sound waves following light absorption in a material sample.

    Basically the schema is as follows; you scan with a  laser beam over tissue or gas and then detect the produced sound waves. From it you can determine the material properties.

    The effect was discovered by Graham Bell in 1880.  A general patent by Hitachi can be found here US5781294A. The claim is quite nice and general but the patent expired in 2012.

    Olympus corp filed a patent for using this effect with a galvo scanner. The patent is valid up to 2035 and its number is US10209226B2. Let's have a look at claim one;

    "... the scanning unit includes a movable mirror which changes an angle of incidence of the excitation light incident on the objective lens, and ... "

    Prior art is constructed as follows;

    "... the scanning unit includes a scanning prism which changes an angle of incidence of the excitation light incident on the objective lens, and ... "

    A more complicated patent example from 2018 with two beams by Yokogawa electric corporation can be found here US20180140199A1 .

    As we can see the patent propose the use of two frequency shifted beams from the same light source which are then coupled into a single point by a variable focus lens.
    However, what is also clear is that this lens is positioned after the light scanning unit. I claim that the lens is positioned before the light scanning unit in a prism scanner.  This was not obvious to the claimant as it obviously thought of the light scanning unit being a galvo scanner or a rotating mirror.

    I claim the reverse effect. So here an ultrasound wave is produced and the result is detected via an interferometer which uses a scanning prism. The idea is similar to the optical coherance tomography setup I discussed earlier. A patent by Hitachi can be found here US20130160552A1 but it expired as they seem to have stopped paying the fee.

    A Dutch research group from the TU Twente used the effect to detect  breast cancer.  The optical effect is non-invasive but does not have a deep penetration depth. I claim the same but then for a scanning prism and also other forms of skin cancer, skin deseases, cancer etc.

    Now when I think of it..  the TU Twente also built the Brandaris 128. It is a fast imaging camera which use a rotating mirror at 1.2 million RPM see http://stilton.tnw.utwente.nl/people/michel/Michel_Versluis/Brandaris_128.html.

    This was an experimental project so I don't believe you can buy one commercially. Cordin does sell them and they have mirrors rotating at 5000 RPS which is like 300.000 RPM. This is quite nice as it serves as an example of how fast prisms could rotate.  These cameras with rotating mirrors are used in research and have been used to detect nuclear explosions etc.

  • Update

    Hexastorm10/31/2019 at 10:54 0 comments

    Hey all,


    I thought it was nice to give some update on the progress. Most of the work I did was in the software domain.

    • beaglebone now works with cape universal and not with a predefined cape  
      pins can be changed on the fly without booting linux.
    • if the machine turned on the laser turned on as well, the startup procedure has been changed so the laser doesn't turn on by accident
    • in the proof of concept experiment, the laser module was turned off after each lane and turned on before a new lane. With the new software you can continue to expose without turning of and on the scan head.
    • the c++ library for the TMC2130 stepper has been wrapped in python
    • I have added the possibility to expose with a single facet. In my earlier post, I outlined this can be done via the facet times. I have however chosen to do this by an internal counter which simple counts the facets and assumes a facet is never lost.
    • variables are now centralized in one location. They used to be sprinkled all over the place. You don't need to recompile the assembly to change the variables of the scanner
    • The assembly code of the scanner and the python code have been refactored. I would say the code is much more readable now
    • The spinup state changed. The laser is spin up and then it is tested whether it passes a threshold check. The laser turn on time is however much smaller than this threshold. This used to be the same.

    I have also build a second laser module and fixed the z-endstop in my test setup.

    As always let's create some more prior art;

    Blackbelt has a patent called for an infinite conveyor belt printer see https://patents.google.com/patent/NL2018728B1. This was scrutinized by Hackaday. The patent so far only seems valid in the Netherlands and the conveyor belt has to be planar with the horizon, see words  ".. parallel met de horizontaal is gelegen..." at the end of claim 1.
    As such, I claim a machine in which the belt is not planar to the horizon but under a tilt angle.
    I claim an infinite conveyor belt printer in which both a laser head and extruder is mounted. Possibly the extruder deposits a polymer which is polymerized by the laser. This polymer can be viscous so it stays on its place.

    I also claim the use of a prism scanner in data gloves. This can be used to write or read from a substrate from a glove. I earlier claimed the Hexastorm was connected to a robotic arm like the Dexter.
    In industry 4.0, workers are equipped with data gloves to check wether they are operating within requirement. In the proglove as shown here https://www.proglove.com/ a camera is added to the hands of an operator. I can imagine a prism scanner is placed in this data glove.  This prism scanner could record information or write information on substrates. It could detect biological markers, or QR codes. It could detect cells or give a marking to a product. It could be used to determine the final position of a product which has to be precisely placed.

  • Hackaday prize 2019

    Hexastorm09/29/2019 at 14:15 2 comments

    Uploaded my submission for the Hackaday Prize 2019. Thanks for watching!

  • Facet times

    Hexastorm09/26/2019 at 16:22 0 comments

    Good news! I received the NBC31111. The facet times look to be good and the motor is quiet again.
    In other words; the laser module is working once more.
    I have quite a busy weekend ahead, but will try to make a new exposure on Monday.

    The facet times are;

    Note that i ignore the first 100 lines as the prism doesn't seem to be stable enough.

    output from script:
    ---------------------------------

    In total, sent 1600 lines
    Error received; ERROR_NONE
    The expected hsync time is 12500
    The facet series are
    Item: 100
    12592 12590 12589 12592 12592
    12395 12396 12395 12396 12395
    12408 12408 12410 12410 12409
    12594 12597 12596 12596 12597
    Item: 116
    12592 12591 12590 12592 12593
    12395 12396 12396 12395 12395
    12409 12409 12410 12410 12408
    12597 12597 12595 12595 12597
    Item: 132
    12593 12590 12589 12593 12592
    12395 12396 12396 12395 12395
    12408 12409 12410 12409 12408
    12597 12598 12595 12596 12598
    Item: 148
    12592 12589 12591 12593 12590
    12395 12396 12396 12395 12396
    12408 12410 12410 12409 12409
    12598 12597 12595 12596 12597
    Item: 164
    12590 12590 12592 12591 12589
    12396 12396 12396 12396 12396
    12409 12410 12409 12409 12410
    12597 12595 12596 12597 12597
    Item: 180
    12589 12591 12593 12590 12589
    12396 12396 12395 12395 12396
    12410 12410 12408 12410 12410
    12597 12594 12598 12598 12595
    Item: 196
    12589 12592 12590 12590 12593
    12396 12396 12396 12396 12396
    12410 12409 12410 12410 12409
    12595 12596 12597 12595 12595
    Item: 212
    12593 12592 12589 12593 12591
    12396 12395 12396 12395 12396
    12409 12409 12410 12409 12409
    12595 12597 12595 12596 12597
    The counters are [376, 1123]
    Test passed, can bin all times

    -------------------------------------------------

    Earlier, I reported that the facet times recorded by the diode can be used to determine the facet number.  In the above, you can see that one facet has facet times smaller than 12400.

    If the jitter allow per period is set very small, no difference can be perceived in facet times. For the proof of concept module, I used a jitter allow of 1/3200. All the facet times are then very similar and jitter is quite minimal.
    With a jitter allow of 1/100, I can determine the facet and use an interpolation table to reduce the jitter.
    I am not sure which strategy works best, but I do claim I possibly use one of these methods.
    I also claim I use information by an acceleration sensor to determine whether my prism is rotating smoothly or an earthquake is interrupting operation. I also claim I use this information to correct the data sent to the prism scanner by calculating a more accurate position.

  • Prism balancing; determining the rotor position

    Hexastorm09/25/2019 at 13:38 0 comments

    Earlier I discussed that the prism ideally is balanced and how this could be done.
    The acceleration and position of the prism needs to be measured during rotation.
    The first step is determining the position of the prism, i.e. rotor. Two options were considered; detecting a marker with laser or detecting a marker with a camera.  I went for a camera as it seemed more robust.
    Also, the position of the weights needed for balancing can be visualized with the camera.
    In specific, the UI3060-m-GL, specs are; USB 3.0, CMOS, 166.0 fps, 1936 x 1216, 2.35 MPix, 1/1.2", Sony, Global Shutter. I used a shutter time of 0.019 milliseconds and a ring light illumination.  Having a camera with a global shutter is key, rolling shutter cameras I tried didn't work.. Initially, I thought the ring light would be useful as strobe light but the camera has so short exposure times it just needs additional light. I am planning on building a dedicated setup, see github, but used the current laser module for the test.
    The setup is as follows;

    Camera exposes from the top using a lens with a focal length of 12 mm, ring light is given 24 volt via power supply.

    As you can see I used the mirror and not the prism. The mirror is already balanced and can go up to 21000 RPM making it better for exposure tests.
    At 0 revolutions per minute the mirror looks as follows with auto exposure settings;

    I did not modify the mirror. In the ring you can see two markings. This is the weight used to balance the prism. The outer black dot, outside the ring, seems to be made with a marker. This seems to be used to determine the position of the rotor.
    At 21000 revolutions per minute the mirror looks as follows with 0.019 ms exposure time;
    You can see a reflection of the ring light as the illumination is not really proper. In the final setup, I should use a better diffuser so you don't see the positions of each led.

    Next, I will see if I can determine the force on the bearing during rotation. Then, I will need to relate the two signals and see if I can balance those prisms :-).

  • Status

    Hexastorm09/23/2019 at 15:35 0 comments

    • uploaded a video for the Hackaday Prize 2019.
    • made a pitch which is more suited for business case minded people
    •  still waiting for the delivery of new NBC3111 mirror motors as I have broken mine. The new setup "works" but is not practical without these mirror motors. The prism makes much more noise and can converge into two modes. As a result, the prism has to be restarted 50 percent of the time. The noise reduces at lower speed but the two modes remain. This was not the case with the NBC3111 which had a flawless operation at higher speeds. I have therefore decided to focus on balancing the prisms for now and waiting for the NBC3111. The new motors should arrive somewhere next week.
      The current plan for the prism balancing setup is that I will use a MMA8452Q to read out the acceleration. The position of the prism is monitored using a marker and a stroboscopic camera.

    Additional claims;

    I also claim the use of prism in the industry of thermal plate setters.
    Another patent by Apple has been revealed for scanning mirrors, see display device US2019/0285897A1. I also claim this patent but than for the case of scanning prism.

  • Video of the alignment setup

    Hexastorm09/12/2019 at 19:48 0 comments

    I wanted to share a quick video of the alignment setup. The prism is running 2.5 times slower than in the proof of concept model. I have also removed the cylinder lenses for now as this simplifies alignment. The focus is on a robust setup for demonstrations and later quality.



    As always, lets generate some more prior art;

    non-planar 3D printing with prism scanner to avoid situation like the one with US10005126B2

    I can envision a liquid or viscous fluid is applied with an extrusion nozzle or inkjet head and is cured with the prism scanner. This could also be a viscous liquid applied with a blade.
    The patent talks of a correction factor that is calculated on basis of the slope. This is done to alter the extrusion. I claim that an optical measurement is done of the substrate to determine the correction factor (so it is done from life data during the experiment not from already existing cad data!!)
    I claim that the amount of liquid that is extruded is constant (this is not altered). The prism scanner decides which part of the liquid is solidified. The remainder is possibly sucked up with a squeegee and pump or applicator bar and pump.
    I can envision a similar process but then one were powder is blown and then sintered with a laser guided with the prism.

    I can envision this is done in a hospital setup to a human or in an operation or for inspection of mechanical parts. I also claim the area "food printing".  You can for instance cure egg whites with IR radiation to trigger or monitor a Maillard reaction.
    I claim belt like printing with prism scanner (so you print on a rotating belt, e.g. blackbelt 3D).
    I also claim that a prism scanner is used to check the indentation in a hardness tester, at the moment a lot of companies use a camera. I claim that a prism scanner is used to check the indentation, for example see the hardness testers by Innovatest Europe.


  • Hackaday prize semi-finalist!

    Hexastorm09/10/2019 at 20:47 0 comments

    Hey all,


    I made it to the Hackaday Prize 2019 semi-finals! I am really happy with the feedback from the community and the honor to be among these twenty amazing finalists out of these even more amazing applications. I have seen great projects on Hackaday; not only in this contest but in general.  The two most related to my project that were featured on this site are; OpenExposer and Ldgraphy.

    The best thing is that Hackaday gives me an even bigger excuse to work on the project.
    I aim to show once more that I have a working prototype and will try to create PCBs. These results can then hopefully be used for the final video. I will also try to make a brief technical presentation.
    In the 3D printing realms the most important patent I am able to circumvent is US9079355; the scanning mirror patent by Envisiontec which is valid up to 2033.
    I have mentioned others. Recently, I got informed that Apple Computers filed a patent for a Scanning Mirror Display Devices. It's a virtual reality set, like the Fiber Scanning Display I discussed earlier from Magic Leap.
    Obviously;  I claim everything, including the fancy pictures and sensors, Apple Computer claims but than for "Scanning Prism Display Devices" I call this prior art, see my earlier blog.

    but let's continue with that prototype now...

  • Current Status

    Hexastorm09/06/2019 at 13:40 0 comments

    Just a quick update; I have mounted the laser head back on the frame. All the electronics work and the machine is good for a few tests. As said, I have removed the cylinder lenses to increase ease of use. Due to a wiring error I blew up the polygon motor with chip NBC3111, I have replaced the polygon motor with motor with the chip Panasonic  AN4000A. This motor produces a lot more noise at the same speed. It can effect future measurement, I have ordered new ones but have to wait 2 weeks.
    The white paper placed on the build plate is to mark the area needed by the scanner. You can see a blue markings for that. A laser head has a greater height tolerance than a 3D printer nozzle, so leveling is not really an issue. The laser is far out of focus here, the head is typically closer to the paper.

View all 54 project logs

Enjoy this project?

Share

Discussions

Ben Wishoshavich wrote 10/27/2019 at 04:56 point

Can you recommend a specific polygon motor module on alibaba? I don't know if there are any differences and I'd like to order one. THanks!

  Are you sure? yes | no

Hexastorm wrote 10/27/2019 at 13:37 point

Yes, you should buy exactly this motor https://nl.aliexpress.com/item/32824649951.html . It uses the NBC3111 chip. I had problems with other motors. Make sure you buy at least 2, although they are quite hard to break.

  Are you sure? yes | no

Ben Wishoshavich wrote 10/23/2019 at 21:59 point

Dude, this is some pretty awesome work. I'd love to help refine some of the manufacturing and board designs, let me know how I can best help

  Are you sure? yes | no

Hexastorm wrote 10/24/2019 at 17:55 point

Thanks! There are two other people who have shown interest. I need at least 10 people to do a run as I have to buy the prisms in bulk. Turn around time would be significant. Producing the prism takes at least a month.
I am fixing the low hanging fruits at the moment. It is hard to help with these as you don't have a laser head. I am building a new one but there is still only one in the world :-).
Things you could look in to;

- a better alignment system for the laser; this uses four screws and is over dimensioned --> see my free cad design files

- a better alignment system for the cylinder lenses; the screw system is not really comfortable --> see my freecad design files

-  how do i put my state machine on an fpga; I have been looking into https://github.com/m-labs/misoc as a replacer for the beaglebone.
This task seems rather complicated but I guess this knowledge could be really help full. The statemachine now runs on pru of the beaglebone and is limited at around 2 MHz.

- how do i balance the prism; i have done some preliminary experiments but still works needs to be done. You could also try to figure this out with a regular polygon motor. Add an imbalance and try to analyze this.

- the slicer or interpolater can only be run on a computer, as it overflows the ram of the beaglebone https://github.com/hstarmans/ldgraphy/blob/master/interpolator/interpolator.py . Remove this problem, optimize the code.

In the mean time, I am cleaning up the code, building a second head and still have to do more experiments.
I am also waiting for news on the hackaday prize. That's also why I have been quiet on the blog.

  Are you sure? yes | no

Ben Wishoshavich wrote 10/24/2019 at 22:57 point

I'm wondering if there isn't a BLDC motor that could be substituted for the polygon motor, hopefully something that is more available. And then I'd need an encoder. I'll take a look at this, although I suspect going greater than 20k rpm requries air bearings and a custom design.

The rectangular prism does seem to be a challenge. I'll let you worry about that. Out of curiosity, do you know how much it'd cost for a custom order?

An FPGA should be able to handle the state machine. I'm working on the FPGA that's in the Hackaday Superconference badge, and it's got an open toolchain. It might be overkill though. The ICE40 may be better(and cheaper). I might be in the minority in that I'm not sure this is a huge priority, as your electronics are pretty cheap. It's probably a pretty significant time sync to rewrite the assembly for the PRUs into a state machine. I'd probably focus on a command and control system to interact with GCODE or something else.

 I could jump into the MCAD, but I only know Solidworks. I suspect someone else might be better suited for that.
At work, we have specifications for balancing motors for EVs. The most relevant standard is ISO1940. Let me know if that's useful for you. Usually a balancing machine is used to detect vibrations while the part is rotated. They're pretty rare and fairly expensive though. They do make some simple ones for balancing quadcopter props you could look into. Usually you have to add or remove material in a specific spot to make it work.

I already have some of the parts you've used. Perhaps it won't be as hard to duplicate some version of this as I expect.(expect for that lens).

  Are you sure? yes | no

Hexastorm wrote 10/25/2019 at 17:13 point

-  i wouldn't substitute the motors; they have been used in this application for years by a large industry. Rotating polygon mirrors are produced in the tens of thousands. Motors can handle up to 21000 RPM.  This is more than what is needed at the moment, 2400 RPM, as the beaglebone can't go faster.
- custom order is around 500-600$ and MOQ is 10. for the prisms
- Henner zeller wrote a GCODE parser for the beaglebone called beagleg; my idea is that this used and you simply flip the machine between gcode mode and laser writing mode
- never heard of this standard good tip
- all parts are easy to obtain including lenses, motor etc; the only challenge is the prism and time. You will need time :-)

  Are you sure? yes | no

Robert Mateja wrote 07/31/2019 at 11:48 point

Congratulations on winning Hackaday Prize 2019!  (at least in my opinion)

  Are you sure? yes | no

Hexastorm wrote 08/01/2019 at 09:30 point

Robert, thank you for supporting me! Winning the prize would be amazing.  My current target is to get other people to try out the technology, I am really trying to make it more accessible. I hope I can show an improved prototype of the scan head soon.

  Are you sure? yes | no

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.   You will have to discuss details with manufacturers in China over Alibaba. I made the first in a maker styled lab, a description of the process is in this log https://hackaday.io/project/21933-open-hardware-fast-high-resolution-laser/log/167433-how-to-be-transparent

  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 (https://www.alibaba.com/showroom/polygon-motor-ricoh.html) .  The system is a proof of concept; for desktop PCB prototyping 2400 RPM is fine. If you plan to compete with Kleo https://www.youtube.com/watch?v=7R464iHaTQU . 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 https://precisionlaserscanning.com/2016/03/road-runner-70000-rpm-polygon-scanner-solves-the-noise-problem/

  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 (https://www.xcore.com), examples (https://github.com/xcore/) 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. 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 https://github.com/hexastorm/opticaldesign . 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 for the current spot size and line length.

  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