├── hardware └── kicad │ ├── dc_dc.bck │ ├── dc_dc.dcm │ ├── ildagenerator-cache.bck │ ├── ildagenerator-cache.dcm │ ├── fp-lib-table │ ├── dc_dc.bak │ ├── dc_dc.lib │ ├── ildagenerator-rescue.lib │ ├── OpAmps.pro │ ├── ildagenerator.pro │ ├── footprints.pretty │ └── NMA_5V_12V_15V_Series.kicad_mod │ ├── ildagenerator.lst │ ├── ildagenerator.drl │ ├── ildagenerator │ ├── ildagenerator-cache.bak │ ├── ildagenerator.cmp │ ├── ildagenerator-cache.lib │ ├── ildagenerator.sch │ ├── ildagenerator.bak │ ├── ildagenerator.xml │ └── ildagenerator.net ├── software └── raspberrypi │ ├── makefile │ ├── ltc2656.h │ ├── ildaNode.h │ ├── ltc2656.c │ ├── ildaNode.c │ ├── ildaFile.h │ └── ildaFile.c └── README.md /hardware/kicad/dc_dc.bck: -------------------------------------------------------------------------------- 1 | EESchema-DOCLIB Version 2.0 2 | # 3 | #End Doc Library 4 | -------------------------------------------------------------------------------- /hardware/kicad/dc_dc.dcm: -------------------------------------------------------------------------------- 1 | EESchema-DOCLIB Version 2.0 2 | # 3 | #End Doc Library 4 | -------------------------------------------------------------------------------- /hardware/kicad/ildagenerator-cache.bck: -------------------------------------------------------------------------------- 1 | EESchema-DOCLIB Version 2.0 Date: Sa 09 Aug 2014 11:24:44 CEST 2 | # 3 | #End Doc Library 4 | -------------------------------------------------------------------------------- /hardware/kicad/ildagenerator-cache.dcm: -------------------------------------------------------------------------------- 1 | EESchema-DOCLIB Version 2.0 Date: Sa 09 Aug 2014 12:07:42 CEST 2 | # 3 | #End Doc Library 4 | -------------------------------------------------------------------------------- /hardware/kicad/fp-lib-table: -------------------------------------------------------------------------------- 1 | (fp_lib_table 2 | (lib (name footprints)(type KiCad)(uri "$(KIPRJMOD)/footprints.pretty")(options "")(descr "")) 3 | ) 4 | -------------------------------------------------------------------------------- /software/raspberrypi/makefile: -------------------------------------------------------------------------------- 1 | ildaNode: ildaNode.c ildaNode.h ltc2656.c ltc2656.h ildaFile.c ildaFile.h 2 | gcc ildaNode.c ltc2656.c ildaFile.c -o ildaNode -lwiringPi -lm -std=c99 3 | -------------------------------------------------------------------------------- /hardware/kicad/dc_dc.bak: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.3 2 | #encoding utf-8 3 | # 4 | # NMA0509SC 5 | # 6 | DEF NMA0509SC U 0 40 Y Y 1 F N 7 | F0 "U" 0 -250 60 H V C CNN 8 | F1 "NMA0509SC" 0 300 60 H V C CNN 9 | F2 "" 0 0 60 H V C CNN 10 | F3 "" 0 0 60 H V C CNN 11 | DRAW 12 | S -300 250 300 -200 0 1 0 N 13 | X +Vin 1 -500 150 200 R 50 50 1 1 O 14 | X -Vin 2 -500 -150 200 R 50 50 1 1 O 15 | X -Vout 4 500 -150 200 L 50 50 1 1 O 16 | X 0V 5 500 0 200 L 50 50 1 1 O 17 | X +Vout 6 500 150 200 L 50 50 1 1 O 18 | ENDDRAW 19 | ENDDEF 20 | # 21 | #End Library 22 | -------------------------------------------------------------------------------- /hardware/kicad/dc_dc.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.3 2 | #encoding utf-8 3 | # 4 | # NMA0509SC 5 | # 6 | DEF NMA0509SC U 0 40 Y Y 1 F N 7 | F0 "U" 0 -300 60 H V C CNN 8 | F1 "NMA0509SC" 0 300 60 H V C CNN 9 | F2 "" 0 0 60 H V C CNN 10 | F3 "" 0 0 60 H V C CNN 11 | DRAW 12 | S -300 250 300 -250 0 1 0 N 13 | X +Vin 1 -500 150 200 R 50 50 1 1 O 14 | X -Vin 2 -500 -150 200 R 50 50 1 1 O 15 | X -Vout 4 500 -150 200 L 50 50 1 1 O 16 | X 0V 5 500 0 200 L 50 50 1 1 O 17 | X +Vout 6 500 150 200 L 50 50 1 1 O 18 | ENDDRAW 19 | ENDDEF 20 | # 21 | #End Library 22 | -------------------------------------------------------------------------------- /software/raspberrypi/ltc2656.h: -------------------------------------------------------------------------------- 1 | #ifndef LTC2656_H 2 | #define LTC2656_H 3 | //GPOI pin for LDAC in wireingPi 4 | static const int LDAC_PIN = 7; // = P4 5 | //spi device 0=CS0, 1=CS1 6 | static const int SPI_DEV = 0; 7 | //SPI BUS SPEED 8 | static const unsigned int SPI_SPEED = 50000000;//= 50MHz 9 | //SET BITS PER WORD 10 | static const unsigned char SPI_BITS_PER_WORD = 8; 11 | static const char *SPIDEV_1_PATH = "/dev/spidev0.1"; 12 | static const char *SPIDEV_0_PATH = "/dev/spidev0.0"; 13 | 14 | void setChVal(unsigned char channel, unsigned char valUpper, unsigned char valLower); 15 | void setChVal_int(unsigned char channel, unsigned int val); 16 | void setChVal_float(unsigned char channel, float val); 17 | 18 | void executeValues(); 19 | void initLtc2656(); 20 | void closeLtc2656(); 21 | 22 | #endif /*LTC2656_H*/ 23 | -------------------------------------------------------------------------------- /hardware/kicad/ildagenerator-rescue.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.3 2 | #encoding utf-8 3 | # 4 | # C-RESCUE-ildagenerator 5 | # 6 | DEF C-RESCUE-ildagenerator C 0 10 N Y 1 F N 7 | F0 "C" 50 100 50 H V L CNN 8 | F1 "C-RESCUE-ildagenerator" 50 -100 50 H V L CNN 9 | F2 "" 0 0 60 H V C CNN 10 | F3 "" 0 0 60 H V C CNN 11 | $FPLIST 12 | SM* 13 | C? 14 | C1-1 15 | $ENDFPLIST 16 | DRAW 17 | P 2 0 1 10 -100 -30 100 -30 N 18 | P 2 0 1 10 -100 30 100 30 N 19 | X ~ 1 0 200 170 D 40 40 1 1 P 20 | X ~ 2 0 -200 170 U 40 40 1 1 P 21 | ENDDRAW 22 | ENDDEF 23 | # 24 | # GND-RESCUE-ildagenerator 25 | # 26 | DEF ~GND-RESCUE-ildagenerator #PWR 0 0 Y Y 1 F P 27 | F0 "#PWR" 0 0 30 H I C CNN 28 | F1 "GND-RESCUE-ildagenerator" 0 -70 30 H I C CNN 29 | F2 "" 0 0 60 H V C CNN 30 | F3 "" 0 0 60 H V C CNN 31 | DRAW 32 | P 4 0 1 0 -50 0 0 -50 50 0 -50 0 N 33 | X GND 1 0 0 0 U 30 30 1 1 W N 34 | ENDDRAW 35 | ENDDEF 36 | # 37 | # R-RESCUE-ildagenerator 38 | # 39 | DEF R-RESCUE-ildagenerator R 0 0 N Y 1 F N 40 | F0 "R" 80 0 50 V V C CNN 41 | F1 "R-RESCUE-ildagenerator" 0 0 50 V V C CNN 42 | F2 "" 0 0 60 H V C CNN 43 | F3 "" 0 0 60 H V C CNN 44 | $FPLIST 45 | R? 46 | SM0603 47 | SM0805 48 | R?-* 49 | $ENDFPLIST 50 | DRAW 51 | S -40 150 40 -150 0 1 12 N 52 | X ~ 1 0 250 100 D 60 60 1 1 P 53 | X ~ 2 0 -250 100 U 60 60 1 1 P 54 | ENDDRAW 55 | ENDDEF 56 | # 57 | #End Library 58 | -------------------------------------------------------------------------------- /hardware/kicad/OpAmps.pro: -------------------------------------------------------------------------------- 1 | update=22/05/2015 07:44:53 2 | version=1 3 | last_client=kicad 4 | [general] 5 | version=1 6 | RootSch= 7 | BoardNm= 8 | [pcbnew] 9 | version=1 10 | LastNetListRead= 11 | UseCmpFile=1 12 | PadDrill=0.600000000000 13 | PadDrillOvalY=0.600000000000 14 | PadSizeH=1.500000000000 15 | PadSizeV=1.500000000000 16 | PcbTextSizeV=1.500000000000 17 | PcbTextSizeH=1.500000000000 18 | PcbTextThickness=0.300000000000 19 | ModuleTextSizeV=1.000000000000 20 | ModuleTextSizeH=1.000000000000 21 | ModuleTextSizeThickness=0.150000000000 22 | SolderMaskClearance=0.000000000000 23 | SolderMaskMinWidth=0.000000000000 24 | DrawSegmentWidth=0.200000000000 25 | BoardOutlineThickness=0.100000000000 26 | ModuleOutlineThickness=0.150000000000 27 | [cvpcb] 28 | version=1 29 | NetIExt=net 30 | [eeschema] 31 | version=1 32 | LibDir= 33 | [eeschema/libraries] 34 | LibName1=power 35 | LibName2=device 36 | LibName3=transistors 37 | LibName4=conn 38 | LibName5=linear 39 | LibName6=regul 40 | LibName7=74xx 41 | LibName8=cmos4000 42 | LibName9=adc-dac 43 | LibName10=memory 44 | LibName11=xilinx 45 | LibName12=microcontrollers 46 | LibName13=dsp 47 | LibName14=microchip 48 | LibName15=analog_switches 49 | LibName16=motorola 50 | LibName17=texas 51 | LibName18=intel 52 | LibName19=audio 53 | LibName20=interface 54 | LibName21=digital-audio 55 | LibName22=philips 56 | LibName23=display 57 | LibName24=cypress 58 | LibName25=siliconi 59 | LibName26=opto 60 | LibName27=atmel 61 | LibName28=contrib 62 | LibName29=valves 63 | -------------------------------------------------------------------------------- /hardware/kicad/ildagenerator.pro: -------------------------------------------------------------------------------- 1 | update=Mo 31 Aug 2015 16:13:15 CEST 2 | version=1 3 | last_client=kicad 4 | [general] 5 | version=1 6 | [pcbnew] 7 | version=1 8 | PadDrlX=320 9 | PadDimH=600 10 | PadDimV=600 11 | BoardThickness=630 12 | TxtPcbV=800 13 | TxtPcbH=600 14 | TxtModV=600 15 | TxtModH=600 16 | TxtModW=120 17 | VEgarde=100 18 | DrawLar=150 19 | EdgeLar=150 20 | TxtLar=120 21 | MSegLar=150 22 | LastNetListRead=ildagenerator.net 23 | [pcbnew/libraries] 24 | LibName1=sockets 25 | LibName2=connect 26 | LibName3=discret 27 | LibName4=pin_array 28 | LibName5=divers 29 | LibName6=libcms 30 | LibName7=display 31 | LibName8=valves 32 | LibName9=led 33 | LibName10=dip_sockets 34 | LibName11=linear_tech 35 | LibDir=/Library/Application Support/kicad/modules;/Library/Application Support/kicad/modules/footprints_doc 36 | [cvpcb] 37 | version=1 38 | NetIExt=net 39 | [cvpcb/libraries] 40 | EquName1=devcms 41 | [eeschema] 42 | version=1 43 | LibDir=parts.pretty 44 | [eeschema/libraries] 45 | LibName1=ildagenerator-rescue 46 | LibName2=power 47 | LibName3=device 48 | LibName4=transistors 49 | LibName5=conn 50 | LibName6=linear 51 | LibName7=regul 52 | LibName8=74xx 53 | LibName9=cmos4000 54 | LibName10=adc-dac 55 | LibName11=memory 56 | LibName12=xilinx 57 | LibName13=special 58 | LibName14=microcontrollers 59 | LibName15=dsp 60 | LibName16=microchip 61 | LibName17=analog_switches 62 | LibName18=motorola 63 | LibName19=texas 64 | LibName20=intel 65 | LibName21=audio 66 | LibName22=interface 67 | LibName23=digital-audio 68 | LibName24=philips 69 | LibName25=display 70 | LibName26=cypress 71 | LibName27=siliconi 72 | LibName28=opto 73 | LibName29=atmel 74 | LibName30=contrib 75 | LibName31=valves 76 | LibName32=dc_dc 77 | -------------------------------------------------------------------------------- /software/raspberrypi/ildaNode.h: -------------------------------------------------------------------------------- 1 | #ifndef ILDANODE_H 2 | #define ILDANODE_H 3 | 4 | //chanal number for x movement 5 | static const unsigned char CH_X = 0x03; 6 | //chanal number for y movement 7 | static const unsigned char CH_Y = 0x02; 8 | //chanal number for color red 9 | static const unsigned char CH_R = 0x01; 10 | //chanal number for color green 11 | static const unsigned char CH_G = 0x00; 12 | //chanal number for color blue 13 | static const unsigned char CH_B = 0x04; 14 | //chanal number for custom color 1 15 | static const unsigned char CH_C1 = 0x05; 16 | //time for one move in µs 17 | static const int MOVE_TIME_MICROS = 150; 18 | 19 | /* 20 | run this before any opration 21 | */ 22 | void initILDA(); 23 | /* 24 | Set the positon in float values. 25 | The value 0 is the center. 26 | 1 the max to the right on x and the max to top for y. 27 | -1 max left on x and max down on y. 28 | executing takes MOVE_TIME_MICROS µs 29 | */ 30 | void moveTo(float x, float y); 31 | /* 32 | micros this moveTo should take 33 | seperates the singel movement in multiple moveTo which take MOVE_TIME_MICROS µs 34 | */ 35 | void moveToTimed(float x, float y, int micros); 36 | /* 37 | calculates the move-time based on the distance and distPerS 38 | distPerS is the distence per second (pps * 4) 39 | */ 40 | void moveToSpeedLimit(float x, float y, int distPerS); 41 | /* 42 | writes the values but not executes them. 43 | 0 is off and 1 full on. 44 | with the "moveTo" functions the colour is also executed. 45 | */ 46 | void setColour(float red, float green, float blue); 47 | 48 | void term_nonblocking(); 49 | void term_reset(); 50 | 51 | #ifndef M_PI 52 | #define M_PI 3.14159265358979323846 53 | #endif /*M_PI*/ 54 | 55 | #endif /*ILDANODE_H*/ 56 | -------------------------------------------------------------------------------- /hardware/kicad/footprints.pretty/NMA_5V_12V_15V_Series.kicad_mod: -------------------------------------------------------------------------------- 1 | (module NMA_5V_12V_15V_Series (layer F.Cu) (tedit 55E4B674) 2 | (descr SIP9) 3 | (tags SIP9) 4 | (fp_text reference U5 (at 0 -2.794) (layer F.SilkS) 5 | (effects (font (size 1 1) (thickness 0.15))) 6 | ) 7 | (fp_text value NMA0509SC (at 0.508 3.302) (layer F.Fab) 8 | (effects (font (size 1 1) (thickness 0.15))) 9 | ) 10 | (fp_line (start 8.89 -0.508) (end 8.89 -1.27) (layer F.SilkS) (width 0.15)) 11 | (fp_line (start -9.144 -0.508) (end -9.144 -1.27) (layer F.SilkS) (width 0.15)) 12 | (fp_line (start -6.35 -1.27) (end 8.89 -1.27) (layer F.SilkS) (width 0.15)) 13 | (fp_line (start -9.144 1.27) (end -9.144 4.826) (layer F.SilkS) (width 0.15)) 14 | (fp_line (start -9.144 4.826) (end 8.89 4.826) (layer F.SilkS) (width 0.15)) 15 | (fp_line (start 8.89 4.826) (end 8.89 1.27) (layer F.SilkS) (width 0.15)) 16 | (fp_line (start -6.35 1.27) (end -6.35 0.508) (layer F.SilkS) (width 0.15)) 17 | (fp_line (start -9.144 -1.27) (end -6.35 -1.27) (layer F.SilkS) (width 0.15)) 18 | (fp_line (start -6.35 -1.27) (end -6.35 -0.508) (layer F.SilkS) (width 0.15)) 19 | (fp_line (start -9.144 0.762) (end -9.144 0.508) (layer F.SilkS) (width 0.15)) 20 | (fp_line (start 8.89 1.27) (end 8.89 0.508) (layer F.SilkS) (width 0.15)) 21 | (fp_line (start -9.144 1.27) (end -9.144 0.762) (layer F.SilkS) (width 0.15)) 22 | (fp_line (start -7.62 1.27) (end -9.144 1.27) (layer F.SilkS) (width 0.15)) 23 | (fp_line (start -7.62 1.27) (end -8.636 1.27) (layer F.SilkS) (width 0.15)) 24 | (fp_line (start 8.89 1.27) (end -7.62 1.27) (layer F.SilkS) (width 0.15)) 25 | (pad 1 thru_hole rect (at -7.62 0 90) (size 1.8 1.8) (drill 1) (layers *.Cu *.Mask F.SilkS)) 26 | (pad 2 thru_hole circle (at -5.08 0 90) (size 1.8 1.8) (drill 1) (layers *.Cu *.Mask F.SilkS)) 27 | (pad 4 thru_hole circle (at 0 0 90) (size 1.8 1.8) (drill 1) (layers *.Cu *.Mask F.SilkS)) 28 | (pad 5 thru_hole circle (at 2.54 0 90) (size 1.8 1.8) (drill 1) (layers *.Cu *.Mask F.SilkS)) 29 | (pad 6 thru_hole circle (at 5.08 0 90) (size 1.8 1.8) (drill 1) (layers *.Cu *.Mask F.SilkS)) 30 | ) 31 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ILDA 2 | This project is a DAC ([digital to analog converter](https://en.wikipedia.org/wiki/Digital-to-analog_converter)) which generates six [differential signals](https://en.wikipedia.org/wiki/Differential_signaling) based on the ILDA ([International Laser Display Association](http://www.laserist.org/)) [ISP-DB25 standard](http://www.laserist.org/StandardsDocs/ILDA_ISP99_rev002.pdf). 3 | Two signals for the X and Y axis (-10V to +10V), four signals for the channels red, green and blue and one custom colour (0V to +5V). 4 | The DAC is controlled via [SPI](https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus). In this case the software is written for a "Raspberry Pi", but any other controller can be used. 5 | 6 | This project contains two sections: 7 | 8 | 1. Hardware: In this section you find a 16bit 6ch DAC for ILDA. Reaching 22kpps (measured with [ILDA Test Pattern](http://www.laserist.org/StandardsDocs/ILDA_TestPattern95_rev002.pdf), theoretical up to 400kpps) limited by the controling "Raspberry Pi". It is resulting in a resolution of 4294967296 positions (~4295 megapixels). 9 | The asynchronous LDAC update pin at the DAC, immediately updates the DAC register with the contents of the input register, so all outputs change at the same time and can be synchronised with an external clock. 10 | 2. Software: C based software to control the ILDA-DAC with a "Raspberry Pi". Supports all Files based on the [ILDA Image Data Transfer Format](http://www.laserist.org/StandardsDocs/ILDA_IDTF14_rev011.pdf). 11 | 12 | ## Hardware 13 | The hardware is designed with [KiCad](http://kicad.org/). 14 | "ILDA/hardware/kicad/" 15 | Using 5 channels (x,y,r,g,b) with 16bit at 50MHz SPI speed the DAC reaches theoretically 400kpps (50000KHz ÷ (5×24bit) = 416kpps). 16 | 17 | 18 | ## Software 19 | ### Dependencies 20 | [Wiring Pi](http://wiringpi.com/). 21 | ### Installation 22 | 1. Install "Wiring Pi". Then follow the instructions on [Wiring Pi](http://wiringpi.com/). 23 | 2. Download this project to your "Raspberry Pi". 24 | 3. Change to the "ILDA/software/raspberrypi/" folder. 25 | 4. Run "make". 26 | 27 | Now you can run the software with "sudo ./ildaNode". 28 | 29 | -------------------------------------------------------------------------------- /hardware/kicad/ildagenerator.lst: -------------------------------------------------------------------------------- 1 | eeschema (2011-05-25)-stable >> Creation date: Sa 09 Aug 2014 11:26:11 CEST 2 | 3 | #Cmp ( Sortiert nach Referenz ) 4 | | C1 0.1µF 5 | | C2 0.1µF 6 | | P1 Out X 7 | | P2 Out Y 8 | | P3 Out Red 9 | | P4 Out Green 10 | | P5 Out Blue 11 | | P6 Out C1 12 | | R1 10kΩ 13 | | R2 10kΩ 14 | | R3 10kΩ 15 | | R4 10kΩ 16 | | R5 10kΩ 17 | | R6 10kΩ 18 | | R7 10kΩ 19 | | R8 10kΩ 20 | | R9 40kΩ 21 | | R10 40kΩ 22 | | R11 40kΩ 23 | | R12 40kΩ 24 | | R13 40kΩ 25 | | R14 40kΩ 26 | | R15 40kΩ 27 | | R16 40kΩ 28 | | R17 10kΩ 29 | | R18 10kΩ 30 | | R19 10kΩ 31 | | R20 10kΩ 32 | | R21 10kΩ 33 | | R22 10kΩ 34 | | R23 10kΩ 35 | | R24 10kΩ 36 | | R25 10kΩ 37 | | R26 10kΩ 38 | | R27 10kΩ 39 | | R28 10kΩ 40 | | R29 10kΩ 41 | | R30 10kΩ 42 | | R31 10kΩ 43 | | R32 10kΩ 44 | | U1 LTC2656BIFE-L16 45 | | U2 LT1356CN 46 | | U3 LT1356CN 47 | | U4 LT1356CN 48 | #Ende Cmp 49 | 50 | #Cmp ( Sortiert nach Wert ) 51 | | 0.1µF C1 52 | | 0.1µF C2 53 | | 10kΩ R1 54 | | 10kΩ R2 55 | | 10kΩ R3 56 | | 10kΩ R4 57 | | 10kΩ R5 58 | | 10kΩ R6 59 | | 10kΩ R7 60 | | 10kΩ R8 61 | | 10kΩ R17 62 | | 10kΩ R18 63 | | 10kΩ R19 64 | | 10kΩ R20 65 | | 10kΩ R21 66 | | 10kΩ R22 67 | | 10kΩ R23 68 | | 10kΩ R24 69 | | 10kΩ R25 70 | | 10kΩ R26 71 | | 10kΩ R27 72 | | 10kΩ R28 73 | | 10kΩ R29 74 | | 10kΩ R30 75 | | 10kΩ R31 76 | | 10kΩ R32 77 | | 40kΩ R9 78 | | 40kΩ R10 79 | | 40kΩ R11 80 | | 40kΩ R12 81 | | 40kΩ R13 82 | | 40kΩ R14 83 | | 40kΩ R15 84 | | 40kΩ R16 85 | | LT1356CN U2 86 | | LT1356CN U3 87 | | LT1356CN U4 88 | | LTC2656BIFE-L16 U1 89 | | Out Blue P5 90 | | Out C1 P6 91 | | Out Green P4 92 | | Out Red P3 93 | | Out X P1 94 | | Out Y P2 95 | #Ende Cmp 96 | 97 | #Ende der Liste 98 | -------------------------------------------------------------------------------- /hardware/kicad/ildagenerator.drl: -------------------------------------------------------------------------------- 1 | M48 2 | ;DRILL file {PCBnew (2011-05-25)-stable} date Sa 09 Aug 2014 17:46:08 CEST 3 | ;FORMAT={-:-/ absolute / metric / decimal} 4 | FMAT,2 5 | METRIC,TZ 6 | T1C0.635 7 | T2C0.813 8 | % 9 | G90 10 | G05 11 | M71 12 | T1 13 | X99.060Y85.090 14 | X157.480Y83.820 15 | X166.370Y105.410 16 | T2 17 | X96.520Y72.390 18 | X96.520Y82.550 19 | X96.520Y87.630 20 | X96.520Y97.790 21 | X97.790Y111.760 22 | X100.330Y69.850 23 | X100.330Y80.010 24 | X100.330Y90.170 25 | X100.330Y100.330 26 | X102.870Y130.810 27 | X105.410Y116.840 28 | X105.410Y124.460 29 | X106.680Y77.470 30 | X106.680Y80.010 31 | X106.680Y82.550 32 | X106.680Y85.090 33 | X106.680Y87.630 34 | X106.680Y90.170 35 | X106.680Y92.710 36 | X107.950Y100.330 37 | X107.950Y111.760 38 | X107.950Y116.840 39 | X107.950Y124.460 40 | X109.220Y71.120 41 | X109.220Y106.680 42 | X110.490Y100.330 43 | X110.490Y116.840 44 | X110.490Y124.460 45 | X111.760Y71.120 46 | X111.760Y106.680 47 | X113.030Y116.840 48 | X113.030Y124.460 49 | X113.030Y130.810 50 | X113.030Y137.160 51 | X114.300Y77.470 52 | X114.300Y80.010 53 | X114.300Y82.550 54 | X114.300Y85.090 55 | X114.300Y87.630 56 | X114.300Y90.170 57 | X114.300Y92.710 58 | X115.570Y116.840 59 | X115.570Y124.460 60 | X115.570Y130.810 61 | X115.570Y137.160 62 | X116.840Y113.030 63 | X118.110Y90.170 64 | X118.110Y100.330 65 | X118.110Y116.840 66 | X118.110Y124.460 67 | X119.380Y69.850 68 | X119.380Y80.010 69 | X120.650Y116.840 70 | X120.650Y124.460 71 | X121.920Y96.520 72 | X123.190Y91.440 73 | X125.730Y130.810 74 | X127.000Y113.030 75 | X128.270Y100.330 76 | X128.270Y110.490 77 | X132.080Y96.520 78 | X132.080Y102.870 79 | X132.080Y105.410 80 | X132.080Y107.950 81 | X132.080Y113.030 82 | X132.080Y115.570 83 | X132.080Y118.110 84 | X132.080Y123.190 85 | X132.080Y125.730 86 | X133.350Y91.440 87 | X134.620Y110.490 88 | X134.620Y120.650 89 | X134.620Y128.270 90 | X138.430Y83.820 91 | X138.430Y86.360 92 | X142.240Y102.870 93 | X142.240Y105.410 94 | X142.240Y107.950 95 | X142.240Y113.030 96 | X142.240Y115.570 97 | X142.240Y118.110 98 | X142.240Y123.190 99 | X142.240Y125.730 100 | X143.510Y80.010 101 | X143.510Y90.170 102 | X144.780Y93.980 103 | X144.780Y110.490 104 | X144.780Y120.650 105 | X144.780Y128.270 106 | X146.050Y91.440 107 | X147.320Y100.330 108 | X148.590Y81.280 109 | X148.590Y88.900 110 | X149.860Y100.330 111 | X151.130Y81.280 112 | X151.130Y88.900 113 | X153.670Y81.280 114 | X153.670Y88.900 115 | X153.670Y115.570 116 | X154.940Y93.980 117 | X156.210Y81.280 118 | X156.210Y88.900 119 | X156.210Y91.440 120 | X156.210Y115.570 121 | X157.480Y76.200 122 | X157.480Y93.980 123 | X158.750Y81.280 124 | X158.750Y88.900 125 | X158.750Y115.570 126 | X161.290Y81.280 127 | X161.290Y88.900 128 | X161.290Y115.570 129 | X162.560Y91.440 130 | X163.830Y81.280 131 | X163.830Y88.900 132 | X163.830Y115.570 133 | X166.370Y99.060 134 | X166.370Y101.600 135 | X166.370Y115.570 136 | X167.640Y76.200 137 | X167.640Y93.980 138 | X168.910Y78.740 139 | X168.910Y88.900 140 | X170.180Y93.980 141 | X170.180Y104.140 142 | X171.450Y107.950 143 | X171.450Y110.490 144 | X171.450Y113.030 145 | X171.450Y115.570 146 | X172.720Y91.440 147 | X173.990Y85.090 148 | X173.990Y87.630 149 | T0 150 | M30 151 | -------------------------------------------------------------------------------- /hardware/kicad/ildagenerator: -------------------------------------------------------------------------------- 1 | Source,/Users/janerik/Dropbox/Laser/ILDA/kicad/ildagenerator.sch 2 | Kicad Rev,Eeschema (2015-07-29 BZR 6016)-product 3 | Generated Date,Freitag, 07. August 2015 16:10:24 4 | 5 | Title,ILDA Output 6 | Company,Not Set 7 | Revision,0.1 8 | Date Issue,9 aug 2014 9 | 10 | Reference,Value,Library,Library Ref 11 | P8,CONN_4,ildagenerator-cache,CONN_4 12 | P7,CONN_6,ildagenerator-cache,CONN_6 13 | U1,LTC2656BIFE-L16,ildagenerator-cache,LTC2656BIFE-L16 14 | C1,0.1µF,ildagenerator-rescue,C-RESCUE-ildagenerator 15 | C2,0.1µF,ildagenerator-rescue,C-RESCUE-ildagenerator 16 | U2,LT1356CN,ildagenerator-cache,LT1356CN 17 | R3,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 18 | R4,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 19 | R1,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 20 | R2,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 21 | P1,Out X,ildagenerator-cache,CONN_2 22 | R5,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 23 | R6,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 24 | P2,Out Y,ildagenerator-cache,CONN_2 25 | R7,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 26 | R8,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 27 | U3,LT1356CN,ildagenerator-cache,LT1356CN 28 | R17,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 29 | R21,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 30 | R19,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 31 | R23,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 32 | P3,Out Red,ildagenerator-cache,CONN_2 33 | R18,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 34 | R22,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 35 | R20,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 36 | R24,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 37 | P4,Out Green,ildagenerator-cache,CONN_2 38 | U4,LT1356CN,ildagenerator-cache,LT1356CN 39 | R25,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 40 | R29,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 41 | R27,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 42 | R31,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 43 | P5,Out Blue,ildagenerator-cache,CONN_2 44 | R26,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 45 | R30,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 46 | R28,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 47 | R32,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 48 | P6,Out C1,ildagenerator-cache,CONN_2 49 | R13,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 50 | R34,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 51 | R35,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 52 | R33,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 53 | R14,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 54 | R36,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 55 | R39,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 56 | R42,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 57 | R15,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 58 | R37,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 59 | R40,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 60 | R43,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 61 | R16,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 62 | R38,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 63 | R41,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 64 | R44,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 65 | R52,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 66 | R51,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 67 | R50,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 68 | R49,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 69 | R48,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 70 | R47,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 71 | R46,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 72 | R45,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 73 | R12,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 74 | R11,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 75 | R10,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 76 | R9,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 77 | R56,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 78 | R55,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 79 | R54,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 80 | R53,10kΩ,ildagenerator-rescue,R-RESCUE-ildagenerator 81 | 1µF1,CP,device,CP 82 | 1µF2,CP,device,CP 83 | 1µF3,CP,device,CP 84 | 1µF4,CP,device,CP 85 | 1µF5,CP,device,CP 86 | 1µF6,CP,device,CP 87 | -------------------------------------------------------------------------------- /hardware/kicad/ildagenerator-cache.bak: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.3 Date: Sa 09 Aug 2014 17:14:20 CEST 2 | #encoding utf-8 3 | # 4 | # +15V 5 | # 6 | DEF +15V #PWR 0 0 N Y 1 F P 7 | F0 "#PWR" 0 -50 20 H I C CNN 8 | F1 "+15V" 0 100 30 H V C CNN 9 | DRAW 10 | X +15V 1 0 0 0 U 20 30 0 0 W N 11 | C 0 60 20 0 1 0 N 12 | P 3 0 1 0 0 0 0 40 0 40 N 13 | ENDDRAW 14 | ENDDEF 15 | # 16 | # +5V 17 | # 18 | DEF +5V #PWR 0 40 Y Y 1 F P 19 | F0 "#PWR" 0 90 20 H I C CNN 20 | F1 "+5V" 0 90 30 H V C CNN 21 | DRAW 22 | X +5V 1 0 0 0 U 20 20 0 0 W N 23 | C 0 50 20 0 1 0 N 24 | P 4 0 1 0 0 0 0 30 0 30 0 30 N 25 | ENDDRAW 26 | ENDDEF 27 | # 28 | # -15V 29 | # 30 | DEF -15V #PWR 0 0 Y Y 1 F N 31 | F0 "#PWR" 0 130 20 H I C CNN 32 | F1 "-15V" 0 100 30 H V C CNN 33 | DRAW 34 | X -15V 1 0 0 0 U 20 20 0 0 W N 35 | P 3 0 1 0 0 0 0 50 0 50 N 36 | P 7 0 1 0 0 80 30 50 -20 50 -30 50 0 80 0 80 0 80 F 37 | ENDDRAW 38 | ENDDEF 39 | # 40 | # C 41 | # 42 | DEF C C 0 10 N Y 1 F N 43 | F0 "C" 50 100 50 H V L CNN 44 | F1 "C" 50 -100 50 H V L CNN 45 | $FPLIST 46 | SM* 47 | C? 48 | C1-1 49 | $ENDFPLIST 50 | DRAW 51 | P 2 0 1 10 -100 -30 100 -30 N 52 | P 2 0 1 10 -100 30 100 30 N 53 | X ~ 1 0 200 170 D 40 40 1 1 P 54 | X ~ 2 0 -200 170 U 40 40 1 1 P 55 | ENDDRAW 56 | ENDDEF 57 | # 58 | # CONN_2 59 | # 60 | DEF CONN_2 P 0 40 Y N 1 F N 61 | F0 "P" -50 0 40 V V C CNN 62 | F1 "CONN_2" 50 0 40 V V C CNN 63 | DRAW 64 | S -100 150 100 -150 0 1 0 N 65 | X P1 1 -350 100 250 R 60 60 1 1 P I 66 | X PM 2 -350 -100 250 R 60 60 1 1 P I 67 | ENDDRAW 68 | ENDDEF 69 | # 70 | # CONN_4 71 | # 72 | DEF CONN_4 P 0 40 Y N 1 F N 73 | F0 "P" -50 0 50 V V C CNN 74 | F1 "CONN_4" 50 0 50 V V C CNN 75 | DRAW 76 | S -100 200 100 -200 0 1 0 N 77 | X P1 1 -350 150 250 R 50 50 1 1 P I 78 | X P2 2 -350 50 250 R 50 50 1 1 P I 79 | X P3 3 -350 -50 250 R 50 50 1 1 P I 80 | X P4 4 -350 -150 250 R 50 50 1 1 P I 81 | ENDDRAW 82 | ENDDEF 83 | # 84 | # CONN_6 85 | # 86 | DEF CONN_6 P 0 30 Y N 1 F N 87 | F0 "P" -50 0 60 V V C CNN 88 | F1 "CONN_6" 50 0 60 V V C CNN 89 | DRAW 90 | S -100 300 100 -300 0 1 0 N 91 | X 1 1 -350 250 250 R 60 60 1 1 P I 92 | X 2 2 -350 150 250 R 60 60 1 1 P I 93 | X 3 3 -350 50 250 R 60 60 1 1 P I 94 | X 4 4 -350 -50 250 R 60 60 1 1 P I 95 | X 5 5 -350 -150 250 R 60 60 1 1 P I 96 | X 6 6 -350 -250 250 R 60 60 1 1 P I 97 | ENDDRAW 98 | ENDDEF 99 | # 100 | # GND 101 | # 102 | DEF ~GND #PWR 0 0 Y Y 1 F P 103 | F0 "#PWR" 0 0 30 H I C CNN 104 | F1 "GND" 0 -70 30 H I C CNN 105 | DRAW 106 | P 4 0 1 0 -50 0 0 -50 50 0 -50 0 N 107 | X GND 1 0 0 0 U 30 30 1 1 W N 108 | ENDDRAW 109 | ENDDEF 110 | # 111 | # LT1356CN 112 | # 113 | DEF LT1356CN U 0 40 Y Y 4 F N 114 | F0 "U" 150 200 60 H V C CNN 115 | F1 "LT1356CN" 339 -200 60 H V C CNN 116 | DRAW 117 | P 4 0 1 0 -200 300 400 0 -200 -300 -200 300 f 118 | X out 1 700 0 300 L 50 50 1 1 O 119 | X - 2 -500 -200 300 R 50 50 1 1 I 120 | X + 3 -500 200 300 R 50 50 1 1 I 121 | X V+ 4 0 500 300 D 50 50 1 1 W 122 | X V- 11 0 -500 300 U 50 50 1 1 W 123 | X + 5 -500 200 300 R 50 50 2 1 I 124 | X - 6 -500 -200 300 R 50 50 2 1 I 125 | X out 7 700 0 300 L 50 50 2 1 O 126 | X out 8 700 0 300 L 50 50 3 1 O 127 | X - 9 -500 -200 300 R 50 50 3 1 I 128 | X + 10 -500 200 300 R 50 50 3 1 I 129 | X + 12 -500 200 300 R 50 50 4 1 I 130 | X - 13 -500 -200 300 R 50 50 4 1 I 131 | X out 14 700 0 300 L 50 50 4 1 O 132 | ENDDRAW 133 | ENDDEF 134 | # 135 | # LTC2656BIFE-L16 136 | # 137 | DEF LTC2656BIFE-L16 U 0 40 Y Y 1 F N 138 | F0 "U" 50 900 60 H I C CNN 139 | F1 "LTC2656BIFE-L16" 0 -1100 60 H V C CNN 140 | DRAW 141 | X REF_LO 1 -800 900 295 R 59 59 0 0 I 142 | X Vout_A 2 -800 700 295 R 59 59 0 0 O 143 | X Vout_B 3 -800 500 295 R 59 59 0 0 O 144 | X REF_COMP 4 -800 300 295 R 59 59 0 0 I 145 | X Vout_C 5 -800 100 295 R 59 59 0 0 O 146 | X Vout_D 6 -800 -100 295 R 59 59 0 0 O 147 | X REF_IN/OUT 7 -800 -300 295 R 59 59 0 0 B 148 | X ~LDAC 8 -800 -500 295 R 59 59 0 0 I 149 | X ~CS~/LD 9 -800 -700 295 R 59 59 0 0 I 150 | X SCK 10 -800 -900 295 R 59 59 0 0 I C 151 | X GND 20 800 900 295 L 59 59 0 0 I 152 | X SDI 11 800 -900 295 L 59 59 0 0 I 153 | X SDO 12 800 -700 295 L 59 59 0 0 I 154 | X ~CLR 13 800 -500 295 L 59 59 0 0 I 155 | X PORSEL 14 800 -300 295 L 59 59 0 0 I 156 | X Vout_E 15 800 -100 295 L 59 59 0 0 O 157 | X Vout_F 16 800 100 295 L 59 59 0 0 O 158 | X Vout_G 17 800 300 295 L 59 59 0 0 O 159 | X Vout_H 18 800 500 295 L 59 59 0 0 O 160 | X Vcc 19 800 700 295 L 59 59 0 0 I 161 | S -500 1000 500 -1000 0 1 0 N 162 | X GND 21 0 1300 300 D 50 50 1 1 I 163 | ENDDRAW 164 | ENDDEF 165 | # 166 | # PWR_FLAG 167 | # 168 | DEF PWR_FLAG #FLG 0 0 N N 1 F P 169 | F0 "#FLG" 0 270 30 H I C CNN 170 | F1 "PWR_FLAG" 0 230 30 H V C CNN 171 | DRAW 172 | X pwr 1 0 0 0 U 20 20 0 0 w 173 | P 3 0 1 0 0 0 0 100 0 100 N 174 | P 5 0 1 0 0 100 -100 150 0 200 100 150 0 100 N 175 | ENDDRAW 176 | ENDDEF 177 | # 178 | # R 179 | # 180 | DEF R R 0 0 N Y 1 F N 181 | F0 "R" 80 0 50 V V C CNN 182 | F1 "R" 0 0 50 V V C CNN 183 | $FPLIST 184 | R? 185 | SM0603 186 | SM0805 187 | R?-* 188 | $ENDFPLIST 189 | DRAW 190 | S -40 150 40 -150 0 1 12 N 191 | X ~ 1 0 250 100 D 60 60 1 1 P 192 | X ~ 2 0 -250 100 U 60 60 1 1 P 193 | ENDDRAW 194 | ENDDEF 195 | # 196 | #End Library 197 | -------------------------------------------------------------------------------- /software/raspberrypi/ltc2656.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include //Needed for SPI port 5 | #include //Needed for SPI port 6 | #include //Needed for SPI port 7 | #include //Needed for SPI port (close) 8 | #include "ltc2656.h" 9 | 10 | int spi_cs0_fd; //file descriptor for the SPI device 11 | int spi_cs1_fd; //file descriptor for the SPI device 12 | 13 | 14 | //SET SPI MODE 15 | unsigned char SPI_MODE = SPI_MODE_0; //SPI_MODE_0 (0,0) CPOL = 0, CPHA = 0, Clock idle low, data is clocked in on rising edge, output data (change) on falling edge 16 | 17 | 18 | //*********************************** 19 | //*********************************** 20 | //********** SPI OPEN PORT ********** 21 | //*********************************** 22 | //*********************************** 23 | //spi_device 0=CS0, 1=CS1 24 | int SpiOpenPort (int spi_device) 25 | { 26 | int status_value = -1; 27 | int *spi_cs_fd; 28 | 29 | if (spi_device) 30 | spi_cs_fd = &spi_cs1_fd; 31 | else 32 | spi_cs_fd = &spi_cs0_fd; 33 | 34 | 35 | if (spi_device) 36 | *spi_cs_fd = open(SPIDEV_1_PATH, O_RDWR); 37 | else 38 | *spi_cs_fd = open(SPIDEV_0_PATH, O_RDWR); 39 | 40 | if (*spi_cs_fd < 0) 41 | { 42 | perror("Error - Could not open SPI device"); 43 | exit(1); 44 | } 45 | 46 | status_value = ioctl(*spi_cs_fd, SPI_IOC_WR_MODE, &SPI_MODE); 47 | if(status_value < 0) 48 | { 49 | perror("Could not set SPIMode (WR)...ioctl fail"); 50 | exit(1); 51 | } 52 | 53 | status_value = ioctl(*spi_cs_fd, SPI_IOC_RD_MODE, &SPI_MODE); 54 | if(status_value < 0) 55 | { 56 | perror("Could not set SPIMode (RD)...ioctl fail"); 57 | exit(1); 58 | } 59 | 60 | unsigned char bitsPerWord = SPI_BITS_PER_WORD; 61 | status_value = ioctl(*spi_cs_fd, SPI_IOC_WR_BITS_PER_WORD, &bitsPerWord); 62 | if(status_value < 0) 63 | { 64 | perror("Could not set SPI bitsPerWord (WR)...ioctl fail"); 65 | exit(1); 66 | } 67 | 68 | status_value = ioctl(*spi_cs_fd, SPI_IOC_RD_BITS_PER_WORD, &bitsPerWord); 69 | if(status_value < 0) 70 | { 71 | perror("Could not set SPI bitsPerWord(RD)...ioctl fail"); 72 | exit(1); 73 | } 74 | unsigned int spiSpeed = SPI_SPEED; 75 | status_value = ioctl(*spi_cs_fd, SPI_IOC_WR_MAX_SPEED_HZ, &spiSpeed); 76 | if(status_value < 0) 77 | { 78 | perror("Could not set SPI speed (WR)...ioctl fail"); 79 | exit(1); 80 | } 81 | 82 | status_value = ioctl(*spi_cs_fd, SPI_IOC_RD_MAX_SPEED_HZ, &spiSpeed); 83 | if(status_value < 0) 84 | { 85 | perror("Could not set SPI speed (RD)...ioctl fail"); 86 | exit(1); 87 | } 88 | return(status_value); 89 | } 90 | 91 | //************************************ 92 | //************************************ 93 | //********** SPI CLOSE PORT ********** 94 | //************************************ 95 | //************************************ 96 | int SpiClosePort (int spi_device) 97 | { 98 | int status_value = -1; 99 | int *spi_cs_fd; 100 | 101 | if (spi_device) 102 | spi_cs_fd = &spi_cs1_fd; 103 | else 104 | spi_cs_fd = &spi_cs0_fd; 105 | 106 | 107 | status_value = close(*spi_cs_fd); 108 | if(status_value < 0) 109 | { 110 | perror("Error - Could not close SPI device"); 111 | exit(1); 112 | } 113 | return(status_value); 114 | } 115 | 116 | //******************************************* 117 | //******************************************* 118 | //********** SPI WRITE & READ DATA ********** 119 | //******************************************* 120 | //******************************************* 121 | //data Bytes to write. Contents is overwritten with bytes read. 122 | int SpiWriteAndRead (int spi_device, unsigned char *data, int length){ 123 | struct spi_ioc_transfer spi[length]; 124 | int i = 0; 125 | int retVal = -1; 126 | int *spi_cs_fd; 127 | 128 | if (spi_device) 129 | spi_cs_fd = &spi_cs1_fd; 130 | else 131 | spi_cs_fd = &spi_cs0_fd; 132 | 133 | //one spi transfer for each byte 134 | 135 | for (i = 0 ; i < length ; i++) 136 | { 137 | spi[i].tx_buf = (unsigned long)(data + i); // transmit from "data" 138 | spi[i].rx_buf = (unsigned long)(data + i) ; // receive into "data" 139 | spi[i].len = sizeof(*(data + i)) ; 140 | spi[i].delay_usecs = 0 ; 141 | spi[i].speed_hz = SPI_SPEED ; 142 | spi[i].bits_per_word = SPI_BITS_PER_WORD ; 143 | spi[i].cs_change = 0; 144 | spi[i].pad = 0; 145 | } 146 | retVal = ioctl(*spi_cs_fd, SPI_IOC_MESSAGE(length), &spi) ; 147 | if(retVal < 0) 148 | { 149 | perror("Error - Problem transmitting spi data..ioctl"); 150 | exit(1); 151 | } 152 | 153 | return retVal; 154 | } 155 | 156 | void setChVal(unsigned char channel, unsigned char valUpper, unsigned char valLower){ 157 | unsigned char data[] = {channel, valUpper, valLower}; 158 | SpiWriteAndRead(0, data, 3); 159 | } 160 | 161 | void setChVal_int(unsigned char channel, unsigned int val){ 162 | setChVal(channel, (unsigned char)(val>>8), val & 0xff); 163 | } 164 | 165 | void setChVal_float(unsigned char channel, float val){ 166 | setChVal_int(channel, val * 32768 + 32767); 167 | } 168 | 169 | void executeValues(){ 170 | digitalWrite (LDAC_PIN, LOW); 171 | delayMicroseconds(1); 172 | digitalWrite (LDAC_PIN, HIGH); 173 | } 174 | 175 | void initLtc2656(){ 176 | wiringPiSetup (); 177 | pinMode (LDAC_PIN, OUTPUT); 178 | digitalWrite (LDAC_PIN, HIGH); 179 | SpiOpenPort(SPI_DEV); 180 | } 181 | 182 | void closeLtc2656(){ 183 | SpiClosePort(SPI_DEV); 184 | } 185 | 186 | 187 | -------------------------------------------------------------------------------- /hardware/kicad/ildagenerator.cmp: -------------------------------------------------------------------------------- 1 | Cmp-Mod V01 Created by CvPCB (2011-05-25)-stable date = Sa 09 Aug 2014 17:15:25 CEST 2 | 3 | BeginCmp 4 | TimeStamp = /53E22370; 5 | Reference = C1; 6 | ValeurCmp = 0.1µF; 7 | IdModule = C1; 8 | EndCmp 9 | 10 | BeginCmp 11 | TimeStamp = /53E22746; 12 | Reference = C2; 13 | ValeurCmp = 0.1µF; 14 | IdModule = C1; 15 | EndCmp 16 | 17 | BeginCmp 18 | TimeStamp = /53E1F025/53E1F188; 19 | Reference = P1; 20 | ValeurCmp = Out_X; 21 | IdModule = SIL-2; 22 | EndCmp 23 | 24 | BeginCmp 25 | TimeStamp = /53E1F025/53E1F1C3; 26 | Reference = P2; 27 | ValeurCmp = Out_Y; 28 | IdModule = SIL-2; 29 | EndCmp 30 | 31 | BeginCmp 32 | TimeStamp = /53E1F025/53E1F35A; 33 | Reference = P3; 34 | ValeurCmp = Out_Red; 35 | IdModule = SIL-2; 36 | EndCmp 37 | 38 | BeginCmp 39 | TimeStamp = /53E1F025/53E1F39A; 40 | Reference = P4; 41 | ValeurCmp = Out_Green; 42 | IdModule = SIL-2; 43 | EndCmp 44 | 45 | BeginCmp 46 | TimeStamp = /53E1F025/53E1F400; 47 | Reference = P5; 48 | ValeurCmp = Out_Blue; 49 | IdModule = SIL-2; 50 | EndCmp 51 | 52 | BeginCmp 53 | TimeStamp = /53E1F025/53E1F440; 54 | Reference = P6; 55 | ValeurCmp = Out_C1; 56 | IdModule = SIL-2; 57 | EndCmp 58 | 59 | BeginCmp 60 | TimeStamp = /53E5FC4C; 61 | Reference = P7; 62 | ValeurCmp = CONN_6; 63 | IdModule = SIL-6; 64 | EndCmp 65 | 66 | BeginCmp 67 | TimeStamp = /53E639B6; 68 | Reference = P8; 69 | ValeurCmp = CONN_4; 70 | IdModule = SIL-4; 71 | EndCmp 72 | 73 | BeginCmp 74 | TimeStamp = /53E1F025/53E1F122; 75 | Reference = R1; 76 | ValeurCmp = 10kΩ; 77 | IdModule = R4; 78 | EndCmp 79 | 80 | BeginCmp 81 | TimeStamp = /53E1F025/53E1F128; 82 | Reference = R2; 83 | ValeurCmp = 10kΩ; 84 | IdModule = R4; 85 | EndCmp 86 | 87 | BeginCmp 88 | TimeStamp = /53E1F025/53E1F116; 89 | Reference = R3; 90 | ValeurCmp = 10kΩ; 91 | IdModule = R4; 92 | EndCmp 93 | 94 | BeginCmp 95 | TimeStamp = /53E1F025/53E1F11C; 96 | Reference = R4; 97 | ValeurCmp = 10kΩ; 98 | IdModule = R4; 99 | EndCmp 100 | 101 | BeginCmp 102 | TimeStamp = /53E1F025/53E1F191; 103 | Reference = R5; 104 | ValeurCmp = 10kΩ; 105 | IdModule = R4; 106 | EndCmp 107 | 108 | BeginCmp 109 | TimeStamp = /53E1F025/53E1F197; 110 | Reference = R6; 111 | ValeurCmp = 10kΩ; 112 | IdModule = R4; 113 | EndCmp 114 | 115 | BeginCmp 116 | TimeStamp = /53E1F025/53E1F1CC; 117 | Reference = R7; 118 | ValeurCmp = 10kΩ; 119 | IdModule = R4; 120 | EndCmp 121 | 122 | BeginCmp 123 | TimeStamp = /53E1F025/53E1F1D2; 124 | Reference = R8; 125 | ValeurCmp = 10kΩ; 126 | IdModule = R4; 127 | EndCmp 128 | 129 | BeginCmp 130 | TimeStamp = /53E1F025/53E1F16A; 131 | Reference = R9; 132 | ValeurCmp = 40kΩ; 133 | IdModule = R4; 134 | EndCmp 135 | 136 | BeginCmp 137 | TimeStamp = /53E1F025/53E1F136; 138 | Reference = R10; 139 | ValeurCmp = 40kΩ; 140 | IdModule = R4; 141 | EndCmp 142 | 143 | BeginCmp 144 | TimeStamp = /53E1F025/53E1F1A5; 145 | Reference = R11; 146 | ValeurCmp = 40kΩ; 147 | IdModule = R4; 148 | EndCmp 149 | 150 | BeginCmp 151 | TimeStamp = /53E1F025/53E1F1DE; 152 | Reference = R12; 153 | ValeurCmp = 40kΩ; 154 | IdModule = R4; 155 | EndCmp 156 | 157 | BeginCmp 158 | TimeStamp = /53E1F025/53E1F175; 159 | Reference = R13; 160 | ValeurCmp = 40kΩ; 161 | IdModule = R4; 162 | EndCmp 163 | 164 | BeginCmp 165 | TimeStamp = /53E1F025/53E1F154; 166 | Reference = R14; 167 | ValeurCmp = 40kΩ; 168 | IdModule = R4; 169 | EndCmp 170 | 171 | BeginCmp 172 | TimeStamp = /53E1F025/53E1F1BA; 173 | Reference = R15; 174 | ValeurCmp = 40kΩ; 175 | IdModule = R4; 176 | EndCmp 177 | 178 | BeginCmp 179 | TimeStamp = /53E1F025/53E1F1EF; 180 | Reference = R16; 181 | ValeurCmp = 40kΩ; 182 | IdModule = R4; 183 | EndCmp 184 | 185 | BeginCmp 186 | TimeStamp = /53E1F025/53E1F33C; 187 | Reference = R17; 188 | ValeurCmp = 10kΩ; 189 | IdModule = R4; 190 | EndCmp 191 | 192 | BeginCmp 193 | TimeStamp = /53E1F025/53E1F382; 194 | Reference = R18; 195 | ValeurCmp = 10kΩ; 196 | IdModule = R4; 197 | EndCmp 198 | 199 | BeginCmp 200 | TimeStamp = /53E1F025/53E1F348; 201 | Reference = R19; 202 | ValeurCmp = 10kΩ; 203 | IdModule = R4; 204 | EndCmp 205 | 206 | BeginCmp 207 | TimeStamp = /53E1F025/53E1F38E; 208 | Reference = R20; 209 | ValeurCmp = 10kΩ; 210 | IdModule = R4; 211 | EndCmp 212 | 213 | BeginCmp 214 | TimeStamp = /53E1F025/53E1F342; 215 | Reference = R21; 216 | ValeurCmp = 10kΩ; 217 | IdModule = R4; 218 | EndCmp 219 | 220 | BeginCmp 221 | TimeStamp = /53E1F025/53E1F388; 222 | Reference = R22; 223 | ValeurCmp = 10kΩ; 224 | IdModule = R4; 225 | EndCmp 226 | 227 | BeginCmp 228 | TimeStamp = /53E1F025/53E1F354; 229 | Reference = R23; 230 | ValeurCmp = 10kΩ; 231 | IdModule = R4; 232 | EndCmp 233 | 234 | BeginCmp 235 | TimeStamp = /53E1F025/53E1F394; 236 | Reference = R24; 237 | ValeurCmp = 10kΩ; 238 | IdModule = R4; 239 | EndCmp 240 | 241 | BeginCmp 242 | TimeStamp = /53E1F025/53E1F3E2; 243 | Reference = R25; 244 | ValeurCmp = 10kΩ; 245 | IdModule = R4; 246 | EndCmp 247 | 248 | BeginCmp 249 | TimeStamp = /53E1F025/53E1F428; 250 | Reference = R26; 251 | ValeurCmp = 10kΩ; 252 | IdModule = R4; 253 | EndCmp 254 | 255 | BeginCmp 256 | TimeStamp = /53E1F025/53E1F3EE; 257 | Reference = R27; 258 | ValeurCmp = 10kΩ; 259 | IdModule = R4; 260 | EndCmp 261 | 262 | BeginCmp 263 | TimeStamp = /53E1F025/53E1F434; 264 | Reference = R28; 265 | ValeurCmp = 10kΩ; 266 | IdModule = R4; 267 | EndCmp 268 | 269 | BeginCmp 270 | TimeStamp = /53E1F025/53E1F3E8; 271 | Reference = R29; 272 | ValeurCmp = 10kΩ; 273 | IdModule = R4; 274 | EndCmp 275 | 276 | BeginCmp 277 | TimeStamp = /53E1F025/53E1F42E; 278 | Reference = R30; 279 | ValeurCmp = 10kΩ; 280 | IdModule = R4; 281 | EndCmp 282 | 283 | BeginCmp 284 | TimeStamp = /53E1F025/53E1F3FA; 285 | Reference = R31; 286 | ValeurCmp = 10kΩ; 287 | IdModule = R4; 288 | EndCmp 289 | 290 | BeginCmp 291 | TimeStamp = /53E1F025/53E1F43A; 292 | Reference = R32; 293 | ValeurCmp = 10kΩ; 294 | IdModule = R4; 295 | EndCmp 296 | 297 | BeginCmp 298 | TimeStamp = /53E20CA1; 299 | Reference = U1; 300 | ValeurCmp = LTC2656BIFE-L16; 301 | IdModule = TSSOP20; 302 | EndCmp 303 | 304 | BeginCmp 305 | TimeStamp = /53E1F025/53E1F104; 306 | Reference = U2; 307 | ValeurCmp = LT1356CN; 308 | IdModule = DIP-14__300; 309 | EndCmp 310 | 311 | BeginCmp 312 | TimeStamp = /53E1F025/53E1F322; 313 | Reference = U3; 314 | ValeurCmp = LT1356CN; 315 | IdModule = DIP-14__300; 316 | EndCmp 317 | 318 | BeginCmp 319 | TimeStamp = /53E1F025/53E1F3C8; 320 | Reference = U4; 321 | ValeurCmp = LT1356CN; 322 | IdModule = DIP-14__300; 323 | EndCmp 324 | 325 | EndListe 326 | -------------------------------------------------------------------------------- /software/raspberrypi/ildaNode.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include "ltc2656.h" 10 | #include "ildaFile.h" 11 | #include "ildaNode.h" 12 | 13 | void initILDA(){ 14 | initLtc2656(); 15 | } 16 | 17 | void endILDA(){ 18 | closeLtc2656(); 19 | } 20 | 21 | float lastX = 0.0; 22 | float lastY = 0.0; 23 | float scaleX = 1.0; 24 | float scaleY = 1.0; 25 | int delayMicroS = 0; 26 | /* 27 | mesured speed 0.15ms (~6.6kpps) 28 | */ 29 | void moveTo(float x, float y){ 30 | x *= scaleX; 31 | y *= scaleY; 32 | if(lastX != x){ 33 | lastX = x; 34 | setChVal_float(CH_X, x); 35 | } 36 | if(lastY != y){ 37 | lastY = y; 38 | setChVal_float(CH_Y, y); 39 | } 40 | executeValues(); 41 | } 42 | 43 | /* 44 | min 150 micros (used to set the values) 45 | */ 46 | void moveToTimed(float x, float y, int micros){ 47 | if(micros > MOVE_TIME_MICROS){ 48 | int steps = micros / MOVE_TIME_MICROS; 49 | int remain = micros % MOVE_TIME_MICROS; 50 | float dx = (x - lastX) / steps; 51 | float dy = (y - lastY) / steps; 52 | //doing one step less 53 | for(int i = 1; i < steps; i++){ 54 | moveTo(lastX + dx, lastY + dy); 55 | } 56 | //do last step 57 | delayMicroseconds(remain); 58 | moveTo(x, y); 59 | }else{ 60 | moveTo(x, y); 61 | } 62 | } 63 | 64 | /* 65 | distPerS is the distence per second (pps * 4) 66 | */ 67 | void moveToSpeedLimit(float x, float y, int distPerS){ 68 | float dx = (x - lastX); 69 | float dy = (y - lastY); 70 | int micros = 0; 71 | if(dx > dy){ 72 | micros = (dx / distPerS) * 1000000.0; 73 | }else{ 74 | micros = (dy / distPerS) * 1000000.0; 75 | } 76 | moveToTimed(x, y, micros); 77 | } 78 | 79 | float lastRed = 0.0; 80 | float lastGreen = 0.0; 81 | float lastBlue = 0.0; 82 | /* 83 | writes the values but not execute them 84 | */ 85 | void setColour(float red, float green, float blue){ 86 | if(lastRed != red){ 87 | setChVal_float(CH_R, red); 88 | lastRed = red; 89 | } 90 | if(lastGreen != green){ 91 | setChVal_float(CH_G, green); 92 | lastGreen = green; 93 | } 94 | if(lastBlue != blue){ 95 | setChVal_float(CH_B, blue); 96 | lastBlue = blue; 97 | } 98 | } 99 | 100 | /* 101 | r radius of the cicle 102 | posX and posY center of the cicle 103 | */ 104 | void cicle(float r, float posX, float posY){ 105 | for(float i =0.0; i < 360.0; i+=4){ 106 | moveTo(sin(M_PI*i/180.0)*r+posX, cos(M_PI*i/180.0)*r+posY); 107 | } 108 | } 109 | 110 | void rotataitingCicle(){ 111 | for(float i =0.0; i < 360.0; i+=20){ 112 | cicle(0.2, sin(M_PI*i/180.0)*0.5, cos(M_PI*i/180.0)*0.5); 113 | } 114 | } 115 | 116 | int HOUSE_WAIT_MICROS = 1000; 117 | float HOUSE_SIZE = 0.2; 118 | float ROOF_SIZE = 0.2; //invertete (-1 is max 1 is min part of the house) 119 | /* 120 | ^ 121 | / \ 122 | |X| 123 | */ 124 | void hoseOfNicolaus(){ 125 | moveToTimed(-1.0 * HOUSE_SIZE, -1.0 * HOUSE_SIZE, HOUSE_WAIT_MICROS); 126 | 127 | moveToTimed(HOUSE_SIZE, -1.0 * HOUSE_SIZE, HOUSE_WAIT_MICROS); 128 | 129 | moveToTimed(-1.0 * HOUSE_SIZE, ROOF_SIZE * HOUSE_SIZE, HOUSE_WAIT_MICROS); 130 | 131 | moveToTimed(HOUSE_SIZE, ROOF_SIZE * HOUSE_SIZE, HOUSE_WAIT_MICROS); 132 | 133 | moveToTimed(0.0, HOUSE_SIZE, HOUSE_WAIT_MICROS); 134 | 135 | moveToTimed(-1.0 * HOUSE_SIZE, ROOF_SIZE * HOUSE_SIZE, HOUSE_WAIT_MICROS); 136 | 137 | moveToTimed(-1.0 * HOUSE_SIZE, -1.0 * HOUSE_SIZE, HOUSE_WAIT_MICROS); 138 | 139 | moveToTimed(HOUSE_SIZE, ROOF_SIZE * HOUSE_SIZE, HOUSE_WAIT_MICROS); 140 | 141 | moveToTimed(HOUSE_SIZE, -1.0 * HOUSE_SIZE, HOUSE_WAIT_MICROS); 142 | } 143 | 144 | int selectWhatToDo(){ 145 | int number; 146 | printf("Type in the number to select:\n"); 147 | printf("0: quit\n"); 148 | printf("1: paint a cicle\n"); 149 | printf("2: paint a ciceling cicle\n"); 150 | printf("3: paint a house\n"); 151 | printf("4: execute ILDA-file\n"); 152 | printf("5: options\n"); 153 | scanf("%d", &number); 154 | return number; 155 | } 156 | 157 | struct termios stdin_orig; // Structure to save parameters 158 | 159 | void term_reset() { 160 | tcsetattr(STDIN_FILENO,TCSANOW,&stdin_orig); 161 | tcsetattr(STDIN_FILENO,TCSAFLUSH,&stdin_orig); 162 | int oldfl = fcntl(STDIN_FILENO, F_GETFL); 163 | if (oldfl == -1) { 164 | /* handle error */ 165 | } 166 | fcntl(STDIN_FILENO, F_SETFL, oldfl & ~O_NONBLOCK); 167 | } 168 | 169 | void term_nonblocking() { 170 | struct termios newt; 171 | if(tcgetattr(STDIN_FILENO, &stdin_orig) == -1){ 172 | perror("could not back up terminal settings"); 173 | return; 174 | } 175 | fcntl(STDIN_FILENO, F_SETFL, O_NONBLOCK); // non-blocking 176 | newt = stdin_orig; 177 | newt.c_lflag &= ~(ICANON | ECHO); 178 | tcsetattr(STDIN_FILENO, TCSANOW, &newt); 179 | 180 | atexit(term_reset); 181 | } 182 | 183 | void cleanStdin() { 184 | int ch; 185 | while ((ch = fgetc(stdin)) != EOF && ch != '\n') { 186 | /* null body */; 187 | } 188 | } 189 | 190 | void options(){ 191 | printf("Type in the number to select:\n"); 192 | printf("0: back\n"); 193 | printf("1: scale X\n"); 194 | printf("2: scale Y\n"); 195 | int selction; 196 | scanf("%d", &selction); 197 | if(selction == 0){ 198 | return; 199 | }else if(selction == 1){ 200 | printf("Actual x scaling: %f\n", scaleX); 201 | printf("Enter new: "); 202 | scanf("%f", &scaleX); 203 | }else if(selction == 2){ 204 | printf("Actual y scaling: %f\n", scaleY); 205 | printf("Enter new: "); 206 | scanf("%f", &scaleY); 207 | }else{ 208 | printf("%i is not a option.\n", selction); 209 | } 210 | } 211 | 212 | int main(){ 213 | initILDA(); 214 | int runMainLoop = 1; 215 | while(runMainLoop){ 216 | int selction = selectWhatToDo(); 217 | if(selction == 0){ 218 | runMainLoop = 0; //quiting 219 | }else if(selction < 1 || selction > 5){ 220 | printf("%i is not a option.\n", selction); 221 | //runMainLoop = 0; //quiting 222 | }else if(selction == 5){ 223 | options(); 224 | }else if(selction == 4){ 225 | char fileName[256]; 226 | cleanStdin(); 227 | printf("Please enter filename:\n"); 228 | fgets(fileName, sizeof(fileName), stdin); 229 | char* fileNameTmp = strtok(fileName, "\n"); 230 | printf("open file: \"%s\"\n", fileNameTmp); 231 | executeIldaFileByName(fileNameTmp, 1); 232 | }else{ 233 | term_nonblocking(); 234 | printf("Type 's' to stop painting."); 235 | int runPaintLoop = 1; 236 | while(runPaintLoop){ 237 | if(selction == 1){ 238 | cicle(0.5, 0, 0); 239 | }else if(selction == 2){ 240 | rotataitingCicle(); 241 | }else if(selction == 3){ 242 | hoseOfNicolaus(); 243 | } 244 | int ch = getchar(); 245 | if(ch == 's'){ 246 | runPaintLoop = 0; 247 | } 248 | } 249 | term_reset(); 250 | } 251 | } 252 | endILDA(); 253 | return 0; 254 | } 255 | -------------------------------------------------------------------------------- /software/raspberrypi/ildaFile.h: -------------------------------------------------------------------------------- 1 | #ifndef ILDAFILE_H 2 | #define ILDAFILE_H 3 | 4 | #define PARSE_STATE_SEARCHING_HEADER 0 5 | #define PARSE_STATE_PARSING_HEADER 1 6 | 7 | #define ILDA_3D_COORD_HEADER_TYPE 0x00 8 | #define ILDA_2D_COORD_HEADER_TYPE 0x01 9 | #define ILDA_COLOUR_PALETTE_HEADER_TYPE 0x02 10 | #define ILDA_3D_COORD_TRUE_COL_HEADER_TYPE 0x04 11 | #define ILDA_2D_COORD_TRUE_COL_HEADER_TYPE 0x05 12 | static const char HEADER_START[] = {'I','L','D','A',0x00,0x00,0x00}; 13 | 14 | /* 15 | Execute this function to parse a ILDA-formated file and run its commands 16 | */ 17 | void executeIldaFileByName(char fileName[], char loop); 18 | 19 | // ilda standard color palette (r,g,b) 20 | static const unsigned char ILDA_DEFAULT_COLOUR_PALETTE[256][3]={ 21 | { 0, 0, 0 }, // Black/blanked (fixed) 22 | { 255, 255, 255 }, // White (fixed) 23 | { 255, 0, 0 }, // Red (fixed) 24 | { 255, 255, 0 }, // Yellow (fixed) 25 | { 0, 255, 0 }, // Green (fixed) 26 | { 0, 255, 255 }, // Cyan (fixed) 27 | { 0, 0, 255 }, // Blue (fixed) 28 | { 255, 0, 255 }, // Magenta (fixed) 29 | { 255, 128, 128 }, // Light red 30 | { 255, 140, 128 }, 31 | { 255, 151, 128 }, 32 | { 255, 163, 128 }, 33 | { 255, 174, 128 }, 34 | { 255, 186, 128 }, 35 | { 255, 197, 128 }, 36 | { 255, 209, 128 }, 37 | { 255, 220, 128 }, 38 | { 255, 232, 128 }, 39 | { 255, 243, 128 }, 40 | { 255, 255, 128 }, // Light yellow 41 | { 243, 255, 128 }, 42 | { 232, 255, 128 }, 43 | { 220, 255, 128 }, 44 | { 209, 255, 128 }, 45 | { 197, 255, 128 }, 46 | { 186, 255, 128 }, 47 | { 174, 255, 128 }, 48 | { 163, 255, 128 }, 49 | { 151, 255, 128 }, 50 | { 140, 255, 128 }, 51 | { 128, 255, 128 }, // Light green 52 | { 128, 255, 140 }, 53 | { 128, 255, 151 }, 54 | { 128, 255, 163 }, 55 | { 128, 255, 174 }, 56 | { 128, 255, 186 }, 57 | { 128, 255, 197 }, 58 | { 128, 255, 209 }, 59 | { 128, 255, 220 }, 60 | { 128, 255, 232 }, 61 | { 128, 255, 243 }, 62 | { 128, 255, 255 }, // Light cyan 63 | { 128, 243, 255 }, 64 | { 128, 232, 255 }, 65 | { 128, 220, 255 }, 66 | { 128, 209, 255 }, 67 | { 128, 197, 255 }, 68 | { 128, 186, 255 }, 69 | { 128, 174, 255 }, 70 | { 128, 163, 255 }, 71 | { 128, 151, 255 }, 72 | { 128, 140, 255 }, 73 | { 128, 128, 255 }, // Light blue 74 | { 140, 128, 255 }, 75 | { 151, 128, 255 }, 76 | { 163, 128, 255 }, 77 | { 174, 128, 255 }, 78 | { 186, 128, 255 }, 79 | { 197, 128, 255 }, 80 | { 209, 128, 255 }, 81 | { 220, 128, 255 }, 82 | { 232, 128, 255 }, 83 | { 243, 128, 255 }, 84 | { 255, 128, 255 }, // Light magenta 85 | { 255, 128, 243 }, 86 | { 255, 128, 232 }, 87 | { 255, 128, 220 }, 88 | { 255, 128, 209 }, 89 | { 255, 128, 197 }, 90 | { 255, 128, 186 }, 91 | { 255, 128, 174 }, 92 | { 255, 128, 163 }, 93 | { 255, 128, 151 }, 94 | { 255, 128, 140 }, 95 | { 255, 0, 0 }, // Red (cycleable) 96 | { 255, 23, 0 }, 97 | { 255, 46, 0 }, 98 | { 255, 70, 0 }, 99 | { 255, 93, 0 }, 100 | { 255, 116, 0 }, 101 | { 255, 139, 0 }, 102 | { 255, 162, 0 }, 103 | { 255, 185, 0 }, 104 | { 255, 209, 0 }, 105 | { 255, 232, 0 }, 106 | { 255, 255, 0 }, //Yellow (cycleable) 107 | { 232, 255, 0 }, 108 | { 209, 255, 0 }, 109 | { 185, 255, 0 }, 110 | { 162, 255, 0 }, 111 | { 139, 255, 0 }, 112 | { 116, 255, 0 }, 113 | { 93, 255, 0 }, 114 | { 70, 255, 0 }, 115 | { 46, 255, 0 }, 116 | { 23, 255, 0 }, 117 | { 0, 255, 0 }, // Green (cycleable) 118 | { 0, 255, 23 }, 119 | { 0, 255, 46 }, 120 | { 0, 255, 70 }, 121 | { 0, 255, 93 }, 122 | { 0, 255, 116 }, 123 | { 0, 255, 139 }, 124 | { 0, 255, 162 }, 125 | { 0, 255, 185 }, 126 | { 0, 255, 209 }, 127 | { 0, 255, 232 }, 128 | { 0, 255, 255 }, // Cyan (cycleable) 129 | { 0, 232, 255 }, 130 | { 0, 209, 255 }, 131 | { 0, 185, 255 }, 132 | { 0, 162, 255 }, 133 | { 0, 139, 255 }, 134 | { 0, 116, 255 }, 135 | { 0, 93, 255 }, 136 | { 0, 70, 255 }, 137 | { 0, 46, 255 }, 138 | { 0, 23, 255 }, 139 | { 0, 0, 255 }, // Blue (cycleable) 140 | { 23, 0, 255 }, 141 | { 46, 0, 255 }, 142 | { 70, 0, 255 }, 143 | { 93, 0, 255 }, 144 | { 116, 0, 255 }, 145 | { 139, 0, 255 }, 146 | { 162, 0, 255 }, 147 | { 185, 0, 255 }, 148 | { 209, 0, 255 }, 149 | { 232, 0, 255 }, 150 | { 255, 0, 255 }, // Magenta (cycleable) 151 | { 255, 0, 232 }, 152 | { 255, 0, 209 }, 153 | { 255, 0, 185 }, 154 | { 255, 0, 162 }, 155 | { 255, 0, 139 }, 156 | { 255, 0, 116 }, 157 | { 255, 0, 93 }, 158 | { 255, 0, 70 }, 159 | { 255, 0, 46 }, 160 | { 255, 0, 23 }, 161 | { 128, 0, 0 }, // Dark red 162 | { 128, 12, 0 }, 163 | { 128, 23, 0 }, 164 | { 128, 35, 0 }, 165 | { 128, 47, 0 }, 166 | { 128, 58, 0 }, 167 | { 128, 70, 0 }, 168 | { 128, 81, 0 }, 169 | { 128, 93, 0 }, 170 | { 128, 105, 0 }, 171 | { 128, 116, 0 }, 172 | { 128, 128, 0 }, // Dark yellow 173 | { 116, 128, 0 }, 174 | { 105, 128, 0 }, 175 | { 93, 128, 0 }, 176 | { 81, 128, 0 }, 177 | { 70, 128, 0 }, 178 | { 58, 128, 0 }, 179 | { 47, 128, 0 }, 180 | { 35, 128, 0 }, 181 | { 23, 128, 0 }, 182 | { 12, 128, 0 }, 183 | { 0, 128, 0 }, // Dark green 184 | { 0, 128, 12 }, 185 | { 0, 128, 23 }, 186 | { 0, 128, 35 }, 187 | { 0, 128, 47 }, 188 | { 0, 128, 58 }, 189 | { 0, 128, 70 }, 190 | { 0, 128, 81 }, 191 | { 0, 128, 93 }, 192 | { 0, 128, 105 }, 193 | { 0, 128, 116 }, 194 | { 0, 128, 128 }, // Dark cyan 195 | { 0, 116, 128 }, 196 | { 0, 105, 128 }, 197 | { 0, 93, 128 }, 198 | { 0, 81, 128 }, 199 | { 0, 70, 128 }, 200 | { 0, 58, 128 }, 201 | { 0, 47, 128 }, 202 | { 0, 35, 128 }, 203 | { 0, 23, 128 }, 204 | { 0, 12, 128 }, 205 | { 0, 0, 128 }, // Dark blue 206 | { 12, 0, 128 }, 207 | { 23, 0, 128 }, 208 | { 35, 0, 128 }, 209 | { 47, 0, 128 }, 210 | { 58, 0, 128 }, 211 | { 70, 0, 128 }, 212 | { 81, 0, 128 }, 213 | { 93, 0, 128 }, 214 | { 105, 0, 128 }, 215 | { 116, 0, 128 }, 216 | { 128, 0, 128 }, // Dark magenta 217 | { 128, 0, 116 }, 218 | { 128, 0, 105 }, 219 | { 128, 0, 93 }, 220 | { 128, 0, 81 }, 221 | { 128, 0, 70 }, 222 | { 128, 0, 58 }, 223 | { 128, 0, 47 }, 224 | { 128, 0, 35 }, 225 | { 128, 0, 23 }, 226 | { 128, 0, 12 }, 227 | { 255, 192, 192 }, // Very light red 228 | { 255, 64, 64 }, // Light-medium red 229 | { 192, 0, 0 }, // Medium-dark red 230 | { 64, 0, 0 }, // Very dark red 231 | { 255, 255, 192 }, // Very light yellow 232 | { 255, 255, 64 }, // Light-medium yellow 233 | { 192, 192, 0 }, // Medium-dark yellow 234 | { 64, 64, 0 }, // Very dark yellow 235 | { 192, 255, 192 }, // Very light green 236 | { 64, 255, 64 }, // Light-medium green 237 | { 0, 192, 0 }, // Medium-dark green 238 | { 0, 64, 0 }, // Very dark green 239 | { 192, 255, 255 }, // Very light cyan 240 | { 64, 255, 255 }, // Light-medium cyan 241 | { 0, 192, 192 }, // Medium-dark cyan 242 | { 0, 64, 64 }, // Very dark cyan 243 | { 192, 192, 255 }, // Very light blue 244 | { 64, 64, 255 }, // Light-medium blue 245 | { 0, 0, 192 }, // Medium-dark blue 246 | { 0, 0, 64 }, // Very dark blue 247 | { 255, 192, 255 }, // Very light magenta 248 | { 255, 64, 255 }, // Light-medium magenta 249 | { 192, 0, 192 }, // Medium-dark magenta 250 | { 64, 0, 64 }, // Very dark magenta 251 | { 255, 96, 96 }, // Medium skin tone 252 | { 255, 255, 255 }, // White (cycleable) 253 | { 245, 245, 245 }, 254 | { 235, 235, 235 }, 255 | { 224, 224, 224 }, // Very light gray (7/8 intensity) 256 | { 213, 213, 213 }, 257 | { 203, 203, 203 }, 258 | { 192, 192, 192 }, // Light gray (3/4 intensity) 259 | { 181, 181, 181 }, 260 | { 171, 171, 171 }, 261 | { 160, 160, 160 }, // Medium-light gray (5/8 int.) 262 | { 149, 149, 149 }, 263 | { 139, 139, 139 }, 264 | { 128, 128, 128 }, // Medium gray (1/2 intensity) 265 | { 117, 117, 117 }, 266 | { 107, 107, 107 }, 267 | { 96, 96, 96 }, // Medium-dark gray (3/8 int.) 268 | { 85, 85, 85 }, 269 | { 75, 75, 75 }, 270 | { 64, 64, 64 }, // Dark gray (1/4 intensity) 271 | { 53, 53, 53 }, 272 | { 43, 43, 43 }, 273 | { 32, 32, 32 }, // Very dark gray (1/8 intensity) 274 | { 21, 21, 21 }, 275 | { 11, 11, 11 }, 276 | { 0, 0, 0 } // Black 277 | }; 278 | 279 | #endif /*ILDAFILE_H*/ 280 | -------------------------------------------------------------------------------- /hardware/kicad/ildagenerator-cache.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.3 2 | #encoding utf-8 3 | # 4 | # +15V 5 | # 6 | DEF +15V #PWR 0 0 Y Y 1 F P 7 | F0 "#PWR" 0 -150 50 H I C CNN 8 | F1 "+15V" 0 140 50 H V C CNN 9 | F2 "" 0 0 60 H V C CNN 10 | F3 "" 0 0 60 H V C CNN 11 | DRAW 12 | P 2 0 1 0 -30 50 0 100 N 13 | P 2 0 1 0 0 0 0 100 N 14 | P 2 0 1 0 0 100 30 50 N 15 | X +15V 1 0 0 0 U 50 50 1 1 W N 16 | ENDDRAW 17 | ENDDEF 18 | # 19 | # +5V 20 | # 21 | DEF +5V #PWR 0 0 Y Y 1 F P 22 | F0 "#PWR" 0 -150 50 H I C CNN 23 | F1 "+5V" 0 140 50 H V C CNN 24 | F2 "" 0 0 60 H V C CNN 25 | F3 "" 0 0 60 H V C CNN 26 | DRAW 27 | P 2 0 1 0 -30 50 0 100 N 28 | P 2 0 1 0 0 0 0 100 N 29 | P 2 0 1 0 0 100 30 50 N 30 | X +5V 1 0 0 0 U 50 50 1 1 W N 31 | ENDDRAW 32 | ENDDEF 33 | # 34 | # -15V 35 | # 36 | DEF -15V #PWR 0 0 Y Y 1 F N 37 | F0 "#PWR" 0 100 50 H I C CNN 38 | F1 "-15V" 0 150 50 H V C CNN 39 | F2 "" 0 0 60 H V C CNN 40 | F3 "" 0 0 60 H V C CNN 41 | DRAW 42 | X -15V 1 0 0 0 U 20 20 0 0 W N 43 | P 6 0 1 0 0 0 0 50 30 50 0 100 -30 50 0 50 F 44 | ENDDRAW 45 | ENDDEF 46 | # 47 | # C-RESCUE-ildagenerator 48 | # 49 | DEF C-RESCUE-ildagenerator C 0 10 N Y 1 F N 50 | F0 "C" 50 100 50 H V L CNN 51 | F1 "C-RESCUE-ildagenerator" 50 -100 50 H V L CNN 52 | F2 "" 0 0 60 H V C CNN 53 | F3 "" 0 0 60 H V C CNN 54 | $FPLIST 55 | SM* 56 | C? 57 | C1-1 58 | $ENDFPLIST 59 | DRAW 60 | P 2 0 1 10 -100 -30 100 -30 N 61 | P 2 0 1 10 -100 30 100 30 N 62 | X ~ 1 0 200 170 D 40 40 1 1 P 63 | X ~ 2 0 -200 170 U 40 40 1 1 P 64 | ENDDRAW 65 | ENDDEF 66 | # 67 | # CONN_01X02 68 | # 69 | DEF CONN_01X02 P 0 40 Y N 1 F N 70 | F0 "P" 0 150 50 H V C CNN 71 | F1 "CONN_01X02" 100 0 50 V V C CNN 72 | F2 "" 0 0 60 H V C CNN 73 | F3 "" 0 0 60 H V C CNN 74 | $FPLIST 75 | Pin_Header_Straight_1X02 76 | Pin_Header_Angled_1X02 77 | Socket_Strip_Straight_1X02 78 | Socket_Strip_Angled_1X02 79 | $ENDFPLIST 80 | DRAW 81 | S -50 -45 10 -55 0 1 0 N 82 | S -50 55 10 45 0 1 0 N 83 | S -50 100 50 -100 0 1 0 N 84 | X P1 1 -200 50 150 R 50 50 1 1 P 85 | X P2 2 -200 -50 150 R 50 50 1 1 P 86 | ENDDRAW 87 | ENDDEF 88 | # 89 | # CONN_01X06 90 | # 91 | DEF CONN_01X06 P 0 40 Y N 1 F N 92 | F0 "P" 0 350 50 H V C CNN 93 | F1 "CONN_01X06" 100 0 50 V V C CNN 94 | F2 "" 0 0 60 H V C CNN 95 | F3 "" 0 0 60 H V C CNN 96 | $FPLIST 97 | Pin_Header_Straight_1X06 98 | Pin_Header_Angled_1X06 99 | Socket_Strip_Straight_1X06 100 | Socket_Strip_Angled_1X06 101 | $ENDFPLIST 102 | DRAW 103 | S -50 -245 10 -255 0 1 0 N 104 | S -50 -145 10 -155 0 1 0 N 105 | S -50 -45 10 -55 0 1 0 N 106 | S -50 55 10 45 0 1 0 N 107 | S -50 155 10 145 0 1 0 N 108 | S -50 255 10 245 0 1 0 N 109 | S -50 300 50 -300 0 1 0 N 110 | X P1 1 -200 250 150 R 50 50 1 1 P 111 | X P2 2 -200 150 150 R 50 50 1 1 P 112 | X P3 3 -200 50 150 R 50 50 1 1 P 113 | X P4 4 -200 -50 150 R 50 50 1 1 P 114 | X P5 5 -200 -150 150 R 50 50 1 1 P 115 | X P6 6 -200 -250 150 R 50 50 1 1 P 116 | ENDDRAW 117 | ENDDEF 118 | # 119 | # CONN_2 120 | # 121 | DEF CONN_2 P 0 40 Y N 1 F N 122 | F0 "P" -50 0 40 V V C CNN 123 | F1 "CONN_2" 50 0 40 V V C CNN 124 | F2 "" 0 0 60 H V C CNN 125 | F3 "" 0 0 60 H V C CNN 126 | DRAW 127 | S -100 150 100 -150 0 1 0 N 128 | X P1 1 -350 100 250 R 60 60 1 1 P I 129 | X PM 2 -350 -100 250 R 60 60 1 1 P I 130 | ENDDRAW 131 | ENDDEF 132 | # 133 | # CP 134 | # 135 | DEF CP C 0 10 N Y 1 F N 136 | F0 "C" 25 100 50 H V L CNN 137 | F1 "CP" 25 -100 50 H V L CNN 138 | F2 "" 38 -150 30 H V C CNN 139 | F3 "" 0 0 60 H V C CNN 140 | $FPLIST 141 | CP* 142 | Elko* 143 | TantalC* 144 | C*elec 145 | c_elec* 146 | SMD*_Pol 147 | $ENDFPLIST 148 | DRAW 149 | S -90 20 -90 40 0 1 0 N 150 | S -90 20 90 20 0 1 0 N 151 | S 90 -20 -90 -40 0 1 0 F 152 | S 90 40 -90 40 0 1 0 N 153 | S 90 40 90 20 0 1 0 N 154 | P 2 0 1 0 -70 90 -30 90 N 155 | P 2 0 1 0 -50 110 -50 70 N 156 | X ~ 1 0 150 110 D 40 40 1 1 P 157 | X ~ 2 0 -150 110 U 40 40 1 1 P 158 | ENDDRAW 159 | ENDDEF 160 | # 161 | # GND-RESCUE-ildagenerator 162 | # 163 | DEF ~GND-RESCUE-ildagenerator #PWR 0 0 Y Y 1 F P 164 | F0 "#PWR" 0 0 30 H I C CNN 165 | F1 "GND-RESCUE-ildagenerator" 0 -70 30 H I C CNN 166 | F2 "" 0 0 60 H V C CNN 167 | F3 "" 0 0 60 H V C CNN 168 | DRAW 169 | P 4 0 1 0 -50 0 0 -50 50 0 -50 0 N 170 | X GND 1 0 0 0 U 30 30 1 1 W N 171 | ENDDRAW 172 | ENDDEF 173 | # 174 | # LT1356CN 175 | # 176 | DEF LT1356CN U 0 40 Y Y 4 F N 177 | F0 "U" 150 200 60 H V C CNN 178 | F1 "LT1356CN" 339 -200 60 H V C CNN 179 | F2 "" 0 0 60 H V C CNN 180 | F3 "" 0 0 60 H V C CNN 181 | DRAW 182 | P 4 0 1 0 -200 300 400 0 -200 -300 -200 300 f 183 | X out 1 700 0 300 L 50 50 1 1 O 184 | X - 2 -500 -200 300 R 50 50 1 1 I 185 | X + 3 -500 200 300 R 50 50 1 1 I 186 | X V+ 4 0 500 300 D 50 50 1 1 W 187 | X V- 11 0 -500 300 U 50 50 1 1 W 188 | X + 5 -500 200 300 R 50 50 2 1 I 189 | X - 6 -500 -200 300 R 50 50 2 1 I 190 | X out 7 700 0 300 L 50 50 2 1 O 191 | X out 8 700 0 300 L 50 50 3 1 O 192 | X - 9 -500 -200 300 R 50 50 3 1 I 193 | X + 10 -500 200 300 R 50 50 3 1 I 194 | X + 12 -500 200 300 R 50 50 4 1 I 195 | X - 13 -500 -200 300 R 50 50 4 1 I 196 | X out 14 700 0 300 L 50 50 4 1 O 197 | ENDDRAW 198 | ENDDEF 199 | # 200 | # LTC2656BIFE-L16 201 | # 202 | DEF LTC2656BIFE-L16 U 0 40 Y Y 1 F N 203 | F0 "U" 50 900 60 H I C CNN 204 | F1 "LTC2656BIFE-L16" 0 -1100 60 H V C CNN 205 | F2 "" 0 0 60 H V C CNN 206 | F3 "" 0 0 60 H V C CNN 207 | DRAW 208 | X REF_LO 1 -800 900 295 R 59 59 0 0 I 209 | X Vout_A 2 -800 700 295 R 59 59 0 0 O 210 | X Vout_B 3 -800 500 295 R 59 59 0 0 O 211 | X REF_COMP 4 -800 300 295 R 59 59 0 0 I 212 | X Vout_C 5 -800 100 295 R 59 59 0 0 O 213 | X Vout_D 6 -800 -100 295 R 59 59 0 0 O 214 | X REF_IN/OUT 7 -800 -300 295 R 59 59 0 0 B 215 | X ~LDAC 8 -800 -500 295 R 59 59 0 0 I 216 | X ~CS~/LD 9 -800 -700 295 R 59 59 0 0 I 217 | X SCK 10 -800 -900 295 R 59 59 0 0 I C 218 | X GND 20 800 900 295 L 59 59 0 0 I 219 | X SDI 11 800 -900 295 L 59 59 0 0 I 220 | X SDO 12 800 -700 295 L 59 59 0 0 I 221 | X ~CLR 13 800 -500 295 L 59 59 0 0 I 222 | X PORSEL 14 800 -300 295 L 59 59 0 0 I 223 | X Vout_E 15 800 -100 295 L 59 59 0 0 O 224 | X Vout_F 16 800 100 295 L 59 59 0 0 O 225 | X Vout_G 17 800 300 295 L 59 59 0 0 O 226 | X Vout_H 18 800 500 295 L 59 59 0 0 O 227 | X Vcc 19 800 700 295 L 59 59 0 0 I 228 | S -500 1000 500 -1000 0 1 0 N 229 | X GND 21 0 1300 300 D 50 50 1 1 I 230 | ENDDRAW 231 | ENDDEF 232 | # 233 | # NMA0509SC 234 | # 235 | DEF NMA0509SC U 0 40 Y Y 1 F N 236 | F0 "U" 0 -300 60 H V C CNN 237 | F1 "NMA0509SC" 0 300 60 H V C CNN 238 | F2 "" 0 0 60 H V C CNN 239 | F3 "" 0 0 60 H V C CNN 240 | DRAW 241 | S -300 250 300 -250 0 1 0 N 242 | X +Vin 1 -500 150 200 R 50 50 1 1 O 243 | X -Vin 2 -500 -150 200 R 50 50 1 1 O 244 | X -Vout 4 500 -150 200 L 50 50 1 1 O 245 | X 0V 5 500 0 200 L 50 50 1 1 O 246 | X +Vout 6 500 150 200 L 50 50 1 1 O 247 | ENDDRAW 248 | ENDDEF 249 | # 250 | # PWR_FLAG 251 | # 252 | DEF PWR_FLAG #FLG 0 0 N N 1 F P 253 | F0 "#FLG" 0 95 50 H I C CNN 254 | F1 "PWR_FLAG" 0 180 50 H V C CNN 255 | F2 "" 0 0 60 H V C CNN 256 | F3 "" 0 0 60 H V C CNN 257 | DRAW 258 | X pwr 1 0 0 0 U 20 20 0 0 w 259 | P 6 0 1 0 0 0 0 50 -75 100 0 150 75 100 0 50 N 260 | ENDDRAW 261 | ENDDEF 262 | # 263 | # R-RESCUE-ildagenerator 264 | # 265 | DEF R-RESCUE-ildagenerator R 0 0 N Y 1 F N 266 | F0 "R" 80 0 50 V V C CNN 267 | F1 "R-RESCUE-ildagenerator" 0 0 50 V V C CNN 268 | F2 "" 0 0 60 H V C CNN 269 | F3 "" 0 0 60 H V C CNN 270 | $FPLIST 271 | R? 272 | SM0603 273 | SM0805 274 | R?-* 275 | $ENDFPLIST 276 | DRAW 277 | S -40 150 40 -150 0 1 12 N 278 | X ~ 1 0 250 100 D 60 60 1 1 P 279 | X ~ 2 0 -250 100 U 60 60 1 1 P 280 | ENDDRAW 281 | ENDDEF 282 | # 283 | # VR 284 | # 285 | DEF VR VR 0 0 N Y 1 F N 286 | F0 "VR" 60 -46 50 V V C TNN 287 | F1 "VR" 0 0 50 V V C CNN 288 | F2 "" 0 0 60 H V C CNN 289 | F3 "" 0 0 60 H V C CNN 290 | DRAW 291 | S -40 150 40 -150 0 1 0 N 292 | P 5 0 1 0 -60 -100 -60 -60 60 60 60 100 60 100 N 293 | X ~ 1 0 250 100 D 60 60 1 1 P 294 | X ~ 2 0 -250 100 U 60 60 1 1 P 295 | ENDDRAW 296 | ENDDEF 297 | # 298 | #End Library 299 | -------------------------------------------------------------------------------- /software/raspberrypi/ildaFile.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include "ildaNode.h" 5 | #include "ildaFile.h" 6 | 7 | struct colour { 8 | char red; 9 | char green; 10 | char blue; 11 | }; 12 | 13 | struct statusCode { 14 | char blanking; 15 | char lastEntry; 16 | }; 17 | 18 | struct coordinateData { 19 | int x; 20 | int y; 21 | int z; 22 | struct statusCode status; 23 | //color from color table 24 | char r; 25 | char g; 26 | char b; 27 | }; 28 | 29 | // contains the actual colour table 30 | struct colour *colourTable; 31 | 32 | int readTwoByteInt(FILE *fp){ 33 | char ch = fgetc(fp); 34 | int i = *(signed char *)(&ch); 35 | i *= 1 << CHAR_BIT; 36 | ch = fgetc(fp); 37 | i |= ch; 38 | return i; 39 | } 40 | 41 | /* 42 | MSB 0 43 | Bit 0 is the "last point" bit. This bit is set to 0 for all points except the last point. A 1 indicates end of image data. This was done for compatibility with certain existing systems; note that a zero in bytes 25-26 (Total Points) is the official end-of-file indication. 44 | Bit 1 is the blanking bit. If this is a 0, then the laser is on (draw). If this is a 1, then the laser is off (blank). Note that all systems must write this bit, even if a particular system uses only bits 0-7 for blanking/colour information. 45 | Bits 2-7 are unassigned and should be set to 0 (reserved). 46 | */ 47 | struct statusCode readStatusCode(FILE *fp){ 48 | char ch = fgetc(fp); 49 | struct statusCode status; 50 | status.lastEntry = (((ch & 0x80) >> 7) == 1); 51 | status.blanking = (((ch & 0x40) >> 6) == 1); 52 | } 53 | 54 | int distPerS = 100000; 55 | float ILDA_AxisMax = 32768.0; 56 | float ILDA_Colour_Max = 255.0; 57 | void executeCoordCommand(struct coordinateData *data){ 58 | float x = (*data).x / ILDA_AxisMax; 59 | float y = (*data).y / ILDA_AxisMax; 60 | if((*data).status.blanking = 0){ 61 | float red = (*data).r / ILDA_Colour_Max; 62 | float green = (*data).g / ILDA_Colour_Max; 63 | float blue = (*data).b / ILDA_Colour_Max; 64 | setColour(red, green, blue); 65 | }else{ 66 | setColour(0.0, 0.0, 0.0); 67 | } 68 | moveTo(x, y); 69 | //moveToSpeedLimit(x, y, distPerS); 70 | } 71 | 72 | void readRGBByColourIndex(FILE *fp, struct coordinateData *data){ 73 | char colour = fgetc(fp); 74 | if(colourTable == NULL ){ 75 | // no colour Tabel use default 76 | (*data).r = ILDA_DEFAULT_COLOUR_PALETTE[colour][0]; 77 | (*data).g = ILDA_DEFAULT_COLOUR_PALETTE[colour][1]; 78 | (*data).b = ILDA_DEFAULT_COLOUR_PALETTE[colour][2]; 79 | }else{ 80 | (*data).r = colourTable[colour].red; 81 | (*data).g = colourTable[colour].green; 82 | (*data).b = colourTable[colour].blue; 83 | } 84 | } 85 | 86 | /* 87 | 0-1 X coordinate A 16-bit binary twos complement (signed) number. Extreme left is -32768; extreme right is +32767. (All directions stated using front projection.) 88 | 89 | 2-3 Y coordinate A 16-bit binary twos complement (signed) number. Extreme bottom is -32768; extreme top is +32767. 90 | 91 | 4-5 Z coordinate A 16-bit binary twos complement (signed) number. Extreme rear (away from viewer; behind screen) is -32768; extreme front (towards viewer; in front of screen) is +32767. 92 | 93 | 6 Status code (MSB 0) 94 | Bit 0 is the "last point" bit. This bit is set to 0 for all points except the last point. A 1 indicates end of image data. This was done for compatibility with certain existing systems; note that a zero in bytes 25-26 (Total Points) is the official end-of-file indication. 95 | Bit 1 is the blanking bit. If this is a 0, then the laser is on (draw). If this is a 1, then the laser is off (blank). Note that all systems must write this bit, even if a particular system uses only bits 0-7 for blanking/colour information. 96 | Bits 2-7 are unassigned and should be set to 0 (reserved). 97 | 98 | 7 ColourIndex 99 | 0-255 indicate the point's colour number. This value is used as an index into a colour lookup table containing red, green and blue values. See ILDA Colour Lookup Table Header section for more information. 100 | */ 101 | 102 | void parse3DCoordData(FILE *fp, int numberEntries){ 103 | 104 | for(int i = 0; i 2 | 3 | 4 | /Users/janerik/Dropbox/Laser/ILDA/kicad/ildagenerator.sch 5 | Freitag, 07. August 2015 16:10:24 6 | Eeschema (2015-07-29 BZR 6016)-product 7 | 8 | 9 | ILDA Output 10 | 11 | 0.1 12 | 9 aug 2014 13 | ildagenerator.sch 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | OpAmps 23 | 24 | 0.1 25 | 9 aug 2014 26 | OpAmps.sch 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | CONN_4 37 | 38 | 39 | 53E639B6 40 | 41 | 42 | CONN_6 43 | 44 | 45 | 53E5FC4C 46 | 47 | 48 | LTC2656BIFE-L16 49 | 50 | 51 | 53E20CA1 52 | 53 | 54 | 0.1µF 55 | Capacitors_SMD:C_0805_HandSoldering 56 | 57 | 58 | 53E22370 59 | 60 | 61 | 0.1µF 62 | Capacitors_SMD:C_0805_HandSoldering 63 | 64 | 65 | 53E22746 66 | 67 | 68 | LT1356CN 69 | 70 | 71 | 53E1F104 72 | 73 | 74 | 10kΩ 75 | Resistors_SMD:R_0603_HandSoldering 76 | 77 | 78 | 53E1F116 79 | 80 | 81 | 10kΩ 82 | Resistors_SMD:R_0603_HandSoldering 83 | 84 | 85 | 53E1F11C 86 | 87 | 88 | 10kΩ 89 | Resistors_SMD:R_0603_HandSoldering 90 | 91 | 92 | 53E1F122 93 | 94 | 95 | 10kΩ 96 | Resistors_SMD:R_0603_HandSoldering 97 | 98 | 99 | 53E1F128 100 | 101 | 102 | Out X 103 | 104 | 105 | 53E1F188 106 | 107 | 108 | 10kΩ 109 | Resistors_SMD:R_0603_HandSoldering 110 | 111 | 112 | 53E1F191 113 | 114 | 115 | 10kΩ 116 | Resistors_SMD:R_0603_HandSoldering 117 | 118 | 119 | 53E1F197 120 | 121 | 122 | Out Y 123 | 124 | 125 | 53E1F1C3 126 | 127 | 128 | 10kΩ 129 | Resistors_SMD:R_0603_HandSoldering 130 | 131 | 132 | 53E1F1CC 133 | 134 | 135 | 10kΩ 136 | Resistors_SMD:R_0603_HandSoldering 137 | 138 | 139 | 53E1F1D2 140 | 141 | 142 | LT1356CN 143 | 144 | 145 | 53E1F322 146 | 147 | 148 | 10kΩ 149 | 150 | 151 | 53E1F33C 152 | 153 | 154 | 10kΩ 155 | 156 | 157 | 53E1F342 158 | 159 | 160 | 10kΩ 161 | 162 | 163 | 53E1F348 164 | 165 | 166 | 10kΩ 167 | 168 | 169 | 53E1F354 170 | 171 | 172 | Out Red 173 | 174 | 175 | 53E1F35A 176 | 177 | 178 | 10kΩ 179 | 180 | 181 | 53E1F382 182 | 183 | 184 | 10kΩ 185 | 186 | 187 | 53E1F388 188 | 189 | 190 | 10kΩ 191 | Resistors_SMD:R_0603_HandSoldering 192 | 193 | 194 | 53E1F38E 195 | 196 | 197 | 10kΩ 198 | Resistors_SMD:R_0603_HandSoldering 199 | 200 | 201 | 53E1F394 202 | 203 | 204 | Out Green 205 | 206 | 207 | 53E1F39A 208 | 209 | 210 | LT1356CN 211 | 212 | 213 | 53E1F3C8 214 | 215 | 216 | 10kΩ 217 | 218 | 219 | 53E1F3E2 220 | 221 | 222 | 10kΩ 223 | 224 | 225 | 53E1F3E8 226 | 227 | 228 | 10kΩ 229 | 230 | 231 | 53E1F3EE 232 | 233 | 234 | 10kΩ 235 | 236 | 237 | 53E1F3FA 238 | 239 | 240 | Out Blue 241 | 242 | 243 | 53E1F400 244 | 245 | 246 | 10kΩ 247 | 248 | 249 | 53E1F428 250 | 251 | 252 | 10kΩ 253 | 254 | 255 | 53E1F42E 256 | 257 | 258 | 10kΩ 259 | 260 | 261 | 53E1F434 262 | 263 | 264 | 10kΩ 265 | 266 | 267 | 53E1F43A 268 | 269 | 270 | Out C1 271 | 272 | 273 | 53E1F440 274 | 275 | 276 | 10kΩ 277 | Resistors_SMD:R_0603_HandSoldering 278 | 279 | 280 | 55BF5E5E 281 | 282 | 283 | 10kΩ 284 | Resistors_SMD:R_0603_HandSoldering 285 | 286 | 287 | 55BF6026 288 | 289 | 290 | 10kΩ 291 | Resistors_SMD:R_0603_HandSoldering 292 | 293 | 294 | 55BF6184 295 | 296 | 297 | 10kΩ 298 | Resistors_SMD:R_0603_HandSoldering 299 | 300 | 301 | 55BF627A 302 | 303 | 304 | 10kΩ 305 | Resistors_SMD:R_0603_HandSoldering 306 | 307 | 308 | 55BF8856 309 | 310 | 311 | 10kΩ 312 | Resistors_SMD:R_0603_HandSoldering 313 | 314 | 315 | 55BF8914 316 | 317 | 318 | 10kΩ 319 | Resistors_SMD:R_0603_HandSoldering 320 | 321 | 322 | 55BF89C9 323 | 324 | 325 | 10kΩ 326 | Resistors_SMD:R_0603_HandSoldering 327 | 328 | 329 | 55BF8A80 330 | 331 | 332 | 10kΩ 333 | Resistors_SMD:R_0603_HandSoldering 334 | 335 | 336 | 55BFA3B2 337 | 338 | 339 | 10kΩ 340 | Resistors_SMD:R_0603_HandSoldering 341 | 342 | 343 | 55BFAEB0 344 | 345 | 346 | 10kΩ 347 | Resistors_SMD:R_0603_HandSoldering 348 | 349 | 350 | 55BFAF78 351 | 352 | 353 | 10kΩ 354 | Resistors_SMD:R_0603_HandSoldering 355 | 356 | 357 | 55BFB040 358 | 359 | 360 | 10kΩ 361 | Resistors_SMD:R_0603_HandSoldering 362 | 363 | 364 | 55BFDDB7 365 | 366 | 367 | 10kΩ 368 | Resistors_SMD:R_0603_HandSoldering 369 | 370 | 371 | 55BFE204 372 | 373 | 374 | 10kΩ 375 | Resistors_SMD:R_0603_HandSoldering 376 | 377 | 378 | 55BFE2CE 379 | 380 | 381 | 10kΩ 382 | Resistors_SMD:R_0603_HandSoldering 383 | 384 | 385 | 55BFE468 386 | 387 | 388 | 10kΩ 389 | Resistors_SMD:R_0603_HandSoldering 390 | 391 | 392 | 55BFBA7C 393 | 394 | 395 | 10kΩ 396 | Resistors_SMD:R_0603_HandSoldering 397 | 398 | 399 | 55BFCF27 400 | 401 | 402 | 10kΩ 403 | Resistors_SMD:R_0603_HandSoldering 404 | 405 | 406 | 55BFCFF4 407 | 408 | 409 | 10kΩ 410 | Resistors_SMD:R_0603_HandSoldering 411 | 412 | 413 | 55BFD103 414 | 415 | 416 | 10kΩ 417 | Resistors_SMD:R_0603_HandSoldering 418 | 419 | 420 | 55BFE374 421 | 422 | 423 | 10kΩ 424 | Resistors_SMD:R_0603_HandSoldering 425 | 426 | 427 | 55BFE65A 428 | 429 | 430 | 10kΩ 431 | Resistors_SMD:R_0603_HandSoldering 432 | 433 | 434 | 55BFE72F 435 | 436 | 437 | 10kΩ 438 | Resistors_SMD:R_0603_HandSoldering 439 | 440 | 441 | 55BFE808 442 | 443 | 444 | 10kΩ 445 | Resistors_SMD:R_0603_HandSoldering 446 | 447 | 448 | 55BFFA83 449 | 450 | 451 | 10kΩ 452 | Resistors_SMD:R_0603_HandSoldering 453 | 454 | 455 | 55BFFB6C 456 | 457 | 458 | 10kΩ 459 | Resistors_SMD:R_0603_HandSoldering 460 | 461 | 462 | 55BFFC4C 463 | 464 | 465 | 10kΩ 466 | Resistors_SMD:R_0603_HandSoldering 467 | 468 | 469 | 55BFFD31 470 | 471 | 472 | 10kΩ 473 | Resistors_SMD:R_0603_HandSoldering 474 | 475 | 476 | 55C00F88 477 | 478 | 479 | 10kΩ 480 | Resistors_SMD:R_0603_HandSoldering 481 | 482 | 483 | 55C01079 484 | 485 | 486 | 10kΩ 487 | Resistors_SMD:R_0603_HandSoldering 488 | 489 | 490 | 55C01161 491 | 492 | 493 | 10kΩ 494 | Resistors_SMD:R_0603_HandSoldering 495 | 496 | 497 | 55C0124F 498 | 499 | 500 | CP 501 | Capacitors_Tantalum_SMD:TantalC_SizeB_EIA-3528_HandSoldering 502 | 503 | 504 | 55C0A21A 505 | 506 | 507 | CP 508 | Capacitors_Tantalum_SMD:TantalC_SizeB_EIA-3528_HandSoldering 509 | 510 | 511 | 55C0A799 512 | 513 | 514 | CP 515 | Capacitors_Tantalum_SMD:TantalC_SizeB_EIA-3528_HandSoldering 516 | 517 | 518 | 55C0CBF8 519 | 520 | 521 | CP 522 | Capacitors_Tantalum_SMD:TantalC_SizeB_EIA-3528_HandSoldering 523 | 524 | 525 | 55C0CD02 526 | 527 | 528 | CP 529 | Capacitors_Tantalum_SMD:TantalC_SizeB_EIA-3528_HandSoldering 530 | 531 | 532 | 55C0D616 533 | 534 | 535 | CP 536 | Capacitors_Tantalum_SMD:TantalC_SizeB_EIA-3528_HandSoldering 537 | 538 | 539 | 55C0D720 540 | 541 | 542 | 543 | 544 | 545 | R? 546 | SM0603 547 | SM0805 548 | R?-* 549 | 550 | 551 | R 552 | R-RESCUE-ildagenerator 553 | 554 | 555 | 556 | 557 | 558 | 559 | 560 | 561 | SM* 562 | C? 563 | C1-1 564 | 565 | 566 | C 567 | C-RESCUE-ildagenerator 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | Polarised capacitor 576 | 577 | CP* 578 | Elko* 579 | TantalC* 580 | C*elec 581 | c_elec* 582 | SMD*_Pol 583 | 584 | 585 | C 586 | CP 587 | 588 | 589 | 590 | 591 | 592 | 593 | 594 | 595 | P 596 | CONN_2 597 | 598 | 599 | 600 | 601 | 602 | 603 | 604 | 605 | P 606 | CONN_4 607 | 608 | 609 | 610 | 611 | 612 | 613 | 614 | 615 | 616 | 617 | P 618 | CONN_6 619 | 620 | 621 | 622 | 623 | 624 | 625 | 626 | 627 | 628 | 629 | 630 | 631 | U 632 | LT1356CN 633 | 634 | 635 | 636 | 637 | 638 | 639 | 640 | 641 | 642 | 643 | 644 | 645 | 646 | 647 | 648 | 649 | 650 | 651 | 652 | 653 | U 654 | LTC2656BIFE-L16 655 | 656 | 657 | 658 | 659 | 660 | 661 | 662 | 663 | 664 | 665 | 666 | 667 | 668 | 669 | 670 | 671 | 672 | 673 | 674 | 675 | 676 | 677 | 678 | 679 | 680 | 681 | 682 | 683 | /Library/Application Support/kicad/library/device.lib 684 | 685 | 686 | /Users/janerik/Dropbox/Laser/ILDA/kicad/ildagenerator-rescue.lib 687 | 688 | 689 | /Users/janerik/Dropbox/Laser/ILDA/kicad/ildagenerator-cache.lib 690 | 691 | 692 | 693 | 694 | 695 | 696 | 697 | 698 | 699 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 723 | 724 | 725 | 726 | 727 | 728 | 729 | 730 | 731 | 732 | 733 | 734 | 735 | 736 | 737 | 738 | 739 | 740 | 741 | 742 | 743 | 744 | 745 | 746 | 747 | 748 | 749 | 750 | 751 | 752 | 753 | 754 | 755 | 756 | 757 | 758 | 759 | 760 | 761 | 762 | 763 | 764 | 765 | 766 | 767 | 768 | 769 | 770 | 771 | 772 | 773 | 774 | 775 | 776 | 777 | 778 | 779 | 780 | 781 | 782 | 783 | 784 | 785 | 786 | 787 | 788 | 789 | 790 | 791 | 792 | 793 | 794 | 795 | 796 | 797 | 798 | 799 | 800 | 801 | 802 | 803 | 804 | 805 | 806 | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 826 | 827 | 828 | 829 | 830 | 831 | 832 | 833 | 834 | 835 | 836 | 837 | 838 | 839 | 840 | 841 | 842 | 843 | 844 | 845 | 846 | 847 | 848 | 849 | 850 | 851 | 852 | 853 | 854 | 855 | 856 | 857 | 858 | 859 | 860 | 861 | 862 | 863 | 864 | 865 | 866 | 867 | 868 | 869 | 870 | 871 | 872 | 873 | 874 | 875 | 876 | 877 | 878 | 879 | 880 | 881 | 882 | 883 | 884 | 885 | 886 | 887 | 888 | 889 | 890 | 891 | 892 | 893 | 894 | 895 | 896 | 897 | 898 | 899 | 900 | 901 | 902 | 903 | 904 | 905 | 906 | 907 | 908 | 909 | 910 | 911 | 912 | 913 | 914 | 915 | 916 | 917 | 918 | 919 | 920 | 921 | 922 | 923 | 924 | 925 | 926 | 927 | 928 | 929 | 930 | 931 | 932 | 933 | 934 | 935 | 936 | 937 | 938 | 939 | 940 | 941 | 942 | 943 | 944 | 945 | 946 | 947 | 948 | 949 | 950 | 951 | 952 | 953 | 954 | 955 | 956 | 957 | 958 | 959 | 960 | 961 | 962 | 963 | 964 | 965 | 966 | 967 | 968 | 969 | 970 | 971 | 972 | 973 | 974 | 975 | 976 | 977 | 978 | 979 | 980 | 981 | 982 | 983 | 984 | 985 | 986 | 987 | 988 | 989 | 990 | 991 | 992 | 993 | 994 | 995 | 996 | 997 | 998 | 999 | 1000 | 1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 | 1009 | 1010 | 1011 | 1012 | 1013 | 1014 | 1015 | 1016 | 1017 | 1018 | 1019 | 1020 | 1021 | 1022 | 1023 | 1024 | 1025 | 1026 | 1027 | 1028 | 1029 | 1030 | 1031 | 1032 | 1033 | 1034 | 1035 | 1036 | 1037 | 1038 | 1039 | 1040 | 1041 | 1042 | 1043 | 1044 | 1045 | 1046 | 1047 | 1048 | 1049 | 1050 | -------------------------------------------------------------------------------- /hardware/kicad/ildagenerator.net: -------------------------------------------------------------------------------- 1 | (export (version D) 2 | (design 3 | (source /home/janerik/git/ILDA/hardware/kicad/ildagenerator.sch) 4 | (date "Mo 31 Aug 2015 19:00:57 CEST") 5 | (tool "Eeschema (2015-07-31 BZR 6030)-product") 6 | (sheet (number 1) (name /) (tstamps /) 7 | (title_block 8 | (title "ILDA Output") 9 | (company) 10 | (rev 0.2) 11 | (date "9 aug 2014") 12 | (source ildagenerator.sch) 13 | (comment (number 1) (value "")) 14 | (comment (number 2) (value "")) 15 | (comment (number 3) (value "")) 16 | (comment (number 4) (value "")))) 17 | (sheet (number 2) (name /Sheet53E1F024/) (tstamps /53E1F025/) 18 | (title_block 19 | (title OpAmps) 20 | (company) 21 | (rev 0.2) 22 | (date "9 aug 2014") 23 | (source OpAmps.sch) 24 | (comment (number 1) (value "")) 25 | (comment (number 2) (value "")) 26 | (comment (number 3) (value "")) 27 | (comment (number 4) (value ""))))) 28 | (components 29 | (comp (ref P8) 30 | (value CONN_4) 31 | (footprint Pin_Headers:Pin_Header_Straight_1x02) 32 | (libsource (lib conn) (part CONN_01X02)) 33 | (sheetpath (names /) (tstamps /)) 34 | (tstamp 53E639B6)) 35 | (comp (ref U1) 36 | (value LTC2656BIFE-L16) 37 | (libsource (lib ildagenerator-cache) (part LTC2656BIFE-L16)) 38 | (sheetpath (names /) (tstamps /)) 39 | (tstamp 53E20CA1)) 40 | (comp (ref C1) 41 | (value 0.1µF) 42 | (footprint Capacitors_SMD:C_0805_HandSoldering) 43 | (libsource (lib ildagenerator-rescue) (part C-RESCUE-ildagenerator)) 44 | (sheetpath (names /) (tstamps /)) 45 | (tstamp 53E22370)) 46 | (comp (ref C2) 47 | (value 0.1µF) 48 | (footprint Capacitors_SMD:C_0805_HandSoldering) 49 | (libsource (lib ildagenerator-rescue) (part C-RESCUE-ildagenerator)) 50 | (sheetpath (names /) (tstamps /)) 51 | (tstamp 53E22746)) 52 | (comp (ref U5) 53 | (value NMA0509SC) 54 | (footprint footprints:NMA_5V_12V_15V_Series) 55 | (datasheet http://power.murata.com/data/power/ncl/kdc_nms.pdf) 56 | (libsource (lib dc_dc) (part NMA0509SC)) 57 | (sheetpath (names /) (tstamps /)) 58 | (tstamp 55E4611A)) 59 | (comp (ref P7) 60 | (value CONN_6) 61 | (footprint Pin_Headers:Pin_Header_Straight_1x06) 62 | (libsource (lib conn) (part CONN_01X06)) 63 | (sheetpath (names /) (tstamps /)) 64 | (tstamp 53E5FC4C)) 65 | (comp (ref MOV13) 66 | (value 5.6V) 67 | (footprint Resistors_SMD:R_1206_HandSoldering) 68 | (datasheet http://cdn-reichelt.de/documents/datenblatt/B400/VC%201206_Serie.pdf) 69 | (libsource (lib device) (part VR)) 70 | (sheetpath (names /) (tstamps /)) 71 | (tstamp 55E49EC4)) 72 | (comp (ref U2) 73 | (value LT1356CN) 74 | (libsource (lib ildagenerator-cache) (part LT1356CN)) 75 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 76 | (tstamp 53E1F104)) 77 | (comp (ref R3) 78 | (value 10kΩ) 79 | (footprint Resistors_SMD:R_0603_HandSoldering) 80 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 81 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 82 | (tstamp 53E1F116)) 83 | (comp (ref R4) 84 | (value 10kΩ) 85 | (footprint Resistors_SMD:R_0603_HandSoldering) 86 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 87 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 88 | (tstamp 53E1F11C)) 89 | (comp (ref R1) 90 | (value 10kΩ) 91 | (footprint Resistors_SMD:R_0603_HandSoldering) 92 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 93 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 94 | (tstamp 53E1F122)) 95 | (comp (ref R2) 96 | (value 10kΩ) 97 | (footprint Resistors_SMD:R_0603_HandSoldering) 98 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 99 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 100 | (tstamp 53E1F128)) 101 | (comp (ref P1) 102 | (value "Out X") 103 | (libsource (lib ildagenerator-cache) (part CONN_2)) 104 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 105 | (tstamp 53E1F188)) 106 | (comp (ref R5) 107 | (value 10kΩ) 108 | (footprint Resistors_SMD:R_0603_HandSoldering) 109 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 110 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 111 | (tstamp 53E1F191)) 112 | (comp (ref R6) 113 | (value 10kΩ) 114 | (footprint Resistors_SMD:R_0603_HandSoldering) 115 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 116 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 117 | (tstamp 53E1F197)) 118 | (comp (ref P2) 119 | (value "Out Y") 120 | (libsource (lib ildagenerator-cache) (part CONN_2)) 121 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 122 | (tstamp 53E1F1C3)) 123 | (comp (ref R7) 124 | (value 10kΩ) 125 | (footprint Resistors_SMD:R_0603_HandSoldering) 126 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 127 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 128 | (tstamp 53E1F1CC)) 129 | (comp (ref R8) 130 | (value 10kΩ) 131 | (footprint Resistors_SMD:R_0603_HandSoldering) 132 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 133 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 134 | (tstamp 53E1F1D2)) 135 | (comp (ref U3) 136 | (value LT1356CN) 137 | (datasheet http://cds.linear.com/docs/en/datasheet/13556fc.pdf) 138 | (libsource (lib ildagenerator-cache) (part LT1356CN)) 139 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 140 | (tstamp 53E1F322)) 141 | (comp (ref R19) 142 | (value 10kΩ) 143 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 144 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 145 | (tstamp 53E1F348)) 146 | (comp (ref R23) 147 | (value 10kΩ) 148 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 149 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 150 | (tstamp 53E1F354)) 151 | (comp (ref P3) 152 | (value "Out Red") 153 | (libsource (lib ildagenerator-cache) (part CONN_2)) 154 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 155 | (tstamp 53E1F35A)) 156 | (comp (ref R20) 157 | (value 10kΩ) 158 | (footprint Resistors_SMD:R_0603_HandSoldering) 159 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 160 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 161 | (tstamp 53E1F38E)) 162 | (comp (ref R24) 163 | (value 10kΩ) 164 | (footprint Resistors_SMD:R_0603_HandSoldering) 165 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 166 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 167 | (tstamp 53E1F394)) 168 | (comp (ref P4) 169 | (value "Out Green") 170 | (libsource (lib ildagenerator-cache) (part CONN_2)) 171 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 172 | (tstamp 53E1F39A)) 173 | (comp (ref U4) 174 | (value LT1356CN) 175 | (datasheet http://cds.linear.com/docs/en/datasheet/13556fc.pdf) 176 | (libsource (lib ildagenerator-cache) (part LT1356CN)) 177 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 178 | (tstamp 53E1F3C8)) 179 | (comp (ref R27) 180 | (value 10kΩ) 181 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 182 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 183 | (tstamp 53E1F3EE)) 184 | (comp (ref R31) 185 | (value 10kΩ) 186 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 187 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 188 | (tstamp 53E1F3FA)) 189 | (comp (ref P5) 190 | (value "Out Blue") 191 | (libsource (lib ildagenerator-cache) (part CONN_2)) 192 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 193 | (tstamp 53E1F400)) 194 | (comp (ref R28) 195 | (value 10kΩ) 196 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 197 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 198 | (tstamp 53E1F434)) 199 | (comp (ref R32) 200 | (value 10kΩ) 201 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 202 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 203 | (tstamp 53E1F43A)) 204 | (comp (ref P6) 205 | (value "Out C1") 206 | (libsource (lib ildagenerator-cache) (part CONN_2)) 207 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 208 | (tstamp 53E1F440)) 209 | (comp (ref R13) 210 | (value 10kΩ) 211 | (footprint Resistors_SMD:R_0603_HandSoldering) 212 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 213 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 214 | (tstamp 55BF5E5E)) 215 | (comp (ref R34) 216 | (value 10kΩ) 217 | (footprint Resistors_SMD:R_0603_HandSoldering) 218 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 219 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 220 | (tstamp 55BF6026)) 221 | (comp (ref R35) 222 | (value 10kΩ) 223 | (footprint Resistors_SMD:R_0603_HandSoldering) 224 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 225 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 226 | (tstamp 55BF6184)) 227 | (comp (ref R33) 228 | (value 10kΩ) 229 | (footprint Resistors_SMD:R_0603_HandSoldering) 230 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 231 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 232 | (tstamp 55BF627A)) 233 | (comp (ref R14) 234 | (value 10kΩ) 235 | (footprint Resistors_SMD:R_0603_HandSoldering) 236 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 237 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 238 | (tstamp 55BF8856)) 239 | (comp (ref R36) 240 | (value 10kΩ) 241 | (footprint Resistors_SMD:R_0603_HandSoldering) 242 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 243 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 244 | (tstamp 55BF8914)) 245 | (comp (ref R39) 246 | (value 10kΩ) 247 | (footprint Resistors_SMD:R_0603_HandSoldering) 248 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 249 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 250 | (tstamp 55BF89C9)) 251 | (comp (ref R42) 252 | (value 10kΩ) 253 | (footprint Resistors_SMD:R_0603_HandSoldering) 254 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 255 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 256 | (tstamp 55BF8A80)) 257 | (comp (ref R15) 258 | (value 10kΩ) 259 | (footprint Resistors_SMD:R_0603_HandSoldering) 260 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 261 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 262 | (tstamp 55BFA3B2)) 263 | (comp (ref R37) 264 | (value 10kΩ) 265 | (footprint Resistors_SMD:R_0603_HandSoldering) 266 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 267 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 268 | (tstamp 55BFAEB0)) 269 | (comp (ref R40) 270 | (value 10kΩ) 271 | (footprint Resistors_SMD:R_0603_HandSoldering) 272 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 273 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 274 | (tstamp 55BFAF78)) 275 | (comp (ref R43) 276 | (value 10kΩ) 277 | (footprint Resistors_SMD:R_0603_HandSoldering) 278 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 279 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 280 | (tstamp 55BFB040)) 281 | (comp (ref R16) 282 | (value 10kΩ) 283 | (footprint Resistors_SMD:R_0603_HandSoldering) 284 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 285 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 286 | (tstamp 55BFDDB7)) 287 | (comp (ref R38) 288 | (value 10kΩ) 289 | (footprint Resistors_SMD:R_0603_HandSoldering) 290 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 291 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 292 | (tstamp 55BFE204)) 293 | (comp (ref R41) 294 | (value 10kΩ) 295 | (footprint Resistors_SMD:R_0603_HandSoldering) 296 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 297 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 298 | (tstamp 55BFE2CE)) 299 | (comp (ref R44) 300 | (value 10kΩ) 301 | (footprint Resistors_SMD:R_0603_HandSoldering) 302 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 303 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 304 | (tstamp 55BFE468)) 305 | (comp (ref R52) 306 | (value 10kΩ) 307 | (footprint Resistors_SMD:R_0603_HandSoldering) 308 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 309 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 310 | (tstamp 55BFBA7C)) 311 | (comp (ref R51) 312 | (value 10kΩ) 313 | (footprint Resistors_SMD:R_0603_HandSoldering) 314 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 315 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 316 | (tstamp 55BFCF27)) 317 | (comp (ref R50) 318 | (value 10kΩ) 319 | (footprint Resistors_SMD:R_0603_HandSoldering) 320 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 321 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 322 | (tstamp 55BFCFF4)) 323 | (comp (ref R49) 324 | (value 10kΩ) 325 | (footprint Resistors_SMD:R_0603_HandSoldering) 326 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 327 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 328 | (tstamp 55BFD103)) 329 | (comp (ref R48) 330 | (value 10kΩ) 331 | (footprint Resistors_SMD:R_0603_HandSoldering) 332 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 333 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 334 | (tstamp 55BFE374)) 335 | (comp (ref R47) 336 | (value 10kΩ) 337 | (footprint Resistors_SMD:R_0603_HandSoldering) 338 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 339 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 340 | (tstamp 55BFE65A)) 341 | (comp (ref R46) 342 | (value 10kΩ) 343 | (footprint Resistors_SMD:R_0603_HandSoldering) 344 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 345 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 346 | (tstamp 55BFE72F)) 347 | (comp (ref R45) 348 | (value 10kΩ) 349 | (footprint Resistors_SMD:R_0603_HandSoldering) 350 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 351 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 352 | (tstamp 55BFE808)) 353 | (comp (ref R12) 354 | (value 10kΩ) 355 | (footprint Resistors_SMD:R_0603_HandSoldering) 356 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 357 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 358 | (tstamp 55BFFA83)) 359 | (comp (ref R11) 360 | (value 10kΩ) 361 | (footprint Resistors_SMD:R_0603_HandSoldering) 362 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 363 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 364 | (tstamp 55BFFB6C)) 365 | (comp (ref R10) 366 | (value 10kΩ) 367 | (footprint Resistors_SMD:R_0603_HandSoldering) 368 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 369 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 370 | (tstamp 55BFFC4C)) 371 | (comp (ref R9) 372 | (value 10kΩ) 373 | (footprint Resistors_SMD:R_0603_HandSoldering) 374 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 375 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 376 | (tstamp 55BFFD31)) 377 | (comp (ref R56) 378 | (value 10kΩ) 379 | (footprint Resistors_SMD:R_0603_HandSoldering) 380 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 381 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 382 | (tstamp 55C00F88)) 383 | (comp (ref R55) 384 | (value 10kΩ) 385 | (footprint Resistors_SMD:R_0603_HandSoldering) 386 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 387 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 388 | (tstamp 55C01079)) 389 | (comp (ref R54) 390 | (value 10kΩ) 391 | (footprint Resistors_SMD:R_0603_HandSoldering) 392 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 393 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 394 | (tstamp 55C01161)) 395 | (comp (ref R53) 396 | (value 10kΩ) 397 | (footprint Resistors_SMD:R_0603_HandSoldering) 398 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 399 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 400 | (tstamp 55C0124F)) 401 | (comp (ref F1) 402 | (value 1µ) 403 | (footprint Capacitors_Tantalum_SMD:TantalC_SizeB_EIA-3528_HandSoldering) 404 | (libsource (lib device) (part CP)) 405 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 406 | (tstamp 55C0A21A)) 407 | (comp (ref F2) 408 | (value 1µ) 409 | (footprint Capacitors_Tantalum_SMD:TantalC_SizeB_EIA-3528_HandSoldering) 410 | (libsource (lib device) (part CP)) 411 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 412 | (tstamp 55C0A799)) 413 | (comp (ref F3) 414 | (value 1µ) 415 | (footprint Capacitors_Tantalum_SMD:TantalC_SizeB_EIA-3528_HandSoldering) 416 | (libsource (lib device) (part CP)) 417 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 418 | (tstamp 55C0CBF8)) 419 | (comp (ref F4) 420 | (value 1µ) 421 | (footprint Capacitors_Tantalum_SMD:TantalC_SizeB_EIA-3528_HandSoldering) 422 | (libsource (lib device) (part CP)) 423 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 424 | (tstamp 55C0CD02)) 425 | (comp (ref F5) 426 | (value 1µ) 427 | (footprint Capacitors_Tantalum_SMD:TantalC_SizeB_EIA-3528_HandSoldering) 428 | (libsource (lib device) (part CP)) 429 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 430 | (tstamp 55C0D616)) 431 | (comp (ref R21) 432 | (value 470Ω) 433 | (footprint Resistors_SMD:R_0603_HandSoldering) 434 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 435 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 436 | (tstamp 55DEDC4E)) 437 | (comp (ref R17) 438 | (value 470Ω) 439 | (footprint Resistors_SMD:R_0603_HandSoldering) 440 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 441 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 442 | (tstamp 55DEDD53)) 443 | (comp (ref R22) 444 | (value 470Ω) 445 | (footprint Resistors_SMD:R_0603_HandSoldering) 446 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 447 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 448 | (tstamp 55E02ADD)) 449 | (comp (ref R18) 450 | (value 470Ω) 451 | (footprint Resistors_SMD:R_0603_HandSoldering) 452 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 453 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 454 | (tstamp 55E02BFC)) 455 | (comp (ref R29) 456 | (value 470Ω) 457 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 458 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 459 | (tstamp 55E130AE)) 460 | (comp (ref R30) 461 | (value 470Ω) 462 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 463 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 464 | (tstamp 55E13217)) 465 | (comp (ref R26) 466 | (value 470Ω) 467 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 468 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 469 | (tstamp 55E210D5)) 470 | (comp (ref R25) 471 | (value 470Ω) 472 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 473 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 474 | (tstamp 55E22292)) 475 | (comp (ref R57) 476 | (value 470Ω) 477 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 478 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 479 | (tstamp 55E24449)) 480 | (comp (ref R58) 481 | (value 470Ω) 482 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 483 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 484 | (tstamp 55E25906)) 485 | (comp (ref R60) 486 | (value 470Ω) 487 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 488 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 489 | (tstamp 55E2D9FA)) 490 | (comp (ref R59) 491 | (value 470Ω) 492 | (libsource (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator)) 493 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 494 | (tstamp 55E2ED6B)) 495 | (comp (ref MOV1) 496 | (value 5.6V) 497 | (footprint Resistors_SMD:R_1206_HandSoldering) 498 | (datasheet http://cdn-reichelt.de/documents/datenblatt/B400/VC%201206_Serie.pdf) 499 | (libsource (lib device) (part VR)) 500 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 501 | (tstamp 55E02D26)) 502 | (comp (ref MOV2) 503 | (value 5.6V) 504 | (footprint Resistors_SMD:R_1206_HandSoldering) 505 | (datasheet http://cdn-reichelt.de/documents/datenblatt/B400/VC%201206_Serie.pdf) 506 | (libsource (lib device) (part VR)) 507 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 508 | (tstamp 55E043BE)) 509 | (comp (ref MOV3) 510 | (value 5.6V) 511 | (footprint Resistors_SMD:R_1206_HandSoldering) 512 | (datasheet http://cdn-reichelt.de/documents/datenblatt/B400/VC%201206_Serie.pdf) 513 | (libsource (lib device) (part VR)) 514 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 515 | (tstamp 55E04D93)) 516 | (comp (ref MOV4) 517 | (value 5.6V) 518 | (footprint Resistors_SMD:R_1206_HandSoldering) 519 | (datasheet http://cdn-reichelt.de/documents/datenblatt/B400/VC%201206_Serie.pdf) 520 | (libsource (lib device) (part VR)) 521 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 522 | (tstamp 55E05EBB)) 523 | (comp (ref MOV7) 524 | (value 5.6V) 525 | (footprint Resistors_SMD:R_1206_HandSoldering) 526 | (datasheet http://cdn-reichelt.de/documents/datenblatt/B400/VC%201206_Serie.pdf) 527 | (libsource (lib device) (part VR)) 528 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 529 | (tstamp 55E064E2)) 530 | (comp (ref MOV8) 531 | (value 5.6V) 532 | (footprint Resistors_SMD:R_1206_HandSoldering) 533 | (datasheet http://cdn-reichelt.de/documents/datenblatt/B400/VC%201206_Serie.pdf) 534 | (libsource (lib device) (part VR)) 535 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 536 | (tstamp 55E09301)) 537 | (comp (ref MOV5) 538 | (value 5.6V) 539 | (footprint Resistors_SMD:R_1206_HandSoldering) 540 | (datasheet http://cdn-reichelt.de/documents/datenblatt/B400/VC%201206_Serie.pdf) 541 | (libsource (lib device) (part VR)) 542 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 543 | (tstamp 55E0C997)) 544 | (comp (ref MOV6) 545 | (value 5.6V) 546 | (footprint Resistors_SMD:R_1206_HandSoldering) 547 | (datasheet http://cdn-reichelt.de/documents/datenblatt/B400/VC%201206_Serie.pdf) 548 | (libsource (lib device) (part VR)) 549 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 550 | (tstamp 55E0D872)) 551 | (comp (ref MOV9) 552 | (value 5.6V) 553 | (footprint Resistors_SMD:R_1206_HandSoldering) 554 | (datasheet http://cdn-reichelt.de/documents/datenblatt/B400/VC%201206_Serie.pdf) 555 | (libsource (lib device) (part VR)) 556 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 557 | (tstamp 55E0E759)) 558 | (comp (ref MOV10) 559 | (value 5.6V) 560 | (footprint Resistors_SMD:R_1206_HandSoldering) 561 | (datasheet http://cdn-reichelt.de/documents/datenblatt/B400/VC%201206_Serie.pdf) 562 | (libsource (lib device) (part VR)) 563 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 564 | (tstamp 55E0F7C5)) 565 | (comp (ref F6) 566 | (value 1µ) 567 | (footprint Capacitors_Tantalum_SMD:TantalC_SizeB_EIA-3528_HandSoldering) 568 | (libsource (lib device) (part CP)) 569 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 570 | (tstamp 55C0D720)) 571 | (comp (ref MOV11) 572 | (value 5.6V) 573 | (footprint Resistors_SMD:R_1206_HandSoldering) 574 | (datasheet http://cdn-reichelt.de/documents/datenblatt/B400/VC%201206_Serie.pdf) 575 | (libsource (lib device) (part VR)) 576 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 577 | (tstamp 55E17827)) 578 | (comp (ref MOV12) 579 | (value 5.6V) 580 | (footprint Resistors_SMD:R_1206_HandSoldering) 581 | (datasheet http://cdn-reichelt.de/documents/datenblatt/B400/VC%201206_Serie.pdf) 582 | (libsource (lib device) (part VR)) 583 | (sheetpath (names /Sheet53E1F024/) (tstamps /53E1F025/)) 584 | (tstamp 55E186EE))) 585 | (libparts 586 | (libpart (lib device) (part CP) 587 | (description "Polarised capacitor") 588 | (footprints 589 | (fp CP*) 590 | (fp Elko*) 591 | (fp TantalC*) 592 | (fp C*elec) 593 | (fp c_elec*) 594 | (fp SMD*_Pol)) 595 | (fields 596 | (field (name Reference) C) 597 | (field (name Value) CP)) 598 | (pins 599 | (pin (num 1) (name ~) (type passive)) 600 | (pin (num 2) (name ~) (type passive)))) 601 | (libpart (lib device) (part VR) 602 | (description VARISTANCE) 603 | (fields 604 | (field (name Reference) VR) 605 | (field (name Value) VR)) 606 | (pins 607 | (pin (num 1) (name ~) (type passive)) 608 | (pin (num 2) (name ~) (type passive)))) 609 | (libpart (lib conn) (part CONN_01X02) 610 | (footprints 611 | (fp Pin_Header_Straight_1X02) 612 | (fp Pin_Header_Angled_1X02) 613 | (fp Socket_Strip_Straight_1X02) 614 | (fp Socket_Strip_Angled_1X02)) 615 | (fields 616 | (field (name Reference) P) 617 | (field (name Value) CONN_01X02)) 618 | (pins 619 | (pin (num 1) (name P1) (type passive)) 620 | (pin (num 2) (name P2) (type passive)))) 621 | (libpart (lib ildagenerator-rescue) (part C-RESCUE-ildagenerator) 622 | (footprints 623 | (fp SM*) 624 | (fp C?) 625 | (fp C1-1)) 626 | (fields 627 | (field (name Reference) C) 628 | (field (name Value) C-RESCUE-ildagenerator)) 629 | (pins 630 | (pin (num 1) (name ~) (type passive)) 631 | (pin (num 2) (name ~) (type passive)))) 632 | (libpart (lib dc_dc) (part NMA0509SC) 633 | (fields 634 | (field (name Reference) U) 635 | (field (name Value) NMA0509SC)) 636 | (pins 637 | (pin (num 1) (name +Vin) (type output)) 638 | (pin (num 2) (name -Vin) (type output)) 639 | (pin (num 4) (name -Vout) (type output)) 640 | (pin (num 5) (name 0V) (type output)) 641 | (pin (num 6) (name +Vout) (type output)))) 642 | (libpart (lib conn) (part CONN_01X06) 643 | (footprints 644 | (fp Pin_Header_Straight_1X06) 645 | (fp Pin_Header_Angled_1X06) 646 | (fp Socket_Strip_Straight_1X06) 647 | (fp Socket_Strip_Angled_1X06)) 648 | (fields 649 | (field (name Reference) P) 650 | (field (name Value) CONN_01X06)) 651 | (pins 652 | (pin (num 1) (name P1) (type passive)) 653 | (pin (num 2) (name P2) (type passive)) 654 | (pin (num 3) (name P3) (type passive)) 655 | (pin (num 4) (name P4) (type passive)) 656 | (pin (num 5) (name P5) (type passive)) 657 | (pin (num 6) (name P6) (type passive)))) 658 | (libpart (lib ildagenerator-cache) (part LT1356CN) 659 | (fields 660 | (field (name Reference) U) 661 | (field (name Value) LT1356CN)) 662 | (pins 663 | (pin (num 1) (name out) (type output)) 664 | (pin (num 2) (name -) (type input)) 665 | (pin (num 3) (name +) (type input)) 666 | (pin (num 4) (name V+) (type power_in)) 667 | (pin (num 5) (name +) (type input)) 668 | (pin (num 6) (name -) (type input)) 669 | (pin (num 7) (name out) (type output)) 670 | (pin (num 8) (name out) (type output)) 671 | (pin (num 9) (name -) (type input)) 672 | (pin (num 10) (name +) (type input)) 673 | (pin (num 11) (name V-) (type power_in)) 674 | (pin (num 12) (name +) (type input)) 675 | (pin (num 13) (name -) (type input)) 676 | (pin (num 14) (name out) (type output)))) 677 | (libpart (lib ildagenerator-cache) (part LTC2656BIFE-L16) 678 | (fields 679 | (field (name Reference) U) 680 | (field (name Value) LTC2656BIFE-L16)) 681 | (pins 682 | (pin (num 1) (name REF_LO) (type input)) 683 | (pin (num 2) (name Vout_A) (type output)) 684 | (pin (num 3) (name Vout_B) (type output)) 685 | (pin (num 4) (name REF_COMP) (type input)) 686 | (pin (num 5) (name Vout_C) (type output)) 687 | (pin (num 6) (name Vout_D) (type output)) 688 | (pin (num 7) (name REF_IN/OUT) (type BiDi)) 689 | (pin (num 8) (name ~LDAC) (type input)) 690 | (pin (num 9) (name ~CS~/LD) (type input)) 691 | (pin (num 10) (name SCK) (type input)) 692 | (pin (num 11) (name SDI) (type input)) 693 | (pin (num 12) (name SDO) (type input)) 694 | (pin (num 13) (name ~CLR) (type input)) 695 | (pin (num 14) (name PORSEL) (type input)) 696 | (pin (num 15) (name Vout_E) (type output)) 697 | (pin (num 16) (name Vout_F) (type output)) 698 | (pin (num 17) (name Vout_G) (type output)) 699 | (pin (num 18) (name Vout_H) (type output)) 700 | (pin (num 19) (name Vcc) (type input)) 701 | (pin (num 20) (name GND) (type input)) 702 | (pin (num 21) (name GND) (type input)))) 703 | (libpart (lib ildagenerator-rescue) (part R-RESCUE-ildagenerator) 704 | (footprints 705 | (fp R?) 706 | (fp SM0603) 707 | (fp SM0805) 708 | (fp R?-*)) 709 | (fields 710 | (field (name Reference) R) 711 | (field (name Value) R-RESCUE-ildagenerator)) 712 | (pins 713 | (pin (num 1) (name ~) (type passive)) 714 | (pin (num 2) (name ~) (type passive)))) 715 | (libpart (lib ildagenerator-cache) (part CONN_2) 716 | (fields 717 | (field (name Reference) P) 718 | (field (name Value) CONN_2)) 719 | (pins 720 | (pin (num 1) (name P1) (type passive)) 721 | (pin (num 2) (name PM) (type passive))))) 722 | (libraries 723 | (library (logical device) 724 | (uri /usr/local/share/kicad/library/device.lib)) 725 | (library (logical ildagenerator-rescue) 726 | (uri /home/janerik/git/ILDA/hardware/kicad/ildagenerator-rescue.lib)) 727 | (library (logical ildagenerator-cache) 728 | (uri /home/janerik/git/ILDA/hardware/kicad/ildagenerator-cache.lib)) 729 | (library (logical dc_dc) 730 | (uri /home/janerik/git/ILDA/hardware/kicad/dc_dc.lib)) 731 | (library (logical conn) 732 | (uri /usr/local/share/kicad/library/conn.lib))) 733 | (nets 734 | (net (code 1) (name /Sheet53E1F024/DA5) 735 | (node (ref U1) (pin 15)) 736 | (node (ref R27) (pin 1)) 737 | (node (ref U4) (pin 3))) 738 | (net (code 2) (name /Sheet53E1F024/DA6) 739 | (node (ref R28) (pin 1)) 740 | (node (ref U4) (pin 5)) 741 | (node (ref U1) (pin 16))) 742 | (net (code 3) (name "Net-(U1-Pad17)") 743 | (node (ref U1) (pin 17))) 744 | (net (code 4) (name "Net-(U1-Pad18)") 745 | (node (ref U1) (pin 18))) 746 | (net (code 5) (name /Sheet53E1F024/DA1) 747 | (node (ref R2) (pin 1)) 748 | (node (ref U1) (pin 6)) 749 | (node (ref R3) (pin 1))) 750 | (net (code 6) (name /Sheet53E1F024/DA4) 751 | (node (ref U1) (pin 2)) 752 | (node (ref R20) (pin 1)) 753 | (node (ref U3) (pin 5))) 754 | (net (code 7) (name -15V) 755 | (node (ref F4) (pin 2)) 756 | (node (ref U5) (pin 4)) 757 | (node (ref U2) (pin 11)) 758 | (node (ref F2) (pin 2)) 759 | (node (ref U4) (pin 11)) 760 | (node (ref F6) (pin 2)) 761 | (node (ref U3) (pin 11))) 762 | (net (code 8) (name /Sheet53E1F024/DA3) 763 | (node (ref R19) (pin 1)) 764 | (node (ref U3) (pin 3)) 765 | (node (ref U1) (pin 3))) 766 | (net (code 9) (name "Net-(C1-Pad1)") 767 | (node (ref C1) (pin 1)) 768 | (node (ref U1) (pin 4))) 769 | (net (code 10) (name "Net-(P7-Pad3)") 770 | (node (ref U1) (pin 11)) 771 | (node (ref P7) (pin 3))) 772 | (net (code 11) (name "Net-(P7-Pad5)") 773 | (node (ref P7) (pin 5)) 774 | (node (ref U1) (pin 9))) 775 | (net (code 12) (name +15V) 776 | (node (ref U3) (pin 4)) 777 | (node (ref F5) (pin 1)) 778 | (node (ref F3) (pin 1)) 779 | (node (ref F1) (pin 1)) 780 | (node (ref U4) (pin 4)) 781 | (node (ref U2) (pin 4)) 782 | (node (ref U5) (pin 6))) 783 | (net (code 13) (name "Net-(P7-Pad4)") 784 | (node (ref U1) (pin 10)) 785 | (node (ref P7) (pin 4))) 786 | (net (code 14) (name "Net-(P7-Pad6)") 787 | (node (ref U1) (pin 8)) 788 | (node (ref P7) (pin 6))) 789 | (net (code 15) (name /Sheet53E1F024/DA2) 790 | (node (ref U1) (pin 5)) 791 | (node (ref R5) (pin 1)) 792 | (node (ref R8) (pin 1))) 793 | (net (code 16) (name /Sheet53E1F024/DARef) 794 | (node (ref R6) (pin 1)) 795 | (node (ref R4) (pin 1)) 796 | (node (ref R1) (pin 1)) 797 | (node (ref U1) (pin 7)) 798 | (node (ref R7) (pin 1))) 799 | (net (code 17) (name "Net-(P7-Pad2)") 800 | (node (ref U1) (pin 12)) 801 | (node (ref P7) (pin 2))) 802 | (net (code 18) (name GND) 803 | (node (ref MOV12) (pin 2)) 804 | (node (ref MOV11) (pin 1)) 805 | (node (ref MOV8) (pin 2)) 806 | (node (ref MOV10) (pin 2)) 807 | (node (ref MOV9) (pin 1)) 808 | (node (ref MOV6) (pin 2)) 809 | (node (ref MOV13) (pin 2)) 810 | (node (ref F6) (pin 1)) 811 | (node (ref R9) (pin 1)) 812 | (node (ref U1) (pin 21)) 813 | (node (ref U1) (pin 14)) 814 | (node (ref P7) (pin 1)) 815 | (node (ref U3) (pin 10)) 816 | (node (ref C2) (pin 1)) 817 | (node (ref R49) (pin 1)) 818 | (node (ref U1) (pin 1)) 819 | (node (ref R45) (pin 1)) 820 | (node (ref MOV5) (pin 1)) 821 | (node (ref U4) (pin 10)) 822 | (node (ref P8) (pin 1)) 823 | (node (ref C1) (pin 2)) 824 | (node (ref U5) (pin 2)) 825 | (node (ref U4) (pin 12)) 826 | (node (ref U1) (pin 20)) 827 | (node (ref U3) (pin 12)) 828 | (node (ref MOV1) (pin 1)) 829 | (node (ref F1) (pin 2)) 830 | (node (ref MOV2) (pin 2)) 831 | (node (ref F2) (pin 1)) 832 | (node (ref R53) (pin 1)) 833 | (node (ref U5) (pin 5)) 834 | (node (ref MOV3) (pin 1)) 835 | (node (ref MOV4) (pin 2)) 836 | (node (ref MOV7) (pin 1)) 837 | (node (ref F5) (pin 2)) 838 | (node (ref F4) (pin 1)) 839 | (node (ref F3) (pin 2))) 840 | (net (code 19) (name +5V) 841 | (node (ref C2) (pin 2)) 842 | (node (ref U1) (pin 19)) 843 | (node (ref P8) (pin 2)) 844 | (node (ref MOV13) (pin 1)) 845 | (node (ref U1) (pin 13)) 846 | (node (ref U5) (pin 1))) 847 | (net (code 20) (name "Net-(R23-Pad2)") 848 | (node (ref R23) (pin 2)) 849 | (node (ref U3) (pin 14)) 850 | (node (ref R26) (pin 2))) 851 | (net (code 21) (name "Net-(R31-Pad2)") 852 | (node (ref U4) (pin 14)) 853 | (node (ref R58) (pin 2)) 854 | (node (ref R31) (pin 2))) 855 | (net (code 22) (name "Net-(R22-Pad1)") 856 | (node (ref R22) (pin 1)) 857 | (node (ref U2) (pin 8)) 858 | (node (ref R43) (pin 2))) 859 | (net (code 23) (name "Net-(R21-Pad1)") 860 | (node (ref R21) (pin 1)) 861 | (node (ref R42) (pin 2)) 862 | (node (ref U2) (pin 1))) 863 | (net (code 24) (name "Net-(MOV4-Pad1)") 864 | (node (ref R18) (pin 1)) 865 | (node (ref MOV4) (pin 1)) 866 | (node (ref P2) (pin 2))) 867 | (net (code 25) (name "Net-(MOV3-Pad2)") 868 | (node (ref R22) (pin 2)) 869 | (node (ref P2) (pin 1)) 870 | (node (ref MOV3) (pin 2))) 871 | (net (code 26) (name "Net-(MOV7-Pad2)") 872 | (node (ref MOV7) (pin 2)) 873 | (node (ref P3) (pin 1)) 874 | (node (ref R25) (pin 2))) 875 | (net (code 27) (name "Net-(MOV1-Pad2)") 876 | (node (ref R21) (pin 2)) 877 | (node (ref P1) (pin 1)) 878 | (node (ref MOV1) (pin 2))) 879 | (net (code 28) (name "Net-(R56-Pad1)") 880 | (node (ref R7) (pin 2)) 881 | (node (ref U2) (pin 12)) 882 | (node (ref R56) (pin 1))) 883 | (net (code 29) (name "Net-(R55-Pad2)") 884 | (node (ref R55) (pin 2)) 885 | (node (ref R56) (pin 2))) 886 | (net (code 30) (name "Net-(R54-Pad1)") 887 | (node (ref R54) (pin 1)) 888 | (node (ref R55) (pin 1))) 889 | (net (code 31) (name "Net-(R53-Pad2)") 890 | (node (ref R53) (pin 2)) 891 | (node (ref R54) (pin 2))) 892 | (net (code 32) (name "Net-(R10-Pad1)") 893 | (node (ref R10) (pin 1)) 894 | (node (ref R9) (pin 2))) 895 | (net (code 33) (name "Net-(R10-Pad2)") 896 | (node (ref R10) (pin 2)) 897 | (node (ref R11) (pin 2))) 898 | (net (code 34) (name "Net-(R11-Pad1)") 899 | (node (ref R11) (pin 1)) 900 | (node (ref R12) (pin 1))) 901 | (net (code 35) (name "Net-(MOV2-Pad1)") 902 | (node (ref R17) (pin 1)) 903 | (node (ref P1) (pin 2)) 904 | (node (ref MOV2) (pin 1))) 905 | (net (code 36) (name "Net-(R59-Pad1)") 906 | (node (ref U4) (pin 7)) 907 | (node (ref R59) (pin 1)) 908 | (node (ref U4) (pin 6))) 909 | (net (code 37) (name "Net-(R28-Pad2)") 910 | (node (ref U4) (pin 9)) 911 | (node (ref R32) (pin 1)) 912 | (node (ref R28) (pin 2))) 913 | (net (code 38) (name "Net-(R57-Pad1)") 914 | (node (ref U4) (pin 1)) 915 | (node (ref U4) (pin 2)) 916 | (node (ref R57) (pin 1))) 917 | (net (code 39) (name "Net-(R27-Pad2)") 918 | (node (ref U4) (pin 13)) 919 | (node (ref R31) (pin 1)) 920 | (node (ref R27) (pin 2))) 921 | (net (code 40) (name "Net-(R32-Pad2)") 922 | (node (ref U4) (pin 8)) 923 | (node (ref R32) (pin 2)) 924 | (node (ref R60) (pin 2))) 925 | (net (code 41) (name "Net-(MOV12-Pad1)") 926 | (node (ref P6) (pin 2)) 927 | (node (ref MOV12) (pin 1)) 928 | (node (ref R60) (pin 1))) 929 | (net (code 42) (name "Net-(MOV11-Pad2)") 930 | (node (ref P6) (pin 1)) 931 | (node (ref MOV11) (pin 2)) 932 | (node (ref R59) (pin 2))) 933 | (net (code 43) (name "Net-(R19-Pad2)") 934 | (node (ref R23) (pin 1)) 935 | (node (ref U3) (pin 13)) 936 | (node (ref R19) (pin 2))) 937 | (net (code 44) (name "Net-(R29-Pad1)") 938 | (node (ref R29) (pin 1)) 939 | (node (ref U3) (pin 6)) 940 | (node (ref U3) (pin 7))) 941 | (net (code 45) (name "Net-(MOV8-Pad1)") 942 | (node (ref R26) (pin 1)) 943 | (node (ref P3) (pin 2)) 944 | (node (ref MOV8) (pin 1))) 945 | (net (code 46) (name "Net-(R25-Pad1)") 946 | (node (ref R25) (pin 1)) 947 | (node (ref U3) (pin 1)) 948 | (node (ref U3) (pin 2))) 949 | (net (code 47) (name "Net-(MOV10-Pad1)") 950 | (node (ref MOV10) (pin 1)) 951 | (node (ref P5) (pin 2)) 952 | (node (ref R58) (pin 1))) 953 | (net (code 48) (name "Net-(MOV9-Pad2)") 954 | (node (ref R57) (pin 2)) 955 | (node (ref MOV9) (pin 2)) 956 | (node (ref P5) (pin 1))) 957 | (net (code 49) (name "Net-(MOV6-Pad1)") 958 | (node (ref P4) (pin 2)) 959 | (node (ref R30) (pin 1)) 960 | (node (ref MOV6) (pin 1))) 961 | (net (code 50) (name "Net-(MOV5-Pad2)") 962 | (node (ref MOV5) (pin 2)) 963 | (node (ref R29) (pin 2)) 964 | (node (ref P4) (pin 1))) 965 | (net (code 51) (name "Net-(R24-Pad2)") 966 | (node (ref R30) (pin 2)) 967 | (node (ref R24) (pin 2)) 968 | (node (ref U3) (pin 8))) 969 | (net (code 52) (name "Net-(R20-Pad2)") 970 | (node (ref R24) (pin 1)) 971 | (node (ref R20) (pin 2)) 972 | (node (ref U3) (pin 9))) 973 | (net (code 53) (name "Net-(R16-Pad1)") 974 | (node (ref R8) (pin 2)) 975 | (node (ref U2) (pin 13)) 976 | (node (ref R16) (pin 1))) 977 | (net (code 54) (name "Net-(R3-Pad2)") 978 | (node (ref R52) (pin 1)) 979 | (node (ref U2) (pin 3)) 980 | (node (ref R3) (pin 2))) 981 | (net (code 55) (name "Net-(R14-Pad1)") 982 | (node (ref R4) (pin 2)) 983 | (node (ref U2) (pin 2)) 984 | (node (ref R14) (pin 1))) 985 | (net (code 56) (name "Net-(R18-Pad2)") 986 | (node (ref U2) (pin 14)) 987 | (node (ref R18) (pin 2)) 988 | (node (ref R44) (pin 2))) 989 | (net (code 57) (name "Net-(R15-Pad1)") 990 | (node (ref U2) (pin 9)) 991 | (node (ref R6) (pin 2)) 992 | (node (ref R15) (pin 1))) 993 | (net (code 58) (name "Net-(R12-Pad2)") 994 | (node (ref U2) (pin 10)) 995 | (node (ref R12) (pin 2)) 996 | (node (ref R5) (pin 2))) 997 | (net (code 59) (name "Net-(R13-Pad1)") 998 | (node (ref R13) (pin 1)) 999 | (node (ref U2) (pin 6)) 1000 | (node (ref R2) (pin 2))) 1001 | (net (code 60) (name "Net-(R1-Pad2)") 1002 | (node (ref R1) (pin 2)) 1003 | (node (ref R48) (pin 1)) 1004 | (node (ref U2) (pin 5))) 1005 | (net (code 61) (name "Net-(R16-Pad2)") 1006 | (node (ref R16) (pin 2)) 1007 | (node (ref R38) (pin 1))) 1008 | (net (code 62) (name "Net-(R38-Pad2)") 1009 | (node (ref R38) (pin 2)) 1010 | (node (ref R41) (pin 1))) 1011 | (net (code 63) (name "Net-(R41-Pad2)") 1012 | (node (ref R41) (pin 2)) 1013 | (node (ref R44) (pin 1))) 1014 | (net (code 64) (name "Net-(R17-Pad2)") 1015 | (node (ref R17) (pin 2)) 1016 | (node (ref R35) (pin 2)) 1017 | (node (ref U2) (pin 7))) 1018 | (net (code 65) (name "Net-(R40-Pad2)") 1019 | (node (ref R43) (pin 1)) 1020 | (node (ref R40) (pin 2))) 1021 | (net (code 66) (name "Net-(R37-Pad2)") 1022 | (node (ref R37) (pin 2)) 1023 | (node (ref R40) (pin 1))) 1024 | (net (code 67) (name "Net-(R15-Pad2)") 1025 | (node (ref R15) (pin 2)) 1026 | (node (ref R37) (pin 1))) 1027 | (net (code 68) (name "Net-(R47-Pad2)") 1028 | (node (ref R48) (pin 2)) 1029 | (node (ref R47) (pin 2))) 1030 | (net (code 69) (name "Net-(R45-Pad2)") 1031 | (node (ref R46) (pin 2)) 1032 | (node (ref R45) (pin 2))) 1033 | (net (code 70) (name "Net-(R46-Pad1)") 1034 | (node (ref R47) (pin 1)) 1035 | (node (ref R46) (pin 1))) 1036 | (net (code 71) (name "Net-(R49-Pad2)") 1037 | (node (ref R49) (pin 2)) 1038 | (node (ref R50) (pin 2))) 1039 | (net (code 72) (name "Net-(R50-Pad1)") 1040 | (node (ref R50) (pin 1)) 1041 | (node (ref R51) (pin 1))) 1042 | (net (code 73) (name "Net-(R51-Pad2)") 1043 | (node (ref R51) (pin 2)) 1044 | (node (ref R52) (pin 2))) 1045 | (net (code 74) (name "Net-(R34-Pad2)") 1046 | (node (ref R34) (pin 2)) 1047 | (node (ref R35) (pin 1))) 1048 | (net (code 75) (name "Net-(R39-Pad2)") 1049 | (node (ref R42) (pin 1)) 1050 | (node (ref R39) (pin 2))) 1051 | (net (code 76) (name "Net-(R36-Pad2)") 1052 | (node (ref R39) (pin 1)) 1053 | (node (ref R36) (pin 2))) 1054 | (net (code 77) (name "Net-(R14-Pad2)") 1055 | (node (ref R14) (pin 2)) 1056 | (node (ref R36) (pin 1))) 1057 | (net (code 78) (name "Net-(R33-Pad2)") 1058 | (node (ref R33) (pin 2)) 1059 | (node (ref R34) (pin 1))) 1060 | (net (code 79) (name "Net-(R13-Pad2)") 1061 | (node (ref R33) (pin 1)) 1062 | (node (ref R13) (pin 2))))) --------------------------------------------------------------------------------