├── experiment5
├── period-length-filtered
├── conditions.txt
├── Zero crossing pulse length, R input = 16k4 R pullup = 1k.png
├── Zero crossing pulse length FFT, R input = 16k4 R pullup = 1k.png
├── Pulse length differeces for adjacent pulses, R input = 16k4 R pullup = 1k.png
├── period-length.py
├── half-zc-pulse-length.py
└── zc-pulse-length.py
├── experiment6
├── period-length-filtered
├── conditions.txt
├── Zero crossing pulse length, R input = 16k4 R pullup = 1k.png
├── Zero crossing pulse length, R input = 16k4 R pullup = 10k.png
├── Zero crossing pulse length FFT, R input = 16k4 R pullup = 10k.png
├── Zero crossing pulse length FFT, R input = 16k4 R pullup = 1k.png
├── Pulse length differeces for adjacent pulses, R input = 16k4 R pullup = 10k.png
├── Pulse length differeces for adjacent pulses, R input = 16k4 R pullup = 1k.png
├── zc-pulse-length-piez.py
├── period-length.py
└── zc-pulse-length.py
├── experiment3
├── conditions.txt
├── Zero crossing pulse length.png
├── Zero crossing pulse length FFT.png
├── Pulse length differeces for adjacent pulses.png
├── Zero crossing pulse length, R input = 16k4 R pullup = 1k.png
├── Zero crossing pulse length, R input = 32k8, R pullup = 10k.png
├── Zero crossing pulse length FFT, R input = 16k4 R pullup = 1k.png
├── Zero crossing pulse length FFT, R input = 32k8 R pullup = 10k.png
├── Pulse length differeces for adjacent pulses, R input = 16k4 R pullup = 1k.png
├── Pulse length differeces for adjacent pulses, R input = 32k8 R pullup = 10k.png
├── period-length.py
├── half-zc-pulse-length.py
└── zc-pulse-length.py
├── experiment4
├── conditions.txt
├── Zero crossing pulse length, R input = 16k4 R pullup = 10k.png
├── Zero crossing pulse length FFT, R input = 16k4 R pullup = 10k.png
├── Pulse length differeces for adjacent pulses, R input = 16k4 R pullup = 10k.png
├── period-length.py
└── zc-pulse-length.py
├── ssr.pdf
├── ssr.png
├── BTA41.pdf
├── HBD855-D.pdf
├── firmware
├── .gitignore
├── .settings
│ └── de.innot.avreclipse.core.prefs
├── .project
├── usiTwiSlave.h
├── conductionAngles.c
├── Makefile
├── main.c
└── .cproject
├── zc-scope.png
├── P_100_MOC3052
├── ssr-gerbers.zip
├── P_100_MOC3052.pdf
├── triac bloc top.jpg
├── experiment-summary.ods
├── experment-summary.png
├── triac bloc bottom.jpg
├── power-vs-cond-angle.png
├── Littelfuse_Fuse_314_324.pdf
├── controller-atmega8
├── p82b96.pdf
├── screw-term2pin.mod
├── conn35.kicad_mod
├── p82b96.lib
├── controller.pro
├── controller.cmp
└── controller-cache.lib
├── experiment2
├── conditions.txt
├── zc-pulse-length-noise.png
├── period-length-filtered.png
├── zc-pulse-length-noise2.png
├── zc-pulse-length-noise3.png
├── Zero crossing pulse length, R input = 16k4 R pullup = 1k.png
├── Zero crossing pulse length, R input = 32k8, R pullup = 47k.png
├── Zero crossing pulse length FFT, R input = 16k4 R pullup = 1k.png
├── Zero crossing pulse length FFT, R input = 32k8 R pullup = 47k.png
├── Pulse length differeces for adjacent pulses, R input = 16k4 R pullup = 1k.png
├── Pulse length differeces for adjacent pulses, R input = 32k8 R pullup = 47k.png
├── period-length.py
├── half-zc-pulse-length.py
├── zc-pulse-length.py
└── calibrated-period-length
├── controller-attiny1634
├── p82b96.pdf
├── p82b96.lib
├── controller.pro
├── controller.cmp
├── controller-cache.lib
└── controller.net
├── LTV-814H_824H_844H (M,S,S_TA1).pdf
├── experiment1
├── impulse-response-linear.png
├── step-response-accel10.csv
├── exp1.py
├── step-response-linear2.csv
└── step-response-linear.csv
├── gerbers
├── ssr-NPTH.drl
├── ssr-Edge_Cuts.gbr
├── ssr-drl.rpt
├── ssr.drl
├── ssr-F_Mask.gts
├── ssr-B_Mask.gbs
└── ssr-NPTH-drl_map.pho
├── README.md
├── power-resistor.mod
├── Resistor_Horizontal_RM30mm.kicad_mod
├── x-sinx.py
├── ssr.pro
├── ssr.cmp
└── ssr-cache.lib
/experiment5/period-length-filtered:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/experiment6/period-length-filtered:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/experiment3/conditions.txt:
--------------------------------------------------------------------------------
1 | Power resistors 32.8k
2 | Pullup 10k
3 |
--------------------------------------------------------------------------------
/experiment4/conditions.txt:
--------------------------------------------------------------------------------
1 | Power resistors 16.4k
2 | Pullup 10k
3 |
--------------------------------------------------------------------------------
/experiment5/conditions.txt:
--------------------------------------------------------------------------------
1 | Power resistors 16.4k
2 | Pullup 1k
3 |
--------------------------------------------------------------------------------
/experiment6/conditions.txt:
--------------------------------------------------------------------------------
1 | Power resistors 16.4k
2 | Pullup 10k
3 |
--------------------------------------------------------------------------------
/ssr.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/ssr.pdf
--------------------------------------------------------------------------------
/ssr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/ssr.png
--------------------------------------------------------------------------------
/BTA41.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/BTA41.pdf
--------------------------------------------------------------------------------
/HBD855-D.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/HBD855-D.pdf
--------------------------------------------------------------------------------
/firmware/.gitignore:
--------------------------------------------------------------------------------
1 | /Release
2 | /Debug
3 | *.o
4 | *.i
5 | *.s
6 | *.elf
7 |
--------------------------------------------------------------------------------
/zc-scope.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/zc-scope.png
--------------------------------------------------------------------------------
/P_100_MOC3052:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/P_100_MOC3052
--------------------------------------------------------------------------------
/ssr-gerbers.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/ssr-gerbers.zip
--------------------------------------------------------------------------------
/P_100_MOC3052.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/P_100_MOC3052.pdf
--------------------------------------------------------------------------------
/triac bloc top.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/triac bloc top.jpg
--------------------------------------------------------------------------------
/experiment-summary.ods:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment-summary.ods
--------------------------------------------------------------------------------
/experment-summary.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experment-summary.png
--------------------------------------------------------------------------------
/triac bloc bottom.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/triac bloc bottom.jpg
--------------------------------------------------------------------------------
/power-vs-cond-angle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/power-vs-cond-angle.png
--------------------------------------------------------------------------------
/Littelfuse_Fuse_314_324.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/Littelfuse_Fuse_314_324.pdf
--------------------------------------------------------------------------------
/controller-atmega8/p82b96.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/controller-atmega8/p82b96.pdf
--------------------------------------------------------------------------------
/experiment2/conditions.txt:
--------------------------------------------------------------------------------
1 | Power resistors on AC side - 4 * 8.2k=32.8k
2 | Pullup @ optocoupler output - 47k
3 |
--------------------------------------------------------------------------------
/controller-attiny1634/p82b96.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/controller-attiny1634/p82b96.pdf
--------------------------------------------------------------------------------
/LTV-814H_824H_844H (M,S,S_TA1).pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/LTV-814H_824H_844H (M,S,S_TA1).pdf
--------------------------------------------------------------------------------
/experiment2/zc-pulse-length-noise.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment2/zc-pulse-length-noise.png
--------------------------------------------------------------------------------
/experiment1/impulse-response-linear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment1/impulse-response-linear.png
--------------------------------------------------------------------------------
/experiment2/period-length-filtered.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment2/period-length-filtered.png
--------------------------------------------------------------------------------
/experiment2/zc-pulse-length-noise2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment2/zc-pulse-length-noise2.png
--------------------------------------------------------------------------------
/experiment2/zc-pulse-length-noise3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment2/zc-pulse-length-noise3.png
--------------------------------------------------------------------------------
/experiment3/Zero crossing pulse length.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment3/Zero crossing pulse length.png
--------------------------------------------------------------------------------
/experiment3/Zero crossing pulse length FFT.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment3/Zero crossing pulse length FFT.png
--------------------------------------------------------------------------------
/experiment3/Pulse length differeces for adjacent pulses.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment3/Pulse length differeces for adjacent pulses.png
--------------------------------------------------------------------------------
/experiment2/Zero crossing pulse length, R input = 16k4 R pullup = 1k.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment2/Zero crossing pulse length, R input = 16k4 R pullup = 1k.png
--------------------------------------------------------------------------------
/experiment3/Zero crossing pulse length, R input = 16k4 R pullup = 1k.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment3/Zero crossing pulse length, R input = 16k4 R pullup = 1k.png
--------------------------------------------------------------------------------
/experiment5/Zero crossing pulse length, R input = 16k4 R pullup = 1k.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment5/Zero crossing pulse length, R input = 16k4 R pullup = 1k.png
--------------------------------------------------------------------------------
/experiment6/Zero crossing pulse length, R input = 16k4 R pullup = 1k.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment6/Zero crossing pulse length, R input = 16k4 R pullup = 1k.png
--------------------------------------------------------------------------------
/experiment2/Zero crossing pulse length, R input = 32k8, R pullup = 47k.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment2/Zero crossing pulse length, R input = 32k8, R pullup = 47k.png
--------------------------------------------------------------------------------
/experiment3/Zero crossing pulse length, R input = 32k8, R pullup = 10k.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment3/Zero crossing pulse length, R input = 32k8, R pullup = 10k.png
--------------------------------------------------------------------------------
/experiment4/Zero crossing pulse length, R input = 16k4 R pullup = 10k.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment4/Zero crossing pulse length, R input = 16k4 R pullup = 10k.png
--------------------------------------------------------------------------------
/experiment6/Zero crossing pulse length, R input = 16k4 R pullup = 10k.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment6/Zero crossing pulse length, R input = 16k4 R pullup = 10k.png
--------------------------------------------------------------------------------
/experiment2/Zero crossing pulse length FFT, R input = 16k4 R pullup = 1k.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment2/Zero crossing pulse length FFT, R input = 16k4 R pullup = 1k.png
--------------------------------------------------------------------------------
/experiment2/Zero crossing pulse length FFT, R input = 32k8 R pullup = 47k.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment2/Zero crossing pulse length FFT, R input = 32k8 R pullup = 47k.png
--------------------------------------------------------------------------------
/experiment3/Zero crossing pulse length FFT, R input = 16k4 R pullup = 1k.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment3/Zero crossing pulse length FFT, R input = 16k4 R pullup = 1k.png
--------------------------------------------------------------------------------
/experiment3/Zero crossing pulse length FFT, R input = 32k8 R pullup = 10k.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment3/Zero crossing pulse length FFT, R input = 32k8 R pullup = 10k.png
--------------------------------------------------------------------------------
/experiment4/Zero crossing pulse length FFT, R input = 16k4 R pullup = 10k.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment4/Zero crossing pulse length FFT, R input = 16k4 R pullup = 10k.png
--------------------------------------------------------------------------------
/experiment5/Zero crossing pulse length FFT, R input = 16k4 R pullup = 1k.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment5/Zero crossing pulse length FFT, R input = 16k4 R pullup = 1k.png
--------------------------------------------------------------------------------
/experiment6/Zero crossing pulse length FFT, R input = 16k4 R pullup = 10k.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment6/Zero crossing pulse length FFT, R input = 16k4 R pullup = 10k.png
--------------------------------------------------------------------------------
/experiment6/Zero crossing pulse length FFT, R input = 16k4 R pullup = 1k.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment6/Zero crossing pulse length FFT, R input = 16k4 R pullup = 1k.png
--------------------------------------------------------------------------------
/experiment2/Pulse length differeces for adjacent pulses, R input = 16k4 R pullup = 1k.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment2/Pulse length differeces for adjacent pulses, R input = 16k4 R pullup = 1k.png
--------------------------------------------------------------------------------
/experiment2/Pulse length differeces for adjacent pulses, R input = 32k8 R pullup = 47k.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment2/Pulse length differeces for adjacent pulses, R input = 32k8 R pullup = 47k.png
--------------------------------------------------------------------------------
/experiment3/Pulse length differeces for adjacent pulses, R input = 16k4 R pullup = 1k.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment3/Pulse length differeces for adjacent pulses, R input = 16k4 R pullup = 1k.png
--------------------------------------------------------------------------------
/experiment3/Pulse length differeces for adjacent pulses, R input = 32k8 R pullup = 10k.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment3/Pulse length differeces for adjacent pulses, R input = 32k8 R pullup = 10k.png
--------------------------------------------------------------------------------
/experiment4/Pulse length differeces for adjacent pulses, R input = 16k4 R pullup = 10k.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment4/Pulse length differeces for adjacent pulses, R input = 16k4 R pullup = 10k.png
--------------------------------------------------------------------------------
/experiment5/Pulse length differeces for adjacent pulses, R input = 16k4 R pullup = 1k.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment5/Pulse length differeces for adjacent pulses, R input = 16k4 R pullup = 1k.png
--------------------------------------------------------------------------------
/experiment6/Pulse length differeces for adjacent pulses, R input = 16k4 R pullup = 10k.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment6/Pulse length differeces for adjacent pulses, R input = 16k4 R pullup = 10k.png
--------------------------------------------------------------------------------
/experiment6/Pulse length differeces for adjacent pulses, R input = 16k4 R pullup = 1k.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Miceuz/triac-bloc/HEAD/experiment6/Pulse length differeces for adjacent pulses, R input = 16k4 R pullup = 1k.png
--------------------------------------------------------------------------------
/gerbers/ssr-NPTH.drl:
--------------------------------------------------------------------------------
1 | M48
2 | ;DRILL file {Pcbnew (2013-mar-13)-testing} date Tue 07 May 2013 10:03:13 PM CEST
3 | ;FORMAT={-:-/ absolute / metric / decimal}
4 | FMAT,2
5 | METRIC,TZ
6 | T1C3.000
7 | %
8 | G90
9 | G05
10 | M71
11 | T1
12 | X106.045Y-73.025
13 | X106.045Y-135.255
14 | X191.135Y-135.255
15 | X191.77Y-72.39
16 | T0
17 | M30
18 |
--------------------------------------------------------------------------------
/gerbers/ssr-Edge_Cuts.gbr:
--------------------------------------------------------------------------------
1 | G04 (created by PCBNEW (2013-mar-13)-testing) date Tue 07 May 2013 10:03:09 PM CEST*
2 | %MOIN*%
3 | G04 Gerber Fmt 3.4, Leading zero omitted, Abs format*
4 | %FSLAX34Y34*%
5 | G01*
6 | G70*
7 | G90*
8 | G04 APERTURE LIST*
9 | %ADD10C,2.3622e-06*%
10 | %ADD11C,0.0059*%
11 | G04 APERTURE END LIST*
12 | G54D10*
13 | G54D11*
14 | X39250Y-25750D02*
15 | X39250Y-26250D01*
16 | X61750Y-25750D02*
17 | X39250Y-25750D01*
18 | X39250Y-55750D02*
19 | X39250Y-52250D01*
20 | X78250Y-55750D02*
21 | X39250Y-55750D01*
22 | X78250Y-25750D02*
23 | X78250Y-55750D01*
24 | X61750Y-25750D02*
25 | X78250Y-25750D01*
26 | X39250Y-26250D02*
27 | X39250Y-52250D01*
28 | M02*
29 |
--------------------------------------------------------------------------------
/gerbers/ssr-drl.rpt:
--------------------------------------------------------------------------------
1 | Drill report for /home/miceuz/Xaltura/SSR/ssr.kicad_pcb
2 | Created on Tue 07 May 2013 10:03:17 PM CEST
3 | Drill report for plated through holes :
4 | T1 0.51mm 0.020" (21 holes)
5 | T2 0.81mm 0.032" (6 holes)
6 | T3 0.91mm 0.036" (2 holes)
7 | T4 1.00mm 0.039" (6 holes)
8 | T5 1.00mm 0.039" (10 holes)
9 | T6 1.02mm 0.040" (23 holes)
10 | T7 1.20mm 0.047" (2 holes)
11 | T8 1.40mm 0.055" (3 holes)
12 | T9 1.78mm 0.070" (4 holes)
13 | T10 2.00mm 0.079" (2 holes)
14 | T11 6.00mm 0.236" (3 holes)
15 |
16 | Total plated holes count 82
17 |
18 |
19 | Drill report for unplated through holes :
20 | T1 3.00mm 0.118" (4 holes)
21 |
22 | Total unplated holes count 4
23 |
24 |
25 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | triac-bloc
2 | ==========
3 |
4 | A universal power block based on triac. In essence this is a high power solid state relay augmented with some bells and whistles.
5 |
6 | 
7 |
8 | Bells and whistles:
9 |
10 | * Attiyny44 MCU on board
11 | * I2C interface
12 | * maximum power - 6kW
13 | * zero crossing detection
14 | * controllable via I2C protocol
15 | * phase shift dimmer mode
16 | * linear output power control
17 | * switch at zero-crossing mode
18 | * output filtering for dimmer mode
19 | * snubber network
20 | * “low level” zero-crossing signal output
21 | * “low level” triac trigger signal input
22 | * 4 spare MCU pins available for additional features
23 | * open source hardware and firmware
24 |
25 | More info available at: http://wemakethings.net/2013/10/27/triac-bloc/
26 |
--------------------------------------------------------------------------------
/firmware/.settings/de.innot.avreclipse.core.prefs:
--------------------------------------------------------------------------------
1 | avrtarget/ClockFrequency=8000000
2 | avrtarget/ExtRAMSize=0
3 | avrtarget/ExtendedRAM=false
4 | avrtarget/MCUType=attiny44
5 | avrtarget/UseEEPROM=false
6 | avrtarget/UseExtendedRAMforHeap=true
7 | avrtarget/avrdude/BitBangDelay=
8 | avrtarget/avrdude/Bitclock=
9 | avrtarget/avrdude/EEPROMFile=
10 | avrtarget/avrdude/EEPROMFromConfig=true
11 | avrtarget/avrdude/FlashFile=
12 | avrtarget/avrdude/FlashFromConfig=true
13 | avrtarget/avrdude/NoChipErase=false
14 | avrtarget/avrdude/NoSigCheck=false
15 | avrtarget/avrdude/NoVerify=false
16 | avrtarget/avrdude/NoWrite=false
17 | avrtarget/avrdude/OtherOptions=
18 | avrtarget/avrdude/ProgrammerID=programmerconfig.1
19 | avrtarget/avrdude/UseCounter=false
20 | avrtarget/avrdude/WriteEEPROM=false
21 | avrtarget/avrdude/WriteFlash=true
22 | avrtarget/perConfig=false
23 | eclipse.preferences.version=1
24 |
--------------------------------------------------------------------------------
/firmware/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | SSR
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder
10 | clean,full,incremental,
11 |
12 |
13 |
14 |
15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
16 | full,incremental,
17 |
18 |
19 |
20 |
21 |
22 | org.eclipse.cdt.core.cnature
23 | de.innot.avreclipse.core.avrnature
24 | org.eclipse.cdt.managedbuilder.core.managedBuildNature
25 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
26 |
27 |
28 |
--------------------------------------------------------------------------------
/controller-atmega8/screw-term2pin.mod:
--------------------------------------------------------------------------------
1 | PCBNEW-LibModule-V1 Mon 22 Jul 2013 08:09:15 PM EEST
2 | # encoding utf-8
3 | Units mm
4 | $INDEX
5 | conn35
6 | $EndINDEX
7 | $MODULE conn35
8 | Po 0 0 0 15 51CE9A8D 00000000 ~~
9 | Li conn35
10 | Cd Bornier d'alimentation 2 pins
11 | Kw DEV
12 | Sc 0
13 | AR /51343255
14 | Op 0 0 0
15 | T0 -5.588 5.842 1.524 1.524 0 0.3048 N V 21 N ""
16 | T1 0.29972 5.4991 1.524 1.524 0 0.3048 N V 21 N ""
17 | DS 3.50012 2.54 -3.50012 2.54 0.3048 21
18 | DS 3.50012 4.0005 3.50012 -2.99974 0.3048 21
19 | DS 3.50012 -2.99974 -3.50012 -2.99974 0.3048 21
20 | DS -3.50012 -2.99974 -3.50012 4.0005 0.3048 21
21 | DS -3.50012 4.0005 3.50012 4.0005 0.3048 21
22 | $PAD
23 | Sh "1" R 2.54 2.54 0 0 0
24 | Dr 1.22428 0 0
25 | At STD N 00E0FFFF
26 | Ne 2 "/VIN"
27 | Po -1.75006 0
28 | $EndPAD
29 | $PAD
30 | Sh "2" C 2.54 2.54 0 0 0
31 | Dr 1.22428 0 0
32 | At STD N 00E0FFFF
33 | Ne 1 "/A"
34 | Po 1.75006 0
35 | $EndPAD
36 | $EndMODULE conn35
37 | $EndLIBRARY
38 |
--------------------------------------------------------------------------------
/power-resistor.mod:
--------------------------------------------------------------------------------
1 | PCBNEW-LibModule-V1 Sat 04 May 2013 10:37:49 AM CEST
2 | # encoding utf-8
3 | Units mm
4 | $INDEX
5 | Resistor_Horizontal_RM30mm
6 | $EndINDEX
7 | $MODULE Resistor_Horizontal_RM30mm
8 | Po 0 0 0 15 5184C87F 00000000 ~~
9 | Li Resistor_Horizontal_RM30mm
10 | Cd Resistor, Axial, RM 30mm,
11 | Kw Resistor, Axial, RM 30mm,
12 | Sc 0
13 | AR /511F812E
14 | Op 0 0 0
15 | T0 40.005 3.175 1.00076 1.00076 0 0.14986 N V 21 N "R5"
16 | T1 13.97 8.89 1.50114 1.50114 0 0.20066 N I 21 N "8.2k 5W"
17 | DS 3.556 0 1.524 0 0.381 21
18 | DS 36.92398 0 38.44798 0 0.381 21
19 | DS 3.81 -3.5 36.66998 -3.5 0.381 21
20 | DS 36.66998 -3.5 36.66998 3.5 0.381 21
21 | DS 36.66998 3.5 3.81 3.5 0.381 21
22 | DS 3.81 3.5 3.81 -3.5 0.381 21
23 | $PAD
24 | Sh "1" C 1.99898 1.99898 0 0 0
25 | Dr 1.00076 0 0
26 | At STD N 00C0FFFF
27 | Ne 2 "N-000006"
28 | Po 0 0
29 | $EndPAD
30 | $PAD
31 | Sh "2" C 2.30124 2.30124 0 0 0
32 | Dr 1.19888 0 0
33 | At STD N 00C0FFFF
34 | Ne 1 "/NEUTRAL"
35 | Po 39.99992 0
36 | $EndPAD
37 | $EndMODULE Resistor_Horizontal_RM30mm
38 | $EndLIBRARY
39 |
--------------------------------------------------------------------------------
/controller-atmega8/conn35.kicad_mod:
--------------------------------------------------------------------------------
1 | (module conn35 (layer F.Cu)
2 | (at 0 0)
3 | (descr "Bornier d'alimentation 2 pins")
4 | (tags DEV)
5 | (path /51343255)
6 | (fp_text reference "" (at -5.588 5.842) (layer F.SilkS)
7 | (effects (font (thickness 0.3048)))
8 | )
9 | (fp_text value "" (at 0.29972 5.4991) (layer F.SilkS)
10 | (effects (font (thickness 0.3048)))
11 | )
12 | (fp_line (start 3.50012 2.54) (end -3.50012 2.54) (layer F.SilkS) (width 0.3048))
13 | (fp_line (start 3.50012 4.0005) (end 3.50012 -2.99974) (layer F.SilkS) (width 0.3048))
14 | (fp_line (start 3.50012 -2.99974) (end -3.50012 -2.99974) (layer F.SilkS) (width 0.3048))
15 | (fp_line (start -3.50012 -2.99974) (end -3.50012 4.0005) (layer F.SilkS) (width 0.3048))
16 | (fp_line (start -3.50012 4.0005) (end 3.50012 4.0005) (layer F.SilkS) (width 0.3048))
17 | (pad 1 thru_hole rect (at -1.75006 0) (size 2.54 2.54) (drill 1.22428)
18 | (layers *.Cu *.Mask F.SilkS)
19 | )
20 | (pad 2 thru_hole circle (at 1.75006 0) (size 2.54 2.54) (drill 1.22428)
21 | (layers *.Cu *.Mask F.SilkS)
22 | )
23 | )
24 |
--------------------------------------------------------------------------------
/Resistor_Horizontal_RM30mm.kicad_mod:
--------------------------------------------------------------------------------
1 | (module Resistor_Horizontal_RM30mm (layer F.Cu)
2 | (at 0 0)
3 | (descr "Resistor, Axial, RM 30mm,")
4 | (tags "Resistor, Axial, RM 30mm,")
5 | (path /511F812E)
6 | (fp_text reference R5 (at 40.005 3.175) (layer F.SilkS)
7 | (effects (font (size 1.00076 1.00076) (thickness 0.14986)))
8 | )
9 | (fp_text value "8.2k 5W" (at 13.97 8.89) (layer F.SilkS) hide
10 | (effects (font (size 1.50114 1.50114) (thickness 0.20066)))
11 | )
12 | (fp_line (start 3.556 0) (end 1.524 0) (layer F.SilkS) (width 0.381))
13 | (fp_line (start 36.92398 0) (end 38.44798 0) (layer F.SilkS) (width 0.381))
14 | (fp_line (start 3.81 -3.5) (end 36.66998 -3.5) (layer F.SilkS) (width 0.381))
15 | (fp_line (start 36.66998 -3.5) (end 36.66998 3.5) (layer F.SilkS) (width 0.381))
16 | (fp_line (start 36.66998 3.5) (end 3.81 3.5) (layer F.SilkS) (width 0.381))
17 | (fp_line (start 3.81 3.5) (end 3.81 -3.5) (layer F.SilkS) (width 0.381))
18 | (pad 1 thru_hole circle (at 0 0) (size 1.99898 1.99898) (drill 1.00076)
19 | (layers *.Cu *.Mask)
20 | )
21 | (pad 2 thru_hole circle (at 39.99992 0) (size 2.30124 2.30124) (drill 1.19888)
22 | (layers *.Cu *.Mask)
23 | )
24 | )
25 |
--------------------------------------------------------------------------------
/controller-atmega8/p82b96.lib:
--------------------------------------------------------------------------------
1 | EESchema-LIBRARY Version 2.3 Date: Thu 09 May 2013 04:18:09 PM CEST
2 | #encoding utf-8
3 | #
4 | # P82B96
5 | #
6 | DEF P82B96 U 0 40 Y Y 1 F N
7 | F0 "U" 300 -500 60 H V C CNN
8 | F1 "P82B96" 400 500 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 -550 450 600 -450 0 1 0 N
13 | P 2 0 1 0 -100 -100 -250 -100 N
14 | P 2 0 1 0 -100 300 -250 300 N
15 | P 2 0 1 0 100 -300 300 -300 N
16 | P 2 0 1 0 100 -100 300 -100 N
17 | P 2 0 1 0 100 100 300 100 N
18 | P 2 0 1 0 100 300 300 300 N
19 | P 3 0 1 0 -150 -100 -150 -300 -100 -300 N
20 | P 3 0 1 0 -150 300 -150 100 -100 100 N
21 | P 4 0 1 0 100 -200 100 -400 -100 -300 100 -200 N
22 | P 4 0 1 0 100 200 100 0 -100 100 100 200 N
23 | P 5 0 1 0 -100 -50 -100 -200 100 -100 -100 0 -100 -50 N
24 | P 5 0 1 0 -100 350 -100 200 100 300 -100 400 -100 350 N
25 | X Sx(SDA) 1 -850 300 300 R 50 50 1 1 I
26 | X Rx(RxD,SDA 2 900 100 300 L 50 50 1 1 I
27 | X Tx(TxD,SDA) 3 900 300 300 L 50 50 1 1 I
28 | X GND 4 0 -750 300 U 50 50 1 1 W
29 | X Ty(TxD,SCL) 5 900 -100 300 L 50 50 1 1 I
30 | X Ry(RxD,SCL) 6 900 -300 300 L 50 50 1 1 I
31 | X Sy(SCL) 7 -850 -100 300 R 50 50 1 1 I
32 | X VCC 8 0 750 300 D 50 50 1 1 W
33 | ENDDRAW
34 | ENDDEF
35 | #
36 | #End Library
37 |
--------------------------------------------------------------------------------
/controller-attiny1634/p82b96.lib:
--------------------------------------------------------------------------------
1 | EESchema-LIBRARY Version 2.3 Date: Thu 09 May 2013 04:18:09 PM CEST
2 | #encoding utf-8
3 | #
4 | # P82B96
5 | #
6 | DEF P82B96 U 0 40 Y Y 1 F N
7 | F0 "U" 300 -500 60 H V C CNN
8 | F1 "P82B96" 400 500 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 -550 450 600 -450 0 1 0 N
13 | P 2 0 1 0 -100 -100 -250 -100 N
14 | P 2 0 1 0 -100 300 -250 300 N
15 | P 2 0 1 0 100 -300 300 -300 N
16 | P 2 0 1 0 100 -100 300 -100 N
17 | P 2 0 1 0 100 100 300 100 N
18 | P 2 0 1 0 100 300 300 300 N
19 | P 3 0 1 0 -150 -100 -150 -300 -100 -300 N
20 | P 3 0 1 0 -150 300 -150 100 -100 100 N
21 | P 4 0 1 0 100 -200 100 -400 -100 -300 100 -200 N
22 | P 4 0 1 0 100 200 100 0 -100 100 100 200 N
23 | P 5 0 1 0 -100 -50 -100 -200 100 -100 -100 0 -100 -50 N
24 | P 5 0 1 0 -100 350 -100 200 100 300 -100 400 -100 350 N
25 | X Sx(SDA) 1 -850 300 300 R 50 50 1 1 I
26 | X Rx(RxD,SDA 2 900 100 300 L 50 50 1 1 I
27 | X Tx(TxD,SDA) 3 900 300 300 L 50 50 1 1 I
28 | X GND 4 0 -750 300 U 50 50 1 1 W
29 | X Ty(TxD,SCL) 5 900 -100 300 L 50 50 1 1 I
30 | X Ry(RxD,SCL) 6 900 -300 300 L 50 50 1 1 I
31 | X Sy(SCL) 7 -850 -100 300 R 50 50 1 1 I
32 | X VCC 8 0 750 300 D 50 50 1 1 W
33 | ENDDRAW
34 | ENDDEF
35 | #
36 | #End Library
37 |
--------------------------------------------------------------------------------
/experiment6/zc-pulse-length-piez.py:
--------------------------------------------------------------------------------
1 | import math
2 | import sys
3 | import matplotlib.pyplot as plt
4 | from matplotlib.ticker import MultipleLocator
5 | import numpy as np
6 | import numpy.fft as ff
7 | import scipy.signal as signal
8 | import scipy as scipy
9 |
10 | def differential(x):
11 | ret = []
12 | for i in range(0, x.shape[0]-1):
13 | if i < x.shape[0]-1:
14 | ret.append(x[i+1] - x[i])
15 | else:
16 | ret.append(x[i])
17 | return np.array(ret)
18 |
19 | def magnitude(x):
20 | ret = []
21 | for sample in x:
22 | ret.append(math.sqrt(sample.real**2 + sample.imag**2))
23 | return np.array(ret)
24 |
25 | x = np.loadtxt("piez")
26 | N = x.shape[0]
27 |
28 | #plt.plot(range(0, N-1), diff+np.mean(x), color="grey")
29 | xvals = np.arange(0, x.shape[0], 1)
30 | plt.plot(xvals, x, color="grey")
31 | #plt.plot(xvals, x[:,1]/16, color="green")
32 | #plt.plot(xvals, x[:,2]/16, color="red")
33 | plt.xlabel("Time, s")
34 | plt.ylabel("Pulse length, us")
35 | plt.title("Zero crossing pulse length, R input = 16.4k R pullup = 10k")
36 | plt.figure()
37 |
38 | xvals = np.arange(0.0, N/2+1, 1)
39 | xvals = xvals/np.max(xvals)*50
40 | plt.plot(xvals, signal.medfilt(
41 | 20*scipy.log10(
42 | abs(
43 | ff.rfft(
44 | (x) / np.max(x)
45 | )
46 | )
47 | ),15) )
48 | plt.xlabel("Hz")
49 | plt.ylabel("Magnitude, db")
50 | plt.title("Zero crossing pulse length FFT, R input = 16.4k R pullup = 10k")
51 | plt.show()
52 |
53 |
--------------------------------------------------------------------------------
/experiment2/period-length.py:
--------------------------------------------------------------------------------
1 | import math
2 | import sys
3 | import matplotlib.pyplot as plt
4 | from matplotlib.ticker import MultipleLocator
5 | import numpy as np
6 | import numpy.fft as ff
7 | import scipy.signal as signal
8 | import scipy as scipy
9 |
10 | def differential(x):
11 | ret = []
12 | for i in range(0, x.shape[0]-1):
13 | if i < x.shape[0]-1:
14 | ret.append(x[i+1] - x[i])
15 | else:
16 | ret.append(x[i])
17 | return np.array(ret)
18 |
19 | def magnitude(x):
20 | ret = []
21 | for sample in x:
22 | ret.append(math.sqrt(sample.real**2 + sample.imag**2))
23 | return np.array(ret)
24 |
25 | x = np.loadtxt("period-length-filtered", delimiter=",")
26 | N = x.shape[0]
27 | scatter = np.max(x) - np.min(x)
28 | diff = differential(x[:,0])
29 | print "min ", np.min(x[:,0]), " ", np.min(x[:,0])*8/16e6, "s"
30 | print "max ", np.max(x[:,0]), " ", np.max(x[:,0])*8/16e6, "s"
31 | print "scater ", scatter, " ", scatter*8/16e6, "s"
32 | print "max differential ", np.max(diff), " ", np.max(diff)*8/16e6, "s"
33 | print "min differential ", np.min(diff), " ", np.min(diff)*8/16e6, "s"
34 | print "min differential abs ", np.min(np.abs(diff)), " ", np.min(np.abs(diff))*8/16e6, "s"
35 | print "differential abs median ", np.median(np.abs(diff)), " ", np.median(np.abs(diff))*8/16e6, "s"
36 | print "mean ", np.mean(x[:,0]), " ", np.mean(x[:,0])*8/16e6, "s"
37 | print "median ", np.median(x[:,0]), " ", np.median(x[:,0])*8/16e6, "s"
38 |
39 | #plt.plot(range(0, N-1), diff+np.mean(x[:,0]), color="grey")
40 | plt.plot(range(0, N), x[:,0], color="red")
41 | plt.plot(range(0, N), x[:,1], color="green")
42 | plt.plot(range(0, N), x[:,2], color="red")
43 | #plt.plot(range(0, N/2+1), signal.medfilt(20*scipy.log10(abs(ff.rfft(x))),355) )
44 |
45 | plt.show()
46 |
47 |
--------------------------------------------------------------------------------
/experiment3/period-length.py:
--------------------------------------------------------------------------------
1 | import math
2 | import sys
3 | import matplotlib.pyplot as plt
4 | from matplotlib.ticker import MultipleLocator
5 | import numpy as np
6 | import numpy.fft as ff
7 | import scipy.signal as signal
8 | import scipy as scipy
9 |
10 | def differential(x):
11 | ret = []
12 | for i in range(0, x.shape[0]-1):
13 | if i < x.shape[0]-1:
14 | ret.append(x[i+1] - x[i])
15 | else:
16 | ret.append(x[i])
17 | return np.array(ret)
18 |
19 | def magnitude(x):
20 | ret = []
21 | for sample in x:
22 | ret.append(math.sqrt(sample.real**2 + sample.imag**2))
23 | return np.array(ret)
24 |
25 | x = np.loadtxt("period-length-filtered", delimiter=",")
26 | N = x.shape[0]
27 | scatter = np.max(x) - np.min(x)
28 | diff = differential(x[:,0])
29 | print "min ", np.min(x[:,0]), " ", np.min(x[:,0])*8/16e6, "s"
30 | print "max ", np.max(x[:,0]), " ", np.max(x[:,0])*8/16e6, "s"
31 | print "scater ", scatter, " ", scatter*8/16e6, "s"
32 | print "max differential ", np.max(diff), " ", np.max(diff)*8/16e6, "s"
33 | print "min differential ", np.min(diff), " ", np.min(diff)*8/16e6, "s"
34 | print "min differential abs ", np.min(np.abs(diff)), " ", np.min(np.abs(diff))*8/16e6, "s"
35 | print "differential abs median ", np.median(np.abs(diff)), " ", np.median(np.abs(diff))*8/16e6, "s"
36 | print "mean ", np.mean(x[:,0]), " ", np.mean(x[:,0])*8/16e6, "s"
37 | print "median ", np.median(x[:,0]), " ", np.median(x[:,0])*8/16e6, "s"
38 |
39 | #plt.plot(range(0, N-1), diff+np.mean(x[:,0]), color="grey")
40 | plt.plot(range(0, N), x[:,0], color="grey")
41 | plt.plot(range(0, N), x[:,1], color="green")
42 | plt.plot(range(0, N), x[:,2], color="red")
43 | #plt.plot(range(0, N/2+1), signal.medfilt(20*scipy.log10(abs(ff.rfft(x))),355) )
44 |
45 | plt.show()
46 |
47 |
--------------------------------------------------------------------------------
/experiment5/period-length.py:
--------------------------------------------------------------------------------
1 | import math
2 | import sys
3 | import matplotlib.pyplot as plt
4 | from matplotlib.ticker import MultipleLocator
5 | import numpy as np
6 | import numpy.fft as ff
7 | import scipy.signal as signal
8 | import scipy as scipy
9 |
10 | def differential(x):
11 | ret = []
12 | for i in range(0, x.shape[0]-1):
13 | if i < x.shape[0]-1:
14 | ret.append(x[i+1] - x[i])
15 | else:
16 | ret.append(x[i])
17 | return np.array(ret)
18 |
19 | def magnitude(x):
20 | ret = []
21 | for sample in x:
22 | ret.append(math.sqrt(sample.real**2 + sample.imag**2))
23 | return np.array(ret)
24 |
25 | x = np.loadtxt("period-length-filtered", delimiter=",")
26 | N = x.shape[0]
27 | scatter = np.max(x) - np.min(x)
28 | diff = differential(x[:,0])
29 | print "min ", np.min(x[:,0]), " ", np.min(x[:,0])*8/16e6, "s"
30 | print "max ", np.max(x[:,0]), " ", np.max(x[:,0])*8/16e6, "s"
31 | print "scater ", scatter, " ", scatter*8/16e6, "s"
32 | print "max differential ", np.max(diff), " ", np.max(diff)*8/16e6, "s"
33 | print "min differential ", np.min(diff), " ", np.min(diff)*8/16e6, "s"
34 | print "min differential abs ", np.min(np.abs(diff)), " ", np.min(np.abs(diff))*8/16e6, "s"
35 | print "differential abs median ", np.median(np.abs(diff)), " ", np.median(np.abs(diff))*8/16e6, "s"
36 | print "mean ", np.mean(x[:,0]), " ", np.mean(x[:,0])*8/16e6, "s"
37 | print "median ", np.median(x[:,0]), " ", np.median(x[:,0])*8/16e6, "s"
38 |
39 | #plt.plot(range(0, N-1), diff+np.mean(x[:,0]), color="grey")
40 | plt.plot(range(0, N), x[:,0], color="grey")
41 | plt.plot(range(0, N), x[:,1], color="green")
42 | plt.plot(range(0, N), x[:,2], color="red")
43 | #plt.plot(range(0, N/2+1), signal.medfilt(20*scipy.log10(abs(ff.rfft(x))),355) )
44 |
45 | plt.show()
46 |
47 |
--------------------------------------------------------------------------------
/experiment6/period-length.py:
--------------------------------------------------------------------------------
1 | import math
2 | import sys
3 | import matplotlib.pyplot as plt
4 | from matplotlib.ticker import MultipleLocator
5 | import numpy as np
6 | import numpy.fft as ff
7 | import scipy.signal as signal
8 | import scipy as scipy
9 |
10 | def differential(x):
11 | ret = []
12 | for i in range(0, x.shape[0]-1):
13 | if i < x.shape[0]-1:
14 | ret.append(x[i+1] - x[i])
15 | else:
16 | ret.append(x[i])
17 | return np.array(ret)
18 |
19 | def magnitude(x):
20 | ret = []
21 | for sample in x:
22 | ret.append(math.sqrt(sample.real**2 + sample.imag**2))
23 | return np.array(ret)
24 |
25 | x = np.loadtxt("period-length-filtered", delimiter=",")
26 | N = x.shape[0]
27 | scatter = np.max(x) - np.min(x)
28 | diff = differential(x[:,0])
29 | print "min ", np.min(x[:,0]), " ", np.min(x[:,0])*8/16e6, "s"
30 | print "max ", np.max(x[:,0]), " ", np.max(x[:,0])*8/16e6, "s"
31 | print "scater ", scatter, " ", scatter*8/16e6, "s"
32 | print "max differential ", np.max(diff), " ", np.max(diff)*8/16e6, "s"
33 | print "min differential ", np.min(diff), " ", np.min(diff)*8/16e6, "s"
34 | print "min differential abs ", np.min(np.abs(diff)), " ", np.min(np.abs(diff))*8/16e6, "s"
35 | print "differential abs median ", np.median(np.abs(diff)), " ", np.median(np.abs(diff))*8/16e6, "s"
36 | print "mean ", np.mean(x[:,0]), " ", np.mean(x[:,0])*8/16e6, "s"
37 | print "median ", np.median(x[:,0]), " ", np.median(x[:,0])*8/16e6, "s"
38 |
39 | #plt.plot(range(0, N-1), diff+np.mean(x[:,0]), color="grey")
40 | plt.plot(range(0, N), x[:,0], color="grey")
41 | plt.plot(range(0, N), x[:,1], color="green")
42 | plt.plot(range(0, N), x[:,2], color="red")
43 | #plt.plot(range(0, N/2+1), signal.medfilt(20*scipy.log10(abs(ff.rfft(x))),355) )
44 |
45 | plt.show()
46 |
47 |
--------------------------------------------------------------------------------
/experiment4/period-length.py:
--------------------------------------------------------------------------------
1 | import math
2 | import sys
3 | import matplotlib.pyplot as plt
4 | from matplotlib.ticker import MultipleLocator
5 | import numpy as np
6 | import numpy.fft as ff
7 | import scipy.signal as signal
8 | import scipy as scipy
9 |
10 | def differential(x):
11 | ret = []
12 | for i in range(0, x.shape[0]-1):
13 | if i < x.shape[0]-1:
14 | ret.append(x[i+1] - x[i])
15 | else:
16 | ret.append(x[i])
17 | return np.array(ret)
18 |
19 | def magnitude(x):
20 | ret = []
21 | for sample in x:
22 | ret.append(math.sqrt(sample.real**2 + sample.imag**2))
23 | return np.array(ret)
24 |
25 | x = np.loadtxt("period-length-filtered", delimiter=",")
26 | N = x.shape[0]
27 | scatter = np.max(x) - np.min(x)
28 | diff = differential(x[:,0])
29 | print "min ", np.min(x[:,0]), " ", np.min(x[:,0])*8/16e6, "s"
30 | print "max ", np.max(x[:,0]), " ", np.max(x[:,0])*8/16e6, "s"
31 | print "scater ", scatter, " ", scatter*8/16e6, "s"
32 | print "max differential ", np.max(diff), " ", np.max(diff)*8/16e6, "s"
33 | print "min differential ", np.min(diff), " ", np.min(diff)*8/16e6, "s"
34 | print "min differential abs ", np.min(np.abs(diff)), " ", np.min(np.abs(diff))*8/16e6, "s"
35 | print "differential abs median ", np.median(np.abs(diff)), " ", np.median(np.abs(diff))*8/16e6, "s"
36 | print "differential abs mean ", np.mean(np.abs(diff)), " ", np.mean(np.abs(diff))*8/16e6, "s"
37 | print "mean ", np.mean(x[:,0]), " ", np.mean(x[:,0])*8/16e6, "s"
38 | print "median ", np.median(x[:,0]), " ", np.median(x[:,0])*8/16e6, "s"
39 |
40 | #plt.plot(range(0, N-1), diff+np.mean(x[:,0]), color="grey")
41 | plt.plot(range(0, N), x[:,0], color="grey")
42 | plt.plot(range(0, N), x[:,1], color="green")
43 | plt.plot(range(0, N), x[:,2], color="red")
44 | #plt.plot(range(0, N/2+1), signal.medfilt(20*scipy.log10(abs(ff.rfft(x))),355) )
45 |
46 | plt.show()
47 |
48 |
--------------------------------------------------------------------------------
/controller-atmega8/controller.pro:
--------------------------------------------------------------------------------
1 | update=Mon 22 Jul 2013 08:15:17 PM EEST
2 | version=1
3 | last_client=pcbnew
4 | [eeschema]
5 | version=1
6 | LibDir=
7 | NetFmtName=
8 | RptD_X=0
9 | RptD_Y=100
10 | RptLab=1
11 | LabSize=60
12 | [eeschema/libraries]
13 | LibName1=power
14 | LibName2=device
15 | LibName3=transistors
16 | LibName4=conn
17 | LibName5=linear
18 | LibName6=regul
19 | LibName7=74xx
20 | LibName8=cmos4000
21 | LibName9=adc-dac
22 | LibName10=memory
23 | LibName11=xilinx
24 | LibName12=special
25 | LibName13=microcontrollers
26 | LibName14=dsp
27 | LibName15=microchip
28 | LibName16=analog_switches
29 | LibName17=motorola
30 | LibName18=texas
31 | LibName19=intel
32 | LibName20=audio
33 | LibName21=interface
34 | LibName22=digital-audio
35 | LibName23=philips
36 | LibName24=display
37 | LibName25=cypress
38 | LibName26=siliconi
39 | LibName27=opto
40 | LibName28=atmel
41 | LibName29=contrib
42 | LibName30=valves
43 | LibName31=p82b96
44 | [general]
45 | version=1
46 | [cvpcb]
47 | version=1
48 | NetIExt=net
49 | [cvpcb/libraries]
50 | EquName1=devcms
51 | [pcbnew]
52 | version=1
53 | LastNetListRead=controller.net
54 | UseCmpFile=1
55 | PadDrill=" 0.600000"
56 | PadDrillOvalY=" 0.600000"
57 | PadSizeH=" 1.500000"
58 | PadSizeV=" 1.500000"
59 | PcbTextSizeV=" 1.500000"
60 | PcbTextSizeH=" 1.500000"
61 | PcbTextThickness=" 0.300000"
62 | ModuleTextSizeV=" 1.000000"
63 | ModuleTextSizeH=" 1.000000"
64 | ModuleTextSizeThickness=" 0.150000"
65 | SolderMaskClearance=" 0.000000"
66 | SolderMaskMinWidth=" 0.000000"
67 | DrawSegmentWidth=" 0.200000"
68 | BoardOutlineThickness=" 0.100000"
69 | ModuleOutlineThickness=" 0.150000"
70 | [pcbnew/libraries]
71 | LibDir=
72 | LibName1=sockets
73 | LibName2=connect
74 | LibName3=discret
75 | LibName4=pin_array
76 | LibName5=divers
77 | LibName6=smd_capacitors
78 | LibName7=smd_resistors
79 | LibName8=smd_crystal&oscillator
80 | LibName9=smd_transistors
81 | LibName10=libcms
82 | LibName11=display
83 | LibName12=led
84 | LibName13=dip_sockets
85 | LibName14=pga_sockets
86 | LibName15=valves
87 | LibName16=screw-term2pin
88 |
--------------------------------------------------------------------------------
/controller-attiny1634/controller.pro:
--------------------------------------------------------------------------------
1 | update=Thu 16 May 2013 08:29:32 AM CEST
2 | version=1
3 | last_client=kicad
4 | [pcbnew]
5 | version=1
6 | LastNetListRead=
7 | UseCmpFile=1
8 | PadDrill=0.600000000000
9 | PadDrillOvalY=0.600000000000
10 | PadSizeH=1.500000000000
11 | PadSizeV=1.500000000000
12 | PcbTextSizeV=1.500000000000
13 | PcbTextSizeH=1.500000000000
14 | PcbTextThickness=0.300000000000
15 | ModuleTextSizeV=1.000000000000
16 | ModuleTextSizeH=1.000000000000
17 | ModuleTextSizeThickness=0.150000000000
18 | SolderMaskClearance=0.000000000000
19 | SolderMaskMinWidth=0.000000000000
20 | DrawSegmentWidth=0.200000000000
21 | BoardOutlineThickness=0.100000000000
22 | ModuleOutlineThickness=0.150000000000
23 | [pcbnew/libraries]
24 | LibName1=sockets
25 | LibName2=connect
26 | LibName3=discret
27 | LibName4=pin_array
28 | LibName5=divers
29 | LibName6=smd_capacitors
30 | LibName7=smd_resistors
31 | LibName8=smd_crystal&oscillator
32 | LibName9=smd_dil
33 | LibName10=smd_transistors
34 | LibName11=libcms
35 | LibName12=display
36 | LibName13=led
37 | LibName14=dip_sockets
38 | LibName15=pga_sockets
39 | LibName16=valves
40 | LibName17=switch-tact
41 | LibDir=
42 | [eeschema]
43 | version=1
44 | LibDir=
45 | NetFmtName=
46 | RptD_X=0
47 | RptD_Y=100
48 | RptLab=1
49 | LabSize=60
50 | [eeschema/libraries]
51 | LibName1=power
52 | LibName2=device
53 | LibName3=transistors
54 | LibName4=conn
55 | LibName5=linear
56 | LibName6=regul
57 | LibName7=74xx
58 | LibName8=cmos4000
59 | LibName9=adc-dac
60 | LibName10=memory
61 | LibName11=xilinx
62 | LibName12=special
63 | LibName13=microcontrollers
64 | LibName14=dsp
65 | LibName15=microchip
66 | LibName16=analog_switches
67 | LibName17=motorola
68 | LibName18=texas
69 | LibName19=intel
70 | LibName20=audio
71 | LibName21=interface
72 | LibName22=digital-audio
73 | LibName23=philips
74 | LibName24=display
75 | LibName25=cypress
76 | LibName26=siliconi
77 | LibName27=opto
78 | LibName28=atmel
79 | LibName29=contrib
80 | LibName30=valves
81 | LibName31=p82b96
82 | [cvpcb]
83 | version=1
84 | NetIExt=net
85 | [cvpcb/libraries]
86 | EquName1=devcms
87 | [general]
88 | version=1
89 |
--------------------------------------------------------------------------------
/x-sinx.py:
--------------------------------------------------------------------------------
1 | #solving x - sin(x) = C, f(x) = C - 2x + sin(2x)
2 | #derivative f'(x) = -4sin^2(x)
3 | #x[n+1] = x[n] - f(x[n])/f'(x[n])
4 |
5 | import math
6 | import sys
7 | import matplotlib.pyplot as plt
8 | from matplotlib.ticker import MultipleLocator
9 | import numpy as np
10 |
11 | def guess(y):
12 | return y/2;
13 |
14 |
15 | def fderivative(x):
16 | return -4 * math.sin(x) * math.sin(x)
17 |
18 | #x + sin(x) = y
19 | def f(x, y):
20 | return 4 * y - 2 * x + math.sin(2 * x)
21 |
22 | def solveIteration(xPrevious, y):
23 | if 0 == fderivative(xPrevious):
24 | return xPrevious
25 | return xPrevious - f(xPrevious, y)/fderivative(xPrevious)
26 |
27 | def solve(y):
28 | x=math.pi/2;#guess(y)
29 | for i in range(0,100): # 100 iterations proves to be enough
30 | x = solveIteration(x, y)
31 |
32 | return x
33 |
34 |
35 | maxConductionAngle = 10000
36 | conductionAngles=range(maxConductionAngle)
37 |
38 | for i in range(0,maxConductionAngle):
39 | #print i, math.pi / 2 / maxConductionAngle * i, solve(math.pi / 2 / maxConductionAngle * i)
40 | conductionAngles[i]=solve(math.pi / 2 / (maxConductionAngle) * i);
41 |
42 | xvalues = np.arange(0.0, maxConductionAngle * 1.0, 1)
43 | xvalues = (xvalues/np.max(xvalues))*100
44 | #print xvalues
45 | #print xvalues.shape
46 | #print len(conductionAngles)
47 |
48 | table = np.arange(0, 256, 1)
49 | for i in range(0, 256):
50 | j = int(i * maxConductionAngle / 255.0)
51 | print i, j
52 | if j < 10000:
53 | table[i] = conductionAngles[j] / math.pi * 10000;
54 | else:
55 | table[i] = 10000;
56 |
57 | for i in range(0, 256):
58 | print table[i], ","
59 | # print "conductionAngles[" + str(i) + "] = " + str(table[i]) + ";"
60 |
61 | #print table;
62 |
63 | conductionAngles = np.array(conductionAngles)
64 |
65 | fig=plt.figure()
66 | ax = fig.add_subplot(111)
67 | ax.xaxis.set_minor_locator(MultipleLocator(10))
68 | ax.grid(True, which='both')
69 | plt.plot(xvalues, conductionAngles/math.pi*10000)
70 | plt.ylabel("conduction angle, degrees")
71 | plt.xlabel("power, %")
72 |
73 | plt.figure()
74 |
75 | plt.plot(range(0, table.shape[0]), table)
76 | plt.show()
77 |
78 |
79 |
--------------------------------------------------------------------------------
/ssr.pro:
--------------------------------------------------------------------------------
1 | update=Tue 07 May 2013 10:02:31 PM CEST
2 | version=1
3 | last_client=kicad
4 | [eeschema]
5 | version=1
6 | LibDir=
7 | NetFmtName=
8 | RptD_X=0
9 | RptD_Y=100
10 | RptLab=1
11 | LabSize=60
12 | [eeschema/libraries]
13 | LibName1=power
14 | LibName2=device
15 | LibName3=transistors
16 | LibName4=conn
17 | LibName5=linear
18 | LibName6=regul
19 | LibName7=74xx
20 | LibName8=cmos4000
21 | LibName9=adc-dac
22 | LibName10=memory
23 | LibName11=xilinx
24 | LibName12=special
25 | LibName13=microcontrollers
26 | LibName14=dsp
27 | LibName15=microchip
28 | LibName16=analog_switches
29 | LibName17=motorola
30 | LibName18=texas
31 | LibName19=intel
32 | LibName20=audio
33 | LibName21=interface
34 | LibName22=digital-audio
35 | LibName23=philips
36 | LibName24=display
37 | LibName25=cypress
38 | LibName26=siliconi
39 | LibName27=opto
40 | LibName28=atmel
41 | LibName29=contrib
42 | LibName30=valves
43 | [cvpcb]
44 | version=1
45 | NetIExt=net
46 | [cvpcb/libraries]
47 | EquName1=devcms
48 | [pcbnew]
49 | version=1
50 | LastNetListRead=ssr.net
51 | UseCmpFile=1
52 | PadDrill=" 0.000000"
53 | PadDrillOvalY=" 0.000000"
54 | PadSizeH=" 0.998220"
55 | PadSizeV=" 0.599440"
56 | PcbTextSizeV=" 1.501140"
57 | PcbTextSizeH=" 1.501140"
58 | PcbTextThickness=" 0.299720"
59 | ModuleTextSizeV=" 1.000760"
60 | ModuleTextSizeH=" 1.000760"
61 | ModuleTextSizeThickness=" 0.149860"
62 | SolderMaskClearance=" 0.000000"
63 | SolderMaskMinWidth=" 0.000000"
64 | DrawSegmentWidth=" 0.200660"
65 | BoardOutlineThickness=" 0.149860"
66 | ModuleOutlineThickness=" 0.149860"
67 | [pcbnew/libraries]
68 | LibDir=
69 | LibName1=connect
70 | LibName2=discret
71 | LibName3=Power-in
72 | LibName4=rc-master
73 | LibName5=resistor-ruf
74 | LibName6=inductor-nkl
75 | LibName7=bourns
76 | LibName8=contrib/Choke_Toroid_ThroughHole_RevA
77 | LibName9=contrib/Footprint-Symbols_RevA
78 | LibName10=contrib/Fuseholder_ThroughHole_RevB
79 | LibName11=contrib/Resistor_ThroughHole_RevA
80 | LibName12=optocoupler-2
81 | LibName13=optocoupler
82 | LibName14=varistor
83 | LibName15=ref-packages
84 | LibName16=diy_holes
85 | LibName17=atmel
86 | LibName18=diy_capacitors
87 | LibName19=ohw-logo
88 | LibName20=smd_capacitors
89 | LibName21=smd_resistors
90 | LibName22=libcms
91 | LibName23=power-resistor
92 | [general]
93 | version=1
94 |
--------------------------------------------------------------------------------
/gerbers/ssr.drl:
--------------------------------------------------------------------------------
1 | M48
2 | ;DRILL file {Pcbnew (2013-mar-13)-testing} date Tue 07 May 2013 10:03:13 PM CEST
3 | ;FORMAT={-:-/ absolute / metric / decimal}
4 | FMAT,2
5 | METRIC,TZ
6 | T1C0.508
7 | T2C0.813
8 | T3C0.914
9 | T4C0.998
10 | T5C1.001
11 | T6C1.016
12 | T7C1.199
13 | T8C1.397
14 | T9C1.778
15 | T10C1.999
16 | T11C5.999
17 | %
18 | G90
19 | G05
20 | M71
21 | T1
22 | X127.635Y-107.315
23 | X140.335Y-92.075
24 | X181.102Y-115.824
25 | X183.134Y-117.094
26 | X183.388Y-118.618
27 | X184.404Y-92.964
28 | X184.404Y-105.918
29 | X185.674Y-93.726
30 | X185.674Y-117.856
31 | X186.944Y-118.618
32 | X188.087Y-92.964
33 | X188.722Y-118.618
34 | X189.484Y-92.837
35 | X191.135Y-97.536
36 | X191.135Y-116.205
37 | X191.389Y-94.615
38 | X191.897Y-96.139
39 | X192.024Y-98.679
40 | X193.04Y-89.408
41 | X193.04Y-116.205
42 | X194.31Y-87.884
43 | T2
44 | X175.26Y-108.585
45 | X175.26Y-111.125
46 | X175.26Y-113.665
47 | X182.88Y-108.585
48 | X182.88Y-111.125
49 | X182.88Y-113.665
50 | T3
51 | X130.175Y-75.946
52 | X135.255Y-77.724
53 | T4
54 | X180.975Y-79.756
55 | X183.515Y-79.756
56 | X186.055Y-79.756
57 | X188.595Y-79.756
58 | X191.135Y-79.756
59 | X193.675Y-79.756
60 | T5
61 | X118.745Y-95.25
62 | X118.745Y-110.49
63 | X120.015Y-82.55
64 | X122.555Y-95.25
65 | X122.555Y-110.49
66 | X127.635Y-95.25
67 | X127.635Y-115.57
68 | X135.255Y-82.55
69 | X182.88Y-134.62
70 | X195.58Y-126.365
71 | T6
72 | X119.38Y-114.3
73 | X119.38Y-124.46
74 | X120.015Y-88.265
75 | X132.08Y-116.84
76 | X132.08Y-132.08
77 | X135.255Y-88.265
78 | X192.722Y-107.95
79 | X193.548Y-100.076
80 | X193.548Y-100.076
81 | X193.548Y-102.616
82 | X193.548Y-105.156
83 | X196.088Y-85.725
84 | X196.088Y-88.265
85 | X196.088Y-90.805
86 | X196.088Y-93.345
87 | X196.088Y-100.076
88 | X196.088Y-102.616
89 | X196.088Y-105.156
90 | X196.088Y-111.76
91 | X196.088Y-114.3
92 | X196.088Y-116.84
93 | X196.088Y-119.38
94 | X196.215Y-107.95
95 | T7
96 | X142.88Y-134.62
97 | X155.58Y-126.365
98 | T8
99 | X102.87Y-98.552
100 | X102.87Y-104.14
101 | X102.87Y-109.728
102 | T9
103 | X111.76Y-79.248
104 | X111.76Y-86.868
105 | X111.76Y-106.68
106 | X111.76Y-114.3
107 | T10
108 | X150.81Y-94.3
109 | X150.81Y-114.3
110 | T11
111 | X120.015Y-73.025
112 | X144.78Y-73.025
113 | X167.64Y-73.025
114 | T0
115 | M30
116 |
--------------------------------------------------------------------------------
/experiment1/step-response-accel10.csv:
--------------------------------------------------------------------------------
1 | 23.25
2 | 23.25
3 | 23.31
4 | 23.31
5 | 23.31
6 | 23.31
7 | 23.31
8 | 23.31
9 | 23.31
10 | 23.37
11 | 23.37
12 | 23.37
13 | 23.37
14 | 23.37
15 | 23.37
16 | 23.37
17 | 23.37
18 | 23.37
19 | 23.37
20 | 23.37
21 | 23.37
22 | 23.37
23 | 23.44
24 | 23.44
25 | 23.44
26 | 23.44
27 | 23.44
28 | 23.44
29 | 23.44
30 | 23.44
31 | 23.44
32 | 23.44
33 | 23.50
34 | 23.50
35 | 23.62
36 | 23.69
37 | 23.81
38 | 23.87
39 | 24.00
40 | 24.12
41 | 24.25
42 | 24.37
43 | 24.50
44 | 24.62
45 | 24.81
46 | 24.94
47 | 25.12
48 | 25.25
49 | 25.44
50 | 25.56
51 | 25.75
52 | 25.94
53 | 26.12
54 | 26.31
55 | 26.50
56 | 26.62
57 | 26.81
58 | 27.00
59 | 27.19
60 | 27.37
61 | 27.50
62 | 27.69
63 | 27.87
64 | 28.06
65 | 28.19
66 | 28.37
67 | 28.56
68 | 28.75
69 | 28.87
70 | 29.06
71 | 29.19
72 | 29.37
73 | 29.56
74 | 29.69
75 | 29.87
76 | 30.00
77 | 30.19
78 | 30.31
79 | 30.50
80 | 30.69
81 | 30.87
82 | 31.06
83 | 31.25
84 | 31.50
85 | 31.75
86 | 31.94
87 | 32.19
88 | 32.44
89 | 32.69
90 | 32.94
91 | 33.19
92 | 33.44
93 | 33.69
94 | 33.94
95 | 34.19
96 | 34.44
97 | 34.75
98 | 35.00
99 | 35.25
100 | 35.50
101 | 35.75
102 | 36.00
103 | 36.25
104 | 36.50
105 | 36.75
106 | 37.00
107 | 37.19
108 | 37.44
109 | 37.69
110 | 37.94
111 | 38.13
112 | 38.38
113 | 38.63
114 | 38.81
115 | 39.06
116 | 39.25
117 | 39.50
118 | 39.69
119 | 39.88
120 | 40.06
121 | 40.25
122 | 40.44
123 | 40.69
124 | 40.88
125 | 41.00
126 | 41.25
127 | 41.38
128 | 41.56
129 | 41.75
130 | 41.88
131 | 42.06
132 | 42.25
133 | 42.38
134 | 42.56
135 | 42.69
136 | 42.88
137 | 43.00
138 | 43.13
139 | 43.25
140 | 43.38
141 | 43.44
142 | 43.56
143 | 43.69
144 | 43.75
145 | 43.88
146 | 44.00
147 | 44.13
148 | 44.19
149 | 44.31
150 | 44.44
151 | 44.56
152 | 44.63
153 | 44.75
154 | 44.81
155 | 44.94
156 | 45.00
157 | 45.13
158 | 45.25
159 | 45.31
160 | 45.44
161 | 45.50
162 | 45.63
163 | 45.69
164 | 45.75
165 | 45.88
166 | 45.94
167 | 46.06
168 | 46.06
169 | 46.19
170 | 46.25
171 | 46.31
172 | 46.38
173 | 46.50
174 | 46.56
175 | 46.63
176 | 46.69
177 | 46.75
178 | 46.81
179 | 46.88
180 | 46.94
181 | 47.00
182 | 47.06
183 | 47.13
184 | 47.19
185 | 47.25
186 | 47.31
187 | 47.31
188 | 47.38
189 | 47.44
190 | 47.50
191 | 47.56
192 | 47.63
193 | 47.63
194 | 47.69
195 | 47.75
196 | 47.81
197 | 47.81
198 | 47.88
199 | 47.94
200 | 47.94
201 | 48.00
202 | 48.06
203 | 48.06
204 | 48.13
205 | 48.19
206 | 48.19
207 | 48.25
208 | 48.25
209 | 48.31
210 | 48.38
211 | 48.38
212 | 48.44
213 | 48.44
214 | 48.50
215 | 48.50
216 | 48.56
217 | 48.56
218 | 48.63
219 | 48.69
220 |
--------------------------------------------------------------------------------
/gerbers/ssr-F_Mask.gts:
--------------------------------------------------------------------------------
1 | G04 (created by PCBNEW (2013-mar-13)-testing) date Tue 07 May 2013 10:03:09 PM CEST*
2 | %MOIN*%
3 | G04 Gerber Fmt 3.4, Leading zero omitted, Abs format*
4 | %FSLAX34Y34*%
5 | G01*
6 | G70*
7 | G90*
8 | G04 APERTURE LIST*
9 | %ADD10C,2.3622e-06*%
10 | %ADD11C,0.551181*%
11 | %ADD12O,0.165X0.0825*%
12 | %ADD13O,0.0593X0.1187*%
13 | %ADD14C,0.0787*%
14 | %ADD15C,0.0906*%
15 | %ADD16C,0.2*%
16 | %ADD17C,0.0859*%
17 | %ADD18C,0.06*%
18 | %ADD19R,0.06X0.06*%
19 | %ADD20R,0.062X0.062*%
20 | %ADD21C,0.062*%
21 | %ADD22C,0.1575*%
22 | %ADD23O,0.112X0.056*%
23 | %ADD24C,0.1*%
24 | %ADD25O,0.104X0.052*%
25 | %ADD26C,0.2362*%
26 | %ADD27R,0.035X0.055*%
27 | %ADD28R,0.025X0.045*%
28 | G04 APERTURE END LIST*
29 | G54D10*
30 | G54D11*
31 | X47250Y-28750D03*
32 | X57000Y-28750D03*
33 | X66000Y-28750D03*
34 | G54D12*
35 | X40500Y-43200D03*
36 | X40500Y-41000D03*
37 | X40500Y-38800D03*
38 | G54D13*
39 | X71250Y-31400D03*
40 | X72250Y-31400D03*
41 | X73250Y-31400D03*
42 | X74250Y-31400D03*
43 | X75250Y-31400D03*
44 | X76250Y-31400D03*
45 | G54D14*
46 | X72000Y-53000D03*
47 | G54D15*
48 | X56252Y-53000D03*
49 | G54D16*
50 | X44000Y-45000D03*
51 | X44000Y-42000D03*
52 | X44000Y-31200D03*
53 | X44000Y-34200D03*
54 | G54D14*
55 | X46750Y-43500D03*
56 | X46750Y-37500D03*
57 | X48250Y-43500D03*
58 | X48250Y-37500D03*
59 | X50250Y-37500D03*
60 | X50250Y-45500D03*
61 | G54D17*
62 | X77250Y-42500D03*
63 | X75875Y-42500D03*
64 | G54D18*
65 | X77200Y-39400D03*
66 | X76200Y-40400D03*
67 | X77200Y-40400D03*
68 | X76200Y-41400D03*
69 | X77200Y-41400D03*
70 | G54D19*
71 | X76200Y-39400D03*
72 | G54D20*
73 | X77200Y-44000D03*
74 | G54D21*
75 | X77200Y-45000D03*
76 | X77200Y-46000D03*
77 | X77200Y-47000D03*
78 | G54D20*
79 | X77200Y-33750D03*
80 | G54D21*
81 | X77200Y-34750D03*
82 | X77200Y-35750D03*
83 | X77200Y-36750D03*
84 | G54D22*
85 | X59374Y-45000D03*
86 | X59374Y-37126D03*
87 | G54D23*
88 | X51250Y-29900D03*
89 | X53250Y-30600D03*
90 | G54D24*
91 | X52000Y-46000D03*
92 | X52000Y-52000D03*
93 | X47250Y-34750D03*
94 | X53250Y-34750D03*
95 | X47000Y-45000D03*
96 | X47000Y-49000D03*
97 | G54D25*
98 | X72000Y-44750D03*
99 | X72000Y-43750D03*
100 | X72000Y-42750D03*
101 | X69000Y-42750D03*
102 | X69000Y-43750D03*
103 | X69000Y-44750D03*
104 | G54D26*
105 | X41750Y-28750D03*
106 | X75500Y-28500D03*
107 | X41750Y-53250D03*
108 | X75250Y-53250D03*
109 | G54D14*
110 | X47250Y-32500D03*
111 | X53250Y-32500D03*
112 | G54D27*
113 | X72525Y-35900D03*
114 | X71775Y-35900D03*
115 | X72525Y-34900D03*
116 | X71775Y-34900D03*
117 | G54D28*
118 | X73700Y-34900D03*
119 | X73100Y-34900D03*
120 | X73700Y-35900D03*
121 | X73100Y-35900D03*
122 | G54D14*
123 | X77000Y-49750D03*
124 | G54D15*
125 | X61252Y-49750D03*
126 | M02*
127 |
--------------------------------------------------------------------------------
/experiment3/half-zc-pulse-length.py:
--------------------------------------------------------------------------------
1 | import math
2 | import sys
3 | import matplotlib.pyplot as plt
4 | from matplotlib.ticker import MultipleLocator
5 | import numpy as np
6 | import numpy.fft as ff
7 | import scipy.signal as signal
8 | import scipy as scipy
9 |
10 | def differential(x):
11 | ret = []
12 | for i in range(0, x.shape[0]-1):
13 | if i < x.shape[0]-1:
14 | ret.append(x[i+1] - x[i])
15 | else:
16 | ret.append(x[i])
17 | return np.array(ret)
18 |
19 | def magnitude(x):
20 | ret = []
21 | for sample in x:
22 | ret.append(math.sqrt(sample.real**2 + sample.imag**2))
23 | return np.array(ret)
24 |
25 | x = np.loadtxt("zc-pulse-length-filtered", delimiter=",")
26 | x = x[:,0]
27 | x = x[1::2]/2/8
28 | N = x.shape[0]
29 |
30 | scatter = np.max(x) - np.min(x)
31 | diff = differential(x)
32 | print "min ", np.min(x), " ", np.min(x)/16e6, "s"
33 | print "max ", np.max(x), " ", np.max(x)/16e6, "s"
34 | print "scater ", scatter, " ", scatter/16e6, "s"
35 | print "max differential ", np.max(diff), " ", np.max(diff)/16e6, "s"
36 | print "min differential ", np.min(diff), " ", np.min(diff)/16e6, "s"
37 | print "min differential abs ", np.min(np.abs(diff)), " ", np.min(np.abs(diff))/16e6, "s"
38 | print "differential abs median ", np.median(np.abs(diff)), " ", np.median(np.abs(diff))/16e6, "s"
39 | print "differential abs mean ", np.mean(np.abs(diff)), " ", np.mean(np.abs(diff))/16e6, "s"
40 | print "mean ", np.mean(x), " ", np.mean(x)/16e6, "s"
41 | print "median ", np.median(x), " ", np.median(x)/16e6, "s"
42 |
43 | #plt.plot(range(0, N-1), diff+np.mean(x), color="grey")
44 | xvals = np.arange(0, x.shape[0], 1)/100
45 | plt.plot(xvals, x/16, color="red")
46 | plt.xlabel("Time, s")
47 | plt.ylabel("Pulse length, us")
48 | plt.title("Zero crossing pulse length")
49 | plt.savefig("Zero crossing pulse length")
50 | plt.figure()
51 |
52 | xvals = np.arange(0.0, N/2+1, 1)
53 | xvals = xvals/np.max(xvals)*50
54 | plt.plot(xvals, signal.medfilt(
55 | 20*scipy.log10(
56 | abs(
57 | ff.rfft(
58 | (x) / np.max(x)
59 | )
60 | )
61 | ),355) )
62 | plt.xlabel("Hz")
63 | plt.ylabel("Magnitude, db")
64 | plt.title("Zero crossing pulse length FFT")
65 | plt.savefig("Zero crossing pulse length FFT")
66 | plt.figure()
67 |
68 | std = np.std(diff)
69 |
70 | sigma = std
71 |
72 | plt.hist(diff, bins=(
73 | np.min(diff)*-1 +
74 | np.max(diff)
75 | ), color="black")
76 |
77 | sigma2 = 2*std
78 | plt.axvline(np.mean(diff) - sigma2)
79 | plt.axvline(np.mean(diff) + sigma2)
80 |
81 | plt.axvline(np.mean(diff) - sigma, color="yellow")
82 | plt.axvline(np.mean(diff) + sigma, color="yellow")
83 | plt.title("Pulse length differeces for adjacent pulses")
84 | plt.savefig("Pulse length differeces for adjacent pulses")
85 |
86 | plt.figure()
87 |
88 | plt.plot(range(diff.shape[0]), diff)
89 | plt.title("Differential")
90 |
91 | plt.show()
92 |
93 |
94 |
95 |
--------------------------------------------------------------------------------
/experiment2/half-zc-pulse-length.py:
--------------------------------------------------------------------------------
1 | import math
2 | import sys
3 | import matplotlib.pyplot as plt
4 | from matplotlib.ticker import MultipleLocator
5 | import numpy as np
6 | import numpy.fft as ff
7 | import scipy.signal as signal
8 | import scipy as scipy
9 |
10 | def differential(x):
11 | ret = []
12 | for i in range(0, x.shape[0]-1):
13 | if i < x.shape[0]-1:
14 | ret.append(x[i+1] - x[i])
15 | else:
16 | ret.append(x[i])
17 | return np.array(ret)
18 |
19 | def magnitude(x):
20 | ret = []
21 | for sample in x:
22 | ret.append(math.sqrt(sample.real**2 + sample.imag**2))
23 | return np.array(ret)
24 |
25 | x = np.loadtxt("zc-pulse-filtered", delimiter=",")
26 | x = x[:,0]
27 | x = x[::2]
28 | N = x.shape[0]
29 |
30 | scatter = np.max(x) - np.min(x)
31 | diff = differential(x)
32 | print "min ", np.min(x), " ", np.min(x)/16e6, "s"
33 | print "max ", np.max(x), " ", np.max(x)/16e6, "s"
34 | print "scater ", scatter, " ", scatter/16e6, "s"
35 | print "max differential ", np.max(diff), " ", np.max(diff)/16e6, "s"
36 | print "min differential ", np.min(diff), " ", np.min(diff)/16e6, "s"
37 | print "min differential abs ", np.min(np.abs(diff)), " ", np.min(np.abs(diff))/16e6, "s"
38 | print "differential abs median ", np.median(np.abs(diff)), " ", np.median(np.abs(diff))/16e6, "s"
39 | print "differential abs mean ", np.mean(np.abs(diff)), " ", np.mean(np.abs(diff))/16e6, "s"
40 | print "mean ", np.mean(x), " ", np.mean(x)/16e6, "s"
41 | print "median ", np.median(x), " ", np.median(x)/16e6, "s"
42 |
43 | #plt.plot(range(0, N-1), diff+np.mean(x), color="grey")
44 | xvals = np.arange(0, x.shape[0], 1)/100
45 | plt.plot(xvals, x/16, color="red")
46 | plt.xlabel("Time, s")
47 | plt.ylabel("Pulse length, us")
48 | plt.title("Zero crossing pulse length, R input = 16.4k R pullup = 1k")
49 | plt.savefig("Zero crossing pulse length, R input = 16k4 R pullup = 1k")
50 | plt.figure()
51 |
52 | xvals = np.arange(0.0, N/2+1, 1)
53 | xvals = xvals/np.max(xvals)*50
54 | plt.plot(xvals, signal.medfilt(
55 | 20*scipy.log10(
56 | abs(
57 | ff.rfft(
58 | (x) / np.max(x)
59 | )
60 | )
61 | ),355) )
62 | plt.xlabel("Hz")
63 | plt.ylabel("Magnitude, db")
64 | plt.title("Zero crossing pulse length FFT, R input = 16.4k R pullup = 1k")
65 | plt.savefig("Zero crossing pulse length FFT, R input = 16k4 R pullup = 1k")
66 | plt.figure()
67 |
68 | std = np.std(diff)
69 |
70 | sigma = std
71 |
72 | plt.hist(diff, bins=(
73 | np.min(diff)*-1 +
74 | np.max(diff)
75 | ), color="black")
76 |
77 | sigma2 = 2*std
78 | plt.axvline(np.mean(diff) - sigma2)
79 | plt.axvline(np.mean(diff) + sigma2)
80 |
81 | plt.axvline(np.mean(diff) - sigma, color="yellow")
82 | plt.axvline(np.mean(diff) + sigma, color="yellow")
83 | plt.title("Pulse length differeces for adjacent pulses, R input = 16.4k R pullup = 1k")
84 | plt.savefig("Pulse length differeces for adjacent pulses, R input = 16k4 R pullup = 1k")
85 | plt.show()
86 |
87 |
--------------------------------------------------------------------------------
/experiment5/half-zc-pulse-length.py:
--------------------------------------------------------------------------------
1 | import math
2 | import sys
3 | import matplotlib.pyplot as plt
4 | from matplotlib.ticker import MultipleLocator
5 | import numpy as np
6 | import numpy.fft as ff
7 | import scipy.signal as signal
8 | import scipy as scipy
9 |
10 | def differential(x):
11 | ret = []
12 | for i in range(0, x.shape[0]-1):
13 | if i < x.shape[0]-1:
14 | ret.append(x[i+1] - x[i])
15 | else:
16 | ret.append(x[i])
17 | return np.array(ret)
18 |
19 | def magnitude(x):
20 | ret = []
21 | for sample in x:
22 | ret.append(math.sqrt(sample.real**2 + sample.imag**2))
23 | return np.array(ret)
24 |
25 | x = np.loadtxt("zc-pulse-length-filtered", delimiter=",")
26 | x = x[:,0]
27 | x = x[::2]
28 | N = x.shape[0]
29 |
30 | scatter = np.max(x) - np.min(x)
31 | diff = differential(x)
32 | print "min ", np.min(x), " ", np.min(x)/16e6, "s"
33 | print "max ", np.max(x), " ", np.max(x)/16e6, "s"
34 | print "scater ", scatter, " ", scatter/16e6, "s"
35 | print "max differential ", np.max(diff), " ", np.max(diff)/16e6, "s"
36 | print "min differential ", np.min(diff), " ", np.min(diff)/16e6, "s"
37 | print "min differential abs ", np.min(np.abs(diff)), " ", np.min(np.abs(diff))/16e6, "s"
38 | print "differential abs median ", np.median(np.abs(diff)), " ", np.median(np.abs(diff))/16e6, "s"
39 | print "differential abs mean ", np.mean(np.abs(diff)), " ", np.mean(np.abs(diff))/16e6, "s"
40 | print "mean ", np.mean(x), " ", np.mean(x)/16e6, "s"
41 | print "median ", np.median(x), " ", np.median(x)/16e6, "s"
42 |
43 | #plt.plot(range(0, N-1), diff+np.mean(x), color="grey")
44 | xvals = np.arange(0, x.shape[0], 1)/100
45 | plt.plot(xvals, x/16, color="red")
46 | plt.xlabel("Time, s")
47 | plt.ylabel("Pulse length, us")
48 | plt.title("Zero crossing pulse length, R input = 16.4k R pullup = 1k")
49 | plt.savefig("Zero crossing pulse length, R input = 16k4 R pullup = 1k")
50 | plt.figure()
51 |
52 | xvals = np.arange(0.0, N/2+1, 1)
53 | xvals = xvals/np.max(xvals)*50
54 | plt.plot(xvals, signal.medfilt(
55 | 20*scipy.log10(
56 | abs(
57 | ff.rfft(
58 | (x) / np.max(x)
59 | )
60 | )
61 | ),355) )
62 | plt.xlabel("Hz")
63 | plt.ylabel("Magnitude, db")
64 | plt.title("Zero crossing pulse length FFT, R input = 16.4k R pullup = 1k")
65 | plt.savefig("Zero crossing pulse length FFT, R input = 16k4 R pullup = 1k")
66 | plt.figure()
67 |
68 | std = np.std(diff)
69 |
70 | sigma = std
71 |
72 | plt.hist(diff, bins=(
73 | np.min(diff)*-1 +
74 | np.max(diff)
75 | ), color="black")
76 |
77 | sigma2 = 2*std
78 | plt.axvline(np.mean(diff) - sigma2)
79 | plt.axvline(np.mean(diff) + sigma2)
80 |
81 | plt.axvline(np.mean(diff) - sigma, color="yellow")
82 | plt.axvline(np.mean(diff) + sigma, color="yellow")
83 | plt.title("Pulse length differeces for adjacent pulses, R input = 16.4k R pullup = 1k")
84 | plt.savefig("Pulse length differeces for adjacent pulses, R input = 16k4 R pullup = 1k")
85 | plt.show()
86 |
87 |
--------------------------------------------------------------------------------
/experiment2/zc-pulse-length.py:
--------------------------------------------------------------------------------
1 | import math
2 | import sys
3 | import matplotlib.pyplot as plt
4 | from matplotlib.ticker import MultipleLocator
5 | import numpy as np
6 | import numpy.fft as ff
7 | import scipy.signal as signal
8 | import scipy as scipy
9 |
10 | def differential(x):
11 | ret = []
12 | for i in range(0, x.shape[0]-1):
13 | if i < x.shape[0]-1:
14 | ret.append(x[i+1] - x[i])
15 | else:
16 | ret.append(x[i])
17 | return np.array(ret)
18 |
19 | def magnitude(x):
20 | ret = []
21 | for sample in x:
22 | ret.append(math.sqrt(sample.real**2 + sample.imag**2))
23 | return np.array(ret)
24 |
25 | x = np.loadtxt("zc-pulse-filtered", delimiter=",")
26 | N = x.shape[0]
27 | scatter = np.max(x) - np.min(x)
28 | diff = differential(x[:,0])
29 | print "min ", np.min(x[:,0]), " ", np.min(x[:,0])/16e6, "s"
30 | print "max ", np.max(x[:,0]), " ", np.max(x[:,0])/16e6, "s"
31 | print "scater ", scatter, " ", scatter/16e6, "s"
32 | print "max differential ", np.max(diff), " ", np.max(diff)/16e6, "s"
33 | print "min differential ", np.min(diff), " ", np.min(diff)/16e6, "s"
34 | print "min differential abs ", np.min(np.abs(diff)), " ", np.min(np.abs(diff))/16e6, "s"
35 | print "differential abs median ", np.median(np.abs(diff)), " ", np.median(np.abs(diff))/16e6, "s"
36 | print "mean ", np.mean(x[:,0]), " ", np.mean(x[:,0])/16e6, "s"
37 | print "median ", np.median(x[:,0]), " ", np.median(x[:,0])/16e6, "s"
38 |
39 | #plt.plot(range(0, N-1), diff+np.mean(x[:,0]), color="grey")
40 | xvals = np.arange(0, x[:,0].shape[0], 1)/100
41 | plt.plot(xvals, x[:,0]/16, color="grey")
42 | plt.plot(xvals, x[:,1]/16, color="green")
43 | plt.plot(xvals, x[:,2]/16, color="red")
44 | plt.xlabel("Time, s")
45 | plt.ylabel("Pulse length, us")
46 | plt.title("Zero crossing pulse length, R input = 32.8k, R pullup = 47k")
47 | plt.savefig("Zero crossing pulse length, R input = 32k8, R pullup = 47k")
48 | plt.figure()
49 |
50 | xvals = np.arange(0.0, N/2+1, 1)
51 | xvals = xvals/np.max(xvals)*50
52 | plt.plot(xvals, signal.medfilt(
53 | 20*scipy.log10(
54 | abs(
55 | ff.rfft(
56 | (x[:,0]) / np.max(x[:,0])
57 | )
58 | )
59 | ),355) )
60 | plt.xlabel("Hz")
61 | plt.ylabel("Magnitude, db")
62 | plt.title("Zero crossing pulse length FFT, R input = 32.8k R pullup = 47k")
63 | plt.savefig("Zero crossing pulse length FFT, R input = 32k8 R pullup = 47k")
64 | plt.figure()
65 |
66 | std = np.std(diff)
67 |
68 | sigma = std
69 |
70 | plt.hist(diff, bins=(
71 | np.min(diff)*-1 +
72 | np.max(diff)
73 | ), color="black")
74 |
75 | sigma2 = 2*std
76 | plt.axvline(np.mean(diff) - sigma2)
77 | plt.axvline(np.mean(diff) + sigma2)
78 |
79 | plt.axvline(np.mean(diff) - sigma, color="yellow")
80 | plt.axvline(np.mean(diff) + sigma, color="yellow")
81 |
82 | plt.title("Pulse length differeces for adjacent pulses, R input = 32.8k R pullup = 47k")
83 | plt.savefig("Pulse length differeces for adjacent pulses, R input = 32k8 R pullup = 47k")
84 | plt.show()
85 |
86 |
--------------------------------------------------------------------------------
/experiment3/zc-pulse-length.py:
--------------------------------------------------------------------------------
1 | import math
2 | import sys
3 | import matplotlib.pyplot as plt
4 | from matplotlib.ticker import MultipleLocator
5 | import numpy as np
6 | import numpy.fft as ff
7 | import scipy.signal as signal
8 | import scipy as scipy
9 |
10 | def differential(x):
11 | ret = []
12 | for i in range(0, x.shape[0]-1):
13 | if i < x.shape[0]-1:
14 | ret.append(x[i+1] - x[i])
15 | else:
16 | ret.append(x[i])
17 | return np.array(ret)
18 |
19 | def magnitude(x):
20 | ret = []
21 | for sample in x:
22 | ret.append(math.sqrt(sample.real**2 + sample.imag**2))
23 | return np.array(ret)
24 |
25 | x = np.loadtxt("zc-pulse-length-filtered", delimiter=",")
26 | N = x.shape[0]
27 | scatter = np.max(x) - np.min(x)
28 | diff = differential(x[:,0])
29 | print "min ", np.min(x[:,0]), " ", np.min(x[:,0])/16e6, "s"
30 | print "max ", np.max(x[:,0]), " ", np.max(x[:,0])/16e6, "s"
31 | print "scater ", scatter, " ", scatter/16e6, "s"
32 | print "max differential ", np.max(diff), " ", np.max(diff)/16e6, "s"
33 | print "min differential ", np.min(diff), " ", np.min(diff)/16e6, "s"
34 | print "min differential abs ", np.min(np.abs(diff)), " ", np.min(np.abs(diff))/16e6, "s"
35 | print "differential abs median ", np.median(np.abs(diff)), " ", np.median(np.abs(diff))/16e6, "s"
36 | print "mean ", np.mean(x[:,0]), " ", np.mean(x[:,0])/16e6, "s"
37 | print "median ", np.median(x[:,0]), " ", np.median(x[:,0])/16e6, "s"
38 |
39 | #plt.plot(range(0, N-1), diff+np.mean(x[:,0]), color="grey")
40 | xvals = np.arange(0, x[:,0].shape[0], 1)/100
41 | plt.plot(xvals, x[:,0]/16, color="grey")
42 | plt.plot(xvals, x[:,1]/16, color="green")
43 | plt.plot(xvals, x[:,2]/16, color="red")
44 | plt.xlabel("Time, s")
45 | plt.ylabel("Pulse length, us")
46 | plt.title("Zero crossing pulse length, R input = 32.8k, R pullup = 10k")
47 | plt.savefig("Zero crossing pulse length, R input = 32k8, R pullup = 10k")
48 | plt.figure()
49 |
50 | xvals = np.arange(0.0, N/2+1, 1)
51 | xvals = xvals/np.max(xvals)*50
52 | plt.plot(xvals, signal.medfilt(
53 | 20*scipy.log10(
54 | abs(
55 | ff.rfft(
56 | (x[:,0]) / np.max(x[:,0])
57 | )
58 | )
59 | ),355) )
60 | plt.xlabel("Hz")
61 | plt.ylabel("Magnitude, db")
62 | plt.title("Zero crossing pulse length FFT, R input = 32.8k R pullup = 10k")
63 | plt.savefig("Zero crossing pulse length FFT, R input = 32k8 R pullup = 10k")
64 | plt.figure()
65 |
66 | std = np.std(diff)
67 |
68 | sigma = std
69 |
70 | plt.hist(diff, bins=(
71 | np.min(diff)*-1 +
72 | np.max(diff)
73 | ), color="black")
74 |
75 | sigma2 = 2*std
76 | plt.axvline(np.mean(diff) - sigma2)
77 | plt.axvline(np.mean(diff) + sigma2)
78 |
79 | plt.axvline(np.mean(diff) - sigma, color="yellow")
80 | plt.axvline(np.mean(diff) + sigma, color="yellow")
81 |
82 | plt.title("Pulse length differeces for adjacent pulses, R input = 32.8k R pullup = 10k")
83 | plt.savefig("Pulse length differeces for adjacent pulses, R input = 32k8 R pullup = 10k")
84 | plt.show()
85 |
86 |
--------------------------------------------------------------------------------
/experiment4/zc-pulse-length.py:
--------------------------------------------------------------------------------
1 | import math
2 | import sys
3 | import matplotlib.pyplot as plt
4 | from matplotlib.ticker import MultipleLocator
5 | import numpy as np
6 | import numpy.fft as ff
7 | import scipy.signal as signal
8 | import scipy as scipy
9 |
10 | def differential(x):
11 | ret = []
12 | for i in range(0, x.shape[0]-1):
13 | if i < x.shape[0]-1:
14 | ret.append(x[i+1] - x[i])
15 | else:
16 | ret.append(x[i])
17 | return np.array(ret)
18 |
19 | def magnitude(x):
20 | ret = []
21 | for sample in x:
22 | ret.append(math.sqrt(sample.real**2 + sample.imag**2))
23 | return np.array(ret)
24 |
25 | x = np.loadtxt("zc-pulse-length-filtered", delimiter=",")
26 | N = x.shape[0]
27 | scatter = np.max(x) - np.min(x)
28 | diff = differential(x[:,0])
29 | print "min ", np.min(x[:,0]), " ", np.min(x[:,0])/16e6, "s"
30 | print "max ", np.max(x[:,0]), " ", np.max(x[:,0])/16e6, "s"
31 | print "scater ", scatter, " ", scatter/16e6, "s"
32 | print "max differential ", np.max(diff), " ", np.max(diff)/16e6, "s"
33 | print "min differential ", np.min(diff), " ", np.min(diff)/16e6, "s"
34 | print "min differential abs ", np.min(np.abs(diff)), " ", np.min(np.abs(diff))/16e6, "s"
35 | print "differential abs median ", np.median(np.abs(diff)), " ", np.median(np.abs(diff))/16e6, "s"
36 | print "mean ", np.mean(x[:,0]), " ", np.mean(x[:,0])/16e6, "s"
37 | print "median ", np.median(x[:,0]), " ", np.median(x[:,0])/16e6, "s"
38 |
39 | #plt.plot(range(0, N-1), diff+np.mean(x[:,0]), color="grey")
40 | xvals = np.arange(0, x[:,0].shape[0], 1)/100
41 | plt.plot(xvals, x[:,0]/16, color="grey")
42 | plt.plot(xvals, x[:,1]/16, color="green")
43 | plt.plot(xvals, x[:,2]/16, color="red")
44 | plt.xlabel("Time, s")
45 | plt.ylabel("Pulse length, us")
46 | plt.title("Zero crossing pulse length, R input = 16.4k R pullup = 10k")
47 | plt.savefig("Zero crossing pulse length, R input = 16k4 R pullup = 10k")
48 |
49 | plt.figure()
50 | xvals = np.arange(0.0, N/2+1, 1)
51 | xvals = xvals/np.max(xvals)*50
52 | plt.plot(xvals, signal.medfilt(
53 | 20*scipy.log10(
54 | abs(
55 | ff.rfft(
56 | (x[:,0]) / np.max(x[:,0])
57 | )
58 | )
59 | ),355) )
60 | plt.xlabel("Hz")
61 | plt.ylabel("Magnitude, db")
62 | plt.title("Zero crossing pulse length FFT, R input = 16.4k R pullup = 10k")
63 | plt.savefig("Zero crossing pulse length FFT, R input = 16k4 R pullup = 10k")
64 |
65 |
66 | plt.figure()
67 |
68 | std = np.std(diff)
69 |
70 | sigma = std
71 |
72 | plt.hist(diff, bins=(
73 | np.min(diff)*-1 +
74 | np.max(diff)
75 | ), color="black")
76 |
77 | sigma2 = 2*std
78 | plt.axvline(np.mean(diff) - sigma2)
79 | plt.axvline(np.mean(diff) + sigma2)
80 |
81 | plt.axvline(np.mean(diff) - sigma, color="yellow")
82 | plt.axvline(np.mean(diff) + sigma, color="yellow")
83 | plt.title("Pulse length differeces for adjacent pulses, R input = 16.4k R pullup = 10k")
84 | plt.savefig("Pulse length differeces for adjacent pulses, R input = 16k4 R pullup = 10k")
85 | plt.show()
86 |
87 | #plt.plot(range(0, N), differential(np.abs(x[:,2])), color="red")
88 |
89 |
--------------------------------------------------------------------------------
/experiment5/zc-pulse-length.py:
--------------------------------------------------------------------------------
1 | import math
2 | import sys
3 | import matplotlib.pyplot as plt
4 | from matplotlib.ticker import MultipleLocator
5 | import numpy as np
6 | import numpy.fft as ff
7 | import scipy.signal as signal
8 | import scipy as scipy
9 |
10 | def differential(x):
11 | ret = []
12 | for i in range(0, x.shape[0]-1):
13 | if i < x.shape[0]-1:
14 | ret.append(x[i+1] - x[i])
15 | else:
16 | ret.append(x[i])
17 | return np.array(ret)
18 |
19 | def magnitude(x):
20 | ret = []
21 | for sample in x:
22 | ret.append(math.sqrt(sample.real**2 + sample.imag**2))
23 | return np.array(ret)
24 |
25 | x = np.loadtxt("zc-pulse-length-filtered", delimiter=",")
26 | N = x.shape[0]
27 | scatter = np.max(x) - np.min(x)
28 | diff = differential(x[:,0])
29 | print "min ", np.min(x[:,0]), " ", np.min(x[:,0])/16e6, "s"
30 | print "max ", np.max(x[:,0]), " ", np.max(x[:,0])/16e6, "s"
31 | print "scater ", scatter, " ", scatter/16e6, "s"
32 | print "max differential ", np.max(diff), " ", np.max(diff)/16e6, "s"
33 | print "min differential ", np.min(diff), " ", np.min(diff)/16e6, "s"
34 | print "min differential abs ", np.min(np.abs(diff)), " ", np.min(np.abs(diff))/16e6, "s"
35 | print "differential abs median ", np.median(np.abs(diff)), " ", np.median(np.abs(diff))/16e6, "s"
36 | print "differential abs mean ", np.mean(np.abs(diff)), " ", np.mean(np.abs(diff))/16e6, "s"
37 | print "mean ", np.mean(x[:,0]), " ", np.mean(x[:,0])/16e6, "s"
38 | print "median ", np.median(x[:,0]), " ", np.median(x[:,0])/16e6, "s"
39 |
40 | #plt.plot(range(0, N-1), diff+np.mean(x[:,0]), color="grey")
41 | xvals = np.arange(0, x[:,0].shape[0], 1)/100
42 | plt.plot(xvals, x[:,0]/16, color="grey")
43 | plt.plot(xvals, x[:,1]/16, color="green")
44 | plt.plot(xvals, x[:,2]/16, color="red")
45 | plt.xlabel("Time, s")
46 | plt.ylabel("Pulse length, us")
47 | plt.title("Zero crossing pulse length, R input = 16.4k R pullup = 1k")
48 | plt.savefig("Zero crossing pulse length, R input = 16k4 R pullup = 1k")
49 | plt.figure()
50 |
51 | xvals = np.arange(0.0, N/2+1, 1)
52 | xvals = xvals/np.max(xvals)*50
53 | plt.plot(xvals, signal.medfilt(
54 | 20*scipy.log10(
55 | abs(
56 | ff.rfft(
57 | (x[:,0]) / np.max(x[:,0])
58 | )
59 | )
60 | ),355) )
61 | plt.xlabel("Hz")
62 | plt.ylabel("Magnitude, db")
63 | plt.title("Zero crossing pulse length FFT, R input = 16.4k R pullup = 1k")
64 | plt.savefig("Zero crossing pulse length FFT, R input = 16k4 R pullup = 1k")
65 | plt.figure()
66 |
67 | std = np.std(diff)
68 |
69 | sigma = std
70 |
71 | plt.hist(diff, bins=(
72 | np.min(diff)*-1 +
73 | np.max(diff)
74 | ), color="black")
75 |
76 | sigma2 = 2*std
77 | plt.axvline(np.mean(diff) - sigma2)
78 | plt.axvline(np.mean(diff) + sigma2)
79 |
80 | plt.axvline(np.mean(diff) - sigma, color="yellow")
81 | plt.axvline(np.mean(diff) + sigma, color="yellow")
82 | plt.title("Pulse length differeces for adjacent pulses, R input = 16.4k R pullup = 1k")
83 | plt.savefig("Pulse length differeces for adjacent pulses, R input = 16k4 R pullup = 1k")
84 | plt.show()
85 |
86 |
--------------------------------------------------------------------------------
/experiment6/zc-pulse-length.py:
--------------------------------------------------------------------------------
1 | import math
2 | import sys
3 | import matplotlib.pyplot as plt
4 | from matplotlib.ticker import MultipleLocator
5 | import numpy as np
6 | import numpy.fft as ff
7 | import scipy.signal as signal
8 | import scipy as scipy
9 |
10 | def differential(x):
11 | ret = []
12 | for i in range(0, x.shape[0]-1):
13 | if i < x.shape[0]-1:
14 | ret.append(x[i+1] - x[i])
15 | else:
16 | ret.append(x[i])
17 | return np.array(ret)
18 |
19 | def magnitude(x):
20 | ret = []
21 | for sample in x:
22 | ret.append(math.sqrt(sample.real**2 + sample.imag**2))
23 | return np.array(ret)
24 |
25 | x = np.loadtxt("zc-pulse-length-filtered", delimiter=",")
26 | N = x.shape[0]
27 | scatter = np.max(x) - np.min(x)
28 | diff = differential(x[:,0])
29 | print "min ", np.min(x[:,0]), " ", np.min(x[:,0])/16e6, "s"
30 | print "max ", np.max(x[:,0]), " ", np.max(x[:,0])/16e6, "s"
31 | print "scater ", scatter, " ", scatter/16e6, "s"
32 | print "max differential ", np.max(diff), " ", np.max(diff)/16e6, "s"
33 | print "min differential ", np.min(diff), " ", np.min(diff)/16e6, "s"
34 | print "min differential abs ", np.min(np.abs(diff)), " ", np.min(np.abs(diff))/16e6, "s"
35 | print "differential abs median ", np.median(np.abs(diff)), " ", np.median(np.abs(diff))/16e6, "s"
36 | print "differential abs mean ", np.mean(np.abs(diff)), " ", np.mean(np.abs(diff))/16e6, "s"
37 | print "mean ", np.mean(x[:,0]), " ", np.mean(x[:,0])/16e6, "s"
38 | print "median ", np.median(x[:,0]), " ", np.median(x[:,0])/16e6, "s"
39 |
40 | #plt.plot(range(0, N-1), diff+np.mean(x[:,0]), color="grey")
41 | xvals = np.arange(0, x[:,0].shape[0], 1)/100
42 | plt.plot(xvals, x[:,0]/16, color="grey")
43 | plt.plot(xvals, x[:,1]/16, color="green")
44 | plt.plot(xvals, x[:,2]/16, color="red")
45 | plt.xlabel("Time, s")
46 | plt.ylabel("Pulse length, us")
47 | plt.title("Zero crossing pulse length, R input = 16.4k R pullup = 10k")
48 | plt.savefig("Zero crossing pulse length, R input = 16k4 R pullup = 10k")
49 | plt.figure()
50 |
51 | xvals = np.arange(0.0, N/2+1, 1)
52 | xvals = xvals/np.max(xvals)*50
53 | plt.plot(xvals, signal.medfilt(
54 | 20*scipy.log10(
55 | abs(
56 | ff.rfft(
57 | (x[:,0]) / np.max(x[:,0])
58 | )
59 | )
60 | ),355) )
61 | plt.xlabel("Hz")
62 | plt.ylabel("Magnitude, db")
63 | plt.title("Zero crossing pulse length FFT, R input = 16.4k R pullup = 10k")
64 | plt.savefig("Zero crossing pulse length FFT, R input = 16k4 R pullup = 10k")
65 | plt.figure()
66 |
67 | std = np.std(diff)
68 |
69 | sigma = std
70 |
71 | plt.hist(diff, bins=(
72 | np.min(diff)*-1 +
73 | np.max(diff)
74 | ), color="black")
75 |
76 | sigma2 = 2*std
77 | plt.axvline(np.mean(diff) - sigma2)
78 | plt.axvline(np.mean(diff) + sigma2)
79 |
80 | plt.axvline(np.mean(diff) - sigma, color="yellow")
81 | plt.axvline(np.mean(diff) + sigma, color="yellow")
82 | plt.title("Pulse length differeces for adjacent pulses, R input = 16.4k R pullup = 10k")
83 | plt.savefig("Pulse length differeces for adjacent pulses, R input = 16k4 R pullup = 10k")
84 | plt.show()
85 |
86 |
--------------------------------------------------------------------------------
/firmware/usiTwiSlave.h:
--------------------------------------------------------------------------------
1 | /********************************************************************************
2 |
3 | Header file for the USI TWI Slave driver.
4 |
5 | Created by Donald R. Blake
6 | donblake at worldnet.att.net
7 |
8 | ---------------------------------------------------------------------------------
9 |
10 | Created from Atmel source files for Application Note AVR312: Using the USI Module
11 | as an I2C slave.
12 |
13 | This program is free software; you can redistribute it and/or modify it under the
14 | terms of the GNU General Public License as published by the Free Software
15 | Foundation; either version 2 of the License, or (at your option) any later
16 | version.
17 |
18 | This program is distributed in the hope that it will be useful, but WITHOUT ANY
19 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
20 | PARTICULAR PURPOSE. See the GNU General Public License for more details.
21 |
22 | ---------------------------------------------------------------------------------
23 |
24 | Change Activity:
25 |
26 | Date Description
27 | ------ -------------
28 | 15 Mar 2007 Created.
29 | 08 Mar 2012 Added support for START and STOP bit callbacks
30 |
31 | ********************************************************************************/
32 |
33 |
34 |
35 | #ifndef _USI_TWI_SLAVE_H_
36 | #define _USI_TWI_SLAVE_H_
37 |
38 |
39 |
40 | /********************************************************************************
41 |
42 | includes
43 |
44 | ********************************************************************************/
45 |
46 | #include
47 |
48 |
49 |
50 | /********************************************************************************
51 |
52 | prototypes
53 |
54 | ********************************************************************************/
55 |
56 | void usiTwiSlaveInit( uint8_t );
57 | void usiTwiTransmitByte( uint8_t );
58 | uint8_t usiTwiReceiveByte( void );
59 | bool usiTwiDataInReceiveBuffer( void );
60 | void usiTwiOnStart( void (*function) () );
61 | void usiTwiOnStop( void (*function) () );
62 |
63 |
64 |
65 | /********************************************************************************
66 |
67 | driver buffer definitions
68 |
69 | ********************************************************************************/
70 |
71 | // permitted RX buffer sizes: 1, 2, 4, 8, 16, 32, 64, 128 or 256
72 |
73 | #define TWI_RX_BUFFER_SIZE ( 16 )
74 | #define TWI_RX_BUFFER_MASK ( TWI_RX_BUFFER_SIZE - 1 )
75 |
76 | #if ( TWI_RX_BUFFER_SIZE & TWI_RX_BUFFER_MASK )
77 | # error TWI RX buffer size is not a power of 2
78 | #endif
79 |
80 | // permitted TX buffer sizes: 1, 2, 4, 8, 16, 32, 64, 128 or 256
81 |
82 | #define TWI_TX_BUFFER_SIZE ( 16 )
83 | #define TWI_TX_BUFFER_MASK ( TWI_TX_BUFFER_SIZE - 1 )
84 |
85 | #if ( TWI_TX_BUFFER_SIZE & TWI_TX_BUFFER_MASK )
86 | # error TWI TX buffer size is not a power of 2
87 | #endif
88 |
89 |
90 |
91 | #endif // ifndef _USI_TWI_SLAVE_H_
--------------------------------------------------------------------------------
/experiment1/exp1.py:
--------------------------------------------------------------------------------
1 | import math
2 | import numpy as np
3 | import matplotlib.pyplot as plt
4 | import numpy.fft as ff
5 | from pylab import *
6 | import scipy.signal as signal
7 | import scipy as scipy
8 |
9 | def magnitude(x):
10 | ret = []
11 | for sample in x:
12 | ret.append(math.sqrt(sample.real**2 + sample.imag**2))
13 | return np.array(ret)
14 | def phase(x):
15 | return np.unwrap(arctan2(imag(x),real(x)))
16 |
17 | def differential(x):
18 | ret = []
19 | for i in range(0, x.shape[0]-1):
20 | if i < x.shape[0]-1:
21 | ret.append(x[i+1] - x[i])
22 | else:
23 | ret.append(x[i])
24 | return np.array(ret)
25 | def mfreqz(b,a=1):
26 | w,h = signal.freqz(b,a)
27 | h_dB = 20 * log10 (abs(h))
28 | subplot(211)
29 | plot(w/max(w),h_dB)
30 | ylim(-150, 5)
31 | ylabel('Magnitude (db)')
32 | xlabel(r'Normalized Frequency (x$\pi$rad/sample)')
33 | title(r'Frequency response')
34 | subplot(212)
35 | h_Phase = unwrap(arctan2(imag(h),real(h)))
36 | plot(w/max(w),h_Phase)
37 | ylabel('Phase (radians)')
38 | xlabel(r'Normalized Frequency (x$\pi$rad/sample)')
39 | title(r'Phase response')
40 | subplots_adjust(hspace=0.5)
41 |
42 | #Plot step and impulse response
43 | def impz(b,a=1):
44 | l = len(b)
45 | impulse = repeat(0.,l); impulse[0] =1.
46 | x = arange(0,l)
47 | response = signal.lfilter(b,a,impulse)
48 | subplot(211)
49 | stem(x, response)
50 | ylabel('Amplitude')
51 | xlabel(r'n (samples)')
52 | title(r'Impulse response')
53 | subplot(212)
54 | step = cumsum(response)
55 | stem(x, step)
56 | ylabel('Amplitude')
57 | xlabel(r'n (samples)')
58 | title(r'Step response')
59 | subplots_adjust(hspace=0.5)
60 |
61 |
62 | y = np.loadtxt("step-response-linear2.csv")
63 | y = hstack((np.ones(100)*23.50, y))
64 | y = y - min(y)
65 | n = 33
66 | a = signal.firwin(n, cutoff = 0.037, window = "blackman")
67 |
68 | #plt.plot(range(0, (y.shape[0])), y)
69 |
70 | yfiltered = signal.lfilter(a, 1, y)[n:]
71 | irfiltered = differential(yfiltered)
72 | ir = differential(y)[n:]
73 |
74 | plt.plot(range(0, ir.shape[0]), ir, c="grey")
75 | plt.plot(range(0, irfiltered.shape[0]), irfiltered, c="red", linewidth=2)
76 | #plt.plot(range(0, irfiltered.shape[0]), signal.medfilt(irfiltered, 15), c="blue", linewidth=1)
77 |
78 | irfiltered = np.hstack((np.zeros(1000), irfiltered, np.zeros(1000)))
79 | ir = np.hstack((np.zeros(10000), ir, np.zeros(10000)))
80 | #plt.plot(range(0, (irfiltered.shape[0])/2+1), signal.medfilt(20*scipy.log10(abs(ff.rfft(irfiltered))),5), c="green")
81 | #plt.plot(range(0, (irfiltered.shape[0])/2+1), phase(ff.rfft(irfiltered)), c="red")
82 |
83 | H = abs(ff.rfft(irfiltered))[0:]
84 | H = H/H.shape[0]
85 | #plt.plot(range(0, H.shape[0]), H)
86 |
87 |
88 | #plt.plot(np.array(range(0, irfiltered.shape[0] / 2 + 1), float) / (irfiltered.shape[0] / 2 + 1) * 0.5, magnitude(ff.rfft(irfiltered)))
89 |
90 | #plt.plot(range(0, (y.shape[0])), y)
91 | #plt.plot(range(0, (y.shape[0]-10)), signal.lfilter(a, 1, y)[10:])
92 | #plt.plot(range(0, (a.shape[0])/2+1), magnitude(ff.rfft(a)))
93 | #mfreqz(irfiltered)
94 |
95 | plt.show()
96 |
--------------------------------------------------------------------------------
/controller-attiny1634/controller.cmp:
--------------------------------------------------------------------------------
1 | Cmp-Mod V01 Created by CvPcb (2013-mar-13)-testing date = Thu 16 May 2013 08:18:00 AM CEST
2 |
3 | BeginCmp
4 | TimeStamp = /518B9696;
5 | Reference = C1;
6 | ValeurCmp = 22p;
7 | IdModule = SM0603_Capa;
8 | EndCmp
9 |
10 | BeginCmp
11 | TimeStamp = /518B96A5;
12 | Reference = C2;
13 | ValeurCmp = 22p;
14 | IdModule = SM0603_Capa;
15 | EndCmp
16 |
17 | BeginCmp
18 | TimeStamp = /518B9823;
19 | Reference = C3;
20 | ValeurCmp = 100n;
21 | IdModule = SM0603_Capa;
22 | EndCmp
23 |
24 | BeginCmp
25 | TimeStamp = /518BB14F;
26 | Reference = C4;
27 | ValeurCmp = 100n;
28 | IdModule = SM0603_Capa;
29 | EndCmp
30 |
31 | BeginCmp
32 | TimeStamp = /51913C78;
33 | Reference = C5;
34 | ValeurCmp = 100n;
35 | IdModule = SM0603_Capa;
36 | EndCmp
37 |
38 | BeginCmp
39 | TimeStamp = /518B9775;
40 | Reference = C6;
41 | ValeurCmp = 100n;
42 | IdModule = SM0603_Capa;
43 | EndCmp
44 |
45 | BeginCmp
46 | TimeStamp = /518B9B2D;
47 | Reference = C7;
48 | ValeurCmp = 100n;
49 | IdModule = SM0603_Capa;
50 | EndCmp
51 |
52 | BeginCmp
53 | TimeStamp = /518B9ED3;
54 | Reference = CON1;
55 | ValeurCmp = AVR-ISP-6;
56 | IdModule = pin_array_3x2;
57 | EndCmp
58 |
59 | BeginCmp
60 | TimeStamp = /5191339D;
61 | Reference = IC1;
62 | ValeurCmp = ATTINY1634-S;
63 | IdModule = SO20L;
64 | EndCmp
65 |
66 | BeginCmp
67 | TimeStamp = /518B9650;
68 | Reference = IC2;
69 | ValeurCmp = SP3485CN;
70 | IdModule = SO8N;
71 | EndCmp
72 |
73 | BeginCmp
74 | TimeStamp = /51914A01;
75 | Reference = JP1;
76 | ValeurCmp = JUMPER;
77 | IdModule = PINHEAD1-2;
78 | EndCmp
79 |
80 | BeginCmp
81 | TimeStamp = /51947B16;
82 | Reference = K1;
83 | ValeurCmp = RS458;
84 | IdModule = PINHEAD1-3;
85 | EndCmp
86 |
87 | BeginCmp
88 | TimeStamp = /51913C29;
89 | Reference = P1;
90 | ValeurCmp = I2C;
91 | IdModule = PIN_ARRAY_4x1;
92 | EndCmp
93 |
94 | BeginCmp
95 | TimeStamp = /518B97EE;
96 | Reference = R1;
97 | ValeurCmp = 10k;
98 | IdModule = SM0603_Resistor;
99 | EndCmp
100 |
101 | BeginCmp
102 | TimeStamp = /518B9A6C;
103 | Reference = R2;
104 | ValeurCmp = R;
105 | IdModule = SM0603_Resistor;
106 | EndCmp
107 |
108 | BeginCmp
109 | TimeStamp = /518B9A66;
110 | Reference = R3;
111 | ValeurCmp = R;
112 | IdModule = SM0603_Resistor;
113 | EndCmp
114 |
115 | BeginCmp
116 | TimeStamp = /518BA4A5;
117 | Reference = R4;
118 | ValeurCmp = 10k;
119 | IdModule = SM0603_Resistor;
120 | EndCmp
121 |
122 | BeginCmp
123 | TimeStamp = /51914955;
124 | Reference = R5;
125 | ValeurCmp = 120;
126 | IdModule = SM0603_Resistor;
127 | EndCmp
128 |
129 | BeginCmp
130 | TimeStamp = /51914D89;
131 | Reference = R6;
132 | ValeurCmp = R;
133 | IdModule = SM0603_Resistor;
134 | EndCmp
135 |
136 | BeginCmp
137 | TimeStamp = /51914DFB;
138 | Reference = R7;
139 | ValeurCmp = R;
140 | IdModule = SM0603_Resistor;
141 | EndCmp
142 |
143 | BeginCmp
144 | TimeStamp = /518B991E;
145 | Reference = SW1;
146 | ValeurCmp = SW_PUSH;
147 | IdModule = SW_PUSH_SMALL;
148 | EndCmp
149 |
150 | BeginCmp
151 | TimeStamp = /518BB0F8;
152 | Reference = U1;
153 | ValeurCmp = P82B96;
154 | IdModule = SO8N;
155 | EndCmp
156 |
157 | BeginCmp
158 | TimeStamp = /518B9687;
159 | Reference = X1;
160 | ValeurCmp = 16MHz;
161 | IdModule = HC-49V;
162 | EndCmp
163 |
164 | EndListe
165 |
--------------------------------------------------------------------------------
/controller-atmega8/controller.cmp:
--------------------------------------------------------------------------------
1 | Cmp-Mod V01 Created by CvPcb (2013-mar-13)-testing date = Tue 23 Jul 2013 12:05:16 AM EEST
2 |
3 | BeginCmp
4 | TimeStamp = /518B9696;
5 | Reference = C1;
6 | ValeurCmp = 22p;
7 | IdModule = SM0603_Capa;
8 | EndCmp
9 |
10 | BeginCmp
11 | TimeStamp = /518B96A5;
12 | Reference = C2;
13 | ValeurCmp = 22p;
14 | IdModule = SM0603_Capa;
15 | EndCmp
16 |
17 | BeginCmp
18 | TimeStamp = /518B9823;
19 | Reference = C3;
20 | ValeurCmp = 100n;
21 | IdModule = SM0603_Capa;
22 | EndCmp
23 |
24 | BeginCmp
25 | TimeStamp = /518BB14F;
26 | Reference = C4;
27 | ValeurCmp = 100n;
28 | IdModule = SM0603_Capa;
29 | EndCmp
30 |
31 | BeginCmp
32 | TimeStamp = /51913C78;
33 | Reference = C5;
34 | ValeurCmp = 100n;
35 | IdModule = SM0603_Capa;
36 | EndCmp
37 |
38 | BeginCmp
39 | TimeStamp = /518B9775;
40 | Reference = C6;
41 | ValeurCmp = 100n;
42 | IdModule = SM0603_Capa;
43 | EndCmp
44 |
45 | BeginCmp
46 | TimeStamp = /518B9B2D;
47 | Reference = C7;
48 | ValeurCmp = 100n;
49 | IdModule = SM0603_Capa;
50 | EndCmp
51 |
52 | BeginCmp
53 | TimeStamp = /51CB3B70;
54 | Reference = C8;
55 | ValeurCmp = 100n;
56 | IdModule = SM0603_Capa;
57 | EndCmp
58 |
59 | BeginCmp
60 | TimeStamp = /51CB3A81;
61 | Reference = C9;
62 | ValeurCmp = 100n;
63 | IdModule = SM0603_Capa;
64 | EndCmp
65 |
66 | BeginCmp
67 | TimeStamp = /51ED6542;
68 | Reference = C10;
69 | ValeurCmp = C;
70 | IdModule = C2V10;
71 | EndCmp
72 |
73 | BeginCmp
74 | TimeStamp = /518B9ED3;
75 | Reference = CON1;
76 | ValeurCmp = AVR-ISP-6;
77 | IdModule = pin_array_3x2;
78 | EndCmp
79 |
80 | BeginCmp
81 | TimeStamp = /51CB3712;
82 | Reference = IC1;
83 | ValeurCmp = ATMEGA88-A;
84 | IdModule = TQFP32;
85 | EndCmp
86 |
87 | BeginCmp
88 | TimeStamp = /518B9650;
89 | Reference = IC2;
90 | ValeurCmp = SP3485CN;
91 | IdModule = SO8N;
92 | EndCmp
93 |
94 | BeginCmp
95 | TimeStamp = /51914A01;
96 | Reference = JP1;
97 | ValeurCmp = JUMPER;
98 | IdModule = PINHEAD1-2;
99 | EndCmp
100 |
101 | BeginCmp
102 | TimeStamp = /51947B16;
103 | Reference = K1;
104 | ValeurCmp = RS458;
105 | IdModule = PINHEAD1-3;
106 | EndCmp
107 |
108 | BeginCmp
109 | TimeStamp = /51913C29;
110 | Reference = P1;
111 | ValeurCmp = I2C;
112 | IdModule = PIN_ARRAY_4x1;
113 | EndCmp
114 |
115 | BeginCmp
116 | TimeStamp = /51ED64AF;
117 | Reference = P2;
118 | ValeurCmp = CONN_2;
119 | IdModule = PINHEAD1-2;
120 | EndCmp
121 |
122 | BeginCmp
123 | TimeStamp = /518B97EE;
124 | Reference = R1;
125 | ValeurCmp = 10k;
126 | IdModule = SM0603_Resistor;
127 | EndCmp
128 |
129 | BeginCmp
130 | TimeStamp = /518B9A6C;
131 | Reference = R2;
132 | ValeurCmp = R;
133 | IdModule = SM0603_Resistor;
134 | EndCmp
135 |
136 | BeginCmp
137 | TimeStamp = /518B9A66;
138 | Reference = R3;
139 | ValeurCmp = R;
140 | IdModule = SM0603_Resistor;
141 | EndCmp
142 |
143 | BeginCmp
144 | TimeStamp = /518BA4A5;
145 | Reference = R4;
146 | ValeurCmp = 10k;
147 | IdModule = SM0603_Resistor;
148 | EndCmp
149 |
150 | BeginCmp
151 | TimeStamp = /51914955;
152 | Reference = R5;
153 | ValeurCmp = 120;
154 | IdModule = SM0603_Resistor;
155 | EndCmp
156 |
157 | BeginCmp
158 | TimeStamp = /51914D89;
159 | Reference = R6;
160 | ValeurCmp = R;
161 | IdModule = SM0603_Resistor;
162 | EndCmp
163 |
164 | BeginCmp
165 | TimeStamp = /51914DFB;
166 | Reference = R7;
167 | ValeurCmp = R;
168 | IdModule = SM0603_Resistor;
169 | EndCmp
170 |
171 | BeginCmp
172 | TimeStamp = /518B991E;
173 | Reference = SW1;
174 | ValeurCmp = SW_PUSH;
175 | IdModule = SW_PUSH_SMALL;
176 | EndCmp
177 |
178 | BeginCmp
179 | TimeStamp = /518BB0F8;
180 | Reference = U1;
181 | ValeurCmp = P82B96;
182 | IdModule = SO8N;
183 | EndCmp
184 |
185 | BeginCmp
186 | TimeStamp = /518B9687;
187 | Reference = X1;
188 | ValeurCmp = 16MHz;
189 | IdModule = HC-49V;
190 | EndCmp
191 |
192 | EndListe
193 |
--------------------------------------------------------------------------------
/firmware/conductionAngles.c:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 | const uint16_t conductionAngles[] PROGMEM = {
5 | 0 ,
6 | 843 ,
7 | 1066 ,
8 | 1223 ,
9 | 1349 ,
10 | 1459 ,
11 | 1553 ,
12 | 1637 ,
13 | 1714 ,
14 | 1786 ,
15 | 1854 ,
16 | 1916 ,
17 | 1976 ,
18 | 2032 ,
19 | 2087 ,
20 | 2138 ,
21 | 2188 ,
22 | 2235 ,
23 | 2281 ,
24 | 2327 ,
25 | 2370 ,
26 | 2412 ,
27 | 2452 ,
28 | 2492 ,
29 | 2532 ,
30 | 2570 ,
31 | 2606 ,
32 | 2643 ,
33 | 2679 ,
34 | 2714 ,
35 | 2748 ,
36 | 2781 ,
37 | 2814 ,
38 | 2847 ,
39 | 2879 ,
40 | 2910 ,
41 | 2941 ,
42 | 2972 ,
43 | 3002 ,
44 | 3032 ,
45 | 3061 ,
46 | 3090 ,
47 | 3119 ,
48 | 3147 ,
49 | 3175 ,
50 | 3202 ,
51 | 3230 ,
52 | 3257 ,
53 | 3284 ,
54 | 3310 ,
55 | 3336 ,
56 | 3363 ,
57 | 3388 ,
58 | 3414 ,
59 | 3439 ,
60 | 3464 ,
61 | 3489 ,
62 | 3514 ,
63 | 3538 ,
64 | 3562 ,
65 | 3586 ,
66 | 3611 ,
67 | 3634 ,
68 | 3658 ,
69 | 3681 ,
70 | 3705 ,
71 | 3728 ,
72 | 3751 ,
73 | 3774 ,
74 | 3796 ,
75 | 3819 ,
76 | 3842 ,
77 | 3864 ,
78 | 3886 ,
79 | 3908 ,
80 | 3931 ,
81 | 3953 ,
82 | 3974 ,
83 | 3996 ,
84 | 4018 ,
85 | 4039 ,
86 | 4061 ,
87 | 4082 ,
88 | 4103 ,
89 | 4125 ,
90 | 4146 ,
91 | 4167 ,
92 | 4188 ,
93 | 4208 ,
94 | 4230 ,
95 | 4250 ,
96 | 4271 ,
97 | 4291 ,
98 | 4312 ,
99 | 4333 ,
100 | 4353 ,
101 | 4373 ,
102 | 4394 ,
103 | 4414 ,
104 | 4435 ,
105 | 4455 ,
106 | 4475 ,
107 | 4495 ,
108 | 4515 ,
109 | 4535 ,
110 | 4555 ,
111 | 4575 ,
112 | 4595 ,
113 | 4615 ,
114 | 4635 ,
115 | 4655 ,
116 | 4674 ,
117 | 4695 ,
118 | 4714 ,
119 | 4734 ,
120 | 4754 ,
121 | 4774 ,
122 | 4793 ,
123 | 4813 ,
124 | 4832 ,
125 | 4852 ,
126 | 4872 ,
127 | 4891 ,
128 | 4911 ,
129 | 4930 ,
130 | 4950 ,
131 | 4970 ,
132 | 4989 ,
133 | 5009 ,
134 | 5029 ,
135 | 5049 ,
136 | 5068 ,
137 | 5088 ,
138 | 5107 ,
139 | 5127 ,
140 | 5147 ,
141 | 5166 ,
142 | 5186 ,
143 | 5205 ,
144 | 5225 ,
145 | 5245 ,
146 | 5265 ,
147 | 5284 ,
148 | 5304 ,
149 | 5324 ,
150 | 5344 ,
151 | 5364 ,
152 | 5383 ,
153 | 5403 ,
154 | 5423 ,
155 | 5443 ,
156 | 5463 ,
157 | 5483 ,
158 | 5504 ,
159 | 5524 ,
160 | 5544 ,
161 | 5564 ,
162 | 5584 ,
163 | 5605 ,
164 | 5625 ,
165 | 5645 ,
166 | 5666 ,
167 | 5686 ,
168 | 5707 ,
169 | 5728 ,
170 | 5748 ,
171 | 5769 ,
172 | 5790 ,
173 | 5811 ,
174 | 5832 ,
175 | 5853 ,
176 | 5874 ,
177 | 5895 ,
178 | 5916 ,
179 | 5938 ,
180 | 5959 ,
181 | 5980 ,
182 | 6003 ,
183 | 6024 ,
184 | 6046 ,
185 | 6068 ,
186 | 6090 ,
187 | 6112 ,
188 | 6134 ,
189 | 6157 ,
190 | 6179 ,
191 | 6202 ,
192 | 6225 ,
193 | 6248 ,
194 | 6270 ,
195 | 6293 ,
196 | 6317 ,
197 | 6341 ,
198 | 6364 ,
199 | 6388 ,
200 | 6412 ,
201 | 6436 ,
202 | 6460 ,
203 | 6485 ,
204 | 6509 ,
205 | 6535 ,
206 | 6560 ,
207 | 6585 ,
208 | 6610 ,
209 | 6636 ,
210 | 6662 ,
211 | 6688 ,
212 | 6715 ,
213 | 6741 ,
214 | 6769 ,
215 | 6796 ,
216 | 6823 ,
217 | 6851 ,
218 | 6879 ,
219 | 6908 ,
220 | 6937 ,
221 | 6966 ,
222 | 6996 ,
223 | 7027 ,
224 | 7057 ,
225 | 7088 ,
226 | 7119 ,
227 | 7151 ,
228 | 7184 ,
229 | 7217 ,
230 | 7250 ,
231 | 7284 ,
232 | 7319 ,
233 | 7355 ,
234 | 7392 ,
235 | 7429 ,
236 | 7466 ,
237 | 7506 ,
238 | 7546 ,
239 | 7586 ,
240 | 7628 ,
241 | 7671 ,
242 | 7717 ,
243 | 7763 ,
244 | 7810 ,
245 | 7859 ,
246 | 7911 ,
247 | 7966 ,
248 | 8022 ,
249 | 8081 ,
250 | 8143 ,
251 | 8212 ,
252 | 8283 ,
253 | 8360 ,
254 | 8444 ,
255 | 8538 ,
256 | 8647 ,
257 | 8772 ,
258 | 8929 ,
259 | 9148 ,
260 | 10000
261 | };
262 |
--------------------------------------------------------------------------------
/ssr.cmp:
--------------------------------------------------------------------------------
1 | Cmp-Mod V01 Created by CvPcb (2013-mar-13)-testing date = Fri 03 May 2013 09:37:14 PM CEST
2 |
3 | BeginCmp
4 | TimeStamp = /511F7F96;
5 | Reference = C1;
6 | ValeurCmp = 10nF 400V;
7 | IdModule = rc-master-C100-140X060;
8 | EndCmp
9 |
10 | BeginCmp
11 | TimeStamp = /51602650;
12 | Reference = C2;
13 | ValeurCmp = 47nF 400V;
14 | IdModule = rc-master-C150-190X070;
15 | EndCmp
16 |
17 | BeginCmp
18 | TimeStamp = /51601848;
19 | Reference = C3;
20 | ValeurCmp = 100nF 400V;
21 | IdModule = rc-master-C150-190X070;
22 | EndCmp
23 |
24 | BeginCmp
25 | TimeStamp = /516A4F31;
26 | Reference = C4;
27 | ValeurCmp = 100nF;
28 | IdModule = -C0603;
29 | EndCmp
30 |
31 | BeginCmp
32 | TimeStamp = /516A50F4;
33 | Reference = C5;
34 | ValeurCmp = 100uF;
35 | IdModule = rc-master-CE-035X100;
36 | EndCmp
37 |
38 | BeginCmp
39 | TimeStamp = /5183F45A;
40 | Reference = C6;
41 | ValeurCmp = C;
42 | IdModule = c_0603;
43 | EndCmp
44 |
45 | BeginCmp
46 | TimeStamp = /516A4B29;
47 | Reference = CON1;
48 | ValeurCmp = AVR-ISP-6;
49 | IdModule = atmel-AVR-ISP-6;
50 | EndCmp
51 |
52 | BeginCmp
53 | TimeStamp = /51840F81;
54 | Reference = D1;
55 | ValeurCmp = LED;
56 | IdModule = SM0805;
57 | EndCmp
58 |
59 | BeginCmp
60 | TimeStamp = /51840FAE;
61 | Reference = D2;
62 | ValeurCmp = LED;
63 | IdModule = SM0805;
64 | EndCmp
65 |
66 | BeginCmp
67 | TimeStamp = /511F7D38;
68 | Reference = F1;
69 | ValeurCmp = FUSE;
70 | IdModule = Fuseholder5x20_horiz_open_universal_Type-III;
71 | EndCmp
72 |
73 | BeginCmp
74 | TimeStamp = /5169798E;
75 | Reference = IC1;
76 | ValeurCmp = ATTINY44-SS;
77 | IdModule = -SO-14;
78 | EndCmp
79 |
80 | BeginCmp
81 | TimeStamp = /511F7ED4;
82 | Reference = L1;
83 | ValeurCmp = 40-100uH;
84 | IdModule = Choke_Toroid_8x16mm_Vertical;
85 | EndCmp
86 |
87 | BeginCmp
88 | TimeStamp = /511F854D;
89 | Reference = P1;
90 | ValeurCmp = CONN_4;
91 | IdModule = connect-SC-04;
92 | EndCmp
93 |
94 | BeginCmp
95 | TimeStamp = /516976FE;
96 | Reference = P2;
97 | ValeurCmp = CONTACT;
98 | IdModule = HOLE_60;
99 | EndCmp
100 |
101 | BeginCmp
102 | TimeStamp = /5169770B;
103 | Reference = P3;
104 | ValeurCmp = CONTACT;
105 | IdModule = HOLE_60;
106 | EndCmp
107 |
108 | BeginCmp
109 | TimeStamp = /51697711;
110 | Reference = P4;
111 | ValeurCmp = CONTACT;
112 | IdModule = HOLE_60;
113 | EndCmp
114 |
115 | BeginCmp
116 | TimeStamp = /51698020;
117 | Reference = P6;
118 | ValeurCmp = CONN_4;
119 | IdModule = connect-SC-04;
120 | EndCmp
121 |
122 | BeginCmp
123 | TimeStamp = /516B0787;
124 | Reference = Q1;
125 | ValeurCmp = MOSFET_N;
126 | IdModule = -SOT23;
127 | EndCmp
128 |
129 | BeginCmp
130 | TimeStamp = /511F7E96;
131 | Reference = R1;
132 | ValeurCmp = 360R;
133 | IdModule = Resistor_Horizontal_RM20mm;
134 | EndCmp
135 |
136 | BeginCmp
137 | TimeStamp = /511F837C;
138 | Reference = R2;
139 | ValeurCmp = 200R;
140 | IdModule = rc-master-R0603;
141 | EndCmp
142 |
143 | BeginCmp
144 | TimeStamp = /511F7F8E;
145 | Reference = R3;
146 | ValeurCmp = 39;
147 | IdModule = Resistor_Horizontal_RM15mm;
148 | EndCmp
149 |
150 | BeginCmp
151 | TimeStamp = /511F8128;
152 | Reference = R4;
153 | ValeurCmp = 8.2k 5W;
154 | IdModule = Resistor_Horizontal_RM30mm;
155 | EndCmp
156 |
157 | BeginCmp
158 | TimeStamp = /511F812E;
159 | Reference = R5;
160 | ValeurCmp = 8.2k 5W;
161 | IdModule = Resistor_Horizontal_RM30mm;
162 | EndCmp
163 |
164 | BeginCmp
165 | TimeStamp = /51602617;
166 | Reference = R6;
167 | ValeurCmp = 470R;
168 | IdModule = Resistor_Horizontal_RM15mm;
169 | EndCmp
170 |
171 | BeginCmp
172 | TimeStamp = /516986E3;
173 | Reference = R7;
174 | ValeurCmp = R;
175 | IdModule = -R0603;
176 | EndCmp
177 |
178 | BeginCmp
179 | TimeStamp = /516A9D39;
180 | Reference = R8;
181 | ValeurCmp = 510k;
182 | IdModule = Resistor_Horizontal_RM15mm;
183 | EndCmp
184 |
185 | BeginCmp
186 | TimeStamp = /516B0880;
187 | Reference = R9;
188 | ValeurCmp = 10k;
189 | IdModule = -R0603;
190 | EndCmp
191 |
192 | BeginCmp
193 | TimeStamp = /516B0869;
194 | Reference = R10;
195 | ValeurCmp = R;
196 | IdModule = -R0603;
197 | EndCmp
198 |
199 | BeginCmp
200 | TimeStamp = /51840FC2;
201 | Reference = R11;
202 | ValeurCmp = R;
203 | IdModule = SM0603;
204 | EndCmp
205 |
206 | BeginCmp
207 | TimeStamp = /51840FC9;
208 | Reference = R12;
209 | ValeurCmp = R;
210 | IdModule = SM0603;
211 | EndCmp
212 |
213 | BeginCmp
214 | TimeStamp = /511F7BD6;
215 | Reference = U1;
216 | ValeurCmp = MOC-3052;
217 | IdModule = optocoupler-2-DIL06;
218 | EndCmp
219 |
220 | BeginCmp
221 | TimeStamp = /511F7BC7;
222 | Reference = U2;
223 | ValeurCmp = TRIAC;
224 | IdModule = -TOP3;
225 | EndCmp
226 |
227 | BeginCmp
228 | TimeStamp = /51603500;
229 | Reference = U3;
230 | ValeurCmp = LTV-814;
231 | IdModule = optocoupler-2-SO-4;
232 | EndCmp
233 |
234 | BeginCmp
235 | TimeStamp = /511F7F69;
236 | Reference = VR1;
237 | ValeurCmp = VR;
238 | IdModule = varistor-S05K40;
239 | EndCmp
240 |
241 | EndListe
242 |
--------------------------------------------------------------------------------
/gerbers/ssr-B_Mask.gbs:
--------------------------------------------------------------------------------
1 | G04 (created by PCBNEW (2013-mar-13)-testing) date Tue 07 May 2013 10:03:09 PM CEST*
2 | %MOIN*%
3 | G04 Gerber Fmt 3.4, Leading zero omitted, Abs format*
4 | %FSLAX34Y34*%
5 | G01*
6 | G70*
7 | G90*
8 | G04 APERTURE LIST*
9 | %ADD10C,2.3622e-06*%
10 | %ADD11R,0.0708661X0.0590551*%
11 | %ADD12C,0.551181*%
12 | %ADD13O,0.165X0.0825*%
13 | %ADD14C,0.0787*%
14 | %ADD15C,0.0906*%
15 | %ADD16C,0.2*%
16 | %ADD17C,0.0859*%
17 | %ADD18C,0.06*%
18 | %ADD19R,0.06X0.06*%
19 | %ADD20R,0.062X0.062*%
20 | %ADD21C,0.062*%
21 | %ADD22C,0.1575*%
22 | %ADD23O,0.112X0.056*%
23 | %ADD24R,0.0433X0.0354*%
24 | %ADD25C,0.1*%
25 | %ADD26O,0.104X0.052*%
26 | %ADD27R,0.0236X0.0866*%
27 | %ADD28R,0.0393X0.0433*%
28 | %ADD29C,0.2362*%
29 | %ADD30R,0.0551X0.0393*%
30 | %ADD31R,0.0433X0.0393*%
31 | %ADD32R,0.0354X0.0394*%
32 | %ADD33C,0.008*%
33 | %ADD34C,0.01*%
34 | G04 APERTURE END LIST*
35 | G54D10*
36 | G54D11*
37 | X67978Y-47250D03*
38 | X67978Y-46250D03*
39 | X71521Y-46250D03*
40 | X71521Y-47250D03*
41 | G54D12*
42 | X47250Y-28750D03*
43 | X57000Y-28750D03*
44 | X66000Y-28750D03*
45 | G54D13*
46 | X40500Y-43200D03*
47 | X40500Y-41000D03*
48 | X40500Y-38800D03*
49 | G54D14*
50 | X72000Y-53000D03*
51 | G54D15*
52 | X56252Y-53000D03*
53 | G54D16*
54 | X44000Y-45000D03*
55 | X44000Y-42000D03*
56 | X44000Y-31200D03*
57 | X44000Y-34200D03*
58 | G54D14*
59 | X46750Y-43500D03*
60 | X46750Y-37500D03*
61 | X48250Y-43500D03*
62 | X48250Y-37500D03*
63 | X50250Y-37500D03*
64 | X50250Y-45500D03*
65 | G54D17*
66 | X77250Y-42500D03*
67 | X75875Y-42500D03*
68 | G54D18*
69 | X77200Y-39400D03*
70 | X76200Y-40400D03*
71 | X77200Y-40400D03*
72 | X76200Y-41400D03*
73 | X77200Y-41400D03*
74 | G54D19*
75 | X76200Y-39400D03*
76 | G54D20*
77 | X77200Y-44000D03*
78 | G54D21*
79 | X77200Y-45000D03*
80 | X77200Y-46000D03*
81 | X77200Y-47000D03*
82 | G54D20*
83 | X77200Y-33750D03*
84 | G54D21*
85 | X77200Y-34750D03*
86 | X77200Y-35750D03*
87 | X77200Y-36750D03*
88 | G54D22*
89 | X59374Y-45000D03*
90 | X59374Y-37126D03*
91 | G54D23*
92 | X51250Y-29900D03*
93 | X53250Y-30600D03*
94 | G54D24*
95 | X76250Y-47062D03*
96 | X76250Y-46438D03*
97 | G54D25*
98 | X52000Y-46000D03*
99 | X52000Y-52000D03*
100 | X47250Y-34750D03*
101 | X53250Y-34750D03*
102 | X47000Y-45000D03*
103 | X47000Y-49000D03*
104 | G54D26*
105 | X72000Y-44750D03*
106 | X72000Y-43750D03*
107 | X72000Y-42750D03*
108 | X69000Y-42750D03*
109 | X69000Y-43750D03*
110 | X69000Y-44750D03*
111 | G54D27*
112 | X75100Y-35873D03*
113 | X74600Y-35873D03*
114 | X74100Y-35873D03*
115 | X73600Y-35873D03*
116 | X73100Y-35873D03*
117 | X72600Y-35873D03*
118 | X72100Y-35873D03*
119 | X72100Y-33827D03*
120 | X72600Y-33827D03*
121 | X73100Y-33827D03*
122 | X73600Y-33827D03*
123 | X74100Y-33827D03*
124 | X74600Y-33827D03*
125 | X75100Y-33827D03*
126 | G54D28*
127 | X74016Y-37200D03*
128 | X74684Y-37200D03*
129 | X75800Y-36066D03*
130 | X75800Y-36734D03*
131 | G54D29*
132 | X41750Y-28750D03*
133 | X75500Y-28500D03*
134 | X41750Y-53250D03*
135 | X75250Y-53250D03*
136 | G54D14*
137 | X47250Y-32500D03*
138 | X53250Y-32500D03*
139 | G54D30*
140 | X74433Y-44376D03*
141 | X74433Y-45124D03*
142 | X73567Y-44750D03*
143 | G54D31*
144 | X73000Y-43916D03*
145 | X73000Y-44584D03*
146 | X75250Y-44416D03*
147 | X75250Y-45084D03*
148 | G54D32*
149 | X72396Y-45450D03*
150 | X71804Y-45450D03*
151 | G54D14*
152 | X77000Y-49750D03*
153 | G54D15*
154 | X61252Y-49750D03*
155 | G54D10*
156 | G36*
157 | X47685Y-30510D02*
158 | X43747Y-34694D01*
159 | X41790Y-32981D01*
160 | X41790Y-32266D01*
161 | X45007Y-29049D01*
162 | X47685Y-30510D01*
163 | X47685Y-30510D01*
164 | G37*
165 | G54D33*
166 | X47685Y-30510D02*
167 | X43747Y-34694D01*
168 | X41790Y-32981D01*
169 | X41790Y-32266D01*
170 | X45007Y-29049D01*
171 | X47685Y-30510D01*
172 | G54D10*
173 | G36*
174 | X60350Y-45579D02*
175 | X56379Y-49550D01*
176 | X42800Y-49550D01*
177 | X42620Y-49550D01*
178 | X39650Y-46579D01*
179 | X39650Y-42850D01*
180 | X41550Y-42850D01*
181 | X41550Y-45620D01*
182 | X43379Y-47450D01*
183 | X55419Y-47450D01*
184 | X58440Y-44630D01*
185 | X58634Y-44242D01*
186 | X59398Y-44052D01*
187 | X59980Y-44246D01*
188 | X60350Y-44430D01*
189 | X60350Y-45579D01*
190 | X60350Y-45579D01*
191 | G37*
192 | G54D34*
193 | X60350Y-45579D02*
194 | X56379Y-49550D01*
195 | X42800Y-49550D01*
196 | X42620Y-49550D01*
197 | X39650Y-46579D01*
198 | X39650Y-42850D01*
199 | X41550Y-42850D01*
200 | X41550Y-45620D01*
201 | X43379Y-47450D01*
202 | X55419Y-47450D01*
203 | X58440Y-44630D01*
204 | X58634Y-44242D01*
205 | X59398Y-44052D01*
206 | X59980Y-44246D01*
207 | X60350Y-44430D01*
208 | X60350Y-45579D01*
209 | G54D10*
210 | G36*
211 | X68436Y-30021D02*
212 | X62729Y-38210D01*
213 | X57540Y-38210D01*
214 | X57540Y-33517D01*
215 | X63259Y-28295D01*
216 | X68436Y-30021D01*
217 | X68436Y-30021D01*
218 | G37*
219 | G54D33*
220 | X68436Y-30021D02*
221 | X62729Y-38210D01*
222 | X57540Y-38210D01*
223 | X57540Y-33517D01*
224 | X63259Y-28295D01*
225 | X68436Y-30021D01*
226 | G54D10*
227 | G36*
228 | X44960Y-45710D02*
229 | X43040Y-45710D01*
230 | X43040Y-42483D01*
231 | X42772Y-42216D01*
232 | X41008Y-41460D01*
233 | X39790Y-41460D01*
234 | X39790Y-40540D01*
235 | X44960Y-40540D01*
236 | X44960Y-45710D01*
237 | X44960Y-45710D01*
238 | G37*
239 | G54D33*
240 | X44960Y-45710D02*
241 | X43040Y-45710D01*
242 | X43040Y-42483D01*
243 | X42772Y-42216D01*
244 | X41008Y-41460D01*
245 | X39790Y-41460D01*
246 | X39790Y-40540D01*
247 | X44960Y-40540D01*
248 | X44960Y-45710D01*
249 | M02*
250 |
--------------------------------------------------------------------------------
/firmware/Makefile:
--------------------------------------------------------------------------------
1 | # Name: Makefile
2 | # Project: hid-mouse example
3 | # Author: Christian Starkjohann
4 | # Creation Date: 2008-04-07
5 | # Tabsize: 4
6 | # Copyright: (c) 2008 by OBJECTIVE DEVELOPMENT Software GmbH
7 | # License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 | # This Revision: $Id: Makefile 692 2008-11-07 15:07:40Z cs $
9 |
10 | DEVICE = attiny44
11 | F_CPU = 8000000 # in Hz
12 | FUSE_L = 0xD2# see below for fuse values for particular devices
13 | FUSE_H = 0xD5
14 | AVRDUDE = avrdude -c usbasp -P usb -p $(DEVICE) # edit this line for your programmer
15 |
16 | CFLAGS = -Iusbdrv -I. -DDEBUG_LEVEL=0 -Os
17 | CFLAGS += -ffunction-sections -fdata-sections -save-temps
18 | LDFLAGS += -Wl,--gc-sections,--relax
19 |
20 | OBJECTS = main.o usiTwiSlave.o conductionAngles.o
21 |
22 | COMPILE = avr-gcc -DF_CPU=$(F_CPU) $(CFLAGS) $(LDFLAGS) -mmcu=$(DEVICE)
23 |
24 | ##############################################################################
25 | # Fuse values for particular devices
26 | ##############################################################################
27 | # If your device is not listed here, go to
28 | # http://palmavr.sourceforge.net/cgi-bin/fc.cgi
29 | # and choose options for external crystal clock and no clock divider
30 | #
31 | ################################## ATMega8 ##################################
32 | # ATMega8 FUSE_L (Fuse low byte):
33 | # 0x9f = 1 0 0 1 1 1 1 1
34 | # ^ ^ \ / \--+--/
35 | # | | | +------- CKSEL 3..0 (external >8M crystal)
36 | # | | +--------------- SUT 1..0 (crystal osc, BOD enabled)
37 | # | +------------------ BODEN (BrownOut Detector enabled)
38 | # +-------------------- BODLEVEL (2.7V)
39 | # ATMega8 FUSE_H (Fuse high byte):
40 | # 0xc9 = 1 1 0 0 1 0 0 1 <-- BOOTRST (boot reset vector at 0x0000)
41 | # ^ ^ ^ ^ ^ ^ ^------ BOOTSZ0
42 | # | | | | | +-------- BOOTSZ1
43 | # | | | | + --------- EESAVE (don't preserve EEPROM over chip erase)
44 | # | | | +-------------- CKOPT (full output swing)
45 | # | | +---------------- SPIEN (allow serial programming)
46 | # | +------------------ WDTON (WDT not always on)
47 | # +-------------------- RSTDISBL (reset pin is enabled)
48 | #
49 | ############################## ATMega48/88/168 ##############################
50 | # ATMega*8 FUSE_L (Fuse low byte):
51 | # 0xdf = 1 1 0 1 1 1 1 1
52 | # ^ ^ \ / \--+--/
53 | # | | | +------- CKSEL 3..0 (external >8M crystal)
54 | # | | +--------------- SUT 1..0 (crystal osc, BOD enabled)
55 | # | +------------------ CKOUT (if 0: Clock output enabled)
56 | # +-------------------- CKDIV8 (if 0: divide by 8)
57 | # ATMega*8 FUSE_H (Fuse high byte):
58 | # 0xde = 1 1 0 1 1 1 1 0
59 | # ^ ^ ^ ^ ^ \-+-/
60 | # | | | | | +------ BODLEVEL 0..2 (110 = 1.8 V)
61 | # | | | | + --------- EESAVE (preserve EEPROM over chip erase)
62 | # | | | +-------------- WDTON (if 0: watchdog always on)
63 | # | | +---------------- SPIEN (allow serial programming)
64 | # | +------------------ DWEN (debug wire enable)
65 | # +-------------------- RSTDISBL (reset pin is enabled)
66 | #
67 | ############################## ATTiny25/45/85 ###############################
68 | # ATMega*5 FUSE_L (Fuse low byte):
69 | # 0xef = 1 1 1 0 1 1 1 1
70 | # ^ ^ \+/ \--+--/
71 | # | | | +------- CKSEL 3..0 (clock selection -> crystal @ 12 MHz)
72 | # | | +--------------- SUT 1..0 (BOD enabled, fast rising power)
73 | # | +------------------ CKOUT (clock output on CKOUT pin -> disabled)
74 | # +-------------------- CKDIV8 (divide clock by 8 -> don't divide)
75 | # ATMega*5 FUSE_H (Fuse high byte):
76 | # 0xdd = 1 1 0 1 1 1 0 1
77 | # ^ ^ ^ ^ ^ \-+-/
78 | # | | | | | +------ BODLEVEL 2..0 (brownout trigger level -> 2.7V)
79 | # | | | | +---------- EESAVE (preserve EEPROM on Chip Erase -> not preserved)
80 | # | | | +-------------- WDTON (watchdog timer always on -> disable)
81 | # | | +---------------- SPIEN (enable serial programming -> enabled)
82 | # | +------------------ DWEN (debug wire enable)
83 | # +-------------------- RSTDISBL (disable external reset -> enabled)
84 | #
85 | ################################ ATTiny2313 #################################
86 | # ATTiny2313 FUSE_L (Fuse low byte):
87 | # 0xef = 1 1 1 0 1 1 1 1
88 | # ^ ^ \+/ \--+--/
89 | # | | | +------- CKSEL 3..0 (clock selection -> crystal @ 12 MHz)
90 | # | | +--------------- SUT 1..0 (BOD enabled, fast rising power)
91 | # | +------------------ CKOUT (clock output on CKOUT pin -> disabled)
92 | # +-------------------- CKDIV8 (divide clock by 8 -> don't divide)
93 | # ATTiny2313 FUSE_H (Fuse high byte):
94 | # 0xdb = 1 1 0 1 1 0 1 1
95 | # ^ ^ ^ ^ \-+-/ ^
96 | # | | | | | +---- RSTDISBL (disable external reset -> enabled)
97 | # | | | | +-------- BODLEVEL 2..0 (brownout trigger level -> 2.7V)
98 | # | | | +-------------- WDTON (watchdog timer always on -> disable)
99 | # | | +---------------- SPIEN (enable serial programming -> enabled)
100 | # | +------------------ EESAVE (preserve EEPROM on Chip Erase -> not preserved)
101 | # +-------------------- DWEN (debug wire enable)
102 |
103 |
104 | # symbolic targets:
105 | help:
106 | @echo "This Makefile has no default rule. Use one of the following:"
107 | @echo "make hex ....... to build main.hex"
108 | @echo "make program ... to flash fuses and firmware"
109 | @echo "make fuse ...... to flash the fuses"
110 | @echo "make flash ..... to flash the firmware (use this on metaboard)"
111 | @echo "make clean ..... to delete objects and hex file"
112 |
113 | hex: main.hex
114 |
115 | program: flash fuse
116 |
117 | # rule for programming fuse bits:
118 | fuse:
119 | @[ "$(FUSE_H)" != "" -a "$(FUSE_L)" != "" ] || \
120 | { echo "*** Edit Makefile and choose values for FUSE_L and FUSE_H!"; exit 1; }
121 | $(AVRDUDE) -U hfuse:w:$(FUSE_H):m -U lfuse:w:$(FUSE_L):m
122 |
123 | # rule for uploading firmware:
124 | flash: main.hex
125 | $(AVRDUDE) -U flash:w:main.hex:i
126 |
127 | # rule for deleting dependent files (those which can be built by Make):
128 | clean:
129 | rm -f main.hex main.lst main.obj main.cof main.list main.map main.eep.hex main.elf *.o main.s
130 |
131 | # Generic rule for compiling C files:
132 | .c.o:
133 | $(COMPILE) -c $< -o $@
134 |
135 | # Generic rule for assembling Assembler source files:
136 | .S.o:
137 | $(COMPILE) -x assembler-with-cpp -c $< -o $@
138 | # "-x assembler-with-cpp" should not be necessary since this is the default
139 | # file type for the .S (with capital S) extension. However, upper case
140 | # characters are not always preserved on Windows. To ensure WinAVR
141 | # compatibility define the file type manually.
142 |
143 | # Generic rule for compiling C to assembler, used for debugging only.
144 | .c.s:
145 | $(COMPILE) -S $< -o $@
146 |
147 | # file targets:
148 |
149 | # Since we don't want to ship the driver multipe times, we copy it into this project:
150 |
151 | main.elf: $(OBJECTS) # usbdrv dependency only needed because we copy it
152 | $(COMPILE) -o main.elf $(OBJECTS)
153 |
154 | main.hex: main.elf
155 | rm -f main.hex main.eep.hex
156 | avr-objcopy -j .text -j .data -O ihex main.elf main.hex
157 | avr-size main.hex
158 |
159 | # debugging targets:
160 |
161 | disasm: main.elf
162 | avr-objdump -d main.elf
163 |
164 | cpp:
165 | $(COMPILE) -E main.c
166 |
--------------------------------------------------------------------------------
/experiment1/step-response-linear2.csv:
--------------------------------------------------------------------------------
1 | 23.50
2 | 23.56
3 | 23.56
4 | 23.69
5 | 23.69
6 | 23.81
7 | 23.94
8 | 24.06
9 | 24.19
10 | 24.31
11 | 24.50
12 | 24.62
13 | 24.81
14 | 25.00
15 | 25.12
16 | 25.37
17 | 25.50
18 | 25.69
19 | 25.87
20 | 26.06
21 | 26.25
22 | 26.44
23 | 26.62
24 | 26.81
25 | 27.00
26 | 27.19
27 | 27.44
28 | 27.56
29 | 27.75
30 | 27.94
31 | 28.12
32 | 28.31
33 | 28.50
34 | 28.75
35 | 28.94
36 | 29.06
37 | 29.25
38 | 29.44
39 | 29.62
40 | 29.81
41 | 29.94
42 | 30.12
43 | 30.31
44 | 30.44
45 | 30.62
46 | 30.75
47 | 30.94
48 | 31.06
49 | 31.25
50 | 31.37
51 | 31.50
52 | 31.62
53 | 31.81
54 | 31.94
55 | 32.06
56 | 32.19
57 | 32.31
58 | 32.44
59 | 32.56
60 | 32.69
61 | 32.88
62 | 32.94
63 | 33.13
64 | 33.19
65 | 33.31
66 | 33.44
67 | 33.56
68 | 33.69
69 | 33.75
70 | 33.88
71 | 34.00
72 | 34.06
73 | 34.19
74 | 34.31
75 | 34.38
76 | 34.50
77 | 34.56
78 | 34.69
79 | 34.75
80 | 34.81
81 | 34.94
82 | 35.00
83 | 35.13
84 | 35.19
85 | 35.25
86 | 35.31
87 | 35.44
88 | 35.50
89 | 35.56
90 | 35.63
91 | 35.69
92 | 35.75
93 | 35.81
94 | 35.88
95 | 36.00
96 | 36.00
97 | 36.06
98 | 36.19
99 | 36.19
100 | 36.25
101 | 36.31
102 | 36.38
103 | 36.44
104 | 36.50
105 | 36.56
106 | 36.56
107 | 36.63
108 | 36.69
109 | 36.75
110 | 36.75
111 | 36.81
112 | 36.88
113 | 36.94
114 | 36.94
115 | 37.00
116 | 37.06
117 | 37.06
118 | 37.13
119 | 37.19
120 | 37.25
121 | 37.25
122 | 37.31
123 | 37.31
124 | 37.38
125 | 37.44
126 | 37.44
127 | 37.44
128 | 37.50
129 | 37.56
130 | 37.56
131 | 37.56
132 | 37.63
133 | 37.63
134 | 37.69
135 | 37.69
136 | 37.69
137 | 37.75
138 | 37.75
139 | 37.81
140 | 37.81
141 | 37.88
142 | 37.88
143 | 37.88
144 | 37.94
145 | 37.94
146 | 38.00
147 | 38.00
148 | 38.00
149 | 38.06
150 | 38.06
151 | 38.06
152 | 38.06
153 | 38.13
154 | 38.13
155 | 38.13
156 | 38.19
157 | 38.19
158 | 38.19
159 | 38.19
160 | 38.25
161 | 38.25
162 | 38.25
163 | 38.25
164 | 38.31
165 | 38.31
166 | 38.31
167 | 38.38
168 | 38.38
169 | 38.38
170 | 38.38
171 | 38.44
172 | 38.44
173 | 38.44
174 | 38.44
175 | 38.44
176 | 38.50
177 | 38.50
178 | 38.50
179 | 38.50
180 | 38.50
181 | 38.50
182 | 38.56
183 | 38.56
184 | 38.56
185 | 38.56
186 | 38.63
187 | 38.63
188 | 38.63
189 | 38.63
190 | 38.63
191 | 38.63
192 | 38.63
193 | 38.69
194 | 38.69
195 | 38.69
196 | 38.69
197 | 38.69
198 | 38.69
199 | 38.69
200 | 38.69
201 | 38.75
202 | 38.75
203 | 38.75
204 | 38.75
205 | 38.75
206 | 38.81
207 | 38.75
208 | 38.81
209 | 38.75
210 | 38.75
211 | 38.75
212 | 38.81
213 | 38.81
214 | 38.81
215 | 38.81
216 | 38.81
217 | 38.88
218 | 38.81
219 | 38.88
220 | 38.88
221 | 38.88
222 | 38.88
223 | 38.88
224 | 38.88
225 | 38.88
226 | 38.88
227 | 38.88
228 | 38.88
229 | 38.88
230 | 38.94
231 | 38.94
232 | 38.88
233 | 38.88
234 | 38.94
235 | 38.94
236 | 38.94
237 | 38.94
238 | 38.94
239 | 38.94
240 | 38.94
241 | 38.94
242 | 38.94
243 | 38.94
244 | 38.94
245 | 38.94
246 | 38.94
247 | 38.94
248 | 38.94
249 | 38.94
250 | 39.00
251 | 39.00
252 | 39.00
253 | 39.00
254 | 39.00
255 | 39.00
256 | 39.00
257 | 39.00
258 | 39.00
259 | 39.00
260 | 39.00
261 | 39.00
262 | 39.00
263 | 39.00
264 | 39.06
265 | 39.00
266 | 39.06
267 | 39.00
268 | 39.06
269 | 39.00
270 | 39.06
271 | 39.06
272 | 39.06
273 | 39.06
274 | 39.06
275 | 39.06
276 | 39.06
277 | 39.06
278 | 39.06
279 | 39.06
280 | 39.06
281 | 39.06
282 | 39.06
283 | 39.06
284 | 39.06
285 | 39.06
286 | 39.06
287 | 39.06
288 | 39.06
289 | 39.06
290 | 39.06
291 | 39.06
292 | 39.06
293 | 39.06
294 | 39.06
295 | 39.06
296 | 39.06
297 | 39.06
298 | 39.13
299 | 39.13
300 | 39.06
301 | 39.13
302 | 39.13
303 | 39.13
304 | 39.13
305 | 39.06
306 | 39.13
307 | 39.13
308 | 39.13
309 | 39.13
310 | 39.13
311 | 39.13
312 | 39.13
313 | 39.13
314 | 39.13
315 | 39.13
316 | 39.13
317 | 39.13
318 | 39.13
319 | 39.13
320 | 39.13
321 | 39.13
322 | 39.13
323 | 39.19
324 | 39.13
325 | 39.19
326 | 39.13
327 | 39.13
328 | 39.13
329 | 39.19
330 | 39.19
331 | 39.19
332 | 39.19
333 | 39.19
334 | 39.19
335 | 39.19
336 | 39.19
337 | 39.19
338 | 39.19
339 | 39.19
340 | 39.25
341 | 39.19
342 | 39.19
343 | 39.19
344 | 39.19
345 | 39.19
346 | 39.25
347 | 39.19
348 | 39.25
349 | 39.25
350 | 39.25
351 | 39.19
352 | 39.19
353 | 39.25
354 | 39.19
355 | 39.25
356 | 39.25
357 | 39.25
358 | 39.25
359 | 39.25
360 | 39.25
361 | 39.25
362 | 39.25
363 | 39.25
364 | 39.25
365 | 39.25
366 | 39.19
367 | 39.25
368 | 39.25
369 | 39.25
370 | 39.25
371 | 39.25
372 | 39.25
373 | 39.25
374 | 39.25
375 | 39.25
376 | 39.25
377 | 39.25
378 | 39.25
379 | 39.25
380 | 39.31
381 | 39.25
382 | 39.31
383 | 39.25
384 | 39.25
385 | 39.31
386 | 39.25
387 | 39.25
388 | 39.31
389 | 39.25
390 | 39.31
391 | 39.31
392 | 39.31
393 | 39.31
394 | 39.31
395 | 39.31
396 | 39.25
397 | 39.31
398 | 39.31
399 | 39.31
400 | 39.31
401 | 39.31
402 | 39.31
403 | 39.31
404 | 39.31
405 | 39.31
406 | 39.31
407 | 39.31
408 | 39.31
409 | 39.31
410 | 39.31
411 | 39.31
412 | 39.31
413 | 39.31
414 | 39.31
415 | 39.31
416 | 39.31
417 | 39.31
418 | 39.31
419 | 39.31
420 | 39.31
421 | 39.31
422 | 39.38
423 | 39.31
424 | 39.31
425 | 39.31
426 | 39.31
427 | 39.38
428 | 39.31
429 | 39.38
430 | 39.38
431 | 39.38
432 | 39.38
433 | 39.38
434 | 39.38
435 | 39.38
436 | 39.38
437 | 39.38
438 | 39.38
439 | 39.38
440 | 39.38
441 | 39.38
442 | 39.38
443 | 39.38
444 | 39.38
445 | 39.38
446 | 39.38
447 | 39.38
448 | 39.38
449 | 39.38
450 | 39.38
451 | 39.38
452 | 39.38
453 | 39.38
454 | 39.38
455 | 39.38
456 | 39.38
457 | 39.38
458 | 39.38
459 | 39.44
460 | 39.38
461 | 39.38
462 | 39.38
463 | 39.44
464 | 39.44
465 | 39.44
466 | 39.38
467 | 39.44
468 | 39.44
469 | 39.44
470 | 39.38
471 | 39.44
472 | 39.44
473 | 39.44
474 | 39.44
475 | 39.44
476 | 39.44
477 | 39.44
478 | 39.44
479 | 39.44
480 | 39.44
481 | 39.44
482 | 39.44
483 | 39.44
484 | 39.44
485 | 39.44
486 | 39.44
487 | 39.44
488 | 39.44
489 | 39.44
490 | 39.44
491 | 39.44
492 | 39.44
493 | 39.44
494 | 39.44
495 | 39.44
496 | 39.44
497 | 39.44
498 | 39.44
499 | 39.44
500 | 39.50
501 | 39.44
502 | 39.50
503 | 39.44
504 | 39.50
505 | 39.50
506 | 39.44
507 | 39.44
508 | 39.50
509 | 39.50
510 | 39.44
511 | 39.44
512 | 39.44
513 | 39.44
514 | 39.50
515 | 39.50
516 | 39.50
517 | 39.50
518 | 39.50
519 | 39.50
520 | 39.50
521 | 39.50
522 | 39.50
523 | 39.50
524 | 39.50
525 | 39.50
526 | 39.50
527 | 39.50
528 | 39.50
529 | 39.50
530 | 39.50
531 | 39.50
532 | 39.50
533 | 39.50
534 | 39.50
535 | 39.50
536 | 39.50
537 | 39.50
538 | 39.50
539 | 39.50
540 | 39.50
541 | 39.50
542 | 39.50
543 | 39.50
544 | 39.50
545 | 39.50
546 | 39.50
547 | 39.50
548 | 39.50
549 | 39.50
550 | 39.50
551 | 39.50
552 | 39.56
553 | 39.56
554 | 39.50
555 | 39.50
556 | 39.50
557 | 39.56
558 | 39.50
559 | 39.50
560 | 39.50
561 | 39.56
562 | 39.50
563 | 39.50
564 | 39.56
565 | 39.50
566 | 39.56
567 | 39.50
568 | 39.56
569 | 39.50
570 | 39.50
571 | 39.56
572 | 39.50
573 | 39.50
574 | 39.56
575 | 39.56
576 | 39.50
577 | 39.56
578 | 39.56
579 | 39.50
580 | 39.56
581 | 39.56
582 | 39.50
583 | 39.56
584 | 39.56
585 | 39.56
586 | 39.56
587 | 39.56
588 | 39.56
589 | 39.56
590 | 39.56
591 | 39.56
592 | 39.56
593 | 39.56
594 | 39.56
595 | 39.56
596 | 39.56
597 | 39.56
598 | 39.56
599 | 39.56
600 | 39.56
601 | 39.56
602 | 39.56
603 | 39.56
604 | 39.56
605 | 39.56
606 | 39.56
607 | 39.56
608 | 39.56
609 | 39.56
610 | 39.56
611 | 39.56
612 | 39.56
613 | 39.56
614 | 39.56
615 | 39.56
616 | 39.63
617 | 39.56
618 | 39.56
619 | 39.56
620 | 39.63
621 | 39.63
622 | 39.56
623 | 39.56
624 | 39.56
625 | 39.56
626 | 39.56
627 | 39.56
628 | 39.56
629 | 39.56
630 | 39.56
631 | 39.56
632 | 39.56
633 | 39.56
634 | 39.56
635 | 39.63
636 | 39.63
637 | 39.56
638 | 39.63
639 | 39.56
640 | 39.63
641 | 39.56
642 | 39.56
643 | 39.56
644 | 39.56
645 | 39.56
646 | 39.56
647 | 39.63
648 | 39.63
649 | 39.63
650 | 39.63
651 | 39.63
652 | 39.63
653 | 39.63
654 | 39.56
655 | 39.63
656 | 39.63
657 | 39.63
658 | 39.63
659 | 39.63
660 | 39.63
661 | 39.63
662 | 39.63
663 | 39.63
664 | 39.63
665 | 39.63
666 | 39.63
667 | 39.63
668 | 39.63
669 | 39.63
670 | 39.63
671 |
--------------------------------------------------------------------------------
/controller-attiny1634/controller-cache.lib:
--------------------------------------------------------------------------------
1 | EESchema-LIBRARY Version 2.3 Date: Thu 16 May 2013 08:29:23 AM CEST
2 | #encoding utf-8
3 | #
4 | # ATTINY1634-S
5 | #
6 | DEF ATTINY1634-S IC 0 40 Y Y 1 F N
7 | F0 "IC" -1100 850 40 H V C CNN
8 | F1 "ATTINY1634-S" 950 -800 40 H V C CNN
9 | F2 "SO20" 0 0 35 H V C CIN
10 | F3 "~" 0 0 60 H V C CNN
11 | DRAW
12 | S 1150 -750 -1150 800 0 1 10 f
13 | X (PCINT8/TXD0/ADC5)PB0 1 1300 -250 150 L 40 40 1 1 B
14 | X (PCINT7/RXD0/ADC4)PA7 2 1300 -100 150 L 40 40 1 1 B
15 | X (PCINT6/OC1B/ADC3)PA6 3 1300 0 150 L 40 40 1 1 B
16 | X (PCINT5/OC0B/ADC2)PA5 4 1300 100 150 L 40 40 1 1 B
17 | X (PCINT4/T0/ADC1)PA4 5 1300 200 150 L 40 40 1 1 B
18 | X (PCINT3/T1/SNS/ADC0)PA3 6 1300 300 150 L 40 40 1 1 B
19 | X (PCINT2/AIN1)PA2 7 1300 400 150 L 40 40 1 1 B
20 | X (PCINT1/AIN0)PA1 8 1300 500 150 L 40 40 1 1 B
21 | X (PCINT0/AREF)PA0 9 1300 600 150 L 40 40 1 1 B
22 | X GND 10 0 -900 150 U 40 40 1 1 w
23 | X (PCINT9/DI/SDA/RXD1/ADC6)PB1 20 1300 -350 150 L 40 40 1 1 B
24 | X VCC 11 0 950 150 D 40 40 1 1 W
25 | X PC5(XTAL1/CLKI/PCINT17) 12 -1300 100 150 R 40 40 1 1 B
26 | X PC4(XTAL2/PCINT16) 13 -1300 200 150 R 40 40 1 1 B
27 | X PC3(~RESET~/dW/PCINT15) 14 -1300 300 150 R 40 40 1 1 B
28 | X PC2(ADC11/CLKO/INT0/PCINT14) 15 -1300 400 150 R 40 40 1 1 B
29 | X PC1(ADC10/ICP1/SCL/USCK/XCK1/PCINT13) 16 -1300 500 150 R 40 40 1 1 B
30 | X PC0(ADC9/OC0A/XCK0/PCINT12) 17 -1300 600 150 R 40 40 1 1 B
31 | X (PCINT11/OC1A/ADC8)PB3 18 1300 -550 150 L 40 40 1 1 B
32 | X (PCINT10/DO/TXD1/ADC7)PB2 19 1300 -450 150 L 40 40 1 1 B
33 | ENDDRAW
34 | ENDDEF
35 | #
36 | # AVR-ISP-6
37 | #
38 | DEF AVR-ISP-6 CON 0 40 Y Y 1 F N
39 | F0 "CON" -80 240 50 H V C CNN
40 | F1 "AVR-ISP-6" -240 -230 50 H V L BNN
41 | F2 "AVR-ISP-6" -520 40 50 V I C CNN
42 | F3 "~" 0 0 60 H V C CNN
43 | DRAW
44 | T 0 -290 5 45 0 0 0 SCK Normal 1 C C
45 | T 0 300 110 45 0 0 0 VCC Normal 1 C C
46 | T 0 310 -105 45 0 1 0 GND Normal 1 C C
47 | T 0 -308 102 45 0 1 0 MISO Normal 1 C C
48 | T 0 332 -2 45 0 1 0 MOSI Normal 1 C C
49 | T 0 -290 -100 45 0 1 0 RST Normal 1 C C
50 | S -180 -140 190 -160 0 1 0 F
51 | S -180 200 180 180 0 1 0 F
52 | S -175 -160 -195 -40 0 1 0 F
53 | S -175 200 -195 40 0 1 0 F
54 | S 180 200 200 -160 0 1 0 F
55 | X ~ 1 -125 100 100 R 40 40 1 1 P
56 | X ~ 2 125 100 100 L 40 40 1 1 P
57 | X ~ 3 -125 0 100 R 40 40 1 1 P
58 | X ~ 4 125 0 100 L 40 40 1 1 P
59 | X ~ 5 -125 -100 100 R 40 40 1 1 P
60 | X ~ 6 125 -100 100 L 40 40 1 1 P
61 | ENDDRAW
62 | ENDDEF
63 | #
64 | # C
65 | #
66 | DEF C C 0 10 N Y 1 F N
67 | F0 "C" 0 100 40 H V L CNN
68 | F1 "C" 6 -85 40 H V L CNN
69 | F2 "~" 38 -150 30 H V C CNN
70 | F3 "~" 0 0 60 H V C CNN
71 | $FPLIST
72 | SM*
73 | C?
74 | C1-1
75 | $ENDFPLIST
76 | DRAW
77 | P 2 0 1 20 -80 -30 80 -30 N
78 | P 2 0 1 20 -80 30 80 30 N
79 | X ~ 1 0 200 170 D 40 40 1 1 P
80 | X ~ 2 0 -200 170 U 40 40 1 1 P
81 | ENDDRAW
82 | ENDDEF
83 | #
84 | # CONN_3
85 | #
86 | DEF CONN_3 K 0 40 Y N 1 F N
87 | F0 "K" -50 0 50 V V C CNN
88 | F1 "CONN_3" 50 0 40 V V C CNN
89 | F2 "~" 0 0 60 H V C CNN
90 | F3 "~" 0 0 60 H V C CNN
91 | DRAW
92 | S -100 150 100 -150 0 1 0 N
93 | X P1 1 -350 100 250 R 60 60 1 1 P I
94 | X PM 2 -350 0 250 R 60 60 1 1 P I
95 | X P3 3 -350 -100 250 R 60 60 1 1 P I
96 | ENDDRAW
97 | ENDDEF
98 | #
99 | # CONN_4
100 | #
101 | DEF CONN_4 P 0 40 Y N 1 F N
102 | F0 "P" -50 0 50 V V C CNN
103 | F1 "CONN_4" 50 0 50 V V C CNN
104 | F2 "~" 0 0 60 H V C CNN
105 | F3 "~" 0 0 60 H V C CNN
106 | DRAW
107 | S -100 200 100 -200 0 1 0 N
108 | X P1 1 -350 150 250 R 50 50 1 1 P I
109 | X P2 2 -350 50 250 R 50 50 1 1 P I
110 | X P3 3 -350 -50 250 R 50 50 1 1 P I
111 | X P4 4 -350 -150 250 R 50 50 1 1 P I
112 | ENDDRAW
113 | ENDDEF
114 | #
115 | # CRYSTAL
116 | #
117 | DEF CRYSTAL X 0 40 N N 1 F N
118 | F0 "X" 0 150 60 H V C CNN
119 | F1 "CRYSTAL" 0 -150 60 H V C CNN
120 | F2 "~" 0 0 60 H V C CNN
121 | F3 "~" 0 0 60 H V C CNN
122 | DRAW
123 | P 2 0 1 16 -100 100 -100 -100 N
124 | P 2 0 1 16 100 100 100 -100 N
125 | P 5 0 1 12 -50 50 50 50 50 -50 -50 -50 -50 50 f
126 | X 1 1 -300 0 200 R 40 40 1 1 P
127 | X 2 2 300 0 200 L 40 40 1 1 P
128 | ENDDRAW
129 | ENDDEF
130 | #
131 | # GND
132 | #
133 | DEF ~GND #PWR 0 0 Y Y 1 F P
134 | F0 "#PWR" 0 0 30 H I C CNN
135 | F1 "GND" 0 -70 30 H I C CNN
136 | F2 "~" 0 0 60 H V C CNN
137 | F3 "~" 0 0 60 H V C CNN
138 | DRAW
139 | P 4 0 1 0 -50 0 0 -50 50 0 -50 0 N
140 | X GND 1 0 0 0 U 30 30 1 1 W N
141 | ENDDRAW
142 | ENDDEF
143 | #
144 | # JUMPER
145 | #
146 | DEF JUMPER JP 0 30 Y N 1 F N
147 | F0 "JP" 0 150 60 H V C CNN
148 | F1 "JUMPER" 0 -80 40 H V C CNN
149 | F2 "~" 0 0 60 H V C CNN
150 | F3 "~" 0 0 60 H V C CNN
151 | DRAW
152 | A 0 -26 125 1426 373 0 1 0 N -98 50 99 50
153 | C -100 0 35 0 1 0 N
154 | C 100 0 35 0 1 0 N
155 | X 1 1 -300 0 165 R 60 60 0 1 P
156 | X 2 2 300 0 165 L 60 60 0 1 P
157 | ENDDRAW
158 | ENDDEF
159 | #
160 | # P82B96
161 | #
162 | DEF P82B96 U 0 40 Y Y 1 F N
163 | F0 "U" 150 500 60 H V C CNN
164 | F1 "P82B96" 0 -500 60 H V C CNN
165 | F2 "~" 0 0 60 H V C CNN
166 | F3 "~" 0 0 60 H V C CNN
167 | $FPLIST
168 | SO8E
169 | SSOP8
170 | $ENDFPLIST
171 | DRAW
172 | S -550 450 550 -450 0 1 0 N
173 | P 3 0 1 0 -250 -150 -300 -150 -300 -150 N
174 | P 3 0 1 0 -200 150 -300 150 -300 150 N
175 | P 3 0 1 0 0 -300 100 -300 100 -300 N
176 | P 3 0 1 0 0 -150 100 -150 100 -150 N
177 | P 3 0 1 0 0 300 100 300 100 300 N
178 | P 3 0 1 0 100 150 0 150 0 150 N
179 | P 4 0 1 0 -250 150 -250 300 -200 300 -200 300 N
180 | P 5 0 1 0 -200 -150 -250 -150 -250 -300 -200 -300 -200 -300 N
181 | P 5 0 1 0 -200 -50 -200 -250 0 -150 -200 -50 -200 -50 N
182 | P 5 0 1 0 -200 400 -200 200 0 300 -200 400 -200 400 N
183 | P 5 0 1 0 0 -200 -200 -300 0 -400 0 -200 0 -200 N
184 | P 5 0 1 0 0 250 -200 150 0 50 0 250 0 250 N
185 | X SDA 1 -750 150 200 R 50 50 1 1 B
186 | X RXD-SDA 2 750 150 200 L 50 50 1 1 I
187 | X TXD-SDA 3 750 300 200 L 50 50 1 1 O
188 | X GND 4 -750 -350 200 R 50 50 1 1 W
189 | X TXD-SCL 5 750 -150 200 L 50 50 1 1 O
190 | X RXD-SCL 6 750 -300 200 L 50 50 1 1 I
191 | X SCL 7 -750 -150 200 R 50 50 1 1 B
192 | X VCC 8 -750 350 200 R 50 50 1 1 W
193 | ENDDRAW
194 | ENDDEF
195 | #
196 | # R
197 | #
198 | DEF R R 0 0 N Y 1 F N
199 | F0 "R" 80 0 40 V V C CNN
200 | F1 "R" 7 1 40 V V C CNN
201 | F2 "~" -70 0 30 V V C CNN
202 | F3 "~" 0 0 30 H V C CNN
203 | $FPLIST
204 | R?
205 | SM0603
206 | SM0805
207 | R?-*
208 | SM1206
209 | $ENDFPLIST
210 | DRAW
211 | S -40 150 40 -150 0 1 12 N
212 | X ~ 1 0 250 100 D 60 60 1 1 P
213 | X ~ 2 0 -250 100 U 60 60 1 1 P
214 | ENDDRAW
215 | ENDDEF
216 | #
217 | # SP3481CN
218 | #
219 | DEF SP3481CN IC 0 40 Y Y 1 F N
220 | F0 "IC" -200 250 40 H V C CNN
221 | F1 "SP3481CN" 200 -250 40 H V C CNN
222 | F2 "SO8" 0 0 35 H V C CIN
223 | F3 "~" 0 0 60 H V C CNN
224 | ALIAS SP3481EN SP3485CN SP3485EN
225 | $FPLIST
226 | SO8*
227 | $ENDFPLIST
228 | DRAW
229 | S -250 200 250 -200 0 1 10 f
230 | X RO 1 -400 150 150 R 40 40 1 1 O
231 | X ~RE~ 2 -400 50 150 R 40 40 1 1 I
232 | X DE 3 -400 -50 150 R 40 40 1 1 I
233 | X DI 4 -400 -150 150 R 40 40 1 1 I
234 | X GND 5 0 -350 150 U 40 40 1 1 W
235 | X A 6 400 100 150 L 40 40 1 1 B
236 | X B 7 400 -100 150 L 40 40 1 1 B
237 | X VCC 8 0 350 150 D 40 40 1 1 W
238 | ENDDRAW
239 | ENDDEF
240 | #
241 | # SW_PUSH
242 | #
243 | DEF SW_PUSH SW 0 40 N N 1 F N
244 | F0 "SW" 150 110 50 H V C CNN
245 | F1 "SW_PUSH" 0 -80 50 H V C CNN
246 | F2 "~" 0 0 60 H V C CNN
247 | F3 "~" 0 0 60 H V C CNN
248 | DRAW
249 | S -170 50 170 60 0 1 0 N
250 | P 4 0 1 0 -40 60 -30 90 30 90 40 60 N
251 | X 1 1 -300 0 200 R 60 60 0 1 P I
252 | X 2 2 300 0 200 L 60 60 0 1 P I
253 | ENDDRAW
254 | ENDDEF
255 | #
256 | # VCC
257 | #
258 | DEF VCC #PWR 0 0 Y Y 1 F P
259 | F0 "#PWR" 0 100 30 H I C CNN
260 | F1 "VCC" 0 100 30 H V C CNN
261 | F2 "~" 0 0 60 H V C CNN
262 | F3 "~" 0 0 60 H V C CNN
263 | DRAW
264 | X VCC 1 0 0 0 U 20 20 0 0 W N
265 | C 0 50 20 0 1 0 N
266 | P 3 0 1 0 0 0 0 30 0 30 N
267 | ENDDRAW
268 | ENDDEF
269 | #
270 | #End Library
271 |
--------------------------------------------------------------------------------
/controller-atmega8/controller-cache.lib:
--------------------------------------------------------------------------------
1 | EESchema-LIBRARY Version 2.3 Date: Tue 23 Jul 2013 12:57:56 PM EEST
2 | #encoding utf-8
3 | #
4 | # ATMEGA168-A
5 | #
6 | DEF ATMEGA168-A IC 0 40 Y Y 1 F N
7 | F0 "IC" -750 1250 40 H V L BNN
8 | F1 "ATMEGA168-A" 450 -1400 40 H V L BNN
9 | F2 "TQFP32" 0 0 30 H V C CIN
10 | F3 "" 0 0 60 H V C CNN
11 | ALIAS ATMEGA48-A ATMEGA88-A
12 | DRAW
13 | S -750 1200 850 -1300 0 1 10 f
14 | X (PCINT19/OC2B/INT1)PD3 1 1000 -800 150 L 40 40 1 1 B
15 | X (PCINT20/XCK/T0)PD4 2 1000 -900 150 L 40 40 1 1 B
16 | X GND 3 -900 -1200 150 R 40 40 1 1 W
17 | X VCC 4 -900 1100 150 R 40 40 1 1 W
18 | X GND 5 -900 -1100 150 R 40 40 1 1 W
19 | X VCC 6 -900 1000 150 R 40 40 1 1 W
20 | X (PCINT6/XTAL1/TOSC1)PB6 7 1000 500 150 L 40 40 1 1 B
21 | X (PCINT7/XTAL2/TOSC2)PB7 8 1000 400 150 L 40 40 1 1 B
22 | X (PCINT21/OC0B/T1)PD5 9 1000 -1000 150 L 40 40 1 1 B
23 | X (PCINT22/OC0A/AIN0)PD6 10 1000 -1100 150 L 40 40 1 1 B
24 | X AREF 20 -900 500 150 R 40 40 1 1 B
25 | X (PCINT16/RXD)PD0 30 1000 -500 150 L 40 40 1 1 B
26 | X (PCINT23/AIN1)PD7 11 1000 -1200 150 L 40 40 1 1 B
27 | X GND 21 -900 -1000 150 R 40 40 1 1 W
28 | X (PCINT17/TXD)PD1 31 1000 -600 150 L 40 40 1 1 B
29 | X (PCINT0/CLKO/ICP1)PB0 12 1000 1100 150 L 40 40 1 1 B
30 | X ADC7 22 -900 -350 150 R 40 40 1 1 I
31 | X (PCINT18/INT0)PD2 32 1000 -700 150 L 40 40 1 1 B
32 | X (PCINT1/OC1A)PB1 13 1000 1000 150 L 40 40 1 1 B
33 | X (PCINT8/ADC0)PC0 23 1000 250 150 L 40 40 1 1 B
34 | X (PCINT2/OC1B/~SS~)PB2 14 1000 900 150 L 40 40 1 1 B
35 | X (PCINT9/ADC1)PC1 24 1000 150 150 L 40 40 1 1 B
36 | X (PCINT3/OC2/MOSI)PB3 15 1000 800 150 L 40 40 1 1 B
37 | X (PCINT10/ADC2)PC2 25 1000 50 150 L 40 40 1 1 B
38 | X (PCINT4/MISO)PB4 16 1000 700 150 L 40 40 1 1 B
39 | X (PCINT11/ADC3)PC3 26 1000 -50 150 L 40 40 1 1 B
40 | X (PCINT5/SCK)PB5 17 1000 600 150 L 40 40 1 1 B
41 | X (PCINT12/SDA/ADC4)PC4 27 1000 -150 150 L 40 40 1 1 B
42 | X AVCC 18 -900 800 150 R 40 40 1 1 W
43 | X (PCINT14/SCL/ADC5)PC5 28 1000 -250 150 L 40 40 1 1 B
44 | X ADC6 19 -900 -250 150 R 40 40 1 1 I
45 | X (PCINT14/~RESET~)PC6 29 1000 -350 150 L 40 40 1 1 B
46 | ENDDRAW
47 | ENDDEF
48 | #
49 | # AVR-ISP-6
50 | #
51 | DEF AVR-ISP-6 CON 0 40 Y Y 1 F N
52 | F0 "CON" -80 240 50 H V C CNN
53 | F1 "AVR-ISP-6" -240 -230 50 H V L BNN
54 | F2 "AVR-ISP-6" -520 40 50 V I C CNN
55 | F3 "" 0 0 60 H V C CNN
56 | DRAW
57 | T 0 -290 5 45 0 0 0 SCK Normal 1 C C
58 | T 0 300 110 45 0 0 0 VCC Normal 1 C C
59 | T 0 310 -105 45 0 1 0 GND Normal 1 C C
60 | T 0 -308 102 45 0 1 0 MISO Normal 1 C C
61 | T 0 332 -2 45 0 1 0 MOSI Normal 1 C C
62 | T 0 -290 -100 45 0 1 0 RST Normal 1 C C
63 | S -180 -140 190 -160 0 1 0 F
64 | S -180 200 180 180 0 1 0 F
65 | S -175 -160 -195 -40 0 1 0 F
66 | S -175 200 -195 40 0 1 0 F
67 | S 180 200 200 -160 0 1 0 F
68 | X ~ 1 -125 100 100 R 40 40 1 1 P
69 | X ~ 2 125 100 100 L 40 40 1 1 P
70 | X ~ 3 -125 0 100 R 40 40 1 1 P
71 | X ~ 4 125 0 100 L 40 40 1 1 P
72 | X ~ 5 -125 -100 100 R 40 40 1 1 P
73 | X ~ 6 125 -100 100 L 40 40 1 1 P
74 | ENDDRAW
75 | ENDDEF
76 | #
77 | # C
78 | #
79 | DEF C C 0 10 N Y 1 F N
80 | F0 "C" 0 100 40 H V L CNN
81 | F1 "C" 6 -85 40 H V L CNN
82 | F2 "" 38 -150 30 H V C CNN
83 | F3 "" 0 0 60 H V C CNN
84 | $FPLIST
85 | SM*
86 | C?
87 | C1-1
88 | $ENDFPLIST
89 | DRAW
90 | P 2 0 1 20 -80 -30 80 -30 N
91 | P 2 0 1 20 -80 30 80 30 N
92 | X ~ 1 0 200 170 D 40 40 1 1 P
93 | X ~ 2 0 -200 170 U 40 40 1 1 P
94 | ENDDRAW
95 | ENDDEF
96 | #
97 | # CONN_2
98 | #
99 | DEF CONN_2 P 0 40 Y N 1 F N
100 | F0 "P" -50 0 40 V V C CNN
101 | F1 "CONN_2" 50 0 40 V V C CNN
102 | F2 "" 0 0 60 H V C CNN
103 | F3 "" 0 0 60 H V C CNN
104 | DRAW
105 | S -100 150 100 -150 0 1 0 N
106 | X P1 1 -350 100 250 R 60 60 1 1 P I
107 | X PM 2 -350 -100 250 R 60 60 1 1 P I
108 | ENDDRAW
109 | ENDDEF
110 | #
111 | # CONN_3
112 | #
113 | DEF CONN_3 K 0 40 Y N 1 F N
114 | F0 "K" -50 0 50 V V C CNN
115 | F1 "CONN_3" 50 0 40 V V C CNN
116 | F2 "" 0 0 60 H V C CNN
117 | F3 "" 0 0 60 H V C CNN
118 | DRAW
119 | S -100 150 100 -150 0 1 0 N
120 | X P1 1 -350 100 250 R 60 60 1 1 P I
121 | X PM 2 -350 0 250 R 60 60 1 1 P I
122 | X P3 3 -350 -100 250 R 60 60 1 1 P I
123 | ENDDRAW
124 | ENDDEF
125 | #
126 | # CONN_4
127 | #
128 | DEF CONN_4 P 0 40 Y N 1 F N
129 | F0 "P" -50 0 50 V V C CNN
130 | F1 "CONN_4" 50 0 50 V V C CNN
131 | F2 "" 0 0 60 H V C CNN
132 | F3 "" 0 0 60 H V C CNN
133 | DRAW
134 | S -100 200 100 -200 0 1 0 N
135 | X P1 1 -350 150 250 R 50 50 1 1 P I
136 | X P2 2 -350 50 250 R 50 50 1 1 P I
137 | X P3 3 -350 -50 250 R 50 50 1 1 P I
138 | X P4 4 -350 -150 250 R 50 50 1 1 P I
139 | ENDDRAW
140 | ENDDEF
141 | #
142 | # CRYSTAL
143 | #
144 | DEF CRYSTAL X 0 40 N N 1 F N
145 | F0 "X" 0 150 60 H V C CNN
146 | F1 "CRYSTAL" 0 -150 60 H V C CNN
147 | F2 "" 0 0 60 H V C CNN
148 | F3 "" 0 0 60 H V C CNN
149 | DRAW
150 | P 2 0 1 16 -100 100 -100 -100 N
151 | P 2 0 1 16 100 100 100 -100 N
152 | P 5 0 1 12 -50 50 50 50 50 -50 -50 -50 -50 50 f
153 | X 1 1 -300 0 200 R 40 40 1 1 P
154 | X 2 2 300 0 200 L 40 40 1 1 P
155 | ENDDRAW
156 | ENDDEF
157 | #
158 | # GND
159 | #
160 | DEF ~GND #PWR 0 0 Y Y 1 F P
161 | F0 "#PWR" 0 0 30 H I C CNN
162 | F1 "GND" 0 -70 30 H I C CNN
163 | F2 "" 0 0 60 H V C CNN
164 | F3 "" 0 0 60 H V C CNN
165 | DRAW
166 | P 4 0 1 0 -50 0 0 -50 50 0 -50 0 N
167 | X GND 1 0 0 0 U 30 30 1 1 W N
168 | ENDDRAW
169 | ENDDEF
170 | #
171 | # JUMPER
172 | #
173 | DEF JUMPER JP 0 30 Y N 1 F N
174 | F0 "JP" 0 150 60 H V C CNN
175 | F1 "JUMPER" 0 -80 40 H V C CNN
176 | F2 "" 0 0 60 H V C CNN
177 | F3 "" 0 0 60 H V C CNN
178 | DRAW
179 | A 0 -26 125 1426 373 0 1 0 N -98 50 99 50
180 | C -100 0 35 0 1 0 N
181 | C 100 0 35 0 1 0 N
182 | X 1 1 -300 0 165 R 60 60 0 1 P
183 | X 2 2 300 0 165 L 60 60 0 1 P
184 | ENDDRAW
185 | ENDDEF
186 | #
187 | # P82B96
188 | #
189 | DEF P82B96 U 0 40 Y Y 1 F N
190 | F0 "U" 150 500 60 H V C CNN
191 | F1 "P82B96" 0 -500 60 H V C CNN
192 | F2 "" 0 0 60 H V C CNN
193 | F3 "" 0 0 60 H V C CNN
194 | $FPLIST
195 | SO8E
196 | SSOP8
197 | $ENDFPLIST
198 | DRAW
199 | S -550 450 550 -450 0 1 0 N
200 | P 3 0 1 0 -250 -150 -300 -150 -300 -150 N
201 | P 3 0 1 0 -200 150 -300 150 -300 150 N
202 | P 3 0 1 0 0 -300 100 -300 100 -300 N
203 | P 3 0 1 0 0 -150 100 -150 100 -150 N
204 | P 3 0 1 0 0 300 100 300 100 300 N
205 | P 3 0 1 0 100 150 0 150 0 150 N
206 | P 4 0 1 0 -250 150 -250 300 -200 300 -200 300 N
207 | P 5 0 1 0 -200 -150 -250 -150 -250 -300 -200 -300 -200 -300 N
208 | P 5 0 1 0 -200 -50 -200 -250 0 -150 -200 -50 -200 -50 N
209 | P 5 0 1 0 -200 400 -200 200 0 300 -200 400 -200 400 N
210 | P 5 0 1 0 0 -200 -200 -300 0 -400 0 -200 0 -200 N
211 | P 5 0 1 0 0 250 -200 150 0 50 0 250 0 250 N
212 | X SDA 1 -750 150 200 R 50 50 1 1 B
213 | X RXD-SDA 2 750 150 200 L 50 50 1 1 I
214 | X TXD-SDA 3 750 300 200 L 50 50 1 1 O
215 | X GND 4 -750 -350 200 R 50 50 1 1 W
216 | X TXD-SCL 5 750 -150 200 L 50 50 1 1 O
217 | X RXD-SCL 6 750 -300 200 L 50 50 1 1 I
218 | X SCL 7 -750 -150 200 R 50 50 1 1 B
219 | X VCC 8 -750 350 200 R 50 50 1 1 W
220 | ENDDRAW
221 | ENDDEF
222 | #
223 | # R
224 | #
225 | DEF R R 0 0 N Y 1 F N
226 | F0 "R" 80 0 40 V V C CNN
227 | F1 "R" 7 1 40 V V C CNN
228 | F2 "" -70 0 30 V V C CNN
229 | F3 "" 0 0 30 H V C CNN
230 | $FPLIST
231 | R?
232 | SM0603
233 | SM0805
234 | R?-*
235 | SM1206
236 | $ENDFPLIST
237 | DRAW
238 | S -40 150 40 -150 0 1 12 N
239 | X ~ 1 0 250 100 D 60 60 1 1 P
240 | X ~ 2 0 -250 100 U 60 60 1 1 P
241 | ENDDRAW
242 | ENDDEF
243 | #
244 | # SP3481CN
245 | #
246 | DEF SP3481CN IC 0 40 Y Y 1 F N
247 | F0 "IC" -200 250 40 H V C CNN
248 | F1 "SP3481CN" 200 -250 40 H V C CNN
249 | F2 "SO8" 0 0 35 H V C CIN
250 | F3 "" 0 0 60 H V C CNN
251 | ALIAS SP3481EN SP3485CN SP3485EN
252 | $FPLIST
253 | SO8*
254 | $ENDFPLIST
255 | DRAW
256 | S -250 200 250 -200 0 1 10 f
257 | X RO 1 -400 150 150 R 40 40 1 1 O
258 | X ~RE~ 2 -400 50 150 R 40 40 1 1 I
259 | X DE 3 -400 -50 150 R 40 40 1 1 I
260 | X DI 4 -400 -150 150 R 40 40 1 1 I
261 | X GND 5 0 -350 150 U 40 40 1 1 W
262 | X A 6 400 100 150 L 40 40 1 1 B
263 | X B 7 400 -100 150 L 40 40 1 1 B
264 | X VCC 7 0 350 150 D 40 40 1 1 W
265 | ENDDRAW
266 | ENDDEF
267 | #
268 | # SW_PUSH
269 | #
270 | DEF SW_PUSH SW 0 40 N N 1 F N
271 | F0 "SW" 150 110 50 H V C CNN
272 | F1 "SW_PUSH" 0 -80 50 H V C CNN
273 | F2 "" 0 0 60 H V C CNN
274 | F3 "" 0 0 60 H V C CNN
275 | DRAW
276 | S -170 50 170 60 0 1 0 N
277 | P 4 0 1 0 -40 60 -30 90 30 90 40 60 N
278 | X 1 1 -300 0 200 R 60 60 0 1 P I
279 | X 2 2 300 0 200 L 60 60 0 1 P I
280 | ENDDRAW
281 | ENDDEF
282 | #
283 | # VCC
284 | #
285 | DEF VCC #PWR 0 0 Y Y 1 F P
286 | F0 "#PWR" 0 100 30 H I C CNN
287 | F1 "VCC" 0 100 30 H V C CNN
288 | F2 "" 0 0 60 H V C CNN
289 | F3 "" 0 0 60 H V C CNN
290 | DRAW
291 | X VCC 1 0 0 0 U 20 20 0 0 W N
292 | C 0 50 20 0 1 0 N
293 | P 3 0 1 0 0 0 0 30 0 30 N
294 | ENDDRAW
295 | ENDDEF
296 | #
297 | #End Library
298 |
--------------------------------------------------------------------------------
/experiment1/step-response-linear.csv:
--------------------------------------------------------------------------------
1 | 25.69
2 | 25.75
3 | 25.75
4 | 25.75
5 | 25.69
6 | 25.75
7 | 25.69
8 | 25.75
9 | 25.69
10 | 25.69
11 | 25.75
12 | 25.69
13 | 25.75
14 | 25.75
15 | 25.75
16 | 25.75
17 | 25.81
18 | 25.87
19 | 25.94
20 | 26.06
21 | 26.19
22 | 26.31
23 | 26.44
24 | 26.56
25 | 26.75
26 | 26.87
27 | 27.06
28 | 27.25
29 | 27.44
30 | 27.62
31 | 27.81
32 | 28.00
33 | 28.25
34 | 28.44
35 | 28.62
36 | 28.87
37 | 29.12
38 | 29.31
39 | 29.56
40 | 29.75
41 | 30.00
42 | 30.19
43 | 30.37
44 | 30.56
45 | 30.75
46 | 31.00
47 | 31.19
48 | 31.31
49 | 31.56
50 | 31.75
51 | 31.94
52 | 32.13
53 | 32.31
54 | 32.50
55 | 32.69
56 | 32.81
57 | 32.94
58 | 33.19
59 | 33.31
60 | 33.50
61 | 33.63
62 | 33.81
63 | 33.94
64 | 34.13
65 | 34.31
66 | 34.44
67 | 34.56
68 | 34.75
69 | 34.88
70 | 35.06
71 | 35.19
72 | 35.38
73 | 35.50
74 | 35.69
75 | 35.81
76 | 35.94
77 | 36.06
78 | 36.19
79 | 36.31
80 | 36.44
81 | 36.56
82 | 36.63
83 | 36.75
84 | 36.88
85 | 37.00
86 | 37.06
87 | 37.19
88 | 37.25
89 | 37.31
90 | 37.44
91 | 37.50
92 | 37.56
93 | 37.69
94 | 37.75
95 | 37.81
96 | 37.88
97 | 37.94
98 | 38.00
99 | 38.13
100 | 38.19
101 | 38.25
102 | 38.31
103 | 38.38
104 | 38.44
105 | 38.50
106 | 38.56
107 | 38.69
108 | 38.75
109 | 38.88
110 | 38.94
111 | 39.00
112 | 39.06
113 | 39.13
114 | 39.19
115 | 39.25
116 | 39.31
117 | 39.38
118 | 39.44
119 | 39.50
120 | 39.50
121 | 39.56
122 | 39.63
123 | 39.69
124 | 39.69
125 | 39.75
126 | 39.81
127 | 39.81
128 | 39.88
129 | 39.88
130 | 39.88
131 | 39.94
132 | 39.94
133 | 39.94
134 | 39.94
135 | 39.94
136 | 39.94
137 | 39.94
138 | 39.94
139 | 39.94
140 | 40.00
141 | 40.06
142 | 40.13
143 | 40.13
144 | 40.13
145 | 40.19
146 | 40.19
147 | 40.19
148 | 40.19
149 | 40.25
150 | 40.25
151 | 40.25
152 | 40.25
153 | 40.25
154 | 40.31
155 | 40.38
156 | 40.38
157 | 40.44
158 | 40.44
159 | 40.44
160 | 40.50
161 | 40.50
162 | 40.50
163 | 40.50
164 | 40.50
165 | 40.50
166 | 40.50
167 | 40.50
168 | 40.50
169 | 40.50
170 | 40.50
171 | 40.50
172 | 40.50
173 | 40.50
174 | 40.50
175 | 40.50
176 | 40.50
177 | 40.50
178 | 40.50
179 | 40.50
180 | 40.50
181 | 40.56
182 | 40.56
183 | 40.56
184 | 40.56
185 | 40.56
186 | 40.56
187 | 40.56
188 | 40.63
189 | 40.63
190 | 40.63
191 | 40.69
192 | 40.69
193 | 40.69
194 | 40.69
195 | 40.75
196 | 40.69
197 | 40.75
198 | 40.75
199 | 40.75
200 | 40.75
201 | 40.75
202 | 40.69
203 | 40.69
204 | 40.69
205 | 40.69
206 | 40.69
207 | 40.69
208 | 40.69
209 | 40.69
210 | 40.69
211 | 40.69
212 | 40.69
213 | 40.69
214 | 40.69
215 | 40.63
216 | 40.63
217 | 40.63
218 | 40.63
219 | 40.63
220 | 40.63
221 | 40.69
222 | 40.69
223 | 40.69
224 | 40.69
225 | 40.69
226 | 40.75
227 | 40.75
228 | 40.75
229 | 40.81
230 | 40.88
231 | 40.88
232 | 40.88
233 | 40.88
234 | 40.81
235 | 40.81
236 | 40.81
237 | 40.75
238 | 40.75
239 | 40.75
240 | 40.75
241 | 40.75
242 | 40.75
243 | 40.75
244 | 40.69
245 | 40.69
246 | 40.69
247 | 40.56
248 | 40.56
249 | 40.50
250 | 40.44
251 | 40.44
252 | 40.38
253 | 40.38
254 | 40.38
255 | 40.31
256 | 40.31
257 | 40.19
258 | 40.19
259 | 40.13
260 | 40.13
261 | 40.06
262 | 40.06
263 | 40.00
264 | 40.00
265 | 39.94
266 | 39.94
267 | 39.88
268 | 39.94
269 | 39.88
270 | 39.81
271 | 39.88
272 | 39.81
273 | 39.81
274 | 39.81
275 | 39.75
276 | 39.75
277 | 39.75
278 | 39.69
279 | 39.69
280 | 39.75
281 | 39.69
282 | 39.69
283 | 39.69
284 | 39.69
285 | 39.75
286 | 39.81
287 | 39.81
288 | 39.88
289 | 39.88
290 | 39.88
291 | 39.94
292 | 39.94
293 | 40.00
294 | 40.00
295 | 40.00
296 | 40.00
297 | 40.00
298 | 40.00
299 | 39.94
300 | 39.94
301 | 39.94
302 | 39.94
303 | 39.94
304 | 39.94
305 | 39.94
306 | 40.00
307 | 40.00
308 | 40.06
309 | 40.06
310 | 40.13
311 | 40.13
312 | 40.13
313 | 40.19
314 | 40.19
315 | 40.19
316 | 40.19
317 | 40.19
318 | 40.19
319 | 40.19
320 | 40.25
321 | 40.25
322 | 40.31
323 | 40.31
324 | 40.31
325 | 40.31
326 | 40.31
327 | 40.38
328 | 40.38
329 | 40.38
330 | 40.38
331 | 40.44
332 | 40.44
333 | 40.44
334 | 40.44
335 | 40.50
336 | 40.50
337 | 40.50
338 | 40.50
339 | 40.50
340 | 40.50
341 | 40.50
342 | 40.56
343 | 40.50
344 | 40.56
345 | 40.56
346 | 40.63
347 | 40.56
348 | 40.63
349 | 40.69
350 | 40.75
351 | 40.75
352 | 40.81
353 | 40.88
354 | 40.88
355 | 40.94
356 | 40.94
357 | 40.94
358 | 41.00
359 | 41.00
360 | 41.06
361 | 41.06
362 | 41.06
363 | 41.06
364 | 41.06
365 | 41.06
366 | 41.06
367 | 41.06
368 | 41.13
369 | 41.13
370 | 41.13
371 | 41.19
372 | 41.19
373 | 41.25
374 | 41.25
375 | 41.25
376 | 41.31
377 | 41.31
378 | 41.31
379 | 41.31
380 | 41.31
381 | 41.38
382 | 41.38
383 | 41.38
384 | 41.38
385 | 41.44
386 | 41.44
387 | 41.44
388 | 41.44
389 | 41.44
390 | 41.44
391 | 41.44
392 | 41.44
393 | 41.44
394 | 41.50
395 | 41.44
396 | 41.50
397 | 41.50
398 | 41.50
399 | 41.50
400 | 41.50
401 | 41.44
402 | 41.44
403 | 41.44
404 | 41.38
405 | 41.44
406 | 41.44
407 | 41.44
408 | 41.44
409 | 41.44
410 | 41.44
411 | 41.44
412 | 41.38
413 | 41.38
414 | 41.38
415 | 41.31
416 | 41.31
417 | 41.31
418 | 41.25
419 | 41.25
420 | 41.25
421 | 41.25
422 | 41.25
423 | 41.25
424 | 41.25
425 | 41.25
426 | 41.25
427 | 41.25
428 | 41.25
429 | 41.25
430 | 41.25
431 | 41.25
432 | 41.25
433 | 41.25
434 | 41.25
435 | 41.25
436 | 41.19
437 | 41.19
438 | 41.19
439 | 41.19
440 | 41.13
441 | 41.13
442 | 41.13
443 | 41.13
444 | 41.06
445 | 41.06
446 | 41.00
447 | 41.00
448 | 41.00
449 | 40.94
450 | 40.94
451 | 40.94
452 | 40.94
453 | 40.94
454 | 40.94
455 | 40.88
456 | 40.88
457 | 40.88
458 | 40.88
459 | 40.88
460 | 40.88
461 | 40.88
462 | 40.88
463 | 40.88
464 | 40.88
465 | 40.88
466 | 40.88
467 | 40.81
468 | 40.81
469 | 40.81
470 | 40.81
471 | 40.81
472 | 40.81
473 | 40.81
474 | 40.81
475 | 40.88
476 | 40.88
477 | 40.88
478 | 40.88
479 | 40.88
480 | 40.88
481 | 40.88
482 | 40.88
483 | 40.81
484 | 40.81
485 | 40.88
486 | 40.88
487 | 40.88
488 | 40.88
489 | 40.88
490 | 40.88
491 | 40.88
492 | 40.88
493 | 40.88
494 | 40.88
495 | 40.88
496 | 40.88
497 | 40.88
498 | 40.88
499 | 40.81
500 | 40.81
501 | 40.81
502 | 40.81
503 | 40.81
504 | 40.81
505 | 40.81
506 | 40.81
507 | 40.81
508 | 40.81
509 | 40.88
510 | 40.88
511 | 40.88
512 | 40.81
513 | 40.88
514 | 40.88
515 | 40.88
516 | 40.88
517 | 40.88
518 | 40.88
519 | 40.88
520 | 40.88
521 | 40.88
522 | 40.88
523 | 40.88
524 | 40.88
525 | 40.88
526 | 40.88
527 | 40.88
528 | 40.88
529 | 40.88
530 | 40.88
531 | 40.88
532 | 40.81
533 | 40.81
534 | 40.81
535 | 40.81
536 | 40.81
537 | 40.81
538 | 40.81
539 | 40.81
540 | 40.81
541 | 40.81
542 | 40.81
543 | 40.81
544 | 40.81
545 | 40.81
546 | 40.88
547 | 40.81
548 | 40.81
549 | 40.81
550 | 40.88
551 | 40.81
552 | 40.81
553 | 40.81
554 | 40.75
555 | 40.75
556 | 40.75
557 | 40.75
558 | 40.75
559 | 40.75
560 | 40.69
561 | 40.69
562 | 40.63
563 | 40.69
564 | 40.69
565 | 40.69
566 | 40.63
567 | 40.63
568 | 40.69
569 | 40.69
570 | 40.69
571 | 40.69
572 | 40.75
573 | 40.69
574 | 40.69
575 | 40.69
576 | 40.69
577 | 40.69
578 | 40.69
579 | 40.69
580 | 40.69
581 | 40.69
582 | 40.69
583 | 40.69
584 | 40.69
585 | 40.69
586 | 40.69
587 | 40.69
588 | 40.69
589 | 40.69
590 | 40.69
591 | 40.69
592 | 40.69
593 | 40.69
594 | 40.69
595 | 40.75
596 | 40.69
597 | 40.69
598 | 40.75
599 | 40.75
600 | 40.75
601 | 40.75
602 | 40.75
603 | 40.81
604 | 40.81
605 | 40.75
606 | 40.75
607 | 40.81
608 | 40.81
609 | 40.75
610 | 40.75
611 | 40.81
612 | 40.81
613 | 40.81
614 | 40.81
615 | 40.81
616 | 40.81
617 | 40.81
618 | 40.81
619 | 40.81
620 | 40.88
621 | 40.88
622 | 40.81
623 | 40.88
624 | 40.88
625 | 40.88
626 | 40.88
627 | 40.88
628 | 40.81
629 | 40.81
630 | 40.81
631 | 40.81
632 | 40.81
633 | 40.81
634 | 40.81
635 | 40.88
636 | 40.81
637 | 40.88
638 | 40.88
639 | 40.88
640 | 40.88
641 | 40.88
642 | 40.88
643 | 40.88
644 | 40.88
645 | 40.88
646 | 40.88
647 | 40.88
648 | 40.81
649 | 40.81
650 | 40.81
651 | 40.81
652 | 40.81
653 | 40.81
654 | 40.81
655 | 40.81
656 | 40.81
657 | 40.81
658 | 40.88
659 | 40.88
660 | 40.81
661 | 40.81
662 | 40.81
663 | 40.81
664 | 40.81
665 | 40.81
666 | 40.81
667 | 40.81
668 | 40.81
669 | 40.88
670 | 40.88
671 | 40.88
672 | 40.88
673 | 40.88
674 | 40.81
675 | 40.81
676 | 40.81
677 | 40.81
678 | 40.81
679 | 40.75
680 | 40.75
681 | 40.75
682 | 40.75
683 | 40.75
684 | 40.75
685 | 40.75
686 | 40.69
687 | 40.69
688 | 40.69
689 | 40.69
690 | 40.69
691 | 40.63
692 | 40.63
693 | 40.69
694 | 40.63
695 | 40.63
696 | 40.63
697 | 40.63
698 | 40.63
699 | 40.63
700 | 40.63
701 | 40.63
702 | 40.63
703 | 40.63
704 | 40.63
705 | 40.63
706 | 40.56
707 | 40.56
708 | 40.56
709 | 40.56
710 | 40.56
711 | 40.50
712 | 40.50
713 | 40.50
714 | 40.50
715 | 40.50
716 | 40.50
717 | 40.50
718 | 40.50
719 | 40.56
720 | 40.56
721 | 40.56
722 | 40.56
723 | 40.56
724 | 40.56
725 | 40.56
726 | 40.56
727 | 40.56
728 | 40.50
729 | 40.50
730 | 40.50
731 | 40.50
732 | 40.50
733 | 40.50
734 | 40.50
735 | 40.44
736 | 40.44
737 | 40.44
738 | 40.44
739 | 40.44
740 | 40.44
741 | 40.44
742 | 40.38
743 | 40.38
744 | 40.38
745 | 40.38
746 | 40.38
747 | 40.38
748 | 40.38
749 | 40.38
750 | 40.38
751 | 40.38
752 | 40.38
753 | 40.38
754 | 40.44
755 | 40.44
756 | 40.44
757 | 40.44
758 | 40.44
759 | 40.44
760 | 40.50
761 | 40.50
762 | 40.50
763 | 40.56
764 | 40.56
765 | 40.56
766 | 40.56
767 | 40.56
768 | 40.56
769 | 40.63
770 | 40.63
771 | 40.63
772 | 40.69
773 | 40.69
774 | 40.69
775 | 40.75
776 |
--------------------------------------------------------------------------------
/gerbers/ssr-NPTH-drl_map.pho:
--------------------------------------------------------------------------------
1 | G04 (created by PCBNEW (2013-mar-13)-testing) date Tue 07 May 2013 10:03:13 PM CEST*
2 | %MOIN*%
3 | G04 Gerber Fmt 3.4, Leading zero omitted, Abs format*
4 | %FSLAX34Y34*%
5 | G01*
6 | G70*
7 | G90*
8 | G04 APERTURE LIST*
9 | %ADD10C,0.005*%
10 | %ADD11C,0.0059*%
11 | %ADD12C,0.00787402*%
12 | %ADD13C,0.011811*%
13 | G04 APERTURE END LIST*
14 | G54D10*
15 | G54D11*
16 | X39250Y-25750D02*
17 | X39250Y-26250D01*
18 | X61750Y-25750D02*
19 | X39250Y-25750D01*
20 | X39250Y-55750D02*
21 | X39250Y-52250D01*
22 | X78250Y-55750D02*
23 | X39250Y-55750D01*
24 | X78250Y-25750D02*
25 | X78250Y-55750D01*
26 | X61750Y-25750D02*
27 | X78250Y-25750D01*
28 | X39250Y-26250D02*
29 | X39250Y-52250D01*
30 | G54D12*
31 | X41159Y-28159D02*
32 | X42340Y-29340D01*
33 | X42340Y-28159D02*
34 | X41159Y-29340D01*
35 | X41159Y-52659D02*
36 | X42340Y-53840D01*
37 | X42340Y-52659D02*
38 | X41159Y-53840D01*
39 | X74659Y-52659D02*
40 | X75840Y-53840D01*
41 | X75840Y-52659D02*
42 | X74659Y-53840D01*
43 | X74909Y-27909D02*
44 | X76090Y-29090D01*
45 | X76090Y-27909D02*
46 | X74909Y-29090D01*
47 | G54D13*
48 | X40289Y-57613D02*
49 | X40289Y-56431D01*
50 | X40570Y-56431D01*
51 | X40739Y-56488D01*
52 | X40851Y-56600D01*
53 | X40907Y-56713D01*
54 | X40964Y-56938D01*
55 | X40964Y-57106D01*
56 | X40907Y-57331D01*
57 | X40851Y-57444D01*
58 | X40739Y-57556D01*
59 | X40570Y-57613D01*
60 | X40289Y-57613D01*
61 | X41470Y-57613D02*
62 | X41470Y-56825D01*
63 | X41470Y-57050D02*
64 | X41526Y-56938D01*
65 | X41582Y-56881D01*
66 | X41695Y-56825D01*
67 | X41807Y-56825D01*
68 | X42201Y-57613D02*
69 | X42201Y-56825D01*
70 | X42201Y-56431D02*
71 | X42145Y-56488D01*
72 | X42201Y-56544D01*
73 | X42257Y-56488D01*
74 | X42201Y-56431D01*
75 | X42201Y-56544D01*
76 | X42932Y-57613D02*
77 | X42820Y-57556D01*
78 | X42763Y-57444D01*
79 | X42763Y-56431D01*
80 | X43551Y-57613D02*
81 | X43438Y-57556D01*
82 | X43382Y-57444D01*
83 | X43382Y-56431D01*
84 | X44901Y-57613D02*
85 | X44901Y-56431D01*
86 | X45294Y-57275D01*
87 | X45688Y-56431D01*
88 | X45688Y-57613D01*
89 | X46757Y-57613D02*
90 | X46757Y-56994D01*
91 | X46700Y-56881D01*
92 | X46588Y-56825D01*
93 | X46363Y-56825D01*
94 | X46250Y-56881D01*
95 | X46757Y-57556D02*
96 | X46644Y-57613D01*
97 | X46363Y-57613D01*
98 | X46250Y-57556D01*
99 | X46194Y-57444D01*
100 | X46194Y-57331D01*
101 | X46250Y-57219D01*
102 | X46363Y-57163D01*
103 | X46644Y-57163D01*
104 | X46757Y-57106D01*
105 | X47319Y-56825D02*
106 | X47319Y-58006D01*
107 | X47319Y-56881D02*
108 | X47431Y-56825D01*
109 | X47656Y-56825D01*
110 | X47769Y-56881D01*
111 | X47825Y-56938D01*
112 | X47881Y-57050D01*
113 | X47881Y-57388D01*
114 | X47825Y-57500D01*
115 | X47769Y-57556D01*
116 | X47656Y-57613D01*
117 | X47431Y-57613D01*
118 | X47319Y-57556D01*
119 | X48388Y-57500D02*
120 | X48444Y-57556D01*
121 | X48388Y-57613D01*
122 | X48331Y-57556D01*
123 | X48388Y-57500D01*
124 | X48388Y-57613D01*
125 | X48388Y-56881D02*
126 | X48444Y-56938D01*
127 | X48388Y-56994D01*
128 | X48331Y-56938D01*
129 | X48388Y-56881D01*
130 | X48388Y-56994D01*
131 | X38039Y-58968D02*
132 | X39220Y-60149D01*
133 | X39220Y-58968D02*
134 | X38039Y-60149D01*
135 | X40176Y-58912D02*
136 | X40907Y-58912D01*
137 | X40514Y-59362D01*
138 | X40682Y-59362D01*
139 | X40795Y-59418D01*
140 | X40851Y-59474D01*
141 | X40907Y-59587D01*
142 | X40907Y-59868D01*
143 | X40851Y-59980D01*
144 | X40795Y-60037D01*
145 | X40682Y-60093D01*
146 | X40345Y-60093D01*
147 | X40232Y-60037D01*
148 | X40176Y-59980D01*
149 | X41413Y-59980D02*
150 | X41470Y-60037D01*
151 | X41413Y-60093D01*
152 | X41357Y-60037D01*
153 | X41413Y-59980D01*
154 | X41413Y-60093D01*
155 | X42201Y-58912D02*
156 | X42313Y-58912D01*
157 | X42426Y-58968D01*
158 | X42482Y-59024D01*
159 | X42538Y-59137D01*
160 | X42595Y-59362D01*
161 | X42595Y-59643D01*
162 | X42538Y-59868D01*
163 | X42482Y-59980D01*
164 | X42426Y-60037D01*
165 | X42313Y-60093D01*
166 | X42201Y-60093D01*
167 | X42088Y-60037D01*
168 | X42032Y-59980D01*
169 | X41976Y-59868D01*
170 | X41920Y-59643D01*
171 | X41920Y-59362D01*
172 | X41976Y-59137D01*
173 | X42032Y-59024D01*
174 | X42088Y-58968D01*
175 | X42201Y-58912D01*
176 | X43326Y-58912D02*
177 | X43438Y-58912D01*
178 | X43551Y-58968D01*
179 | X43607Y-59024D01*
180 | X43663Y-59137D01*
181 | X43719Y-59362D01*
182 | X43719Y-59643D01*
183 | X43663Y-59868D01*
184 | X43607Y-59980D01*
185 | X43551Y-60037D01*
186 | X43438Y-60093D01*
187 | X43326Y-60093D01*
188 | X43213Y-60037D01*
189 | X43157Y-59980D01*
190 | X43101Y-59868D01*
191 | X43045Y-59643D01*
192 | X43045Y-59362D01*
193 | X43101Y-59137D01*
194 | X43157Y-59024D01*
195 | X43213Y-58968D01*
196 | X43326Y-58912D01*
197 | X44226Y-60093D02*
198 | X44226Y-59305D01*
199 | X44226Y-59418D02*
200 | X44282Y-59362D01*
201 | X44394Y-59305D01*
202 | X44563Y-59305D01*
203 | X44676Y-59362D01*
204 | X44732Y-59474D01*
205 | X44732Y-60093D01*
206 | X44732Y-59474D02*
207 | X44788Y-59362D01*
208 | X44901Y-59305D01*
209 | X45069Y-59305D01*
210 | X45182Y-59362D01*
211 | X45238Y-59474D01*
212 | X45238Y-60093D01*
213 | X45800Y-60093D02*
214 | X45800Y-59305D01*
215 | X45800Y-59418D02*
216 | X45857Y-59362D01*
217 | X45969Y-59305D01*
218 | X46138Y-59305D01*
219 | X46250Y-59362D01*
220 | X46307Y-59474D01*
221 | X46307Y-60093D01*
222 | X46307Y-59474D02*
223 | X46363Y-59362D01*
224 | X46475Y-59305D01*
225 | X46644Y-59305D01*
226 | X46757Y-59362D01*
227 | X46813Y-59474D01*
228 | X46813Y-60093D01*
229 | X49119Y-58855D02*
230 | X48106Y-60374D01*
231 | X50637Y-58912D02*
232 | X50750Y-58912D01*
233 | X50862Y-58968D01*
234 | X50919Y-59024D01*
235 | X50975Y-59137D01*
236 | X51031Y-59362D01*
237 | X51031Y-59643D01*
238 | X50975Y-59868D01*
239 | X50919Y-59980D01*
240 | X50862Y-60037D01*
241 | X50750Y-60093D01*
242 | X50637Y-60093D01*
243 | X50525Y-60037D01*
244 | X50469Y-59980D01*
245 | X50412Y-59868D01*
246 | X50356Y-59643D01*
247 | X50356Y-59362D01*
248 | X50412Y-59137D01*
249 | X50469Y-59024D01*
250 | X50525Y-58968D01*
251 | X50637Y-58912D01*
252 | X51537Y-59980D02*
253 | X51593Y-60037D01*
254 | X51537Y-60093D01*
255 | X51481Y-60037D01*
256 | X51537Y-59980D01*
257 | X51537Y-60093D01*
258 | X52718Y-60093D02*
259 | X52043Y-60093D01*
260 | X52381Y-60093D02*
261 | X52381Y-58912D01*
262 | X52268Y-59080D01*
263 | X52156Y-59193D01*
264 | X52043Y-59249D01*
265 | X53843Y-60093D02*
266 | X53168Y-60093D01*
267 | X53506Y-60093D02*
268 | X53506Y-58912D01*
269 | X53393Y-59080D01*
270 | X53281Y-59193D01*
271 | X53168Y-59249D01*
272 | X54518Y-59418D02*
273 | X54406Y-59362D01*
274 | X54349Y-59305D01*
275 | X54293Y-59193D01*
276 | X54293Y-59137D01*
277 | X54349Y-59024D01*
278 | X54406Y-58968D01*
279 | X54518Y-58912D01*
280 | X54743Y-58912D01*
281 | X54856Y-58968D01*
282 | X54912Y-59024D01*
283 | X54968Y-59137D01*
284 | X54968Y-59193D01*
285 | X54912Y-59305D01*
286 | X54856Y-59362D01*
287 | X54743Y-59418D01*
288 | X54518Y-59418D01*
289 | X54406Y-59474D01*
290 | X54349Y-59530D01*
291 | X54293Y-59643D01*
292 | X54293Y-59868D01*
293 | X54349Y-59980D01*
294 | X54406Y-60037D01*
295 | X54518Y-60093D01*
296 | X54743Y-60093D01*
297 | X54856Y-60037D01*
298 | X54912Y-59980D01*
299 | X54968Y-59868D01*
300 | X54968Y-59643D01*
301 | X54912Y-59530D01*
302 | X54856Y-59474D01*
303 | X54743Y-59418D01*
304 | X55418Y-58912D02*
305 | X55418Y-59137D01*
306 | X55868Y-58912D02*
307 | X55868Y-59137D01*
308 | X57611Y-60543D02*
309 | X57555Y-60487D01*
310 | X57443Y-60318D01*
311 | X57386Y-60205D01*
312 | X57330Y-60037D01*
313 | X57274Y-59755D01*
314 | X57274Y-59530D01*
315 | X57330Y-59249D01*
316 | X57386Y-59080D01*
317 | X57443Y-58968D01*
318 | X57555Y-58799D01*
319 | X57611Y-58743D01*
320 | X58568Y-59305D02*
321 | X58568Y-60093D01*
322 | X58286Y-58855D02*
323 | X58005Y-59699D01*
324 | X58736Y-59699D01*
325 | X60086Y-60093D02*
326 | X60086Y-58912D01*
327 | X60592Y-60093D02*
328 | X60592Y-59474D01*
329 | X60536Y-59362D01*
330 | X60424Y-59305D01*
331 | X60255Y-59305D01*
332 | X60142Y-59362D01*
333 | X60086Y-59418D01*
334 | X61323Y-60093D02*
335 | X61211Y-60037D01*
336 | X61155Y-59980D01*
337 | X61099Y-59868D01*
338 | X61099Y-59530D01*
339 | X61155Y-59418D01*
340 | X61211Y-59362D01*
341 | X61323Y-59305D01*
342 | X61492Y-59305D01*
343 | X61605Y-59362D01*
344 | X61661Y-59418D01*
345 | X61717Y-59530D01*
346 | X61717Y-59868D01*
347 | X61661Y-59980D01*
348 | X61605Y-60037D01*
349 | X61492Y-60093D01*
350 | X61323Y-60093D01*
351 | X62392Y-60093D02*
352 | X62280Y-60037D01*
353 | X62223Y-59924D01*
354 | X62223Y-58912D01*
355 | X63292Y-60037D02*
356 | X63180Y-60093D01*
357 | X62955Y-60093D01*
358 | X62842Y-60037D01*
359 | X62786Y-59924D01*
360 | X62786Y-59474D01*
361 | X62842Y-59362D01*
362 | X62955Y-59305D01*
363 | X63180Y-59305D01*
364 | X63292Y-59362D01*
365 | X63348Y-59474D01*
366 | X63348Y-59587D01*
367 | X62786Y-59699D01*
368 | X63798Y-60037D02*
369 | X63911Y-60093D01*
370 | X64136Y-60093D01*
371 | X64248Y-60037D01*
372 | X64304Y-59924D01*
373 | X64304Y-59868D01*
374 | X64248Y-59755D01*
375 | X64136Y-59699D01*
376 | X63967Y-59699D01*
377 | X63854Y-59643D01*
378 | X63798Y-59530D01*
379 | X63798Y-59474D01*
380 | X63854Y-59362D01*
381 | X63967Y-59305D01*
382 | X64136Y-59305D01*
383 | X64248Y-59362D01*
384 | X64698Y-60543D02*
385 | X64754Y-60487D01*
386 | X64867Y-60318D01*
387 | X64923Y-60205D01*
388 | X64979Y-60037D01*
389 | X65036Y-59755D01*
390 | X65036Y-59530D01*
391 | X64979Y-59249D01*
392 | X64923Y-59080D01*
393 | X64867Y-58968D01*
394 | X64754Y-58799D01*
395 | X64698Y-58743D01*
396 | M02*
397 |
--------------------------------------------------------------------------------
/experiment2/calibrated-period-length:
--------------------------------------------------------------------------------
1 | 157
2 | 260
3 | 382
4 | 521
5 | 674
6 | 839
7 | 1015
8 | 1199
9 | 1388
10 | 1583
11 | 1781
12 | 1982
13 | 2184
14 | 2386
15 | 2588
16 | 2789
17 | 2988
18 | 3185
19 | 3379
20 | 3570
21 | 3757
22 | 3940
23 | 4119
24 | 4294
25 | 4465
26 | 4632
27 | 4795
28 | 4952
29 | 5105
30 | 5254
31 | 5397
32 | 5536
33 | 5671
34 | 5800
35 | 5925
36 | 6046
37 | 6163
38 | 6274
39 | 6381
40 | 6484
41 | 6583
42 | 6678
43 | 6769
44 | 6857
45 | 6942
46 | 7023
47 | 7100
48 | 7174
49 | 7245
50 | 7313
51 | 7378
52 | 7441
53 | 7500
54 | 7557
55 | 7611
56 | 7663
57 | 7712
58 | 7759
59 | 7804
60 | 7847
61 | 7888
62 | 7927
63 | 7964
64 | 8000
65 | 8034
66 | 8066
67 | 8097
68 | 8127
69 | 8155
70 | 8181
71 | 8206
72 | 8230
73 | 8253
74 | 8275
75 | 8296
76 | 8316
77 | 8334
78 | 8352
79 | 8368
80 | 8384
81 | 8399
82 | 8413
83 | 8427
84 | 8440
85 | 8452
86 | 8464
87 | 8476
88 | 8486
89 | 8496
90 | 8506
91 | 8515
92 | 8523
93 | 8531
94 | 8539
95 | 8547
96 | 8553
97 | 8559
98 | 8565
99 | 8571
100 | 8577
101 | 8583
102 | 8588
103 | 8592
104 | 8596
105 | 8600
106 | 8604
107 | 8608
108 | 8612
109 | 8616
110 | 8620
111 | 8622
112 | 8624
113 | 8626
114 | 8628
115 | 8630
116 | 8632
117 | 8634
118 | 8636
119 | 8638
120 | 8640
121 | 8642
122 | 8644
123 | 8646
124 | 8648
125 | 8650
126 | 8650
127 | 8650
128 | 8651
129 | 8653
130 | 8655
131 | 8656
132 | 8656
133 | 8656
134 | 8657
135 | 8658
136 | 8659
137 | 8659
138 | 8659
139 | 8659
140 | 8661
141 | 8662
142 | 8662
143 | 8662
144 | 8662
145 | 8662
146 | 8662
147 | 8662
148 | 8662
149 | 8662
150 | 8662
151 | 8662
152 | 8662
153 | 8662
154 | 8662
155 | 8662
156 | 8662
157 | 8662
158 | 8662
159 | 8662
160 | 8662
161 | 8662
162 | 8662
163 | 8662
164 | 8662
165 | 8662
166 | 8254
167 | 8626
168 | 8628
169 | 8658
170 | 8658
171 | 8658
172 | 8658
173 | 8658
174 | 8658
175 | 8658
176 | 8658
177 | 8658
178 | 8658
179 | 8658
180 | 8669
181 | 8669
182 | 8702
183 | 8684
184 | 8682
185 | 8702
186 | 8687
187 | 8702
188 | 8673
189 | 8687
190 | 8687
191 | 8652
192 | 8652
193 | 8652
194 | 8655
195 | 8662
196 | 8663
197 | 8663
198 | 8637
199 | 8637
200 | 8666
201 | 8625
202 | 8617
203 | 8643
204 | 8620
205 | 8618
206 | 8646
207 | 8618
208 | 10021
209 | 10052
210 | 10054
211 | 10018
212 | 10015
213 | 10053
214 | 10078
215 | 10026
216 | 10053
217 | 10056
218 | 10024
219 | 10027
220 | 10061
221 | 10025
222 | 10063
223 | 10059
224 | 10025
225 | 10059
226 | 10061
227 | 10026
228 | 10060
229 | 10061
230 | 10026
231 | 10062
232 | 10033
233 | 10060
234 | 10048
235 | 10042
236 | 10075
237 | 10046
238 | 10076
239 | 10026
240 | 10029
241 | 10060
242 | 10040
243 | 10044
244 | 10074
245 | 10046
246 | 10076
247 | 10033
248 | 10027
249 | 10057
250 | 10028
251 | 10055
252 | 10023
253 | 10025
254 | 10061
255 | 10042
256 | 10041
257 | 10062
258 | 10041
259 | 10023
260 | 10057
261 | 10022
262 | 10025
263 | 10057
264 | 10024
265 | 10057
266 | 10073
267 | 10047
268 | 10080
269 | 10046
270 | 10081
271 | 10026
272 | 10063
273 | 10026
274 | 10059
275 | 10060
276 | 10028
277 | 10059
278 | 10024
279 | 10024
280 | 10056
281 | 10025
282 | 10028
283 | 10059
284 | 10024
285 | 10058
286 | 10057
287 | 10039
288 | 10062
289 | 10026
290 | 10060
291 | 10027
292 | 10029
293 | 10058
294 | 10024
295 | 10055
296 | 10025
297 | 10040
298 | 10074
299 | 10044
300 | 10042
301 | 10071
302 | 10039
303 | 10041
304 | 10068
305 | 10044
306 | 10058
307 | 10043
308 | 10037
309 | 10071
310 | 10069
311 | 10038
312 | 10038
313 | 10054
314 | 10065
315 | 10037
316 | 10039
317 | 10072
318 | 10042
319 | 10038
320 | 10053
321 | 10054
322 | 10022
323 | 10023
324 | 10054
325 | 10057
326 | 10026
327 | 10074
328 | 10078
329 | 10042
330 | 10076
331 | 10060
332 | 10026
333 | 10058
334 | 10025
335 | 10027
336 | 10056
337 | 10045
338 | 10073
339 | 10075
340 | 10047
341 | 10077
342 | 10050
343 | 10080
344 | 10032
345 | 10028
346 | 10062
347 | 10047
348 | 10079
349 | 10028
350 | 10055
351 | 10031
352 | 10030
353 | 10071
354 | 10049
355 | 10078
356 | 10047
357 | 10080
358 | 10074
359 | 10046
360 | 10060
361 | 10027
362 | 10026
363 | 10061
364 | 10027
365 | 10062
366 | 10056
367 | 10026
368 | 10028
369 | 10059
370 | 10024
371 | 10060
372 | 10065
373 | 10029
374 | 10080
375 | 10048
376 | 10065
377 | 10032
378 | 10063
379 | 10048
380 | 10078
381 | 10049
382 | 10083
383 | 10049
384 | 10080
385 | 10046
386 | 10043
387 | 10076
388 | 10042
389 | 10055
390 | 10028
391 | 10067
392 | 10037
393 | 10068
394 | 10036
395 | 10066
396 | 10037
397 | 10040
398 | 10071
399 | 10042
400 | 10079
401 | 10045
402 | 10062
403 | 10016
404 | 10046
405 | 10016
406 | 10029
407 | 10056
408 | 10016
409 | 10059
410 | 10031
411 | 10061
412 | 10074
413 | 10047
414 | 10078
415 | 10045
416 | 10076
417 | 10042
418 | 10042
419 | 10073
420 | 10044
421 | 10037
422 | 10075
423 | 10037
424 | 10026
425 | 10055
426 | 10023
427 | 10025
428 | 10055
429 | 10026
430 | 10054
431 | 10022
432 | 10022
433 | 10059
434 | 10025
435 | 10024
436 | 10057
437 | 10027
438 | 10060
439 | 10043
440 | 10070
441 | 10072
442 | 10040
443 | 10081
444 | 10045
445 | 10078
446 | 10047
447 | 10047
448 | 10076
449 | 10043
450 | 10078
451 | 10044
452 | 10073
453 | 10074
454 | 10042
455 | 10075
456 | 10040
457 | 10071
458 | 10041
459 | 10042
460 | 10072
461 | 10039
462 | 10072
463 | 10025
464 | 10053
465 | 10024
466 | 10057
467 | 10029
468 | 10060
469 | 10028
470 | 10042
471 | 10072
472 | 10038
473 | 10057
474 | 10041
475 | 10058
476 | 10059
477 | 10025
478 | 10058
479 | 10027
480 | 10059
481 | 10027
482 | 10057
483 | 10029
484 | 10060
485 | 10026
486 | 10079
487 | 10045
488 | 10074
489 | 10043
490 | 10077
491 | 10044
492 | 10060
493 | 10038
494 | 10041
495 | 10075
496 | 10042
497 | 10071
498 | 10044
499 | 10043
500 | 10060
501 | 10024
502 | 10056
503 | 10026
504 | 10058
505 | 10025
506 | 10016
507 | 10064
508 | 10038
509 | 10053
510 | 10021
511 | 10041
512 | 10056
513 | 10025
514 | 10054
515 | 10023
516 | 10050
517 | 10038
518 | 10064
519 | 10069
520 | 10041
521 | 10070
522 | 10040
523 | 10069
524 | 10040
525 | 10072
526 | 10034
527 | 10056
528 | 10020
529 | 10047
530 | 10019
531 | 10047
532 | 10055
533 | 10036
534 | 10052
535 | 10024
536 | 10053
537 | 10020
538 | 10023
539 | 10070
540 | 10017
541 | 10051
542 | 10021
543 | 10053
544 | 10026
545 | 10057
546 | 10025
547 | 10025
548 | 10055
549 | 10023
550 | 10052
551 | 10023
552 | 10052
553 | 10024
554 | 10051
555 | 10052
556 | 10032
557 | 10071
558 | 10037
559 | 10067
560 | 10035
561 | 10067
562 | 10036
563 | 10071
564 | 10040
565 | 10038
566 | 10069
567 | 10071
568 | 10039
569 | 10068
570 | 10038
571 | 10071
572 | 10040
573 | 10070
574 | 10024
575 | 10055
576 | 10024
577 | 10070
578 | 10037
579 | 10070
580 | 10039
581 | 10072
582 | 10039
583 | 10055
584 | 10027
585 | 10075
586 | 10045
587 | 10056
588 | 10055
589 | 10039
590 | 10074
591 | 10044
592 | 10072
593 | 10042
594 | 10072
595 | 10022
596 | 10052
597 | 10022
598 | 10053
599 | 10024
600 | 10057
601 | 10024
602 | 10054
603 | 10027
604 | 10055
605 | 10044
606 | 10075
607 | 10045
608 | 10042
609 | 10057
610 | 10027
611 | 10056
612 | 10019
613 | 10049
614 | 10025
615 | 10066
616 | 10044
617 | 10075
618 | 10043
619 | 10074
620 | 10074
621 | 10040
622 | 10070
623 | 10022
624 | 10051
625 | 10021
626 | 10071
627 | 10021
628 | 10054
629 | 10043
630 | 10073
631 | 10031
632 | 10032
633 | 10060
634 | 10029
635 | 10039
636 | 10009
637 | 10041
638 | 10010
639 | 10011
640 | 10041
641 | 10011
642 | 10040
643 | 10008
644 | 10012
645 | 10049
646 | 10011
647 | 10061
648 | 10042
649 | 10076
650 | 10027
651 | 10062
652 | 10061
653 | 10026
654 | 10058
655 | 10010
656 | 10034
657 | 10059
658 | 10035
659 | 10060
660 | 10025
661 | 10058
662 | 10032
663 | 10052
664 | 10031
665 | 10029
666 | 10059
667 | 10012
668 | 10041
669 | 10019
670 | 10040
671 | 10019
672 | 10040
673 | 10012
674 | 10021
675 | 10061
676 | 10013
677 | 10043
678 | 10013
679 | 10014
680 | 10043
681 | 10012
682 | 10043
683 | 10014
684 | 10062
685 | 10027
686 | 10044
687 | 10014
688 | 10045
689 | 10036
690 | 10056
691 | 10060
692 | 10039
693 | 10049
694 | 10014
695 | 10023
696 | 10052
697 | 10020
698 | 10069
699 | 10036
700 | 10069
701 | 10036
702 | 10035
703 | 10067
704 | 10037
705 | 10071
706 | 10039
707 | 10072
708 | 10039
709 | 10068
710 | 10021
711 | 10051
712 | 10020
713 | 10070
714 | 10037
715 | 10073
716 | 10039
717 | 10052
718 | 10026
719 | 10056
720 | 10024
721 | 10052
722 | 10022
723 | 10058
724 | 10025
725 | 10026
726 | 10055
727 | 10021
728 | 10055
729 | 10024
730 | 10055
731 | 10026
732 | 10055
733 | 10019
734 | 10060
735 | 10031
736 | 10050
737 | 10019
738 | 10052
739 | 10032
740 | 10065
741 | 10070
742 | 10020
743 | 10051
744 | 10022
745 | 10050
746 | 10018
747 | 10052
748 | 10016
749 | 10013
750 | 10052
751 | 10018
752 | 10023
753 | 10051
754 | 10019
755 | 10019
756 | 10052
757 | 10016
758 | 10033
759 | 10050
760 | 10017
761 | 10015
762 | 10051
763 | 10048
764 | 10014
765 | 10027
766 | 10031
767 | 10060
768 | 10064
769 | 10032
770 | 10033
771 | 10061
772 | 10065
773 | 10062
774 | 10029
775 | 10031
776 | 10028
777 | 10059
778 | 10061
779 | 10061
780 | 10027
781 | 10031
782 | 10029
783 | 10066
784 | 10060
785 | 10028
786 | 10030
787 | 10027
788 | 10066
789 | 10067
790 | 10034
791 | 10032
792 | 10066
793 | 10045
794 | 10013
795 | 10013
796 | 10045
797 | 10057
798 | 10063
799 | 10030
800 | 10029
801 | 10034
802 | 10066
803 | 10065
804 | 10032
805 | 10034
806 | 10064
807 | 10065
808 | 10030
809 | 10035
810 | 10064
811 | 10068
812 | 10035
813 | 10036
814 | 10064
815 | 10031
816 | 10035
817 | 10064
818 | 10065
819 | 10033
820 | 10035
821 | 10059
822 | 10031
823 | 10033
824 | 10067
825 | 10034
826 | 10034
827 | 10066
828 | 10034
829 | 10035
830 | 10064
831 | 10036
832 | 10019
833 | 10047
834 | 10017
835 | 10063
836 | 10067
837 | 10034
838 | 10059
839 | 10023
840 | 10052
841 | 10022
842 | 10055
843 | 10050
844 | 10022
845 | 10048
846 | 10023
847 | 10054
848 | 10025
849 | 10054
850 | 10026
851 | 10074
852 | 10038
853 | 10069
854 | 10042
855 | 10069
856 |
--------------------------------------------------------------------------------
/firmware/main.c:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include
5 | #include
6 | #include
7 | #include
8 | #include
9 | #include
10 | #include
11 | #include "usiTwiSlave.h"
12 |
13 | #define GREEN PB0
14 | #define RED PB1
15 |
16 | /*
17 | * Sets the linear output power in dimmer mode. 1 byte argument: [0 - 255]
18 | */
19 | #define I2C_SET_DIMMER_POWER 1
20 | /*
21 | * Sets the linear output power in relay mode. 1 byte argument: [0 - 255]
22 | * In relay mode conduction is switched on after each ZC for the whole period {relayOutputPower} times in a row out of RELAY_MAX_POWER
23 | * thus, imitating a dimmer without causing electrical noise.
24 | */
25 | #define I2C_SET_RELAY_POWER 2
26 | /*
27 | * Directly sets the conduction angle. 2 bytes argument: [0 - 1000]
28 | */
29 | #define I2C_SET_CONDUCTION_ANGLE 3
30 | /*
31 | * Returns 2 bytes of filtered period length, represents the number of
32 | * internal timer ticks between two zero crossings.
33 | * Should be around 10000.
34 | * */
35 | #define I2C_READ_PERIOD_LENGTH 4
36 | /**
37 | * Returns 2 bytes of zero crossing pulse length.
38 | */
39 | #define I2C_READ_ZC_PULSE_LENGHT 5
40 | /**
41 | * Returns the 1 byte value of processor speed calibration register.
42 | */
43 | #define I2C_READ_OSCCAL 6
44 | /**
45 | * Returns 2 bytes of currently set conduction angle [0 - 10000]
46 | */
47 | #define I2C_READ_CONDUCTION_ANGLE 7
48 | /*
49 | * Returns 2 bytes of last period length, represents the number of
50 | * internal timer ticks between two zero crossings.
51 | * Should be around 10000.
52 | * */
53 | #define I2C_READ_LAST_PERIOD_LENGTH 8
54 | /**
55 | * Resets the Triac Bloc
56 | */
57 | #define I2C_RESET 9
58 | /**
59 | * Starts the calibration routine.
60 | * Red and green leds blink alternatingly while calibration is in progress.
61 | * Might take a while.
62 | */
63 | #define I2C_CALIBRATE 10
64 | #define I2C_ADC 11
65 | /**
66 | * A routine for testing I2C connection. Both red and green leds will light up for a second.
67 | */
68 | #define I2C_TEST 12
69 |
70 | #define reset() wdt_enable(WDTO_15MS); while(1) {}
71 |
72 | inline void conductionOn();
73 | inline void conductionOff();
74 | inline void setupZCInterrupt();
75 | inline void setTimerInterruptAt(const uint16_t countTo, const uint8_t nextEvent);
76 | inline void stopTimer();
77 |
78 | #define NEVER 0
79 | #define EVENT_TRUE_ZC 1
80 | #define EVENT_CONDUCT 2
81 |
82 | volatile uint8_t interruptAt = NEVER;
83 | volatile uint16_t conductionAngle = 9000;
84 | volatile uint16_t newConductionAngle = 9000;
85 | volatile uint16_t zcPulseLength = 0;
86 | volatile uint16_t periodLength = 0;
87 | volatile uint8_t oscAjdustDelayCounter = 0;
88 | volatile uint16_t zcInterruptTimestamp = 0;
89 | extern const uint16_t conductionAngles[256];
90 |
91 | #define EDGE_LEADING 0
92 | #define EDGE_FALLING 1
93 | #define MAX_SANE_ZC_LENGTH_DIFF 5
94 | #define true 1
95 | #define false 0
96 |
97 | uint8_t zcInterruptEdge = EDGE_LEADING;
98 | uint8_t powerGood = false;
99 | uint8_t calibrationGood = false;
100 |
101 | volatile uint8_t fadeIn = 1;
102 | volatile uint8_t j = 255;
103 | void fadeInOut() {
104 | if(fadeIn) {
105 | j --;
106 | if(j < 1) {
107 | fadeIn = !fadeIn;
108 | }
109 | } else {
110 | j ++;
111 | if(j > 254) {
112 | fadeIn = !fadeIn;
113 | }
114 | }
115 | newConductionAngle = pgm_read_word(&conductionAngles[j]);
116 | }
117 |
118 | inline void conductionOn() {
119 | PORTA |= _BV(PA7);
120 | }
121 |
122 | inline void conductionOff() {
123 | PORTA &= ~_BV(PA7);
124 | }
125 |
126 | inline void resetTimer() {
127 | TCNT1 = 0;
128 | }
129 |
130 | inline void setTimerInterruptAt(const uint16_t countTo, const uint8_t nextEvent) {
131 | TIMSK1 |= _BV(OCIE1A) | _BV(TOIE1);
132 | OCR1A = countTo;
133 | TCCR1B |= _BV(CS11); //fmcu/8 = 1Mhz == 10000 counts per period
134 | interruptAt = nextEvent;
135 | }
136 |
137 | inline void stopTimer() {
138 | TCCR1B = 0;
139 | }
140 |
141 | inline void continueTimer() {
142 | TCCR1B |= _BV(CS11); //fmcu/8 = 1Mhz == 10000 counts per period
143 | }
144 |
145 | //Timer interrupt - happens at various events in life
146 | ISR(TIM1_COMPA_vect) {
147 | if(EVENT_TRUE_ZC == interruptAt) {
148 | stopTimer();
149 | setTimerInterruptAt(TCNT1 + conductionAngle, EVENT_CONDUCT);
150 | } else {// if(EVENT_CONDUCT == interruptAt)
151 | conductionOn();
152 | }
153 | }
154 |
155 | //Timer overflow means - there is no ZC interrupt happening and setting up EVENT_TRUE_ZC timer.
156 | ISR(TIM1_OVF_vect) {
157 | conductionOff();
158 | stopTimer();
159 | powerGood = false;
160 | }
161 |
162 | inline void saveCalibration(){
163 | eeprom_write_byte(0x00, OSCCAL);
164 | }
165 |
166 | inline void adjustOscillatorSpeed() {
167 | if (oscAjdustDelayCounter++ > 128) {
168 | if(periodLength > 10060) {
169 | OSCCAL--;
170 | calibrationGood = false;
171 | } else if(periodLength < 9940){
172 | OSCCAL++;
173 | calibrationGood = false;
174 | } else {
175 | calibrationGood = true;
176 | }
177 | oscAjdustDelayCounter = 0;
178 | }
179 | }
180 |
181 | volatile int32_t periodFiltered = 0;
182 | volatile int32_t periodFiltered2 = 0;
183 |
184 | inline uint16_t filterPeriodLength(int32_t thisPeriodLength) {
185 | if(0 != periodFiltered2) {
186 | periodFiltered = periodFiltered + ((thisPeriodLength - periodFiltered) >> 5);
187 | periodFiltered2 = periodFiltered2 + ((periodFiltered - periodFiltered2) >> 5);
188 | } else {
189 | periodFiltered = thisPeriodLength;
190 | periodFiltered2 = thisPeriodLength;
191 | }
192 | return (uint16_t) periodFiltered2;
193 | }
194 |
195 | inline void setupZCInterrupt() {
196 | MCUCR |= _BV(ISC01) | _BV(ISC00);
197 | GIMSK |= _BV(INT0);
198 | zcInterruptEdge = EDGE_LEADING;
199 | }
200 |
201 | inline void flipZcInterruptEdge() {
202 | zcInterruptEdge = !zcInterruptEdge;
203 | MCUCR = MCUCR ^ 1; //flip last bit, changing the edge for the next intettupt
204 | }
205 |
206 | #define MODE_DIMMER 1
207 | #define MODE_RELAY 2
208 | #define RELAY_MAX_CYCLES 255
209 |
210 | uint8_t relayOnCycles = 0;
211 | uint8_t mode = MODE_DIMMER;
212 | uint8_t relayOutputPower = 0;
213 |
214 | inline uint16_t getNewConductionAngle() {
215 | if(MODE_DIMMER == mode) {
216 | return newConductionAngle;
217 | } else {
218 | //MODE_RELAY
219 | if(relayOnCycles > RELAY_MAX_CYCLES) {
220 | relayOnCycles = 0;
221 | }
222 |
223 | if(relayOnCycles++ >= relayOutputPower) {
224 | return 9000;//min power
225 | } else {
226 | return 0;//max power
227 | }
228 | }
229 | }
230 |
231 | //Zero crossing interrupt: collects statistics, restarts the timer - next stop - true zero crossing interrupt
232 | ISR(EXT_INT0_vect) {
233 | stopTimer();
234 |
235 | if(EDGE_LEADING == zcInterruptEdge) {
236 | //fadeInOut();
237 | conductionOff();
238 | stopTimer();
239 | periodLength = filterPeriodLength(TCNT1);
240 | zcInterruptTimestamp = TCNT1;
241 | resetTimer();
242 | conductionAngle = getNewConductionAngle();
243 | setTimerInterruptAt(zcPulseLength >> 1, EVENT_TRUE_ZC);
244 | adjustOscillatorSpeed();
245 | } else {
246 | uint8_t lastZcPulseLength = TCNT1;
247 | continueTimer();
248 | int diff = abs(zcPulseLength - lastZcPulseLength);
249 | if (diff < MAX_SANE_ZC_LENGTH_DIFF || 0 == zcPulseLength) {
250 | zcPulseLength = lastZcPulseLength;
251 | }
252 | }
253 | flipZcInterruptEdge();
254 | powerGood=1;
255 | }
256 |
257 | inline void ledOn(uint8_t led){
258 | PORTB |= _BV(led);
259 | }
260 |
261 | inline void ledOff(uint8_t led){
262 | PORTB &= ~_BV(led);
263 | }
264 |
265 | inline void calibrate() {
266 | uint8_t calibration = eeprom_read_byte(0x00);
267 | if(calibration != 255) {
268 | OSCCAL = calibration;
269 | }
270 |
271 | while(!calibrationGood) {
272 | ledOn(RED);
273 | _delay_ms(300);
274 | ledOff(RED);
275 | ledOn(GREEN);
276 | _delay_ms(300);
277 | ledOff(GREEN);
278 | }
279 | eeprom_write_byte(0x00, OSCCAL);
280 | }
281 |
282 | uint8_t readAddressSetting() {
283 | DDRA &= 0b11110000;
284 | PORTA |= 0b00001111;
285 | _delay_ms(100);
286 | return ~PINA & 0b00001111;
287 | }
288 |
289 | int main (void) {
290 | MCUSR = 0;
291 | wdt_disable();
292 | DDRB |= _BV(RED) | _BV(GREEN);
293 | PORTB |= _BV(PB2);
294 | DDRA |= _BV(PA7);
295 | PORTA = 0;
296 |
297 | setupZCInterrupt();
298 |
299 | usiTwiSlaveInit(0x20 + readAddressSetting());
300 | sei();
301 |
302 | newConductionAngle = pgm_read_word(&conductionAngles[255]);
303 |
304 | while(1) {
305 | if(usiTwiDataInReceiveBuffer()) {
306 | uint8_t usiRx = usiTwiReceiveByte();
307 | if(I2C_SET_DIMMER_POWER == usiRx) {
308 | newConductionAngle = pgm_read_word(&conductionAngles[255 - usiTwiReceiveByte()]);
309 | mode = MODE_DIMMER;
310 | } else if(I2C_SET_RELAY_POWER == usiRx) {
311 | newConductionAngle = pgm_read_word(&conductionAngles[255]);
312 | relayOnCycles = 0;
313 | relayOutputPower = usiTwiReceiveByte();
314 | mode = MODE_RELAY;
315 | } else if (I2C_SET_CONDUCTION_ANGLE == usiRx) {
316 | newConductionAngle = ((uint16_t) usiTwiReceiveByte()) << 8;
317 | newConductionAngle |= (((uint16_t) usiTwiReceiveByte()) & 0x00FF);
318 | } else if (I2C_READ_PERIOD_LENGTH == usiRx){
319 | usiTwiTransmitByte(periodLength >> 8);
320 | usiTwiTransmitByte(periodLength & 0x00FF);
321 | } else if (I2C_READ_ZC_PULSE_LENGHT == usiRx){
322 | usiTwiTransmitByte(zcPulseLength >> 8);
323 | usiTwiTransmitByte(zcPulseLength & 0x00FF);
324 | } else if (I2C_READ_OSCCAL == usiRx){
325 | usiTwiTransmitByte(OSCCAL);
326 | } else if (I2C_READ_CONDUCTION_ANGLE == usiRx){
327 | usiTwiTransmitByte(conductionAngle >> 8);
328 | usiTwiTransmitByte(conductionAngle & 0x00FF);
329 | } else if (I2C_READ_LAST_PERIOD_LENGTH == usiRx){
330 | usiTwiTransmitByte(zcInterruptTimestamp >> 8);
331 | usiTwiTransmitByte(zcInterruptTimestamp & 0x00FF);
332 | } else if (I2C_RESET == usiRx) {
333 | reset();
334 | } else if(I2C_CALIBRATE == usiRx) {
335 | calibrate();
336 | } else if(I2C_TEST == usiRx) {
337 | ledOn(RED);
338 | ledOn(GREEN);
339 | _delay_ms(2000);
340 | ledOff(RED);
341 | ledOff(GREEN);
342 | }
343 | }
344 |
345 | if(!powerGood) {
346 | ledOn(RED);
347 | _delay_ms(100);
348 | ledOff(RED);
349 | _delay_ms(100);
350 | }
351 | ledOff(GREEN);
352 | }
353 | }
354 |
--------------------------------------------------------------------------------
/ssr-cache.lib:
--------------------------------------------------------------------------------
1 | EESchema-LIBRARY Version 2.3 Date: Thu 20 Jun 2013 11:41:15 PM CEST
2 | #encoding utf-8
3 | #
4 | # ATTINY44-SS
5 | #
6 | DEF ATTINY44-SS IC 0 40 Y Y 1 F N
7 | F0 "IC" -750 750 60 H V C CNN
8 | F1 "ATTINY44-SS" 550 -750 60 H V C CNN
9 | F2 "SO14" -700 -750 60 H I C CNN
10 | F3 "" 0 0 60 H V C CNN
11 | DRAW
12 | S 850 700 -850 -700 0 1 0 f
13 | X VCC 1 -1050 600 200 R 50 50 1 1 W
14 | X (PCINT8/CLKI/XTAL1)PB0 2 1050 -300 200 L 50 50 1 1 B
15 | X (PCINT9/XTAL2)PB1 3 1050 -400 200 L 50 50 1 1 B
16 | X (PCINT11/dW/~RESET~)PB3 4 1050 -600 200 L 50 50 1 1 B
17 | X (PCINT10/CKOUT/OC0A/INT0)PB2 5 1050 -500 200 L 50 50 1 1 B
18 | X (PCINT7/ICP/OC0B/ADC7)PA7 6 1050 -100 200 L 50 50 1 1 B
19 | X (PCINT6/SDA/DI/MOSI/OC1A/ADC6)PA6 7 1050 0 200 L 50 50 1 1 B
20 | X (PCINT5/DO/MISO/OC1B/ADC5)PA5 8 1050 100 200 L 50 50 1 1 B
21 | X (PCINT4/USCK/SCL/T1/ADC4)PA4 9 1050 200 200 L 50 50 1 1 B
22 | X (PCINT3/T0/ADC3)PA3 10 1050 300 200 L 50 50 1 1 B
23 | X (PCINT2/AIN1/ADC2)PA2 11 1050 400 200 L 50 50 1 1 B
24 | X (PCINT1/AIN0/ADC1)PA1 12 1050 500 200 L 50 50 1 1 B
25 | X (PCINT0/AREF/ADC0)PA0 13 1050 600 200 L 50 50 1 1 B
26 | X GND 14 -1050 -600 200 R 50 50 1 1 W
27 | ENDDRAW
28 | ENDDEF
29 | #
30 | # AVR-ISP-6
31 | #
32 | DEF AVR-ISP-6 CON 0 40 Y Y 1 F N
33 | F0 "CON" -80 240 50 H V C CNN
34 | F1 "AVR-ISP-6" -240 -230 50 H V L BNN
35 | F2 "AVR-ISP-6" -520 40 50 V I C CNN
36 | F3 "" 0 0 60 H V C CNN
37 | DRAW
38 | T 0 -290 5 45 0 0 0 SCK Normal 1 C C
39 | T 0 300 110 45 0 0 0 VCC Normal 1 C C
40 | T 0 310 -105 45 0 1 0 GND Normal 1 C C
41 | T 0 -308 102 45 0 1 0 MISO Normal 1 C C
42 | T 0 332 -2 45 0 1 0 MOSI Normal 1 C C
43 | T 0 -290 -100 45 0 1 0 RST Normal 1 C C
44 | S -180 -140 190 -160 0 1 0 F
45 | S -180 200 180 180 0 1 0 F
46 | S -175 -160 -195 -40 0 1 0 F
47 | S -175 200 -195 40 0 1 0 F
48 | S 180 200 200 -160 0 1 0 F
49 | X ~ 1 -125 100 100 R 40 40 1 1 P
50 | X ~ 2 125 100 100 L 40 40 1 1 P
51 | X ~ 3 -125 0 100 R 40 40 1 1 P
52 | X ~ 4 125 0 100 L 40 40 1 1 P
53 | X ~ 5 -125 -100 100 R 40 40 1 1 P
54 | X ~ 6 125 -100 100 L 40 40 1 1 P
55 | ENDDRAW
56 | ENDDEF
57 | #
58 | # C
59 | #
60 | DEF C C 0 10 N Y 1 F N
61 | F0 "C" 0 100 40 H V L CNN
62 | F1 "C" 6 -85 40 H V L CNN
63 | F2 "" 38 -150 30 H V C CNN
64 | F3 "" 0 0 60 H V C CNN
65 | $FPLIST
66 | SM*
67 | C?
68 | C1-1
69 | $ENDFPLIST
70 | DRAW
71 | P 2 0 1 20 -80 -30 80 -30 N
72 | P 2 0 1 20 -80 30 80 30 N
73 | X ~ 1 0 200 170 D 40 40 1 1 P
74 | X ~ 2 0 -200 170 U 40 40 1 1 P
75 | ENDDRAW
76 | ENDDEF
77 | #
78 | # CONN_4
79 | #
80 | DEF CONN_4 P 0 40 Y N 1 F N
81 | F0 "P" -50 0 50 V V C CNN
82 | F1 "CONN_4" 50 0 50 V V C CNN
83 | F2 "" 0 0 60 H V C CNN
84 | F3 "" 0 0 60 H V C CNN
85 | DRAW
86 | S -100 200 100 -200 0 1 0 N
87 | X P1 1 -350 150 250 R 50 50 1 1 P I
88 | X P2 2 -350 50 250 R 50 50 1 1 P I
89 | X P3 3 -350 -50 250 R 50 50 1 1 P I
90 | X P4 4 -350 -150 250 R 50 50 1 1 P I
91 | ENDDRAW
92 | ENDDEF
93 | #
94 | # CONTACT
95 | #
96 | DEF CONTACT P 0 40 Y Y 1 F N
97 | F0 "P" 0 -100 60 H V C CNN
98 | F1 "CONTACT" 0 100 60 H V C CNN
99 | F2 "" 0 0 60 H V C CNN
100 | F3 "" 0 0 60 H V C CNN
101 | DRAW
102 | X 1 1 0 0 300 L 50 50 1 1 I
103 | ENDDRAW
104 | ENDDEF
105 | #
106 | # CP
107 | #
108 | DEF CP C 0 10 N N 1 F N
109 | F0 "C" 50 100 40 H V L CNN
110 | F1 "CP" 50 -100 40 H V L CNN
111 | F2 "" 100 -150 30 H V C CNN
112 | F3 "" 0 0 300 H V C CNN
113 | ALIAS CAPAPOL
114 | $FPLIST
115 | CP*
116 | SM*
117 | $ENDFPLIST
118 | DRAW
119 | P 4 0 1 8 -80 50 -80 -50 80 -50 80 50 N
120 | P 4 0 1 0 -50 50 -50 -20 50 -20 50 50 F
121 | X ~ 1 0 200 150 D 40 40 1 1 P
122 | X ~ 2 0 -200 150 U 40 40 1 1 P
123 | ENDDRAW
124 | ENDDEF
125 | #
126 | # FUSE
127 | #
128 | DEF FUSE F 0 10 Y Y 1 F N
129 | F0 "F" 100 50 40 H V C CNN
130 | F1 "FUSE" -100 -50 40 H V C CNN
131 | F2 "" 0 0 60 H V C CNN
132 | F3 "" 0 0 60 H V C CNN
133 | DRAW
134 | A -75 0 75 1 1799 0 1 0 N 0 0 -150 0
135 | A 75 0 75 -1799 -1 0 1 0 N 0 0 150 0
136 | X ~ 1 -250 0 100 R 40 40 1 1 I
137 | X ~ 2 250 0 100 L 40 40 1 1 I
138 | ENDDRAW
139 | ENDDEF
140 | #
141 | # GND
142 | #
143 | DEF ~GND #PWR 0 0 Y Y 1 F P
144 | F0 "#PWR" 0 0 30 H I C CNN
145 | F1 "GND" 0 -70 30 H I C CNN
146 | F2 "" 0 0 60 H V C CNN
147 | F3 "" 0 0 60 H V C CNN
148 | DRAW
149 | P 4 0 1 0 -50 0 0 -50 50 0 -50 0 N
150 | X GND 1 0 0 0 U 30 30 1 1 W N
151 | ENDDRAW
152 | ENDDEF
153 | #
154 | # INDUCTOR
155 | #
156 | DEF INDUCTOR L 0 40 N N 1 F N
157 | F0 "L" -50 0 40 V V C CNN
158 | F1 "INDUCTOR" 100 0 40 V V C CNN
159 | F2 "" 0 0 60 H V C CNN
160 | F3 "" 0 0 60 H V C CNN
161 | DRAW
162 | A 0 -150 50 -889 889 0 1 0 N 1 -199 1 -100
163 | A 0 -49 51 -889 889 0 1 0 N 1 -99 1 2
164 | A 0 51 51 -889 889 0 1 0 N 1 1 1 102
165 | A 0 148 48 -889 889 0 1 0 N 1 101 1 196
166 | X 1 1 0 300 100 D 70 70 1 1 P
167 | X 2 2 0 -300 100 U 70 70 1 1 P
168 | ENDDRAW
169 | ENDDEF
170 | #
171 | # LED
172 | #
173 | DEF LED D 0 40 Y N 1 F N
174 | F0 "D" 0 100 50 H V C CNN
175 | F1 "LED" 0 -100 50 H V C CNN
176 | F2 "" 0 0 60 H V C CNN
177 | F3 "" 0 0 60 H V C CNN
178 | $FPLIST
179 | LED-3MM
180 | LED-5MM
181 | LED-10MM
182 | LED-0603
183 | LED-0805
184 | LED-1206
185 | LEDV
186 | $ENDFPLIST
187 | DRAW
188 | P 2 0 1 0 50 50 50 -50 N
189 | P 3 0 1 0 -50 50 50 0 -50 -50 F
190 | P 3 0 1 0 65 -40 110 -80 105 -55 N
191 | P 3 0 1 0 80 -25 125 -65 120 -40 N
192 | X A 1 -200 0 150 R 40 40 1 1 P
193 | X K 2 200 0 150 L 40 40 1 1 P
194 | ENDDRAW
195 | ENDDEF
196 | #
197 | # MOS_N
198 | #
199 | DEF MOS_N Q 0 0 N Y 1 F N
200 | F0 "Q" 10 170 60 H V R CNN
201 | F1 "MOS_N" 10 -150 60 H V R CNN
202 | F2 "" 0 0 60 H V C CNN
203 | F3 "" 0 0 60 H V C CNN
204 | ALIAS MOSFET_N
205 | DRAW
206 | P 2 0 1 8 -50 -100 -50 100 N
207 | P 2 0 1 10 0 -150 0 150 N
208 | P 2 0 1 0 100 -100 0 -100 N
209 | P 2 0 1 0 100 100 0 100 N
210 | P 3 0 1 8 100 -100 100 0 50 0 N
211 | P 5 0 1 8 50 30 50 -30 0 0 50 30 50 30 N
212 | X D D 100 200 100 D 40 40 1 1 P
213 | X G G -200 0 150 R 40 40 1 1 I
214 | X S S 100 -200 100 U 40 40 1 1 P
215 | ENDDRAW
216 | ENDDEF
217 | #
218 | # OPTO-TRANSISTOR-AC
219 | #
220 | DEF OPTO-TRANSISTOR-AC U 0 30 Y Y 1 F N
221 | F0 "U" 200 300 60 H V C CNN
222 | F1 "OPTO-TRANSISTOR-AC" 100 -300 60 H V C CNN
223 | F2 "" 0 0 60 H V C CNN
224 | F3 "" 0 0 60 H V C CNN
225 | DRAW
226 | S -600 250 250 -250 0 1 0 N
227 | P 2 0 1 0 -350 -100 -600 -100 N
228 | P 2 0 1 0 -350 200 -600 200 N
229 | P 3 0 1 0 -350 -100 -300 -100 -300 -100 N
230 | P 3 0 1 0 -350 200 -300 200 -300 200 N
231 | P 3 0 1 0 -60 -40 -40 -20 -40 -20 N
232 | P 3 0 1 0 -60 -40 -40 -20 -40 -20 N
233 | P 3 0 1 0 50 100 50 -100 50 -100 N
234 | P 3 0 1 0 250 -150 200 -150 200 -150 N
235 | P 3 0 1 0 250 150 200 150 200 150 N
236 | P 4 0 1 0 -400 100 -400 200 -300 200 -300 200 N
237 | P 4 0 1 0 -400 100 -400 200 -300 200 -300 200 N
238 | P 4 0 1 0 -400 100 -400 200 -300 200 -300 200 N
239 | P 4 0 1 0 -400 100 -400 200 -300 200 -300 200 N
240 | P 4 0 1 0 -200 0 -200 -100 -300 -100 -300 -100 N
241 | P 4 0 1 0 -200 0 -200 -100 -300 -100 -300 -100 N
242 | P 4 0 1 0 -200 0 -200 -100 -300 -100 -300 -100 N
243 | P 4 0 1 0 -200 0 -200 -100 -300 -100 -300 -100 N
244 | P 5 0 1 0 50 -50 100 -100 100 -150 200 -150 200 -150 N
245 | P 5 0 1 0 50 50 100 100 100 150 200 150 200 150 N
246 | P 5 0 1 0 60 -80 80 -60 80 -80 60 -80 60 -80 N
247 | P 6 0 1 0 -480 60 -560 140 -560 120 -560 140 -540 140 -540 140 N
248 | P 6 0 1 0 -480 60 -560 140 -560 120 -560 140 -540 140 -540 140 N
249 | P 6 0 1 0 -480 60 -560 140 -560 120 -560 140 -540 140 -540 140 N
250 | P 6 0 1 0 -480 60 -560 140 -560 120 -560 140 -540 140 -540 140 N
251 | P 6 0 1 0 -120 40 -40 -40 -40 -20 -40 -40 -60 -40 -60 -40 N
252 | P 6 0 1 0 -120 40 -40 -40 -40 -20 -40 -40 -60 -40 -60 -40 N
253 | P 6 0 1 0 -120 40 -40 -40 -40 -20 -40 -40 -60 -40 -60 -40 N
254 | P 6 0 1 0 -120 40 -40 -40 -40 -20 -40 -40 -60 -40 -60 -40 N
255 | P 7 0 1 0 -480 120 -560 200 -560 180 -560 200 -540 200 -560 180 -560 180 N
256 | P 7 0 1 0 -480 120 -560 200 -560 180 -560 200 -540 200 -560 180 -560 180 N
257 | P 7 0 1 0 -480 120 -560 200 -560 180 -560 200 -540 200 -560 180 -560 180 N
258 | P 7 0 1 0 -480 120 -560 200 -560 180 -560 200 -540 200 -560 180 -560 180 N
259 | P 7 0 1 0 -120 -20 -40 -100 -40 -80 -40 -100 -60 -100 -40 -80 -40 -80 N
260 | P 7 0 1 0 -120 -20 -40 -100 -40 -80 -40 -100 -60 -100 -40 -80 -40 -80 N
261 | P 7 0 1 0 -120 -20 -40 -100 -40 -80 -40 -100 -60 -100 -40 -80 -40 -80 N
262 | P 7 0 1 0 -120 -20 -40 -100 -40 -80 -40 -100 -60 -100 -40 -80 -40 -80 N
263 | P 8 0 1 0 -300 -100 -400 -100 -400 0 -300 0 -400 100 -500 0 -400 0 -400 0 N
264 | P 8 0 1 0 -300 200 -200 200 -200 100 -300 100 -200 0 -100 100 -200 100 -200 100 N
265 | P 8 0 1 0 -300 200 -200 200 -200 100 -300 100 -200 0 -100 100 -200 100 -200 100 N
266 | P 8 0 1 0 -300 200 -200 200 -200 100 -300 100 -200 0 -100 100 -200 100 -200 100 N
267 | P 8 0 1 0 -300 200 -200 200 -200 100 -300 100 -200 0 -100 100 -200 100 -200 100 N
268 | X AK 1 -900 200 300 R 50 50 1 1 I
269 | X KA 2 -900 -100 300 R 50 50 1 1 I
270 | X E 3 550 -150 300 L 50 50 1 1 w
271 | X NC 3 -350 -200 0 R 50 50 1 1 U N
272 | X C 4 550 150 300 L 50 50 1 1 C
273 | ENDDRAW
274 | ENDDEF
275 | #
276 | # OPTO-TRIAC
277 | #
278 | DEF OPTO-TRIAC U 0 30 Y Y 1 F N
279 | F0 "U" 200 300 60 H V C CNN
280 | F1 "OPTO-TRIAC" 100 -300 60 H V C CNN
281 | F2 "" 0 0 60 H V C CNN
282 | F3 "" 0 0 60 H V C CNN
283 | DRAW
284 | S -350 250 300 -250 0 1 0 N
285 | S 50 0 260 -10 0 1 0 F
286 | S 250 50 50 60 0 1 0 F
287 | P 2 0 1 10 -300 0 -100 0 N
288 | P 3 0 1 0 -350 -100 -300 -100 -300 -100 N
289 | P 3 0 1 0 -300 200 -350 200 -350 200 N
290 | P 3 0 1 0 -60 -40 -40 -20 -40 -20 N
291 | P 3 0 1 0 250 200 300 200 300 200 N
292 | P 3 0 1 0 300 -200 250 -200 250 -200 N
293 | P 4 0 1 0 -200 0 -200 -100 -300 -100 -300 -100 N
294 | P 4 0 1 0 150 -10 150 -200 250 -200 250 -200 N
295 | P 4 0 1 0 150 60 150 200 250 200 250 200 N
296 | P 5 0 1 0 50 50 100 0 150 50 50 50 50 50 F
297 | P 5 0 1 0 150 0 250 0 200 50 150 0 150 0 F
298 | P 6 0 1 0 -120 40 -40 -40 -40 -20 -40 -40 -60 -40 -60 -40 N
299 | P 7 0 1 0 -120 -20 -40 -100 -40 -80 -40 -100 -60 -100 -40 -80 -40 -80 N
300 | P 8 0 1 0 -300 200 -200 200 -200 100 -300 100 -200 0 -100 100 -200 100 -200 100 N
301 | X A 1 -650 200 300 R 50 50 1 1 I
302 | X K 2 -650 -100 300 R 50 50 1 1 I
303 | X NC 3 -450 -150 100 R 20 20 1 1 N
304 | X S2 4 600 -200 300 L 50 50 1 1 O
305 | X NC 5 -450 -200 100 R 20 20 1 1 N
306 | X S1 6 600 200 300 L 50 50 1 1 I
307 | ENDDRAW
308 | ENDDEF
309 | #
310 | # R
311 | #
312 | DEF R R 0 0 N Y 1 F N
313 | F0 "R" 80 0 40 V V C CNN
314 | F1 "R" 7 1 40 V V C CNN
315 | F2 "" -70 0 30 V V C CNN
316 | F3 "" 0 0 30 H V C CNN
317 | $FPLIST
318 | R?
319 | SM0603
320 | SM0805
321 | R?-*
322 | SM1206
323 | $ENDFPLIST
324 | DRAW
325 | S -40 150 40 -150 0 1 12 N
326 | X ~ 1 0 250 100 D 60 60 1 1 P
327 | X ~ 2 0 -250 100 U 60 60 1 1 P
328 | ENDDRAW
329 | ENDDEF
330 | #
331 | # TRIAC
332 | #
333 | DEF TRIAC U 0 10 Y Y 1 F N
334 | F0 "U" -250 350 70 H V C CNN
335 | F1 "TRIAC" -300 -250 60 H V C CNN
336 | F2 "" 0 0 60 H V C CNN
337 | F3 "" 0 0 60 H V C CNN
338 | DRAW
339 | P 2 0 1 0 -300 -50 0 -50 N
340 | P 2 0 1 0 -150 -50 -300 -200 N
341 | P 2 0 1 0 0 200 300 200 N
342 | P 3 0 1 0 -300 200 -150 -50 0 200 F
343 | P 3 0 1 0 150 200 0 -50 300 -50 F
344 | X ~ 1 0 -250 200 U 70 70 1 1 P
345 | X ~ 2 0 400 200 D 70 70 1 1 P
346 | X ~ 3 -500 -200 200 R 70 70 1 1 I
347 | ENDDRAW
348 | ENDDEF
349 | #
350 | # VCC
351 | #
352 | DEF VCC #PWR 0 0 Y Y 1 F P
353 | F0 "#PWR" 0 100 30 H I C CNN
354 | F1 "VCC" 0 100 30 H V C CNN
355 | F2 "" 0 0 60 H V C CNN
356 | F3 "" 0 0 60 H V C CNN
357 | DRAW
358 | X VCC 1 0 0 0 U 20 20 0 0 W N
359 | C 0 50 20 0 1 0 N
360 | P 3 0 1 0 0 0 0 30 0 30 N
361 | ENDDRAW
362 | ENDDEF
363 | #
364 | # VR
365 | #
366 | DEF VR VR 0 0 N Y 1 F N
367 | F0 "VR" 60 -46 40 V V C TNN
368 | F1 "VR" 0 0 40 V V C CNN
369 | F2 "" 0 0 60 H V C CNN
370 | F3 "" 0 0 60 H V C CNN
371 | DRAW
372 | S -40 150 40 -150 0 1 0 N
373 | P 5 0 1 0 -60 -100 -60 -60 60 60 60 100 60 100 N
374 | X ~ 1 0 250 100 D 60 60 1 1 P
375 | X ~ 2 0 -250 100 U 60 60 1 1 P
376 | ENDDRAW
377 | ENDDEF
378 | #
379 | #End Library
380 |
--------------------------------------------------------------------------------
/controller-attiny1634/controller.net:
--------------------------------------------------------------------------------
1 | (export (version D)
2 | (design
3 | (source /home/miceuz/Xaltura/SSR/controller/controller.sch)
4 | (date "Thu 16 May 2013 08:22:17 AM CEST")
5 | (tool "eeschema (2013-mar-13)-testing"))
6 | (components
7 | (comp (ref IC2)
8 | (value SP3485CN)
9 | (footprint SO8)
10 | (libsource (lib interface) (part SP3485CN))
11 | (sheetpath (names /) (tstamps /))
12 | (tstamp 518B9650))
13 | (comp (ref X1)
14 | (value 16MHz)
15 | (libsource (lib device) (part CRYSTAL))
16 | (sheetpath (names /) (tstamps /))
17 | (tstamp 518B9687))
18 | (comp (ref C1)
19 | (value 22p)
20 | (libsource (lib device) (part C))
21 | (sheetpath (names /) (tstamps /))
22 | (tstamp 518B9696))
23 | (comp (ref C2)
24 | (value 22p)
25 | (libsource (lib device) (part C))
26 | (sheetpath (names /) (tstamps /))
27 | (tstamp 518B96A5))
28 | (comp (ref C6)
29 | (value 100n)
30 | (libsource (lib device) (part C))
31 | (sheetpath (names /) (tstamps /))
32 | (tstamp 518B9775))
33 | (comp (ref R1)
34 | (value 10k)
35 | (libsource (lib device) (part R))
36 | (sheetpath (names /) (tstamps /))
37 | (tstamp 518B97EE))
38 | (comp (ref C3)
39 | (value 100n)
40 | (libsource (lib device) (part C))
41 | (sheetpath (names /) (tstamps /))
42 | (tstamp 518B9823))
43 | (comp (ref SW1)
44 | (value SW_PUSH)
45 | (libsource (lib device) (part SW_PUSH))
46 | (sheetpath (names /) (tstamps /))
47 | (tstamp 518B991E))
48 | (comp (ref R3)
49 | (value R)
50 | (libsource (lib device) (part R))
51 | (sheetpath (names /) (tstamps /))
52 | (tstamp 518B9A66))
53 | (comp (ref R2)
54 | (value R)
55 | (libsource (lib device) (part R))
56 | (sheetpath (names /) (tstamps /))
57 | (tstamp 518B9A6C))
58 | (comp (ref C7)
59 | (value 100n)
60 | (libsource (lib device) (part C))
61 | (sheetpath (names /) (tstamps /))
62 | (tstamp 518B9B2D))
63 | (comp (ref CON1)
64 | (value AVR-ISP-6)
65 | (footprint AVR-ISP-6)
66 | (libsource (lib atmel) (part AVR-ISP-6))
67 | (sheetpath (names /) (tstamps /))
68 | (tstamp 518B9ED3))
69 | (comp (ref R4)
70 | (value 10k)
71 | (libsource (lib device) (part R))
72 | (sheetpath (names /) (tstamps /))
73 | (tstamp 518BA4A5))
74 | (comp (ref U1)
75 | (value P82B96)
76 | (libsource (lib philips) (part P82B96))
77 | (sheetpath (names /) (tstamps /))
78 | (tstamp 518BB0F8))
79 | (comp (ref C4)
80 | (value 100n)
81 | (libsource (lib device) (part C))
82 | (sheetpath (names /) (tstamps /))
83 | (tstamp 518BB14F))
84 | (comp (ref IC1)
85 | (value ATTINY1634-S)
86 | (footprint SO20)
87 | (libsource (lib atmel) (part ATTINY1634-S))
88 | (sheetpath (names /) (tstamps /))
89 | (tstamp 5191339D))
90 | (comp (ref P1)
91 | (value I2C)
92 | (libsource (lib conn) (part CONN_4))
93 | (sheetpath (names /) (tstamps /))
94 | (tstamp 51913C29))
95 | (comp (ref C5)
96 | (value 100n)
97 | (libsource (lib device) (part C))
98 | (sheetpath (names /) (tstamps /))
99 | (tstamp 51913C78))
100 | (comp (ref R5)
101 | (value 120)
102 | (libsource (lib device) (part R))
103 | (sheetpath (names /) (tstamps /))
104 | (tstamp 51914955))
105 | (comp (ref JP1)
106 | (value JUMPER)
107 | (libsource (lib device) (part JUMPER))
108 | (sheetpath (names /) (tstamps /))
109 | (tstamp 51914A01))
110 | (comp (ref R6)
111 | (value R)
112 | (libsource (lib device) (part R))
113 | (sheetpath (names /) (tstamps /))
114 | (tstamp 51914D89))
115 | (comp (ref R7)
116 | (value R)
117 | (libsource (lib device) (part R))
118 | (sheetpath (names /) (tstamps /))
119 | (tstamp 51914DFB))
120 | (comp (ref K1)
121 | (value RS458)
122 | (libsource (lib conn) (part CONN_3))
123 | (sheetpath (names /) (tstamps /))
124 | (tstamp 51947B16)))
125 | (libparts
126 | (libpart (lib device) (part C)
127 | (description "Condensateur non polarise")
128 | (footprints
129 | (fp SM*)
130 | (fp C?)
131 | (fp C1-1))
132 | (fields
133 | (field (name Reference) C)
134 | (field (name Value) C)
135 | (field (name Footprint) ~)
136 | (field (name Datasheet) ~))
137 | (pins
138 | (pin (num 1) (name ~) (type passive))
139 | (pin (num 2) (name ~) (type passive))))
140 | (libpart (lib device) (part CRYSTAL)
141 | (fields
142 | (field (name Reference) X)
143 | (field (name Value) CRYSTAL)
144 | (field (name Footprint) ~)
145 | (field (name Datasheet) ~))
146 | (pins
147 | (pin (num 1) (name 1) (type passive))
148 | (pin (num 2) (name 2) (type passive))))
149 | (libpart (lib device) (part JUMPER)
150 | (fields
151 | (field (name Reference) JP)
152 | (field (name Value) JUMPER)
153 | (field (name Footprint) ~)
154 | (field (name Datasheet) ~))
155 | (pins
156 | (pin (num 1) (name 1) (type passive))
157 | (pin (num 2) (name 2) (type passive))))
158 | (libpart (lib device) (part R)
159 | (description Resistance)
160 | (footprints
161 | (fp R?)
162 | (fp SM0603)
163 | (fp SM0805)
164 | (fp R?-*)
165 | (fp SM1206))
166 | (fields
167 | (field (name Reference) R)
168 | (field (name Value) R)
169 | (field (name Footprint) ~)
170 | (field (name Datasheet) ~))
171 | (pins
172 | (pin (num 1) (name ~) (type passive))
173 | (pin (num 2) (name ~) (type passive))))
174 | (libpart (lib device) (part SW_PUSH)
175 | (description "Push Button")
176 | (fields
177 | (field (name Reference) SW)
178 | (field (name Value) SW_PUSH)
179 | (field (name Footprint) ~)
180 | (field (name Datasheet) ~))
181 | (pins
182 | (pin (num 1) (name 1) (type passive))
183 | (pin (num 2) (name 2) (type passive))))
184 | (libpart (lib conn) (part CONN_3)
185 | (description "Symbole general de connecteur")
186 | (fields
187 | (field (name Reference) K)
188 | (field (name Value) CONN_3)
189 | (field (name Footprint) ~)
190 | (field (name Datasheet) ~))
191 | (pins
192 | (pin (num 1) (name P1) (type passive))
193 | (pin (num 2) (name PM) (type passive))
194 | (pin (num 3) (name P3) (type passive))))
195 | (libpart (lib conn) (part CONN_4)
196 | (description "Symbole general de connecteur")
197 | (fields
198 | (field (name Reference) P)
199 | (field (name Value) CONN_4)
200 | (field (name Footprint) ~)
201 | (field (name Datasheet) ~))
202 | (pins
203 | (pin (num 1) (name P1) (type passive))
204 | (pin (num 2) (name P2) (type passive))
205 | (pin (num 3) (name P3) (type passive))
206 | (pin (num 4) (name P4) (type passive))))
207 | (libpart (lib philips) (part P82B96)
208 | (description "I2C Bus tranceiver")
209 | (footprints
210 | (fp SO8E)
211 | (fp SSOP8))
212 | (fields
213 | (field (name Reference) U)
214 | (field (name Value) P82B96))
215 | (pins
216 | (pin (num 1) (name SDA) (type BiDi))
217 | (pin (num 2) (name RXD-SDA) (type input))
218 | (pin (num 3) (name TXD-SDA) (type output))
219 | (pin (num 4) (name GND) (type power_in))
220 | (pin (num 5) (name TXD-SCL) (type output))
221 | (pin (num 6) (name RXD-SCL) (type input))
222 | (pin (num 7) (name SCL) (type BiDi))
223 | (pin (num 8) (name VCC) (type power_in))))
224 | (libpart (lib atmel) (part ATTINY1634-S)
225 | (description "ATTINY1634, SO20, 16k Flash, 1k SRAM, 256B EEPROM")
226 | (docs http://www.atmel.com/Images/doc8303.pdf)
227 | (fields
228 | (field (name Reference) IC)
229 | (field (name Value) ATTINY1634-S)
230 | (field (name Footprint) SO20)
231 | (field (name Datasheet) ~))
232 | (pins
233 | (pin (num 1) (name "(PCINT8/TXD0/ADC5)PB0") (type BiDi))
234 | (pin (num 2) (name "(PCINT7/RXD0/ADC4)PA7") (type BiDi))
235 | (pin (num 3) (name "(PCINT6/OC1B/ADC3)PA6") (type BiDi))
236 | (pin (num 4) (name "(PCINT5/OC0B/ADC2)PA5") (type BiDi))
237 | (pin (num 5) (name "(PCINT4/T0/ADC1)PA4") (type BiDi))
238 | (pin (num 6) (name "(PCINT3/T1/SNS/ADC0)PA3") (type BiDi))
239 | (pin (num 7) (name "(PCINT2/AIN1)PA2") (type BiDi))
240 | (pin (num 8) (name "(PCINT1/AIN0)PA1") (type BiDi))
241 | (pin (num 9) (name "(PCINT0/AREF)PA0") (type BiDi))
242 | (pin (num 10) (name GND) (type power_out))
243 | (pin (num 11) (name VCC) (type power_in))
244 | (pin (num 12) (name "PC5(XTAL1/CLKI/PCINT17)") (type BiDi))
245 | (pin (num 13) (name "PC4(XTAL2/PCINT16)") (type BiDi))
246 | (pin (num 14) (name "PC3(~RESET~/dW/PCINT15)") (type BiDi))
247 | (pin (num 15) (name "PC2(ADC11/CLKO/INT0/PCINT14)") (type BiDi))
248 | (pin (num 16) (name "PC1(ADC10/ICP1/SCL/USCK/XCK1/PCINT13)") (type BiDi))
249 | (pin (num 17) (name "PC0(ADC9/OC0A/XCK0/PCINT12)") (type BiDi))
250 | (pin (num 18) (name "(PCINT11/OC1A/ADC8)PB3") (type BiDi))
251 | (pin (num 19) (name "(PCINT10/DO/TXD1/ADC7)PB2") (type BiDi))
252 | (pin (num 20) (name "(PCINT9/DI/SDA/RXD1/ADC6)PB1") (type BiDi))))
253 | (libpart (lib atmel) (part AVR-ISP-6)
254 | (description "Standard IDC6 Male Connector, ATMEL ISP 6pin")
255 | (fields
256 | (field (name Reference) CON)
257 | (field (name Value) AVR-ISP-6)
258 | (field (name Footprint) AVR-ISP-6)
259 | (field (name Datasheet) ~))
260 | (pins
261 | (pin (num 1) (name ~) (type passive))
262 | (pin (num 2) (name ~) (type passive))
263 | (pin (num 3) (name ~) (type passive))
264 | (pin (num 4) (name ~) (type passive))
265 | (pin (num 5) (name ~) (type passive))
266 | (pin (num 6) (name ~) (type passive))))
267 | (libpart (lib interface) (part SP3481CN)
268 | (description "SP3481CN, 3.3V Low Power Half-Duplex RS-485 Transceiver 10Mbps, SO8")
269 | (docs http://www.icbase.com/pdf/SPX/SPX00480106.pdf)
270 | (footprints
271 | (fp SO8*))
272 | (fields
273 | (field (name Reference) IC)
274 | (field (name Value) SP3481CN)
275 | (field (name Footprint) SO8)
276 | (field (name Datasheet) ~))
277 | (pins
278 | (pin (num 1) (name RO) (type output))
279 | (pin (num 2) (name ~RE~) (type input))
280 | (pin (num 3) (name DE) (type input))
281 | (pin (num 4) (name DI) (type input))
282 | (pin (num 5) (name GND) (type power_in))
283 | (pin (num 6) (name A) (type BiDi))
284 | (pin (num 7) (name B) (type BiDi))
285 | (pin (num 8) (name VCC) (type power_in)))))
286 | (libraries
287 | (library (logical device)
288 | (uri /usr/share/kicad/library/device.lib))
289 | (library (logical conn)
290 | (uri /usr/share/kicad/library/conn.lib))
291 | (library (logical interface)
292 | (uri /usr/share/kicad/library/interface.lib))
293 | (library (logical philips)
294 | (uri /usr/share/kicad/library/philips.lib))
295 | (library (logical atmel)
296 | (uri /usr/share/kicad/library/atmel.lib)))
297 | (nets
298 | (net (code 1) (name /SDA_OUT)
299 | (node (ref R6) (pin 2))
300 | (node (ref U1) (pin 3))
301 | (node (ref P1) (pin 3))
302 | (node (ref U1) (pin 2)))
303 | (net (code 2) (name /SCL_OUT)
304 | (node (ref U1) (pin 5))
305 | (node (ref U1) (pin 6))
306 | (node (ref P1) (pin 2))
307 | (node (ref R7) (pin 2)))
308 | (net (code 3) (name VCC)
309 | (node (ref IC2) (pin 8))
310 | (node (ref C6) (pin 2))
311 | (node (ref CON1) (pin 2))
312 | (node (ref C7) (pin 2))
313 | (node (ref R2) (pin 1))
314 | (node (ref R3) (pin 1))
315 | (node (ref C3) (pin 1))
316 | (node (ref C5) (pin 2))
317 | (node (ref U1) (pin 8))
318 | (node (ref R6) (pin 1))
319 | (node (ref R7) (pin 1))
320 | (node (ref P1) (pin 1))
321 | (node (ref C4) (pin 2))
322 | (node (ref IC1) (pin 11))
323 | (node (ref R1) (pin 1)))
324 | (net (code 4) (name "")
325 | (node (ref IC1) (pin 13))
326 | (node (ref X1) (pin 2))
327 | (node (ref C1) (pin 2)))
328 | (net (code 5) (name "")
329 | (node (ref X1) (pin 1))
330 | (node (ref C2) (pin 2))
331 | (node (ref IC1) (pin 12)))
332 | (net (code 6) (name /RESET)
333 | (node (ref IC1) (pin 14))
334 | (node (ref SW1) (pin 2))
335 | (node (ref R1) (pin 2))
336 | (node (ref CON1) (pin 5)))
337 | (net (code 7) (name "")
338 | (node (ref IC2) (pin 1))
339 | (node (ref IC1) (pin 2)))
340 | (net (code 8) (name /MISO)
341 | (node (ref CON1) (pin 1))
342 | (node (ref IC1) (pin 19)))
343 | (net (code 9) (name /SCL)
344 | (node (ref IC1) (pin 16))
345 | (node (ref CON1) (pin 3))
346 | (node (ref U1) (pin 7))
347 | (node (ref R2) (pin 2)))
348 | (net (code 10) (name /SDA)
349 | (node (ref IC1) (pin 20))
350 | (node (ref U1) (pin 1))
351 | (node (ref R3) (pin 2))
352 | (node (ref CON1) (pin 4)))
353 | (net (code 11) (name GND)
354 | (node (ref P1) (pin 4))
355 | (node (ref C4) (pin 1))
356 | (node (ref C5) (pin 1))
357 | (node (ref C6) (pin 1))
358 | (node (ref IC1) (pin 10))
359 | (node (ref R4) (pin 2))
360 | (node (ref CON1) (pin 6))
361 | (node (ref U1) (pin 4))
362 | (node (ref C7) (pin 1))
363 | (node (ref K1) (pin 3))
364 | (node (ref SW1) (pin 1))
365 | (node (ref C2) (pin 1))
366 | (node (ref C1) (pin 1))
367 | (node (ref C3) (pin 2))
368 | (node (ref IC2) (pin 5)))
369 | (net (code 12) (name "")
370 | (node (ref R5) (pin 1))
371 | (node (ref JP1) (pin 1)))
372 | (net (code 13) (name /MODBUS_B)
373 | (node (ref K1) (pin 1))
374 | (node (ref IC2) (pin 7))
375 | (node (ref R5) (pin 2)))
376 | (net (code 14) (name /MODBUS_A)
377 | (node (ref K1) (pin 2))
378 | (node (ref IC2) (pin 6))
379 | (node (ref JP1) (pin 2)))
380 | (net (code 15) (name "")
381 | (node (ref R4) (pin 1))
382 | (node (ref IC2) (pin 3))
383 | (node (ref IC2) (pin 2))
384 | (node (ref IC1) (pin 3)))
385 | (net (code 16) (name "")
386 | (node (ref IC2) (pin 4))
387 | (node (ref IC1) (pin 1)))
388 | (net (code 17) (name "")
389 | (node (ref IC1) (pin 7)))
390 | (net (code 18) (name "")
391 | (node (ref IC1) (pin 4)))
392 | (net (code 19) (name "")
393 | (node (ref IC1) (pin 5)))
394 | (net (code 20) (name "")
395 | (node (ref IC1) (pin 6)))
396 | (net (code 21) (name "")
397 | (node (ref IC1) (pin 8)))
398 | (net (code 22) (name "")
399 | (node (ref IC1) (pin 9)))
400 | (net (code 23) (name "")
401 | (node (ref IC1) (pin 15)))
402 | (net (code 24) (name "")
403 | (node (ref IC1) (pin 17)))
404 | (net (code 25) (name "")
405 | (node (ref IC1) (pin 18)))))
--------------------------------------------------------------------------------
/firmware/.cproject:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 | make
138 |
139 | clean
140 | true
141 | true
142 | true
143 |
144 |
145 | make
146 |
147 | all
148 | true
149 | true
150 | true
151 |
152 |
153 |
154 |
155 |
--------------------------------------------------------------------------------