Git Product home page Git Product logo

opal's Introduction

OPAL

Minimalistic FW for Processing GCode commands to xy2-100 protocol and control periferal devices using a Teensy board. The default usecase is a 3D printer/engraver. Galvos driven by XY2-100 protocol are refered to as Digital Galvos and are the subject of this repo.. Other options are Analog Galvos like the RC1001 and the various "Lasershow galvos" sold on e-bay. Analog galvos are not covered here but might have their own section in the future. The last option is Steppermotor driven galvos. More info on this can be found in GalvoStep here: https://github.com/NiklasHammerstone/GalvoStep

If you are using the software please join: https://www.reddit.com/r/OpenGalvo/ and write a comment or share your project!

DEMO Laser Marking - OpenGalvo - OPAL FW SG7110 Teensy 4.0 Slow: https://youtu.be/uMT-sZhYKJo Fast: https://youtu.be/m6PLiacBdws

This project began long time ago but since its code might be useful to others it is published here. It started as a fun exercise to control mirrors glued to a harddrives reading arm. While his was a fun DIY hack, hopes where to learn more about how laser scanners work and what uses they might have.

Since this has grown into what it is today.

HW: The current code is intended to run on a Teensy 4.0 but might run on a 4.1. It will not run on a 3.6. To be able to make use of the FW you will need an SN75174N wired to pins 22,19,17,14 on a Teensy 4.0. The output fron the SN75174N goes directly to your digital XY2-100 galvo.

FW: Is what you find in this repo.

IT IS A PRE ALPHA VERSION NOT READY FOR MAINSTREAM USE! All USE IT AT YOUR OWN RISK

DO NOT USE THIS UNLESS YOU ARE AWARE OF THE RISKS!

  • YOUR TEENSY BOARD MIGHT BREAK
  • YOUR GALVO MIGHT BE DESTROYED
  • YOUR LASER MIGHT BE DESTROYED
  • YOUR LASER MIGHT DESTROY SOMETHING NEARBY
  • YOUR GALVO MIGHT EXPERIENCE UNEXPECTED BEHAVIOUR
  • DO NOT USE THIS WITH OTHER LASERS THAN LASERPOINTERS
  • WEAR SAFETYGLASSES INTENDED FOR THE LASER YOU USE
  • YOU MIGHT GET BLIND

Always work SAFE and in an contained environment. The FW might crash at any time leaving your galvo and laser in an unknown state!

The firmware has features to control:

  • a XY2-100 galvo (SinoGalvo SG7110 used for testing)
  • a Synrad series 48 Laser
  • an SSR to control your lasers powersource

Future plans include stepper integration and more I/O for SSRs but atm. stabillity is the main focus.

This firmware makes use of rlogiacco's CircularBuffer: https://github.com/rlogiacco/CircularBuffer/issues?q=label:question

Thanks to Les Lab - https://github.com/leswright1977 we have a PCB Design! for more info: https://github.com/leswright1977/OPAL_PCB

Fun fact: OPAL refers to OPengALvo and the name is inspired by the sparks laser engraving does and their resemblance to the fire opal.

opal's People

Contributors

bx3me avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

opal's Issues

Maybe I will also contribute to the development of this system...

At the very beginning, I also have to say: WOW. And thank you. :)
Four years ago, I started writing an implementation of the XY2-100 for the Arduino Uno platform. I know, I know - 16MHz ;)
But I was able to finally reproduce all the signals on the outputs. I converted G-Code to an array of bits, which I then sent to GPIOs. Unfortunately, I abandoned the project because I felt that this was not the way to go. Then I thought about using I2S protocols or DMA interrupts, but finally I gave up for lack of time.
I have already ordered Teensy and I am looking forward to testing your project. I have powerful, 120W LED lasers from DILAS. I also have a 100W CO2 laser from Coherent. I need to test this with my scanner head :) Necessarily. :)
Best regards
Radek

Analog Galvos

Hi there,

first of all thank you for this repo, i was waiting for this for a long time now!

I purchased a RC1001 type galvo recently but these "analogue" ones are not covered here.
Any chance that there is a way to drive these type of galvos with a microcontroller, like teensy or driving these is fundamentally different?

thank you in advance!

Need better hardware and config instructions

First of all, thanks for providing this amazing tool. I'm relatively new to Arduino and hoping to get some help.
I need some help on hardware wiring and config instructions. How do I config it to a regular laser instead of the Synrad laser? I hooked a scope to pin 6 (the laser PWM pin?) and got some periodic pulses coming out, which doesn't make any sense to me. Isn't that going to trigger the laser? I also see pulses and waveforms on the other 4 pins; I tried to send command to the Teensy and got "ok" coming back to not seeing any meaningful changes on the 4 pins. Am I missing something?

Thank you!

Libraries and Include Files

Thanks so much for this wonderful project! I finally have things all built and ready to try out.

I did need to move all the source code files in "lib/" out of their sub-directories and place them into the "src/" directory for the Arduino IDE (v2.2.1 on Ubuntu Linux) to see them. Then I needed to change some #include directives to use quotes instead of angle brackets, and had to fix a couple "helpers.h" includes which need to be "Helpers.h" in Linux due to the filesystem being case sensitive.

It might be worth at least fixing the "helpers.h" / "Helpers.h" issue, and it would be super cool if the directory structure could be fixed somehow so that things work out of the box without having to move the files around.

Anyway, thanks much for the great project!!

5KHz Tickle pulse too short.

First of all, this project is awesome! Beautiful work! Exactly what I was looking for!

When I Scoped the Tickle pulse, the width is too short for a Synrad 48. It should have a width of 1uS
Easy fix, in lib/LaserController/Synrad48Ctrl.h line 54 change this
const static uint16_t ticklePWM = 4;
To this:
const static uint16_t ticklePWM = 20;

I have also drawn a schematic and produced a PCB design for this project, and am happy to contribute it if you like. Also do you mind if I showcase this project on my YouTube Channel?

Memmory leak

Running some , especially long, files cause the device to hang.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.