- Coherent Sapphire 488mW Laser GUI written in LabView
- Thorlabs LDC205C Arduino controller code and a LabView GUI (ldc205c)
- Thorlabs LDC500 Arduino controller code #2 and a LabView GUI (ldc500sh)
- A basic temperature reader and LabView GUI (tds100n)
- An artisan DAC + temperature reader and LabVIEW GUI (dac999)
- Thorlabs LDC205C ATTiny85 based controller which works with the LDC205C LabView GUI (tinyldc85)
- Initial release with states.
- It searches for a config file: Documents\LabVIEW Data\LaserControlSettings.ini
- There is also a build.
- Create the second arduino driver: ldc500sh
- Create a basic temperature reader
- Create a basic dac based on the ldc500sh circuit and code + add the tds100n functionality to it.
Our team got a Coherent Sapphire 488nm laser with the LP USB CDRH Driver Unit. This means, it can be only controlled via RS-232. So I wrote a similar GUI as the Arduino LDC205 one, but with advanced internals (STATES). It can be used with any Coherent Lasers as far as I know, because during startup it will check for minimum and maximum laser power values.
We have a Thorlabs LDC205C which controls a Nichia 405nm laser diode. To control the diode current, an Arduino's PWM output is driven at 31kHz and RC LowPass filtered. This Arduino UNO R3 and board can be used to create diode currents below 200mA, read back the diode current, and enable/disable laser.
- Arduino UNO R3 controller for Thorlabs LDC205, and LDC500.
- You can split the MOD IN output to control both lasers with the same modulation. (We don't use both lasers at the same time.)
- Serial communication examples are used
- The String->float conversion
- LowPass Filter Calculator
- Arduino Timer PWM speedup from here
- DHTlib, get it from here
- LabView GUI for LDC205 ver 1.0: https://gajdicookbook.wordpress.com/2016/02/07/189/
- Rewritten to a Cobolt subVI free version. Updated to ver 2.0.
- The Project and a build is also included.
- Controller
- Clone the repository to your sketchbook folder.
- Connect the BNC connectors:
- LD REM to pin 13. (Same as the L Led on the board)
- MOD IN to pin 11. (You can split the output.)
- CTLOUT1 to pin A0. (first laser)
- CTLOUT2 to pin A1. (second laser, read only mode)
- Calculate the Low-pass filter R&C values from here: http://sim.okawa-denshi.jp/en/PWMtool.php
- Burn it to your Arduino UNO.
- Optionally connect a DHT22 sensor.
- R=5k3 Ohm
- C=105
- Merged the DHT22 temperature code, from the branch.
- Added a second read only output for the LDC500 (we got a new laser, which has to be controlled).
- I updated the serial number to 855 (405+450). And the version to 2.0.
- De-blobbed the previous LabView GUI, and included in this repository.
- It searches for a config file: Documents\LabVIEW Data\LaserControlSettings.ini
- There is also a build.
Recently we installed a 637nm laser into a second laser head which is controlled by a LDC500. To control the diode current an Arduino's PWM output is driven at 31kHZ and converted to 0-10V region. This is then LowPass filtered. This Arduino UNO R3 and board can be used to create diode currents from 0mA to 400mA, read back the diode current, and control a solenoid shutter.
- Arduino UNO R3 controller for Thorlabs LDC500.
- Simulation
- Clone the repository to your sketchbook folder.
- Connect the BNC connectors:
- OptoRelay for solenoid to pin 13. (Same as the L Led on the board)
- MOD IN to pin 9. (You can split the output.)
- CTLOUT1 to pin A5. (first laser)
- Burn it to your Arduino UNO.
- l? -> GET laser status (0: disabled, 1: enabled)
- l[0,1] -> DISABLE/ENABLE laser or shutter
- i? -> GET laser current (float [mA])
- p?, pa? -> GET laser power (float [W])
- slc[0..100] -> SET laser current
- p[0.0001..0.1] -> SET laser power (only LDC205C)
- hrs? -> GET uptime in minutes (float)
- sn? -> GET serial (int)
- ilk? -> GET interlock state (always 0) (only LDC205C)
- f? -> GET operation fault state (always 0) (only LDC205C)
- leds? -> GET led status (1: Power on, 7: Laser on)
- spv[0...255], d[0...255] -> SET PWM Voltage (only DAC999)
- gpv?, d? -> GET PWM Voltage (only DAC999, but not working)
- j? -> GET laser current (float [mA])
- q?, qa? -> GET laser power (float [W])
- d? -> GET sensor status (0: error, 1: ok)
- dt? -> GET temperature (float)
- dh? -> GET humidity (float)
- t? -> GET temperature (float)
- This is a cheaper version, because after 6 years the initial Arduino Uno based board died.
- I will upload the fritzing schematic.
- Arduino IDE Support: https://github.com/SpenceKonde/ATTinyCore
- ATTinyx5 documentation
- An Arduino UNO was used as an Arduino ISP to upload the code without a bootloader.
- The commands are identical, works with previous LDC205C LabView GUI.
- I use an FTD1232 board for USB-to-SERIAL.
- Cobolt: http://www.cobolt.se/wp-content/uploads/2016/06/D0106-B_Manual-Cobolt-05-01-Series_June_2016.pdf
- Look for communication commands.
- Thorlabs: https://www.thorlabs.com/thorproduct.cfm?partnumber=LDC205C
- Thorlabs: https://www.thorlabs.com/thorproduct.cfm?partnumber=LDC500
- Coherent: I have the Operator's Manual on paper.
- The board does not handle SerialEvents. FIX
- The board does not have Timer2:
- Timer4 can be used, but a different board design and pins are needed.