User Tools

Site Tools


golden_plates

CO2 Galvo Scanner documentation

Ebay listing

Sold by laserlands

10600nm 10.6um CO2 Laser Vibrating Mirror dia 30mm Scanning Marking scanner

Description :

Diameter of the spot: 30mm
Wavelength: 10600nm
Power Voltage: ±24V
Maximum of power voltage?±30V
Input resistance of analog signal: 100K±1%?
Output resistance of positional signal: 1K±1%?
Range of the analog and positional signal: ±5V
Input proportional coefficient of the positional signal: 0.5V/°
Output proportional coefficient of the positional signal: 0.5V/°
Working temperature?0~40?
Length of servo control board: 96mm
Width of servo control board: 67mm
Height of servo control board: 37mm

Feature:
1. High reflectivity of more than 99.7% when the incident angle is 25 degree.
2. Withstand the laser power of over 200W.

Note:
1. Be sure the operator has much experience in optics DIY and testing.
2. Be careful of your eyes before the laser ray please.


Wiring labels

(Jacob Van Wagoner's translation of the golden plates)


Interface Board Discussion

The “Golden Plates” galvos had two D-SUB ports to interface with. Upon opening the case (and voiding our “warranty”), we found the DE-9 connector wasn't connected to anything, and the DB-25 was connected to a small circuit board (pictured below). We inspected the chips and the visible routing of this board and found out that the inputs were differential RS-485 signals conveying a pseudo-SPI protocol to transmit data.

RS-485 is an electrical format of digital signals meant to be conveyed over relatively long distances between chips (like Ethernet for computers). It's differentially-signaled, which means that for every electrical signal, there's another one in the inverted state. For RS-485, a '1' is between +3V to +15V on the positive line, and between -3 to -15V on the negative line; a '0' results in negative voltages on the positive line and positive voltages on the negative line. RS-485 uses impedance matching and twisted wire pairs to minimize EMI. An RS-485 transmitter and receiver chip are needed to create a RS-485 network. They're cheap to buy off of DigiKey or elsewhere. Read the description of Pin 3 / Y1 on page 6 of the MAX3095 datasheet to understand what exactly an RS-485 receiver does.

SPI (Serial Peripheral Interface) is a simple digital communications protocol (a chip-to-chip language). There are 4 lines (even though most descriptions say three): SDI - Serial Data In, SDO - Serial Data Out, SCLK - Serial CLocK, and CS - Chip Select (with a bar overhead). These can also be labeled as: MISO - Master In Slave Out, MOSI - Master Out Slave In, and SS - Slave Select. Basically, the master and slave devices have shift registers. The master de-asserts (sets to '0') the CS/SS line (through GPIO) to talk to a specific chip on the SPI bus at hand. The master then clocks out/in data while toggling the SCLK line, and the slave clocks in/out data from its shift register. The slave only listens if its CS/SS line is de-asserted. Tree or loop topologies can be used with the slaves, depending upon the slave chips involved.

The interface board has an RS-485 receiver (U3) that formats the electrical signals to TTL (0V to +5V) levels. These outputs are then sent to the DACs' SDI, SCLK, and LDAC signals. A rising edge on the LDAC pin triggers the DAC to copy the value on the internal SPI shift register over to the internal R-2R DAC register. This is done to prevent the analog output voltage from changing while data is being clocked in. It appears that the CS pin does not have to be toggled on the DACs like some other SPI slave chips.

It appears that either the wires on the cable are mislabeled, or the DAC chip functions differently than what the datasheet says. The datasheet says that a rising edge on LDAC triggers updating the DAC register, but we have observed that it is actually a falling edge. Similarly, falling clock edges are what clock in data bits.

A possible way of avoiding the need for an RS-485 transmitter is to tie all of the input signals (0-5V) to the positive output lines, and tie all of the negative output lines to 2.5V. This should work since the voltage difference in either case is greater than the 200mV difference needed by the receiver (according to the receiver's datasheet).


Interface Board Block Diagram


Interface Board Photos

U1 is a DAC7731E. It's a $20 16-bit SPI +/-10V DAC by TI.

img_2166.jpg

U2 is also a DAC7731E.

img_2167.jpg

U3 is a MAX3095. It's a $4 4-channel RS-485 receiver.

img_2168.jpg

The front of the interface board. The red wires to the left are the analog control wires for the galvos, and the white wires with them are ground's.

img_2169.jpg

The back of the interface board.

img_2170.jpg

The 79L12A is a -12V regulator for the DACs.

img_2171.jpg

The 78L05A and (7)8L12A are +5V and +12V regulators for the DACs and RS-485 receiver.

img_2173.jpg

Example pseudo-code for driving the two SPI interfaces for this particular board is as follows:

unsigned short int X = 0x0000; // 16 bits
unsigned short int Y = 0x0000; // 16 bits

unsigned short int X_shift;
unsigned short int Y_shift;



while(this project is interesting to Dr. Smalley)
{

  //
  // do amazing stuff and update X, Y
  //


  // command galvos to new X,Y values
  
  X_shift = X;
  Y_shift = Y;

  // create a falling edge on SYNC / LDAC
  
  REGOUT &= ~SYNCBIT;
  
  for( int i=0; i<16; i++ )
  {
    // set SCLK to 0
    REGOUT &= ~SCLK;
    
    // change X SDO
    if( X_shift & 0x8000 )
      REGOUT |= XBIT;
    else
      REGOUT &= ~XBIT;
      
    // change Y SDO
    if( Y_shift & 0x8000 )
      REGOUT |= YBIT;
    else
      REGOUT &= ~YBIT;
    
    // set SCLK to 1
    REGOUT |= SCLK;
    
    // kill some time (tWH) by shifting registers
    
    X_shift <<= 1;
    Y_shift <<= 1;
  }
  
  // create a rising edge on SYNC / LDAC
  
  REGOUT |= SYNCBIT;

}

General photos (Galvo drivers, etc)

Before: After:

Galvo driver boards

Galvo model/serial number:

golden_plates.txt · Last modified: 2016/04/28 09:35 by erichn