Compare commits
41 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
d44dade02d | ||
|
90504217be | ||
|
51605d8d1c | ||
|
4eece42354 | ||
|
d0fbfa4481 | ||
|
e1f4675ef8 | ||
|
d32e0b6ee5 | ||
|
dded78cb83 | ||
|
4fd5096c96 | ||
|
41d2190488 | ||
|
d6f9989379 | ||
|
e30963a990 | ||
|
e6da99b4a6 | ||
|
f241e7cf04 | ||
|
dfab0e57be | ||
|
8310c0dd7f | ||
|
d68451e48b | ||
|
b1ae22b367 | ||
|
b26c97e136 | ||
|
896580a239 | ||
|
6a76239f40 | ||
|
55817da407 | ||
|
584c263eaa | ||
|
42db319ae9 | ||
|
81cebe6472 | ||
|
732b91caef | ||
|
35263d8595 | ||
|
15de286b3f | ||
|
4b22b19ab6 | ||
|
77b927d1fc | ||
|
56e2b608de | ||
|
b80e76ee01 | ||
|
758d6a8720 | ||
|
25430212eb | ||
|
2cc669cda0 | ||
|
21f15bf4c3 | ||
|
7cfac59443 | ||
|
65c2cd0793 | ||
|
2f2f68ed48 | ||
|
150a4d8a4b | ||
|
f63b37a9de |
33
Hardware/eagle/CANNode.pro
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
update=Date
|
||||||
|
version=1
|
||||||
|
last_client=kicad
|
||||||
|
[pcbnew]
|
||||||
|
version=1
|
||||||
|
LastNetListRead=CANNode.net
|
||||||
|
UseCmpFile=1
|
||||||
|
PadDrill=0.600000000000
|
||||||
|
PadDrillOvalY=0.600000000000
|
||||||
|
PadSizeH=1.500000000000
|
||||||
|
PadSizeV=1.500000000000
|
||||||
|
PcbTextSizeV=1.500000000000
|
||||||
|
PcbTextSizeH=1.500000000000
|
||||||
|
PcbTextThickness=0.300000000000
|
||||||
|
ModuleTextSizeV=1.000000000000
|
||||||
|
ModuleTextSizeH=1.000000000000
|
||||||
|
ModuleTextSizeThickness=0.150000000000
|
||||||
|
SolderMaskClearance=0.000000000000
|
||||||
|
SolderMaskMinWidth=0.000000000000
|
||||||
|
DrawSegmentWidth=0.200000000000
|
||||||
|
BoardOutlineThickness=0.100000000000
|
||||||
|
ModuleOutlineThickness=0.150000000000
|
||||||
|
[cvpcb]
|
||||||
|
version=1
|
||||||
|
NetIExt=net
|
||||||
|
[general]
|
||||||
|
version=1
|
||||||
|
[eeschema]
|
||||||
|
version=1
|
||||||
|
LibDir=/home/wiebel/kicad/kicadlibrary
|
||||||
|
[eeschema/libraries]
|
||||||
|
LibName1=CANNode
|
||||||
|
LibName2=open-project
|
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 106 KiB |
BIN
Hardware/eagle/CANNode_r2_schematic.png
Normal file
After Width: | Height: | Size: 62 KiB |
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 98 KiB |
40
Hardware/eagle/OW-sat/OW-sat_bottom.gpi
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
Generated by EAGLE CAM Processor 7.6.0
|
||||||
|
|
||||||
|
Photoplotter Info File: /home/wiebel/Workspace/CANNode/Hardware/OW-sat/OW-sat_bottom.gpi
|
||||||
|
|
||||||
|
Date : 2/12/18 9:40 PM
|
||||||
|
Plotfile : /home/wiebel/Workspace/CANNode/Hardware/OW-sat/OW-sat_bottom
|
||||||
|
Apertures : generated:
|
||||||
|
Device : Gerber RS-274-X photoplotter, coordinate format 2.5 inch
|
||||||
|
|
||||||
|
Parameter settings:
|
||||||
|
|
||||||
|
Emulate Apertures : no
|
||||||
|
Tolerance Draw + : 0.00 %
|
||||||
|
Tolerance Draw - : 0.00 %
|
||||||
|
Tolerance Flash + : 0.00 %
|
||||||
|
Tolerance Flash - : 0.00 %
|
||||||
|
Rotate : no
|
||||||
|
Mirror : no
|
||||||
|
Optimize : yes
|
||||||
|
Auto fit : yes
|
||||||
|
OffsetX : 0inch
|
||||||
|
OffsetY : 0inch
|
||||||
|
|
||||||
|
Plotfile Info:
|
||||||
|
|
||||||
|
Coordinate Format : 2.5
|
||||||
|
Coordinate Units : Inch
|
||||||
|
Data Mode : Absolute
|
||||||
|
Zero Suppression : None
|
||||||
|
End Of Block : *
|
||||||
|
|
||||||
|
Apertures used:
|
||||||
|
|
||||||
|
Code Shape Size used
|
||||||
|
|
||||||
|
D10 draw 0.0480inch 6
|
||||||
|
D11 rectangle 0.0512inch x 0.0591inch 4
|
||||||
|
D12 draw 0.0160inch 6
|
||||||
|
D13 square 0.0376inch 1
|
||||||
|
|
43
Hardware/eagle/OW-sat/OW-sat_bottom.grb
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
G75*
|
||||||
|
%MOIN*%
|
||||||
|
%OFA0B0*%
|
||||||
|
%FSLAX25Y25*%
|
||||||
|
%IPPOS*%
|
||||||
|
%LPD*%
|
||||||
|
%AMOC8*
|
||||||
|
5,1,8,0,0,1.08239X$1,22.5*
|
||||||
|
%
|
||||||
|
%ADD10C,0.04800*%
|
||||||
|
%ADD11R,0.05118X0.05906*%
|
||||||
|
%ADD12C,0.01600*%
|
||||||
|
%ADD13R,0.03762X0.03762*%
|
||||||
|
D10*
|
||||||
|
X0008600Y0011000D02*
|
||||||
|
X0013400Y0011000D01*
|
||||||
|
X0013400Y0021000D02*
|
||||||
|
X0008600Y0021000D01*
|
||||||
|
X0008600Y0031000D02*
|
||||||
|
X0013400Y0031000D01*
|
||||||
|
X0038600Y0031000D02*
|
||||||
|
X0043400Y0031000D01*
|
||||||
|
X0043400Y0021000D02*
|
||||||
|
X0038600Y0021000D01*
|
||||||
|
X0038600Y0011000D02*
|
||||||
|
X0043400Y0011000D01*
|
||||||
|
D11*
|
||||||
|
X0029740Y0021000D03*
|
||||||
|
X0022260Y0021000D03*
|
||||||
|
X0022260Y0031000D03*
|
||||||
|
X0029740Y0031000D03*
|
||||||
|
D12*
|
||||||
|
X0041000Y0031000D01*
|
||||||
|
X0041000Y0021000D02*
|
||||||
|
X0029740Y0021000D01*
|
||||||
|
X0029740Y0014740D01*
|
||||||
|
X0026000Y0011000D01*
|
||||||
|
X0022260Y0021000D02*
|
||||||
|
X0022260Y0031000D01*
|
||||||
|
X0011000Y0031000D01*
|
||||||
|
D13*
|
||||||
|
X0026000Y0011000D03*
|
||||||
|
M02*
|
BIN
Hardware/eagle/OW-sat/OW-sat_gerber.zip
Normal file
BIN
Hardware/eagle/OW-sat/OW-sat_top.gpi
Normal file
57
Hardware/eagle/OW-sat/OW-sat_top.grb
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
G75*
|
||||||
|
%MOIN*%
|
||||||
|
%OFA0B0*%
|
||||||
|
%FSLAX25Y25*%
|
||||||
|
%IPPOS*%
|
||||||
|
%LPD*%
|
||||||
|
%AMOC8*
|
||||||
|
5,1,8,0,0,1.08239X$1,22.5*
|
||||||
|
%
|
||||||
|
%ADD10C,0.04800*%
|
||||||
|
%ADD11R,0.04800X0.01600*%
|
||||||
|
%ADD12C,0.01600*%
|
||||||
|
%ADD13R,0.03762X0.03762*%
|
||||||
|
D10*
|
||||||
|
X0008600Y0011000D02*
|
||||||
|
X0013400Y0011000D01*
|
||||||
|
X0013400Y0021000D02*
|
||||||
|
X0008600Y0021000D01*
|
||||||
|
X0008600Y0031000D02*
|
||||||
|
X0013400Y0031000D01*
|
||||||
|
X0038600Y0031000D02*
|
||||||
|
X0043400Y0031000D01*
|
||||||
|
X0043400Y0021000D02*
|
||||||
|
X0038600Y0021000D01*
|
||||||
|
X0038600Y0011000D02*
|
||||||
|
X0043400Y0011000D01*
|
||||||
|
D11*
|
||||||
|
X0032300Y0016000D03*
|
||||||
|
X0032300Y0021000D03*
|
||||||
|
X0032300Y0026000D03*
|
||||||
|
X0019700Y0026000D03*
|
||||||
|
X0019700Y0021000D03*
|
||||||
|
X0019700Y0016000D03*
|
||||||
|
D12*
|
||||||
|
X0024700Y0011000D01*
|
||||||
|
X0026000Y0011000D01*
|
||||||
|
X0021000Y0006000D02*
|
||||||
|
X0031000Y0006000D01*
|
||||||
|
X0036000Y0011000D01*
|
||||||
|
X0041000Y0011000D01*
|
||||||
|
X0037300Y0011000D01*
|
||||||
|
X0032300Y0016000D01*
|
||||||
|
X0032300Y0021000D02*
|
||||||
|
X0011000Y0021000D01*
|
||||||
|
X0019700Y0026000D02*
|
||||||
|
X0014700Y0031000D01*
|
||||||
|
X0011000Y0031000D01*
|
||||||
|
X0032300Y0026000D02*
|
||||||
|
X0037300Y0031000D01*
|
||||||
|
X0041000Y0031000D01*
|
||||||
|
X0016000Y0011000D02*
|
||||||
|
X0021000Y0006000D01*
|
||||||
|
X0016000Y0011000D02*
|
||||||
|
X0011000Y0011000D01*
|
||||||
|
D13*
|
||||||
|
X0026000Y0011000D03*
|
||||||
|
M02*
|
3
Hardware/eagle/OW-sat/bom.csv
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Designator,Manufacturer Part Number,Quantity
|
||||||
|
"R1,R2",RHA0J471MCN1GS,2
|
||||||
|
"IC1",DS2406P+,1
|
|
412
Hardware/eagle/OW-sat/eagle.epf
Normal file
@ -0,0 +1,412 @@
|
|||||||
|
[Eagle]
|
||||||
|
Version="07 04 00"
|
||||||
|
Platform="Linux"
|
||||||
|
Serial="62191E841E-LSR-WLM-1EL"
|
||||||
|
Globals="Globals"
|
||||||
|
Desktop="Desktop"
|
||||||
|
|
||||||
|
[Globals]
|
||||||
|
AutoSaveProject=1
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/19inch.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/40xx.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/41xx.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/45xx.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/74ac-logic.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/74ttl-din.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/74xx-eu.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/74xx-little-de.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/74xx-little-us.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/74xx-us.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/751xx.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/IQD-Frequency-Products.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/Wurth_Elektronik_Electromechanic_Terminal_Blocks_Connectors_rev15d.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/adafruit.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/advanced-test-technologies.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/agilent-technologies.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/allegro.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/altera-cyclone-II.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/altera-cyclone-III.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/altera-stratix-iv.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/altera.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/am29-memory.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/amd-mach.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/amd.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/amis.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/analog-devices.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/aplus.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/ase.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/atmel.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/austriamicrosystems.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/avago.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/axis.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/battery.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/belton-engineering.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/burr-brown.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/busbar.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/buzzer.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/c-trimm.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/california-micro-devices.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/capacitor-wima.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/chipcard-siemens.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/cirrus-logic.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-3m.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-4ucon.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-amp-champ.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-amp-micromatch.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-amp-mt.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-amp-mt6.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-amp-quick.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-amp-te.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-amp.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-amphenol.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-avx.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-berg.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-bosch.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-chipcard-iso7816.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-coax.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-commcon.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-conrad.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-cpci.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-cui.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-cypressindustries.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-deutsch.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-dil.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-ebyelectro.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-elco.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-erni.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-faston.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-fci.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-friwo.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-garry.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-harting-h.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-harting-ml.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-harting-v.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-harting.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-hirose.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-hirschmann.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-jack.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-jae.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-jst.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-kycon.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-kyocera-elco.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-lemo.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-leotronics.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-lsta.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-lstb.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-lumberg.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-ml.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-molex.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-neutrik_ag.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-omron.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-panasonic.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-panduit.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-pc.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-pc104.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-phoenix-254.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-phoenix-3.81.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-phoenix-350.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-phoenix-500.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-phoenix-508.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-phoenix-762.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-phoenix-me_max.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-phoenix-mkds_5.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-phoenix-smkdsp.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-ptr500.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-pulse.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-rib.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-samtec.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-shallin.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-shiua-chyuan.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-stewart.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-stocko.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-subd.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-sullinselectronics.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-thomas-betts.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-tyco.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-tycoelectronics.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-vg.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-wago-500.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-wago-508.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-wago.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-wago255.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-weidmueller-sl35.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-wenzhou-yihua.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-xmultiple.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/con-yamaichi.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/crystal.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/csr.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/cypress.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/davicom.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/dc-dc-converter.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/dimensions.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/diode.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/discrete.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/display-hp.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/display-kingbright.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/display-lcd.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/docu-dummy.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/dom-key.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/eagle-ltspice.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/ecl.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/em-microelectronic.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/etx-board.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/exar.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/fairchild-semic.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/farnell.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/fiber-optic-hp.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/fiber-optic-siemens.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/fifo.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/flexipanel.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/fox-electronics.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/frames.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/freescale.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/ftdichip.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/fujitsu.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/fuse.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/gennum.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/halo-electronics.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/heatsink.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/holes.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/holtek.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/ic-package.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/inductor-coilcraft.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/inductor-neosid.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/inductor-nkl.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/inductors.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/infineon-tricore.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/infineon.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/intersil-techwell.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/intersil.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/ir.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/isd.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/johanson-technology.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/jump-0r-smd.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/jumper.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/lantronix.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/lattice.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/lc-filter.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/led-7-segment.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/led-citizen-electronics.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/led-lumiled.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/led.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/lem.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/linear-technology.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/linear.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/linx.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/logo.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/lprs.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/lsi-computer-systems.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/lumiled.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/marks.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/maxim.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/maxstream.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/melexis.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/memory-hitachi.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/memory-idt.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/memory-micron.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/memory-motorola-dram.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/memory-nec.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/memory-samsung.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/memory-sram.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/memory.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/mems.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/micrel.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/micro-cyrod.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/micro-fujitsu.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/micro-harris.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/micro-hitachi.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/micro-infineon.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/micro-intel.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/micro-mc68000.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/micro-motorola.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/micro-philips.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/micro-renesas.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/micro-samsung.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/micro-siemens.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/microchip.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/micron.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/micronas.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/microphon.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/microwave.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/midori-sensor.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/minicircuits.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/mitsubishi-semiconductor.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/motorola-sensor-driver.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/murata-filter.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/murata-sensor.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/nanotec.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/national-instruments.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/national-semiconductor.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/nec-lqfp100-pack.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/nec.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/nrj-semiconductor.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/omnivision.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/on-semiconductor.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/opto-honeywell-3000.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/opto-honeywell-4000.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/opto-honeywell.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/opto-micro-linear.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/opto-trans-siemens.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/opto-transmittter-hp.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/opto-vishay.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/optocoupler.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/pal.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/philips-semiconductors.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/photo-elements.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/piher.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/pinhead.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/plcc-socket.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/pld-intel.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/plxtech.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/pot-vitrohm.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/pot-xicor.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/pot.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/ptc-ntc.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/quantum-research-group.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/rcl.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/recom-international.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/rectifier.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/ref-packages-longpad.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/ref-packages.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/relay.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/renesas.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/resistor-bourns.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/resistor-dil.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/resistor-net.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/resistor-power.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/resistor-ruf.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/resistor-shunt.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/resistor-sil.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/resistor.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/rf-micro-devices.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/rf-solutions.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/rohm.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/roundsolutions.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/semicon-smd-ipc.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/sensor-comus-group.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/sensor-heraeus.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/sensor-infratec.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/sharp.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/silabs.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/sim-technology.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/sipex.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/smd-ipc.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/smd-special.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/solomon-systech.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/solpad.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/speaker.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/special-drill.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/special.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/st-microelectronics.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/stm32xx.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/supertex.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/supply1.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/supply2.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/switch-alps.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/switch-coto.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/switch-dil.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/switch-misc.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/switch-omron.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/switch-raychem.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/switch-reed.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/switch.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/telcom.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/telecontrolli.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/telefunken.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/testpad.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/texas-sn55-sn75.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/texas.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/toshiba.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/traco-electronic.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/trafo-bei.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/trafo-hammondmfg.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/trafo-siemens.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/trafo-xicon.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/trafo.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/transformer-pulse.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/transistor-fet.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/transistor-neu-to92.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/transistor-npn.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/transistor-pnp.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/transistor-power.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/transistor-small-signal.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/transistor.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/triac.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/trimble.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/tripas.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/u-blox.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/uln-udn.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/v-reg-micrel.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/v-reg.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/varistor.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/wafer-scale-psd.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/wirepad.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/xicor.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/xilinx-virtex-v5.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/xilinx-xc18v.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/xilinx-xc9.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/xilinx-xcv.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/zetex.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/zilog.lbr"
|
||||||
|
UsedLibrary="/home/wiebel/eagle/lbr/own.lbr"
|
||||||
|
UsedLibrary="/opt/eagle-7.4.0/lbr/1wire.lbr"
|
||||||
|
UsedLibrary="/home/wiebel/eagle/lbr/maxim_own.lbr"
|
||||||
|
UsedLibrary="/home/wiebel/eagle/lbr/ic-package_own.lbr"
|
||||||
|
|
||||||
|
[Win_1]
|
||||||
|
Type="Schematic Editor"
|
||||||
|
Loc="0 0 599 399"
|
||||||
|
State=2
|
||||||
|
Number=2
|
||||||
|
File="sat_001.sch"
|
||||||
|
View="-1.5052 33.8802 85.5707 90.4113"
|
||||||
|
WireWidths=" 0 0.3048 0.6096 0.8128 1.016 1.27 1.4224 1.6764 1.778 1.9304 2.1844 2.54 3.81 6.4516 0.4064 0.1524"
|
||||||
|
PadDiameters=" 0.254 0.3048 0.4064 0.6096 0.8128 1.016 1.27 1.4224 1.6764 1.778 1.9304 2.1844 2.54 3.81 6.4516 0"
|
||||||
|
PadDrills=" 0.5 0.6 0.7 0.9 1 1.1 1.2 1.3 1.4 1.5 1.6 2 2.2 2.8 3.2 0.8"
|
||||||
|
ViaDiameters=" 0.254 0.3048 0.4064 0.6096 0.8128 1.016 1.27 1.4224 1.6764 1.778 1.9304 2.1844 2.54 3.81 6.4516 0"
|
||||||
|
ViaDrills=" 0.5 0.7 0.8 0.9 1 1.1 1.2 1.3 1.4 1.5 1.6 2 2.2 2.8 3.2 0.6"
|
||||||
|
HoleDrills=" 0.5 0.7 0.8 0.9 1 1.1 1.2 1.3 1.4 1.5 1.6 2 2.2 2.8 3.2 0.6"
|
||||||
|
TextSizes=" 0.254 0.3048 0.4064 0.6096 0.8128 1.016 1.27 1.4224 1.6764 1.9304 2.1844 2.54 3.81 5.08 6.4516 1.778"
|
||||||
|
PolygonSpacings=" 0.254 0.3048 0.4064 0.6096 0.8128 1.016 1.4224 1.6764 1.778 1.9304 2.1844 2.54 3.81 5.08 6.4516 1.27"
|
||||||
|
PolygonIsolates=" 0.254 0.3048 0.4064 0.6096 0.8128 1.016 1.27 1.4224 1.6764 1.778 1.9304 2.1844 2.54 3.81 6.4516 0"
|
||||||
|
MiterRadiuss=" 0.254 0.3175 0.635 1.27 2.54 1 2 2.5 5 7.5 10 0"
|
||||||
|
DimensionWidths=" 0 0.127 0.254 0.1 0.26 0.13"
|
||||||
|
DimensionExtWidths=" 0.127 0.254 0.1 0.13 0.26 0"
|
||||||
|
DimensionExtLengths=" 1.27 2.54 1 2 3 0"
|
||||||
|
DimensionExtOffsets=" 1.27 2.54 1 2 3 0"
|
||||||
|
SmdSizes=" 0.3048 0.1524 0.4064 0.2032 0.6096 0.3048 0.8128 0.4064 1.016 0.508 1.27 0.6604 1.4224 0.7112 1.6764 0.8128 1.778 0.9144 1.9304 0.9652 2.1844 1.0668 2.54 1.27 3.81 1.9304 5.08 2.54 6.4516 3.2512 1.27 0.635"
|
||||||
|
WireBend=0
|
||||||
|
WireBendSet=31
|
||||||
|
WireCap=1
|
||||||
|
MiterStyle=0
|
||||||
|
PadShape=0
|
||||||
|
ViaShape=0
|
||||||
|
PolygonPour=0
|
||||||
|
PolygonRank=0
|
||||||
|
PolygonThermals=1
|
||||||
|
PolygonOrphans=0
|
||||||
|
TextRatio=8
|
||||||
|
DimensionUnit=1
|
||||||
|
DimensionPrecision=2
|
||||||
|
DimensionShowUnit=0
|
||||||
|
PinDirection=3
|
||||||
|
PinFunction=0
|
||||||
|
PinLength=2
|
||||||
|
PinVisible=3
|
||||||
|
SwapLevel=0
|
||||||
|
ArcDirection=0
|
||||||
|
AddLevel=2
|
||||||
|
PadsSameType=0
|
||||||
|
Layer=91
|
||||||
|
Sheet="1"
|
||||||
|
|
||||||
|
[Win_2]
|
||||||
|
Type="Control Panel"
|
||||||
|
Loc="318 318 917 717"
|
||||||
|
State=2
|
||||||
|
Number=0
|
||||||
|
|
||||||
|
[Desktop]
|
||||||
|
Screen="1440 900"
|
||||||
|
Window="Win_1"
|
||||||
|
Window="Win_2"
|
13614
Hardware/eagle/OW-sat/sat_001.b#1
Normal file
13614
Hardware/eagle/OW-sat/sat_001.b#2
Normal file
13614
Hardware/eagle/OW-sat/sat_001.b#3
Normal file
1453
Hardware/eagle/OW-sat/sat_001.b#4
Normal file
1453
Hardware/eagle/OW-sat/sat_001.b#5
Normal file
1450
Hardware/eagle/OW-sat/sat_001.b#6
Normal file
1452
Hardware/eagle/OW-sat/sat_001.b#7
Normal file
13618
Hardware/eagle/OW-sat/sat_001.brd
Normal file
57
Hardware/eagle/OW-sat/sat_001.cmp
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
G75*
|
||||||
|
%MOIN*%
|
||||||
|
%OFA0B0*%
|
||||||
|
%FSLAX25Y25*%
|
||||||
|
%IPPOS*%
|
||||||
|
%LPD*%
|
||||||
|
%AMOC8*
|
||||||
|
5,1,8,0,0,1.08239X$1,22.5*
|
||||||
|
%
|
||||||
|
%ADD10C,0.04800*%
|
||||||
|
%ADD11R,0.04800X0.01600*%
|
||||||
|
%ADD12C,0.01600*%
|
||||||
|
%ADD13R,0.03762X0.03762*%
|
||||||
|
D10*
|
||||||
|
X0008600Y0011000D02*
|
||||||
|
X0013400Y0011000D01*
|
||||||
|
X0013400Y0021000D02*
|
||||||
|
X0008600Y0021000D01*
|
||||||
|
X0008600Y0031000D02*
|
||||||
|
X0013400Y0031000D01*
|
||||||
|
X0038600Y0031000D02*
|
||||||
|
X0043400Y0031000D01*
|
||||||
|
X0043400Y0021000D02*
|
||||||
|
X0038600Y0021000D01*
|
||||||
|
X0038600Y0011000D02*
|
||||||
|
X0043400Y0011000D01*
|
||||||
|
D11*
|
||||||
|
X0032300Y0016000D03*
|
||||||
|
X0032300Y0021000D03*
|
||||||
|
X0032300Y0026000D03*
|
||||||
|
X0019700Y0026000D03*
|
||||||
|
X0019700Y0021000D03*
|
||||||
|
X0019700Y0016000D03*
|
||||||
|
D12*
|
||||||
|
X0024700Y0011000D01*
|
||||||
|
X0026000Y0011000D01*
|
||||||
|
X0021000Y0006000D02*
|
||||||
|
X0031000Y0006000D01*
|
||||||
|
X0036000Y0011000D01*
|
||||||
|
X0041000Y0011000D01*
|
||||||
|
X0037300Y0011000D01*
|
||||||
|
X0032300Y0016000D01*
|
||||||
|
X0032300Y0021000D02*
|
||||||
|
X0011000Y0021000D01*
|
||||||
|
X0019700Y0026000D02*
|
||||||
|
X0014700Y0031000D01*
|
||||||
|
X0011000Y0031000D01*
|
||||||
|
X0032300Y0026000D02*
|
||||||
|
X0037300Y0031000D01*
|
||||||
|
X0041000Y0031000D01*
|
||||||
|
X0016000Y0011000D02*
|
||||||
|
X0021000Y0006000D01*
|
||||||
|
X0016000Y0011000D02*
|
||||||
|
X0011000Y0011000D01*
|
||||||
|
D13*
|
||||||
|
X0026000Y0011000D03*
|
||||||
|
M02*
|
39
Hardware/eagle/OW-sat/sat_001.gpi
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
Generated by EAGLE CAM Processor 7.6.0
|
||||||
|
|
||||||
|
Photoplotter Info File: /home/wiebel/Workspace/CANNode/Hardware/OW-sat/sat_001.gpi
|
||||||
|
|
||||||
|
Date : 2/12/18 9:49 PM
|
||||||
|
Plotfile : /home/wiebel/Workspace/CANNode/Hardware/OW-sat/sat_001.sts
|
||||||
|
Apertures : generated:
|
||||||
|
Device : Gerber RS-274-X photoplotter, coordinate format 2.5 inch
|
||||||
|
|
||||||
|
Parameter settings:
|
||||||
|
|
||||||
|
Emulate Apertures : no
|
||||||
|
Tolerance Draw + : 0.00 %
|
||||||
|
Tolerance Draw - : 0.00 %
|
||||||
|
Tolerance Flash + : 0.00 %
|
||||||
|
Tolerance Flash - : 0.00 %
|
||||||
|
Rotate : no
|
||||||
|
Mirror : no
|
||||||
|
Optimize : yes
|
||||||
|
Auto fit : yes
|
||||||
|
OffsetX : 0inch
|
||||||
|
OffsetY : 0inch
|
||||||
|
|
||||||
|
Plotfile Info:
|
||||||
|
|
||||||
|
Coordinate Format : 2.5
|
||||||
|
Coordinate Units : Inch
|
||||||
|
Data Mode : Absolute
|
||||||
|
Zero Suppression : None
|
||||||
|
End Of Block : *
|
||||||
|
|
||||||
|
Apertures used:
|
||||||
|
|
||||||
|
Code Shape Size used
|
||||||
|
|
||||||
|
D10 draw 0.0560inch 6
|
||||||
|
D11 rectangle 0.0592inch x 0.0671inch 4
|
||||||
|
D12 square 0.0456inch 1
|
||||||
|
|
67470
Hardware/eagle/OW-sat/sat_001.plc
Normal file
3850
Hardware/eagle/OW-sat/sat_001.s#1
Normal file
3840
Hardware/eagle/OW-sat/sat_001.sch
Normal file
43
Hardware/eagle/OW-sat/sat_001.sol
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
G75*
|
||||||
|
%MOIN*%
|
||||||
|
%OFA0B0*%
|
||||||
|
%FSLAX25Y25*%
|
||||||
|
%IPPOS*%
|
||||||
|
%LPD*%
|
||||||
|
%AMOC8*
|
||||||
|
5,1,8,0,0,1.08239X$1,22.5*
|
||||||
|
%
|
||||||
|
%ADD10C,0.04800*%
|
||||||
|
%ADD11R,0.05118X0.05906*%
|
||||||
|
%ADD12C,0.01600*%
|
||||||
|
%ADD13R,0.03762X0.03762*%
|
||||||
|
D10*
|
||||||
|
X0008600Y0011000D02*
|
||||||
|
X0013400Y0011000D01*
|
||||||
|
X0013400Y0021000D02*
|
||||||
|
X0008600Y0021000D01*
|
||||||
|
X0008600Y0031000D02*
|
||||||
|
X0013400Y0031000D01*
|
||||||
|
X0038600Y0031000D02*
|
||||||
|
X0043400Y0031000D01*
|
||||||
|
X0043400Y0021000D02*
|
||||||
|
X0038600Y0021000D01*
|
||||||
|
X0038600Y0011000D02*
|
||||||
|
X0043400Y0011000D01*
|
||||||
|
D11*
|
||||||
|
X0029740Y0021000D03*
|
||||||
|
X0022260Y0021000D03*
|
||||||
|
X0022260Y0031000D03*
|
||||||
|
X0029740Y0031000D03*
|
||||||
|
D12*
|
||||||
|
X0041000Y0031000D01*
|
||||||
|
X0041000Y0021000D02*
|
||||||
|
X0029740Y0021000D01*
|
||||||
|
X0029740Y0014740D01*
|
||||||
|
X0026000Y0011000D01*
|
||||||
|
X0022260Y0021000D02*
|
||||||
|
X0022260Y0031000D01*
|
||||||
|
X0011000Y0031000D01*
|
||||||
|
D13*
|
||||||
|
X0026000Y0011000D03*
|
||||||
|
M02*
|
35
Hardware/eagle/OW-sat/sat_001.stc
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
G75*
|
||||||
|
%MOIN*%
|
||||||
|
%OFA0B0*%
|
||||||
|
%FSLAX25Y25*%
|
||||||
|
%IPPOS*%
|
||||||
|
%LPD*%
|
||||||
|
%AMOC8*
|
||||||
|
5,1,8,0,0,1.08239X$1,22.5*
|
||||||
|
%
|
||||||
|
%ADD10C,0.05600*%
|
||||||
|
%ADD11R,0.05600X0.02400*%
|
||||||
|
%ADD12R,0.04562X0.04562*%
|
||||||
|
D10*
|
||||||
|
X0008600Y0011000D02*
|
||||||
|
X0013400Y0011000D01*
|
||||||
|
X0013400Y0021000D02*
|
||||||
|
X0008600Y0021000D01*
|
||||||
|
X0008600Y0031000D02*
|
||||||
|
X0013400Y0031000D01*
|
||||||
|
X0038600Y0031000D02*
|
||||||
|
X0043400Y0031000D01*
|
||||||
|
X0043400Y0021000D02*
|
||||||
|
X0038600Y0021000D01*
|
||||||
|
X0038600Y0011000D02*
|
||||||
|
X0043400Y0011000D01*
|
||||||
|
D11*
|
||||||
|
X0032300Y0016000D03*
|
||||||
|
X0032300Y0021000D03*
|
||||||
|
X0032300Y0026000D03*
|
||||||
|
X0019700Y0026000D03*
|
||||||
|
X0019700Y0021000D03*
|
||||||
|
X0019700Y0016000D03*
|
||||||
|
D12*
|
||||||
|
X0026000Y0011000D03*
|
||||||
|
M02*
|
33
Hardware/eagle/OW-sat/sat_001.sts
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
G75*
|
||||||
|
%MOIN*%
|
||||||
|
%OFA0B0*%
|
||||||
|
%FSLAX25Y25*%
|
||||||
|
%IPPOS*%
|
||||||
|
%LPD*%
|
||||||
|
%AMOC8*
|
||||||
|
5,1,8,0,0,1.08239X$1,22.5*
|
||||||
|
%
|
||||||
|
%ADD10C,0.05600*%
|
||||||
|
%ADD11R,0.05918X0.06706*%
|
||||||
|
%ADD12R,0.04562X0.04562*%
|
||||||
|
D10*
|
||||||
|
X0008600Y0011000D02*
|
||||||
|
X0013400Y0011000D01*
|
||||||
|
X0013400Y0021000D02*
|
||||||
|
X0008600Y0021000D01*
|
||||||
|
X0008600Y0031000D02*
|
||||||
|
X0013400Y0031000D01*
|
||||||
|
X0038600Y0031000D02*
|
||||||
|
X0043400Y0031000D01*
|
||||||
|
X0043400Y0021000D02*
|
||||||
|
X0038600Y0021000D01*
|
||||||
|
X0038600Y0011000D02*
|
||||||
|
X0043400Y0011000D01*
|
||||||
|
D11*
|
||||||
|
X0029740Y0021000D03*
|
||||||
|
X0022260Y0021000D03*
|
||||||
|
X0022260Y0031000D03*
|
||||||
|
X0029740Y0031000D03*
|
||||||
|
D12*
|
||||||
|
X0026000Y0011000D03*
|
||||||
|
M02*
|
BIN
Hardware/eagle/OW-sat/sat_001_00.job
Normal file
25
Hardware/eagle/OW-sat/sat_001_00.pro
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
EAGLE AutoRouter Statistics:
|
||||||
|
|
||||||
|
Job : /home/wiebel/eagle/1-wire sat/sat_001.brd
|
||||||
|
|
||||||
|
Start at : 10:00:28 (11/22/15)
|
||||||
|
End at : 10:00:30 (11/22/15)
|
||||||
|
Elapsed time : 00:00:00
|
||||||
|
|
||||||
|
Signals : 5 RoutingGrid: 50 mil Layers: 2
|
||||||
|
Connections : 10 predefined: 0 ( 0 Vias )
|
||||||
|
|
||||||
|
Router memory : 24992
|
||||||
|
|
||||||
|
Passname : Busses Route Optimize1 Optimize2 Optimize3 Optimize4
|
||||||
|
|
||||||
|
Time per pass : 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00
|
||||||
|
Number of Ripups : 0 0 0 0 0 0
|
||||||
|
max. Level : 0 4 0 0 0 0
|
||||||
|
max. Total : 0 3 0 0 0 0
|
||||||
|
|
||||||
|
Routed : 1 9 9 9 9 9
|
||||||
|
Vias : 0 2 0 0 0 0
|
||||||
|
Resolution : 10.0 % 90.0 % 90.0 % 90.0 % 90.0 % 90.0 %
|
||||||
|
|
||||||
|
Final :
|
BIN
Hardware/eagle/OW-sat/sat_001_01.job
Normal file
25
Hardware/eagle/OW-sat/sat_001_01.pro
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
EAGLE AutoRouter Statistics:
|
||||||
|
|
||||||
|
Job : /home/wiebel/eagle/1-wire sat/sat_001.brd
|
||||||
|
|
||||||
|
Start at : 10:00:28 (11/22/15)
|
||||||
|
End at : 10:00:30 (11/22/15)
|
||||||
|
Elapsed time : 00:00:00
|
||||||
|
|
||||||
|
Signals : 5 RoutingGrid: 50 mil Layers: 2
|
||||||
|
Connections : 10 predefined: 0 ( 0 Vias )
|
||||||
|
|
||||||
|
Router memory : 24992
|
||||||
|
|
||||||
|
Passname : Busses Route Optimize1 Optimize2 Optimize3 Optimize4
|
||||||
|
|
||||||
|
Time per pass : 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00
|
||||||
|
Number of Ripups : 0 0 0 0 0 0
|
||||||
|
max. Level : 0 4 0 0 0 0
|
||||||
|
max. Total : 0 3 0 0 0 0
|
||||||
|
|
||||||
|
Routed : 1 9 9 9 9 9
|
||||||
|
Vias : 0 2 0 0 0 0
|
||||||
|
Resolution : 10.0 % 90.0 % 90.0 % 90.0 % 90.0 % 90.0 %
|
||||||
|
|
||||||
|
Final :
|
BIN
Hardware/eagle/OW-sat/sat_001_02.job
Normal file
25
Hardware/eagle/OW-sat/sat_001_02.pro
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
EAGLE AutoRouter Statistics:
|
||||||
|
|
||||||
|
Job : /home/wiebel/eagle/1-wire sat/sat_001.brd
|
||||||
|
|
||||||
|
Start at : 10:00:28 (11/22/15)
|
||||||
|
End at : 10:00:30 (11/22/15)
|
||||||
|
Elapsed time : 00:00:00
|
||||||
|
|
||||||
|
Signals : 5 RoutingGrid: 50 mil Layers: 2
|
||||||
|
Connections : 10 predefined: 0 ( 0 Vias )
|
||||||
|
|
||||||
|
Router memory : 24992
|
||||||
|
|
||||||
|
Passname : Route Optimize1 Optimize2 Optimize3 Optimize4
|
||||||
|
|
||||||
|
Time per pass : 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00
|
||||||
|
Number of Ripups : 0 0 0 0 0
|
||||||
|
max. Level : 4 0 0 0 0
|
||||||
|
max. Total : 3 0 0 0 0
|
||||||
|
|
||||||
|
Routed : 9 9 9 9 9
|
||||||
|
Vias : 1 0 0 0 0
|
||||||
|
Resolution : 90.0 % 90.0 % 90.0 % 90.0 % 90.0 %
|
||||||
|
|
||||||
|
Final :
|
BIN
Hardware/eagle/OW-sat/sat_001_03.job
Normal file
25
Hardware/eagle/OW-sat/sat_001_03.pro
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
EAGLE AutoRouter Statistics:
|
||||||
|
|
||||||
|
Job : /home/wiebel/eagle/1-wire sat/sat_001.brd
|
||||||
|
|
||||||
|
Start at : 10:00:28 (11/22/15)
|
||||||
|
End at : 10:00:30 (11/22/15)
|
||||||
|
Elapsed time : 00:00:00
|
||||||
|
|
||||||
|
Signals : 5 RoutingGrid: 50 mil Layers: 2
|
||||||
|
Connections : 10 predefined: 0 ( 0 Vias )
|
||||||
|
|
||||||
|
Router memory : 24992
|
||||||
|
|
||||||
|
Passname : Route Optimize1 Optimize2 Optimize3 Optimize4
|
||||||
|
|
||||||
|
Time per pass : 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00
|
||||||
|
Number of Ripups : 0 0 0 0 0
|
||||||
|
max. Level : 4 0 0 0 0
|
||||||
|
max. Total : 3 0 0 0 0
|
||||||
|
|
||||||
|
Routed : 9 9 9 9 9
|
||||||
|
Vias : 2 0 0 0 0
|
||||||
|
Resolution : 90.0 % 90.0 % 90.0 % 90.0 % 90.0 %
|
||||||
|
|
||||||
|
Final :
|
BIN
Hardware/eagle/OW-sat/sat_001_04.job
Normal file
25
Hardware/eagle/OW-sat/sat_001_04.pro
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
EAGLE AutoRouter Statistics:
|
||||||
|
|
||||||
|
Job : /home/wiebel/eagle/1-wire sat/sat_001.brd
|
||||||
|
|
||||||
|
Start at : 10:00:28 (11/22/15)
|
||||||
|
End at : 10:00:30 (11/22/15)
|
||||||
|
Elapsed time : 00:00:00
|
||||||
|
|
||||||
|
Signals : 5 RoutingGrid: 50 mil Layers: 2
|
||||||
|
Connections : 10 predefined: 0 ( 0 Vias )
|
||||||
|
|
||||||
|
Router memory : 24992
|
||||||
|
|
||||||
|
Passname : Busses Route Optimize1 Optimize2 Optimize3 Optimize4
|
||||||
|
|
||||||
|
Time per pass : 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00
|
||||||
|
Number of Ripups : 0 0 0 0 0 0
|
||||||
|
max. Level : 0 4 0 0 0 0
|
||||||
|
max. Total : 0 3 0 0 0 0
|
||||||
|
|
||||||
|
Routed : 1 9 9 9 9 9
|
||||||
|
Vias : 0 1 0 0 0 0
|
||||||
|
Resolution : 10.0 % 90.0 % 90.0 % 90.0 % 90.0 % 90.0 %
|
||||||
|
|
||||||
|
Final :
|
BIN
Hardware/eagle/OW-sat/sat_001_05.job
Normal file
25
Hardware/eagle/OW-sat/sat_001_05.pro
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
EAGLE AutoRouter Statistics:
|
||||||
|
|
||||||
|
Job : /home/wiebel/eagle/1-wire sat/sat_001.brd
|
||||||
|
|
||||||
|
Start at : 10:00:28 (11/22/15)
|
||||||
|
End at : 10:00:30 (11/22/15)
|
||||||
|
Elapsed time : 00:00:00
|
||||||
|
|
||||||
|
Signals : 5 RoutingGrid: 50 mil Layers: 2
|
||||||
|
Connections : 10 predefined: 0 ( 0 Vias )
|
||||||
|
|
||||||
|
Router memory : 24992
|
||||||
|
|
||||||
|
Passname : Route Optimize1 Optimize2 Optimize3 Optimize4
|
||||||
|
|
||||||
|
Time per pass : 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00
|
||||||
|
Number of Ripups : 2 0 0 0 0
|
||||||
|
max. Level : 5 0 0 0 0
|
||||||
|
max. Total : 4 0 0 0 0
|
||||||
|
|
||||||
|
Routed : 9 9 9 9 9
|
||||||
|
Vias : 3 0 0 0 0
|
||||||
|
Resolution : 90.0 % 90.0 % 90.0 % 90.0 % 90.0 %
|
||||||
|
|
||||||
|
Final :
|
BIN
Hardware/eagle/OW-sat/sat_001_06.job
Normal file
25
Hardware/eagle/OW-sat/sat_001_06.pro
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
EAGLE AutoRouter Statistics:
|
||||||
|
|
||||||
|
Job : /home/wiebel/eagle/1-wire sat/sat_001.brd
|
||||||
|
|
||||||
|
Start at : 10:00:28 (11/22/15)
|
||||||
|
End at : 10:00:30 (11/22/15)
|
||||||
|
Elapsed time : 00:00:00
|
||||||
|
|
||||||
|
Signals : 5 RoutingGrid: 50 mil Layers: 2
|
||||||
|
Connections : 10 predefined: 0 ( 0 Vias )
|
||||||
|
|
||||||
|
Router memory : 24992
|
||||||
|
|
||||||
|
Passname : Busses Route Optimize1 Optimize2 Optimize3 Optimize4
|
||||||
|
|
||||||
|
Time per pass : 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00 00:00:00
|
||||||
|
Number of Ripups : 0 2 0 0 0 0
|
||||||
|
max. Level : 0 3 0 0 0 0
|
||||||
|
max. Total : 0 3 0 0 0 0
|
||||||
|
|
||||||
|
Routed : 1 9 9 9 9 9
|
||||||
|
Vias : 0 1 0 0 0 0
|
||||||
|
Resolution : 10.0 % 90.0 % 90.0 % 90.0 % 90.0 % 90.0 %
|
||||||
|
|
||||||
|
Final :
|
251
Hardware/eagle/OW-sat/svg2poly.log
Normal file
@ -0,0 +1,251 @@
|
|||||||
|
PATH path7627 FOUND
|
||||||
|
0) 52.24,10.62
|
||||||
|
52.24,13.12
|
||||||
|
52.24,22.12
|
||||||
|
52.24,23.99
|
||||||
|
53.88,23.09
|
||||||
|
60.07,19.72
|
||||||
|
61.44,18.98
|
||||||
|
60.28,17.93
|
||||||
|
54.09,12.31
|
||||||
|
52.24,10.63
|
||||||
|
PATH path4279 FOUND
|
||||||
|
1) 40.31,17.29
|
||||||
|
41.83,18.92
|
||||||
|
42.19,18.60
|
||||||
|
48.85,12.51
|
||||||
|
48.85,18.56
|
||||||
|
48.85,24.62
|
||||||
|
ERROR
|
||||||
|
48.45,24.77
|
||||||
|
47.77,25.25
|
||||||
|
46.79,26.02
|
||||||
|
48.21,27.55
|
||||||
|
ERROR
|
||||||
|
48.41,27.37
|
||||||
|
48.86,27.07
|
||||||
|
49.60,26.77
|
||||||
|
50.22,26.77
|
||||||
|
51.33,27.26
|
||||||
|
52.44,28.37
|
||||||
|
52.44,28.70
|
||||||
|
52.30,29.30
|
||||||
|
51.94,30.10
|
||||||
|
53.36,31.63
|
||||||
|
ERROR
|
||||||
|
54.01,31.02
|
||||||
|
55.16,29.65
|
||||||
|
56.31,27.32
|
||||||
|
56.31,27.21
|
||||||
|
56.31,26.99
|
||||||
|
56.29,26.65
|
||||||
|
63.88,22.48
|
||||||
|
71.47,18.31
|
||||||
|
79.06,14.14
|
||||||
|
86.65,9.97
|
||||||
|
94.24,5.80
|
||||||
|
87.58,11.89
|
||||||
|
80.92,17.98
|
||||||
|
74.26,24.07
|
||||||
|
67.60,30.16
|
||||||
|
61.31,35.91
|
||||||
|
62.83,37.54
|
||||||
|
67.83,32.97
|
||||||
|
74.78,26.62
|
||||||
|
81.73,20.26
|
||||||
|
88.68,13.90
|
||||||
|
95.63,7.54
|
||||||
|
102.58,1.18
|
||||||
|
ERROR
|
||||||
|
102.92,0.87
|
||||||
|
103.38,0.08
|
||||||
|
103.68,-1.14
|
||||||
|
103.51,-1.57
|
||||||
|
102.92,-2.29
|
||||||
|
101.87,-3.00
|
||||||
|
101.68,-3.00
|
||||||
|
101.31,-2.95
|
||||||
|
100.78,-2.81
|
||||||
|
93.12,1.40
|
||||||
|
85.46,5.61
|
||||||
|
77.80,9.82
|
||||||
|
70.14,14.03
|
||||||
|
62.48,18.24
|
||||||
|
54.82,22.45
|
||||||
|
ERROR
|
||||||
|
54.45,22.08
|
||||||
|
53.64,21.43
|
||||||
|
52.33,20.61
|
||||||
|
52.33,13.31
|
||||||
|
52.33,6.02
|
||||||
|
ERROR
|
||||||
|
52.33,5.58
|
||||||
|
52.08,4.74
|
||||||
|
51.42,3.72
|
||||||
|
51.02,3.54
|
||||||
|
50.14,3.44
|
||||||
|
48.94,3.64
|
||||||
|
41.99,9.99
|
||||||
|
40.05,11.77
|
||||||
|
PATH path4259 FOUND
|
||||||
|
2) 47.81,31.45
|
||||||
|
46.17,32.35
|
||||||
|
39.82,35.82
|
||||||
|
38.45,36.56
|
||||||
|
39.61,37.61
|
||||||
|
45.96,43.39
|
||||||
|
47.82,45.08
|
||||||
|
47.82,42.57
|
||||||
|
47.82,33.32
|
||||||
|
47.82,31.45
|
||||||
|
PATH path4275 FOUND
|
||||||
|
3) 40.31,17.29
|
||||||
|
35.30,21.87
|
||||||
|
28.35,28.22
|
||||||
|
21.40,34.57
|
||||||
|
14.45,40.92
|
||||||
|
7.50,47.27
|
||||||
|
0.55,53.63
|
||||||
|
ERROR
|
||||||
|
0.13,54.01
|
||||||
|
-0.36,55.02
|
||||||
|
-0.52,56.49
|
||||||
|
-0.19,56.95
|
||||||
|
0.76,57.54
|
||||||
|
2.20,57.86
|
||||||
|
9.86,53.65
|
||||||
|
17.52,49.44
|
||||||
|
25.18,45.23
|
||||||
|
32.84,41.02
|
||||||
|
40.50,36.81
|
||||||
|
48.16,32.60
|
||||||
|
ERROR
|
||||||
|
48.53,32.94
|
||||||
|
49.34,33.53
|
||||||
|
50.64,34.26
|
||||||
|
50.64,41.60
|
||||||
|
50.64,48.94
|
||||||
|
ERROR
|
||||||
|
50.64,49.38
|
||||||
|
50.90,50.23
|
||||||
|
51.56,51.26
|
||||||
|
51.96,51.44
|
||||||
|
52.83,51.54
|
||||||
|
54.03,51.33
|
||||||
|
60.98,44.98
|
||||||
|
62.94,43.19
|
||||||
|
61.42,41.56
|
||||||
|
61.05,41.90
|
||||||
|
54.39,47.99
|
||||||
|
54.39,41.85
|
||||||
|
54.39,35.71
|
||||||
|
ERROR
|
||||||
|
54.75,35.56
|
||||||
|
55.35,35.09
|
||||||
|
56.24,34.36
|
||||||
|
54.82,32.83
|
||||||
|
ERROR
|
||||||
|
54.62,33.01
|
||||||
|
54.16,33.32
|
||||||
|
53.40,33.63
|
||||||
|
52.78,33.63
|
||||||
|
51.67,33.14
|
||||||
|
50.56,32.03
|
||||||
|
50.56,31.70
|
||||||
|
50.71,31.09
|
||||||
|
51.08,30.28
|
||||||
|
49.66,28.75
|
||||||
|
ERROR
|
||||||
|
49.00,29.36
|
||||||
|
47.84,30.74
|
||||||
|
46.68,33.07
|
||||||
|
46.68,33.24
|
||||||
|
46.69,33.58
|
||||||
|
46.73,34.09
|
||||||
|
39.16,38.25
|
||||||
|
31.59,42.41
|
||||||
|
24.02,46.57
|
||||||
|
16.45,50.73
|
||||||
|
8.88,54.89
|
||||||
|
15.54,48.80
|
||||||
|
22.20,42.72
|
||||||
|
28.86,36.63
|
||||||
|
35.52,30.54
|
||||||
|
41.82,24.78
|
||||||
|
40.30,23.15
|
||||||
|
PATH path4261 FOUND
|
||||||
|
4) 78.67,44.71
|
||||||
|
84.14,39.61
|
||||||
|
79.41,35.31
|
||||||
|
72.69,29.20
|
||||||
|
71.95,28.52
|
||||||
|
71.21,29.20
|
||||||
|
64.51,35.29
|
||||||
|
63.35,36.34
|
||||||
|
64.72,37.08
|
||||||
|
73.11,41.66
|
||||||
|
78.67,44.70
|
||||||
|
PATH path4263 FOUND
|
||||||
|
5) 78.67,44.71
|
||||||
|
81.50,46.26
|
||||||
|
89.89,50.85
|
||||||
|
98.28,55.43
|
||||||
|
ERROR
|
||||||
|
98.77,55.69
|
||||||
|
99.87,55.81
|
||||||
|
101.29,55.47
|
||||||
|
101.61,55.02
|
||||||
|
101.87,53.94
|
||||||
|
101.72,52.48
|
||||||
|
95.00,46.37
|
||||||
|
88.28,40.26
|
||||||
|
86.29,38.45
|
||||||
|
80.82,43.55
|
||||||
|
PATH path4265 FOUND
|
||||||
|
6) 1.11,0.00
|
||||||
|
ERROR
|
||||||
|
0.65,0.00
|
||||||
|
-0.22,0.28
|
||||||
|
-1.25,0.99
|
||||||
|
-1.41,1.42
|
||||||
|
-1.46,2.33
|
||||||
|
-1.17,3.55
|
||||||
|
5.55,9.66
|
||||||
|
12.27,15.77
|
||||||
|
18.99,21.88
|
||||||
|
25.71,27.99
|
||||||
|
26.45,28.67
|
||||||
|
27.19,27.99
|
||||||
|
33.88,21.90
|
||||||
|
35.03,20.85
|
||||||
|
33.67,20.11
|
||||||
|
25.28,15.53
|
||||||
|
16.89,10.95
|
||||||
|
8.50,6.37
|
||||||
|
0.11,1.78
|
||||||
|
ERROR
|
||||||
|
-0.05,1.69
|
||||||
|
-0.39,1.55
|
||||||
|
-0.92,1.41
|
||||||
|
PATH rect3015 FOUND
|
||||||
|
7) -0.11,29.27
|
||||||
|
99.44,29.27
|
||||||
|
99.44,84.39
|
||||||
|
-0.11,84.39
|
||||||
|
|
||||||
|
Object origin:
|
||||||
|
52.570000 43.695000
|
||||||
|
|
||||||
|
Eagle Command:
|
||||||
|
set wire_bend 2;
|
||||||
|
change layer tDocu;
|
||||||
|
set width 0;
|
||||||
|
poly (R 1.130000 30.075000) (R 1.130000 27.575000) (R 1.130000 18.575000) (R 1.130000 16.705000) (R 2.770000 17.605000) (R 8.960000 20.975000) (R 10.330000 21.715000) (R 9.170000 22.765000) (R 2.980000 28.385000) (R 1.130000 30.065000) (R 1.130000 30.075000);
|
||||||
|
poly (R -10.800000 23.405000) (R -9.280000 21.775000) (R -8.920000 22.095000) (R -2.260000 28.185000) (R -2.260000 22.135000) (R -2.260000 16.075000) (R -2.660000 15.925000) (R -3.340000 15.445000) (R -4.320000 14.675000) (R -2.900000 13.145000) (R -2.700000 13.325000) (R -2.250000 13.625000) (R -1.510000 13.925000) (R -0.890000 13.925000) (R 0.220000 13.435000) (R 1.330000 12.325000) (R 1.330000 11.995000) (R 1.190000 11.395000) (R 0.830000 10.595000) (R 2.250000 9.065000) (R 2.900000 9.675000) (R 4.050000 11.045000) (R 5.200000 13.375000) (R 5.200000 13.485000) (R 5.200000 13.705000) (R 5.180000 14.045000) (R 12.770000 18.215000) (R 20.360000 22.385000) (R 27.950000 26.555000) (R 35.540000 30.725000) (R 43.130000 34.895000) (R 36.470000 28.805000) (R 29.810000 22.715000) (R 23.150000 16.625000) (R 16.490000 10.535000) (R 10.200000 4.785000) (R 11.720000 3.155000) (R 16.720000 7.725000) (R 23.670000 14.075000) (R 30.620000 20.435000) (R 37.570000 26.795000) (R 44.520000 33.155000) (R 51.470000 39.515000) (R 51.810000 39.825000) (R 52.270000 40.615000) (R 52.570000 41.835000) (R 52.400000 42.265000) (R 51.810000 42.985000) (R 50.760000 43.695000) (R 50.570000 43.695000) (R 50.200000 43.645000) (R 49.670000 43.505000) (R 42.010000 39.295000) (R 34.350000 35.085000) (R 26.690000 30.875000) (R 19.030000 26.665000) (R 11.370000 22.455000) (R 3.710000 18.245000) (R 3.340000 18.615000) (R 2.530000 19.265000) (R 1.220000 20.085000) (R 1.220000 27.385000) (R 1.220000 34.675000) (R 1.220000 35.115000) (R 0.970000 35.955000) (R 0.310000 36.975000) (R -0.090000 37.155000) (R -0.970000 37.255000) (R -2.170000 37.055000) (R -9.120000 30.705000) (R -11.060000 28.925000) (R -10.800000 23.405000);
|
||||||
|
poly (R -3.300000 9.245000) (R -4.940000 8.345000) (R -11.290000 4.875000) (R -12.660000 4.135000) (R -11.500000 3.085000) (R -5.150000 -2.695000) (R -3.290000 -4.385000) (R -3.290000 -1.875000) (R -3.290000 7.375000) (R -3.290000 9.245000) (R -3.300000 9.245000);
|
||||||
|
poly (R -10.800000 23.405000) (R -15.810000 18.825000) (R -22.760000 12.475000) (R -29.710000 6.125000) (R -36.660000 -0.225000) (R -43.610000 -6.575000) (R -50.560000 -12.935000) (R -50.980000 -13.315000) (R -51.470000 -14.325000) (R -51.630000 -15.795000) (R -51.300000 -16.255000) (R -50.350000 -16.845000) (R -48.910000 -17.165000) (R -41.250000 -12.955000) (R -33.590000 -8.745000) (R -25.930000 -4.535000) (R -18.270000 -0.325000) (R -10.610000 3.885000) (R -2.950000 8.095000) (R -2.580000 7.755000) (R -1.770000 7.165000) (R -0.470000 6.435000) (R -0.470000 -0.905000) (R -0.470000 -8.245000) (R -0.470000 -8.685000) (R -0.210000 -9.535000) (R 0.450000 -10.565000) (R 0.850000 -10.745000) (R 1.720000 -10.845000) (R 2.920000 -10.635000) (R 9.870000 -4.285000) (R 11.830000 -2.495000) (R 10.310000 -0.865000) (R 9.940000 -1.205000) (R 3.280000 -7.295000) (R 3.280000 -1.155000) (R 3.280000 4.985000) (R 3.640000 5.135000) (R 4.240000 5.605000) (R 5.130000 6.335000) (R 3.710000 7.865000) (R 3.510000 7.685000) (R 3.050000 7.375000) (R 2.290000 7.065000) (R 1.670000 7.065000) (R 0.560000 7.555000) (R -0.550000 8.665000) (R -0.550000 8.995000) (R -0.400000 9.605000) (R -0.030000 10.415000) (R -1.450000 11.945000) (R -2.110000 11.335000) (R -3.270000 9.955000) (R -4.430000 7.625000) (R -4.430000 7.455000) (R -4.420000 7.115000) (R -4.380000 6.605000) (R -11.950000 2.445000) (R -19.520000 -1.715000) (R -27.090000 -5.875000) (R -34.660000 -10.035000) (R -42.230000 -14.195000) (R -35.570000 -8.105000) (R -28.910000 -2.025000) (R -22.250000 4.065000) (R -15.590000 10.155000) (R -9.290000 15.915000) (R -10.810000 17.545000) (R -10.800000 23.405000);
|
||||||
|
poly (R 27.560000 -4.015000) (R 33.030000 1.085000) (R 28.300000 5.385000) (R 21.580000 11.495000) (R 20.840000 12.175000) (R 20.100000 11.495000) (R 13.400000 5.405000) (R 12.240000 4.355000) (R 13.610000 3.615000) (R 22.000000 -0.965000) (R 27.560000 -4.005000) (R 27.560000 -4.015000);
|
||||||
|
poly (R 27.560000 -4.015000) (R 30.390000 -5.565000) (R 38.780000 -10.155000) (R 47.170000 -14.735000) (R 47.660000 -14.995000) (R 48.760000 -15.115000) (R 50.180000 -14.775000) (R 50.500000 -14.325000) (R 50.760000 -13.245000) (R 50.610000 -11.785000) (R 43.890000 -5.675000) (R 37.170000 0.435000) (R 35.180000 2.245000) (R 29.710000 -2.855000) (R 27.560000 -4.015000);
|
||||||
|
poly (R -50.000000 40.695000) (R -50.460000 40.695000) (R -51.330000 40.415000) (R -52.360000 39.705000) (R -52.520000 39.275000) (R -52.570000 38.365000) (R -52.280000 37.145000) (R -45.560000 31.035000) (R -38.840000 24.925000) (R -32.120000 18.815000) (R -25.400000 12.705000) (R -24.660000 12.025000) (R -23.920000 12.705000) (R -17.230000 18.795000) (R -16.080000 19.845000) (R -17.440000 20.585000) (R -25.830000 25.165000) (R -34.220000 29.745000) (R -42.610000 34.325000) (R -51.000000 38.915000) (R -51.160000 39.005000) (R -51.500000 39.145000) (R -52.030000 39.285000) (R -50.000000 40.695000);
|
||||||
|
poly (R -51.220000 11.425000) (R 48.330000 11.425000) (R 48.330000 -43.695000) (R -51.220000 -43.695000) (R -51.220000 11.425000);
|
||||||
|
|
486
Hardware/kicad/CANNode-cache.lib
Normal file
@ -0,0 +1,486 @@
|
|||||||
|
EESchema-LIBRARY Version 2.4
|
||||||
|
#encoding utf-8
|
||||||
|
#
|
||||||
|
# 00_mylib_Logo
|
||||||
|
#
|
||||||
|
DEF 00_mylib_Logo Log 0 0 N N 1 F N
|
||||||
|
F0 "Log" 0 0 50 H I C CNN
|
||||||
|
F1 "00_mylib_Logo" 0 100 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
DRAW
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# 00_mylib_OWN_DCDC-CANNode
|
||||||
|
#
|
||||||
|
DEF 00_mylib_OWN_DCDC-CANNode MOD 0 40 N N 1 L N
|
||||||
|
F0 "MOD" 0 0 45 H I C CNN
|
||||||
|
F1 "00_mylib_OWN_DCDC-CANNode" 0 0 45 H I C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
*OWN_DC-DC*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
T 0 -174 128 56 0 1 0 + Normal 0 C C
|
||||||
|
T 0 226 128 56 0 1 0 + Normal 0 C C
|
||||||
|
T 0 7 28 56 0 1 0 DCDC Normal 0 C C
|
||||||
|
S -150 100 150 -50 1 1 0 N
|
||||||
|
P 2 1 0 0 -300 -200 300 -200 N
|
||||||
|
P 2 1 0 0 -300 -100 -300 -200 N
|
||||||
|
P 2 1 0 0 -300 -100 0 -100 N
|
||||||
|
P 2 1 0 0 -300 200 -300 -100 N
|
||||||
|
P 2 1 0 0 -30 -150 30 -150 N
|
||||||
|
P 2 1 0 0 0 -100 0 -150 N
|
||||||
|
P 2 1 0 0 0 -100 300 -100 N
|
||||||
|
P 2 1 0 0 300 -200 300 -100 N
|
||||||
|
P 2 1 0 0 300 -100 300 200 N
|
||||||
|
P 2 1 0 0 300 200 -300 200 N
|
||||||
|
X IN+ IN+ -400 100 200 R 40 40 1 1 W
|
||||||
|
X IN- IN- -400 -100 200 R 40 40 1 1 W
|
||||||
|
X OUT+ OUT+ 400 100 200 L 40 40 1 1 w
|
||||||
|
X OUT- OUT- 400 -100 200 L 40 40 1 1 w
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# CANNode-rescue_Teensy3.2-teensy
|
||||||
|
#
|
||||||
|
DEF CANNode-rescue_Teensy3.2-teensy U 0 40 Y Y 1 F N
|
||||||
|
F0 "U" -700 -850 60 H V C CNN
|
||||||
|
F1 "CANNode-rescue_Teensy3.2-teensy" 550 -850 60 H V C CNN
|
||||||
|
F2 "" -200 -800 60 H V C CNN
|
||||||
|
F3 "" -200 -800 60 H V C CNN
|
||||||
|
DRAW
|
||||||
|
S -750 800 750 -800 0 1 0 N
|
||||||
|
X GND 1 -950 700 200 R 50 50 1 1 W
|
||||||
|
X 8_TX3_DIN 10 -950 -200 200 R 50 50 1 1 B
|
||||||
|
X 9_RX2_CS_PWM 11 -950 -300 200 R 50 50 1 1 B
|
||||||
|
X 10_TX2_CS_PWM 12 -950 -400 200 R 50 50 1 1 B
|
||||||
|
X 11_DOUT 13 -950 -500 200 R 50 50 1 1 B
|
||||||
|
X 12_DIN 14 -950 -600 200 R 50 50 1 1 B
|
||||||
|
X VBat 15 -350 -1000 200 U 50 50 1 1 W
|
||||||
|
X 3.3V 16 -250 -1000 200 U 50 50 1 1 P
|
||||||
|
X GND 17 -150 -1000 200 U 50 50 1 1 W
|
||||||
|
X Program 18 -50 -1000 200 U 50 50 1 1 I
|
||||||
|
X A14/DAC 19 50 -1000 200 U 50 50 1 1 B
|
||||||
|
X 0_RX1_Touch 2 -950 600 200 R 50 50 1 1 B
|
||||||
|
X 13_LED_SCK 20 950 -600 200 L 50 50 1 1 B
|
||||||
|
X 14_A0_SCK 21 950 -500 200 L 50 50 1 1 B
|
||||||
|
X 15_A1_CS_Touch 22 950 -400 200 L 50 50 1 1 B
|
||||||
|
X 16_A2_SCL0_Touch 23 950 -300 200 L 50 50 1 1 B
|
||||||
|
X 17_A3_SDA0_Touch 24 950 -200 200 L 50 50 1 1 B
|
||||||
|
X 18_A4_SDA0_Touch 25 950 -100 200 L 50 50 1 1 B
|
||||||
|
X 19_A5_SCL0_Touch 26 950 0 200 L 50 50 1 1 B
|
||||||
|
X 20_A6_CS_PWM 27 950 100 200 L 50 50 1 1 B
|
||||||
|
X 21_A7_RX1_CS_PWM 28 950 200 200 L 50 50 1 1 B
|
||||||
|
X 22_A8_Touch_PWM 29 950 300 200 L 50 50 1 1 B
|
||||||
|
X 1_TX1_Touch 3 -950 500 200 R 50 50 1 1 B
|
||||||
|
X 23_A9_Touch_PWM 30 950 400 200 L 50 50 1 1 B
|
||||||
|
X 3.3V_max100mA 31 950 500 200 L 50 50 1 1 w
|
||||||
|
X AGND 32 950 600 200 L 50 50 1 1 w
|
||||||
|
X Vin 33 950 700 200 L 50 50 1 1 W
|
||||||
|
X 2 4 -950 400 200 R 50 50 1 1 B
|
||||||
|
X 3_TX_PWM 5 -950 300 200 R 50 50 1 1 B
|
||||||
|
X 4_RX_PWM 6 -950 200 200 R 50 50 1 1 B
|
||||||
|
X 5_TX1_PWM 7 -950 100 200 R 50 50 1 1 B
|
||||||
|
X 6_PWM 8 -950 0 200 R 50 50 1 1 B
|
||||||
|
X 7_RX3_DOUT 9 -950 -100 200 R 50 50 1 1 B
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Connector_Generic_Conn_01x03
|
||||||
|
#
|
||||||
|
DEF Connector_Generic_Conn_01x03 J 0 40 Y N 1 F N
|
||||||
|
F0 "J" 0 200 50 H V C CNN
|
||||||
|
F1 "Connector_Generic_Conn_01x03" 0 -200 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
Connector*:*_1x??_*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
S -50 -95 0 -105 1 1 6 N
|
||||||
|
S -50 5 0 -5 1 1 6 N
|
||||||
|
S -50 105 0 95 1 1 6 N
|
||||||
|
S -50 150 50 -150 1 1 10 f
|
||||||
|
X Pin_1 1 -200 100 150 R 50 50 1 1 P
|
||||||
|
X Pin_2 2 -200 0 150 R 50 50 1 1 P
|
||||||
|
X Pin_3 3 -200 -100 150 R 50 50 1 1 P
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Connector_Generic_Conn_01x04
|
||||||
|
#
|
||||||
|
DEF Connector_Generic_Conn_01x04 J 0 40 Y N 1 F N
|
||||||
|
F0 "J" 0 200 50 H V C CNN
|
||||||
|
F1 "Connector_Generic_Conn_01x04" 0 -300 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
Connector*:*_1x??_*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
S -50 -195 0 -205 1 1 6 N
|
||||||
|
S -50 -95 0 -105 1 1 6 N
|
||||||
|
S -50 5 0 -5 1 1 6 N
|
||||||
|
S -50 105 0 95 1 1 6 N
|
||||||
|
S -50 150 50 -250 1 1 10 f
|
||||||
|
X Pin_1 1 -200 100 150 R 50 50 1 1 P
|
||||||
|
X Pin_2 2 -200 0 150 R 50 50 1 1 P
|
||||||
|
X Pin_3 3 -200 -100 150 R 50 50 1 1 P
|
||||||
|
X Pin_4 4 -200 -200 150 R 50 50 1 1 P
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Connector_Generic_Conn_01x10
|
||||||
|
#
|
||||||
|
DEF Connector_Generic_Conn_01x10 J 0 40 Y N 1 F N
|
||||||
|
F0 "J" 0 500 50 H V C CNN
|
||||||
|
F1 "Connector_Generic_Conn_01x10" 0 -600 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
Connector*:*_1x??_*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
S -50 -495 0 -505 1 1 6 N
|
||||||
|
S -50 -395 0 -405 1 1 6 N
|
||||||
|
S -50 -295 0 -305 1 1 6 N
|
||||||
|
S -50 -195 0 -205 1 1 6 N
|
||||||
|
S -50 -95 0 -105 1 1 6 N
|
||||||
|
S -50 5 0 -5 1 1 6 N
|
||||||
|
S -50 105 0 95 1 1 6 N
|
||||||
|
S -50 205 0 195 1 1 6 N
|
||||||
|
S -50 305 0 295 1 1 6 N
|
||||||
|
S -50 405 0 395 1 1 6 N
|
||||||
|
S -50 450 50 -550 1 1 10 f
|
||||||
|
X Pin_1 1 -200 400 150 R 50 50 1 1 P
|
||||||
|
X Pin_10 10 -200 -500 150 R 50 50 1 1 P
|
||||||
|
X Pin_2 2 -200 300 150 R 50 50 1 1 P
|
||||||
|
X Pin_3 3 -200 200 150 R 50 50 1 1 P
|
||||||
|
X Pin_4 4 -200 100 150 R 50 50 1 1 P
|
||||||
|
X Pin_5 5 -200 0 150 R 50 50 1 1 P
|
||||||
|
X Pin_6 6 -200 -100 150 R 50 50 1 1 P
|
||||||
|
X Pin_7 7 -200 -200 150 R 50 50 1 1 P
|
||||||
|
X Pin_8 8 -200 -300 150 R 50 50 1 1 P
|
||||||
|
X Pin_9 9 -200 -400 150 R 50 50 1 1 P
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Connector_Generic_Conn_02x03_Odd_Even
|
||||||
|
#
|
||||||
|
DEF Connector_Generic_Conn_02x03_Odd_Even J 0 40 Y N 1 F N
|
||||||
|
F0 "J" 50 200 50 H V C CNN
|
||||||
|
F1 "Connector_Generic_Conn_02x03_Odd_Even" 50 -200 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
Connector*:*_2x??_*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
S -50 -95 0 -105 1 1 6 N
|
||||||
|
S -50 5 0 -5 1 1 6 N
|
||||||
|
S -50 105 0 95 1 1 6 N
|
||||||
|
S -50 150 150 -150 1 1 10 f
|
||||||
|
S 150 -95 100 -105 1 1 6 N
|
||||||
|
S 150 5 100 -5 1 1 6 N
|
||||||
|
S 150 105 100 95 1 1 6 N
|
||||||
|
X Pin_1 1 -200 100 150 R 50 50 1 1 P
|
||||||
|
X Pin_2 2 300 100 150 L 50 50 1 1 P
|
||||||
|
X Pin_3 3 -200 0 150 R 50 50 1 1 P
|
||||||
|
X Pin_4 4 300 0 150 L 50 50 1 1 P
|
||||||
|
X Pin_5 5 -200 -100 150 R 50 50 1 1 P
|
||||||
|
X Pin_6 6 300 -100 150 L 50 50 1 1 P
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Connector_Generic_Conn_02x04_Odd_Even
|
||||||
|
#
|
||||||
|
DEF Connector_Generic_Conn_02x04_Odd_Even J 0 40 Y N 1 F N
|
||||||
|
F0 "J" 50 200 50 H V C CNN
|
||||||
|
F1 "Connector_Generic_Conn_02x04_Odd_Even" 50 -300 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
Connector*:*_2x??_*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
S -50 -195 0 -205 1 1 6 N
|
||||||
|
S -50 -95 0 -105 1 1 6 N
|
||||||
|
S -50 5 0 -5 1 1 6 N
|
||||||
|
S -50 105 0 95 1 1 6 N
|
||||||
|
S -50 150 150 -250 1 1 10 f
|
||||||
|
S 150 -195 100 -205 1 1 6 N
|
||||||
|
S 150 -95 100 -105 1 1 6 N
|
||||||
|
S 150 5 100 -5 1 1 6 N
|
||||||
|
S 150 105 100 95 1 1 6 N
|
||||||
|
X Pin_1 1 -200 100 150 R 50 50 1 1 P
|
||||||
|
X Pin_2 2 300 100 150 L 50 50 1 1 P
|
||||||
|
X Pin_3 3 -200 0 150 R 50 50 1 1 P
|
||||||
|
X Pin_4 4 300 0 150 L 50 50 1 1 P
|
||||||
|
X Pin_5 5 -200 -100 150 R 50 50 1 1 P
|
||||||
|
X Pin_6 6 300 -100 150 L 50 50 1 1 P
|
||||||
|
X Pin_7 7 -200 -200 150 R 50 50 1 1 P
|
||||||
|
X Pin_8 8 300 -200 150 L 50 50 1 1 P
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Device_C_Small
|
||||||
|
#
|
||||||
|
DEF Device_C_Small C 0 10 N N 1 F N
|
||||||
|
F0 "C" 10 70 50 H V L CNN
|
||||||
|
F1 "Device_C_Small" 10 -80 50 H V L CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
C_*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
P 2 0 1 13 -60 -20 60 -20 N
|
||||||
|
P 2 0 1 12 -60 20 60 20 N
|
||||||
|
X ~ 1 0 100 80 D 50 50 1 1 P
|
||||||
|
X ~ 2 0 -100 80 U 50 50 1 1 P
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Device_Jumper_NC_Small
|
||||||
|
#
|
||||||
|
DEF Device_Jumper_NC_Small JP 0 30 N N 1 F N
|
||||||
|
F0 "JP" 0 80 50 H V C CNN
|
||||||
|
F1 "Device_Jumper_NC_Small" 10 -60 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
SolderJumper*Bridged*
|
||||||
|
Jumper*
|
||||||
|
TestPoint*2Pads*
|
||||||
|
TestPoint*Bridge*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
A 0 -10 57 450 1350 0 1 0 N 40 30 -40 30
|
||||||
|
C -40 0 20 0 1 0 N
|
||||||
|
C 40 0 20 0 1 0 N
|
||||||
|
X 1 1 -100 0 40 R 50 50 0 1 P
|
||||||
|
X 2 2 100 0 40 L 50 50 0 1 P
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Device_R_Small
|
||||||
|
#
|
||||||
|
DEF Device_R_Small R 0 10 N N 1 F N
|
||||||
|
F0 "R" 30 20 50 H V L CNN
|
||||||
|
F1 "Device_R_Small" 30 -40 50 H V L CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
R_*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
S -30 70 30 -70 0 1 8 N
|
||||||
|
X ~ 1 0 100 30 D 50 50 1 1 P
|
||||||
|
X ~ 2 0 -100 30 U 50 50 1 1 P
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Interface_CAN_LIN_SN65HVD230
|
||||||
|
#
|
||||||
|
DEF Interface_CAN_LIN_SN65HVD230 U 0 40 Y Y 1 F N
|
||||||
|
F0 "U" -100 400 50 H V R CNN
|
||||||
|
F1 "Interface_CAN_LIN_SN65HVD230" -100 300 50 H V R CNN
|
||||||
|
F2 "Package_SO:SOIC-8_3.9x4.9mm_P1.27mm" 0 -500 50 H I C CNN
|
||||||
|
F3 "" -100 400 50 H I C CNN
|
||||||
|
ALIAS SN65HVD231
|
||||||
|
$FPLIST
|
||||||
|
SOIC*3.9x4.9mm*P1.27mm*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
S -300 200 300 -300 0 1 10 f
|
||||||
|
X D 1 -400 100 100 R 50 50 1 1 I
|
||||||
|
X GND 2 0 -400 100 U 50 50 1 1 W
|
||||||
|
X VCC 3 0 300 100 D 50 50 1 1 W
|
||||||
|
X R 4 -400 0 100 R 50 50 1 1 O
|
||||||
|
X Vref 5 -400 -100 100 R 50 50 1 1 O
|
||||||
|
X CANL 6 400 -100 100 L 50 50 1 1 B
|
||||||
|
X CANH 7 400 0 100 L 50 50 1 1 B
|
||||||
|
X Rs 8 -400 -200 100 R 50 50 1 1 I
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Interface_PCA9306
|
||||||
|
#
|
||||||
|
DEF Interface_PCA9306 U 0 40 Y Y 1 F N
|
||||||
|
F0 "U" -300 450 50 H V L CNN
|
||||||
|
F1 "Interface_PCA9306" 200 450 50 H V L CNN
|
||||||
|
F2 "" -400 350 50 H I C CNN
|
||||||
|
F3 "" -300 450 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
SSOP*2.95x2.8mm*P0.65mm*
|
||||||
|
VSSOP*2.3x2mm*P0.5mm*
|
||||||
|
X2SON*1.4x1mm*P0.35mm*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
S -300 400 300 -400 0 1 10 f
|
||||||
|
X GND 1 0 -500 100 U 50 50 1 1 W
|
||||||
|
X VREF1 2 -100 500 100 D 50 50 1 1 W
|
||||||
|
X SCL1 3 -400 0 100 R 50 50 1 1 B
|
||||||
|
X SDA1 4 -400 -100 100 R 50 50 1 1 B
|
||||||
|
X SDA2 5 400 -100 100 L 50 50 1 1 B
|
||||||
|
X SCL2 6 400 0 100 L 50 50 1 1 B
|
||||||
|
X VREF2 7 100 500 100 D 50 50 1 1 W
|
||||||
|
X EN 8 400 100 100 L 50 50 1 1 I
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Interface_UART_MAX3485
|
||||||
|
#
|
||||||
|
DEF Interface_UART_MAX3485 U 0 20 Y Y 1 F N
|
||||||
|
F0 "U" -240 450 50 H V C CNN
|
||||||
|
F1 "Interface_UART_MAX3485" 30 450 50 H V L CNN
|
||||||
|
F2 "" 0 -700 50 H I C CNN
|
||||||
|
F3 "" 0 50 50 H I C CNN
|
||||||
|
ALIAS MAX483E MAX485E MAX487E MAX1487E MAX3485 MAX3483 MAX3486
|
||||||
|
$FPLIST
|
||||||
|
DIP*W7.62mm*
|
||||||
|
SOIC*3.9x4.9mm*P1.27mm*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
C -12 -145 14 0 1 10 F
|
||||||
|
C -1 59 14 0 1 10 F
|
||||||
|
C 65 75 14 0 1 10 F
|
||||||
|
S -300 400 300 -500 0 1 10 f
|
||||||
|
S 50 125 50 125 0 1 0 N
|
||||||
|
P 2 0 1 10 -160 -200 -75 -200 N
|
||||||
|
P 2 0 1 10 -160 100 -50 100 N
|
||||||
|
P 2 0 1 10 -50 -126 -50 -136 N
|
||||||
|
P 2 0 1 10 -25 -200 210 -200 N
|
||||||
|
P 3 0 1 10 -160 -100 -50 -100 -50 -125 N
|
||||||
|
P 3 0 1 10 0 50 0 0 -160 0 N
|
||||||
|
P 3 0 1 10 50 125 150 125 150 -200 N
|
||||||
|
P 3 0 1 10 100 75 100 -150 0 -150 N
|
||||||
|
P 4 0 1 10 -75 -125 -75 -225 25 -175 -75 -125 N
|
||||||
|
P 4 0 1 10 -50 100 50 150 50 50 -50 100 N
|
||||||
|
P 4 0 1 10 75 75 175 75 175 100 210 100 N
|
||||||
|
X RO 1 -400 100 100 R 50 50 1 1 O
|
||||||
|
X ~RE 2 -400 0 100 R 50 50 1 1 I
|
||||||
|
X DE 3 -400 -100 100 R 50 50 1 1 I
|
||||||
|
X DI 4 -400 -200 100 R 50 50 1 1 I
|
||||||
|
X GND 5 0 -600 100 U 50 50 1 1 W
|
||||||
|
X A 6 400 -200 100 L 50 50 1 1 B
|
||||||
|
X B 7 400 100 100 L 50 50 1 1 B
|
||||||
|
X VCC 8 0 500 100 D 50 50 1 1 W
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Jumper_Jumper_3_Bridged12
|
||||||
|
#
|
||||||
|
DEF Jumper_Jumper_3_Bridged12 JP 0 0 Y N 1 F N
|
||||||
|
F0 "JP" -100 -100 50 H V C CNN
|
||||||
|
F1 "Jumper_Jumper_3_Bridged12" 0 110 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
Jumper*
|
||||||
|
TestPoint*3Pads*
|
||||||
|
TestPoint*Bridge*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
A -65 -50 89 1282 518 0 1 0 N -120 20 -10 20
|
||||||
|
C -130 0 20 0 0 0 N
|
||||||
|
C 0 0 20 0 0 0 N
|
||||||
|
C 130 0 20 0 0 0 N
|
||||||
|
P 2 0 1 0 0 -50 0 -20 N
|
||||||
|
X A 1 -250 0 100 R 50 50 1 1 P
|
||||||
|
X C 2 0 -150 100 U 50 50 1 1 I
|
||||||
|
X B 3 250 0 100 L 50 50 1 1 P
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# Mechanical_MountingHole
|
||||||
|
#
|
||||||
|
DEF Mechanical_MountingHole H 0 40 Y Y 1 F N
|
||||||
|
F0 "H" 0 200 50 H V C CNN
|
||||||
|
F1 "Mechanical_MountingHole" 0 125 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
MountingHole*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
C 0 0 50 0 1 50 N
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# power_+12V
|
||||||
|
#
|
||||||
|
DEF power_+12V #PWR 0 0 Y Y 1 F P
|
||||||
|
F0 "#PWR" 0 -150 50 H I C CNN
|
||||||
|
F1 "power_+12V" 0 140 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
DRAW
|
||||||
|
P 2 0 1 0 -30 50 0 100 N
|
||||||
|
P 2 0 1 0 0 0 0 100 N
|
||||||
|
P 2 0 1 0 0 100 30 50 N
|
||||||
|
X +12V 1 0 0 0 U 50 50 1 1 W N
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# power_+3.3V
|
||||||
|
#
|
||||||
|
DEF power_+3.3V #PWR 0 0 Y Y 1 F P
|
||||||
|
F0 "#PWR" 0 -150 50 H I C CNN
|
||||||
|
F1 "power_+3.3V" 0 140 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
ALIAS +3.3V
|
||||||
|
DRAW
|
||||||
|
P 2 0 1 0 -30 50 0 100 N
|
||||||
|
P 2 0 1 0 0 0 0 100 N
|
||||||
|
P 2 0 1 0 0 100 30 50 N
|
||||||
|
X +3V3 1 0 0 0 U 50 50 1 1 W N
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# power_+5V
|
||||||
|
#
|
||||||
|
DEF power_+5V #PWR 0 0 Y Y 1 F P
|
||||||
|
F0 "#PWR" 0 -150 50 H I C CNN
|
||||||
|
F1 "power_+5V" 0 140 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
DRAW
|
||||||
|
P 2 0 1 0 -30 50 0 100 N
|
||||||
|
P 2 0 1 0 0 0 0 100 N
|
||||||
|
P 2 0 1 0 0 100 30 50 N
|
||||||
|
X +5V 1 0 0 0 U 50 50 1 1 W N
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# power_GND
|
||||||
|
#
|
||||||
|
DEF power_GND #PWR 0 0 Y Y 1 F P
|
||||||
|
F0 "#PWR" 0 -250 50 H I C CNN
|
||||||
|
F1 "power_GND" 0 -150 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
DRAW
|
||||||
|
P 6 0 1 0 0 0 0 -50 50 -50 0 -100 -50 -50 0 -50 N
|
||||||
|
X GND 1 0 0 0 D 50 50 1 1 W N
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# power_PWR_FLAG
|
||||||
|
#
|
||||||
|
DEF power_PWR_FLAG #FLG 0 0 N N 1 F P
|
||||||
|
F0 "#FLG" 0 75 50 H I C CNN
|
||||||
|
F1 "power_PWR_FLAG" 0 150 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
DRAW
|
||||||
|
P 6 0 1 0 0 0 0 50 -40 75 0 100 40 75 0 50 N
|
||||||
|
X pwr 1 0 0 0 U 50 50 0 0 w
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
#End Library
|
10688
Hardware/kicad/CANNode.kicad_pcb
Normal file
2385
Hardware/kicad/CANNode.lib
Normal file
42
Hardware/kicad/CANNode.pretty/OWN_DC-DC.kicad_mod
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
(module OWN_DC-DC (layer F.Cu) (tedit 0)
|
||||||
|
(fp_text reference Ref** (at 0 0) (layer F.SilkS)
|
||||||
|
(effects (font (size 1.27 1.27) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text value Val** (at 0 0) (layer F.SilkS)
|
||||||
|
(effects (font (size 1.27 1.27) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_line (start -17.145 -10.795) (end -17.145 0.635) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -17.145 0.635) (end 0.635 0.635) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start 0.635 0.635) (end 0.635 -10.795) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start 0.635 -10.795) (end -17.145 -10.795) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -17.145 -10.795) (end -17.145 0.635) (layer B.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -17.145 -10.795) (end 0.635 -10.795) (layer B.SilkS) (width 0.127))
|
||||||
|
(fp_line (start 0.635 0.635) (end 0.635 -10.795) (layer B.SilkS) (width 0.127))
|
||||||
|
(fp_line (start 0.635 0.635) (end -17.145 0.635) (layer B.SilkS) (width 0.127))
|
||||||
|
(fp_text user +IN (at -15.24 -8.89) (layer F.SilkS)
|
||||||
|
(effects (font (size 1.2065 1.2065) (thickness 0.1016)) (justify left bottom))
|
||||||
|
)
|
||||||
|
(fp_text user OUT+ (at -1.27 -8.89) (layer F.SilkS)
|
||||||
|
(effects (font (size 1.2065 1.2065) (thickness 0.1016)) (justify right bottom))
|
||||||
|
)
|
||||||
|
(fp_text user GND (at -8.255 0) (layer F.SilkS)
|
||||||
|
(effects (font (size 1.2065 1.2065) (thickness 0.1016)) (justify bottom))
|
||||||
|
)
|
||||||
|
(fp_text user +IN (at -15.24 -8.89) (layer B.SilkS)
|
||||||
|
(effects (font (size 1.2065 1.2065) (thickness 0.1016)) (justify right bottom mirror))
|
||||||
|
)
|
||||||
|
(fp_text user OUT+ (at -1.27 -8.89) (layer B.SilkS)
|
||||||
|
(effects (font (size 1.2065 1.2065) (thickness 0.1016)) (justify left bottom mirror))
|
||||||
|
)
|
||||||
|
(fp_text user GND (at -8.255 0) (layer B.SilkS)
|
||||||
|
(effects (font (size 1.2065 1.2065) (thickness 0.1016)) (justify bottom mirror))
|
||||||
|
)
|
||||||
|
(pad IN+ thru_hole rect (at -15.875 -9.525) (size 1.308 1.308) (drill 0.8) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad IN- thru_hole rect (at -15.875 -0.635) (size 1.308 1.308) (drill 0.8) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad OUT+ thru_hole rect (at -0.635 -9.525) (size 1.308 1.308) (drill 0.8) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad OUT- thru_hole rect (at -0.635 -0.635) (size 1.308 1.308) (drill 0.8) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
)
|
82
Hardware/kicad/CANNode.pretty/OWN_KF141V-P10.kicad_mod
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
(module OWN_KF141V-P10 (layer F.Cu) (tedit 5BE59B30)
|
||||||
|
(fp_text reference >NAME (at -25.4 1.27 90) (layer F.SilkS)
|
||||||
|
(effects (font (size 1.2065 1.2065) (thickness 0.1016)) (justify left))
|
||||||
|
)
|
||||||
|
(fp_text value Val** (at 3.81 0) (layer F.SilkS)
|
||||||
|
(effects (font (size 1.27 1.27) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_line (start -26.83 -8.08) (end -26.83 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -26.83 -8.08) (end -24.33 -8.08) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -6.55 -8.08) (end -4.01 -8.08) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -4.01 -8.08) (end -1.47 -8.08) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -1.47 -8.08) (end 1.07 -8.08) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start 1.07 2.42) (end -1.47 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -1.47 2.42) (end -4.01 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -4.01 2.42) (end -6.55 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -24.33 2.42) (end -26.83 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -24.33 -8.08) (end -24.33 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -6.55 -8.08) (end -6.55 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -4.01 -8.08) (end -4.01 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -1.47 -8.08) (end -1.47 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start 1.07 -8.08) (end 1.07 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -24.33 -8.08) (end -21.79 -8.08) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -21.79 -8.08) (end -19.25 -8.08) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -19.25 -8.08) (end -16.71 -8.08) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -16.71 -8.08) (end -14.17 -8.08) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -14.17 -8.08) (end -11.63 -8.08) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -11.63 -8.08) (end -9.09 -8.08) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -9.09 -8.08) (end -6.55 -8.08) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -6.55 2.42) (end -9.09 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -9.09 2.42) (end -11.63 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -11.63 2.42) (end -14.17 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -14.17 2.42) (end -16.71 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -16.71 2.42) (end -19.25 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -19.25 2.42) (end -21.79 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -21.79 2.42) (end -24.33 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -21.79 -8.08) (end -21.79 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -19.25 -8.08) (end -19.25 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -16.71 -8.08) (end -16.71 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -14.17 -8.08) (end -14.17 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -11.63 -8.08) (end -11.63 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -9.09 -8.08) (end -9.09 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(pad P$101 thru_hole circle (at -22.86 0 90) (size 1.6764 1.6764) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad P$102 thru_hole circle (at -20.32 0 90) (size 1.6764 1.6764) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad P$103 thru_hole circle (at -17.78 0 90) (size 1.6764 1.6764) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad P$104 thru_hole circle (at -15.24 0 90) (size 1.6764 1.6764) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad P$105 thru_hole circle (at -12.7 0 90) (size 1.6764 1.6764) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad P$106 thru_hole circle (at -10.16 0 90) (size 1.6764 1.6764) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad P$107 thru_hole circle (at -7.62 0 90) (size 1.6764 1.6764) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad P$108 thru_hole circle (at -5.08 0 90) (size 1.6764 1.6764) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad P$109 thru_hole circle (at -2.54 0 90) (size 1.6764 1.6764) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad P$110 thru_hole circle (at 0 0 90) (size 1.6764 1.6764) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad P$201 thru_hole circle (at -22.86 -5.08 90) (size 1.6764 1.6764) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad P$202 thru_hole circle (at -20.32 -5.08 90) (size 1.6764 1.6764) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad P$203 thru_hole circle (at -17.78 -5.08 90) (size 1.6764 1.6764) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad P$204 thru_hole circle (at -15.24 -5.08 90) (size 1.6764 1.6764) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad P$205 thru_hole circle (at -12.7 -5.08 90) (size 1.6764 1.6764) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad P$206 thru_hole circle (at -10.16 -5.08 90) (size 1.6764 1.6764) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad P$207 thru_hole circle (at -7.62 -5.08 90) (size 1.6764 1.6764) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad P$208 thru_hole circle (at -5.08 -5.08 90) (size 1.6764 1.6764) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad P$209 thru_hole circle (at -2.54 -5.08 90) (size 1.6764 1.6764) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad P$210 thru_hole circle (at 0 -5.08 90) (size 1.6764 1.6764) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
)
|
40
Hardware/kicad/CANNode.pretty/OWN_KF141V-P4.kicad_mod
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
(module OWN_KF141V-P4 (layer F.Cu) (tedit 0)
|
||||||
|
(fp_text reference >NAME (at -10.16 1.27 90) (layer F.SilkS)
|
||||||
|
(effects (font (size 1.2065 1.2065) (thickness 0.1016)) (justify left))
|
||||||
|
)
|
||||||
|
(fp_text value Val** (at 0 0) (layer F.SilkS)
|
||||||
|
(effects (font (size 1.27 1.27) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_line (start -11.59 -8.08) (end -11.59 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -11.59 -8.08) (end -9.09 -8.08) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -9.09 -8.08) (end -6.55 -8.08) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -6.55 -8.08) (end -4.01 -8.08) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -4.01 -8.08) (end -1.47 -8.08) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -1.47 2.42) (end -4.01 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -4.01 2.42) (end -6.55 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -6.55 2.42) (end -9.09 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -9.09 2.42) (end -11.59 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -9.09 -8.08) (end -9.09 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -6.55 -8.08) (end -6.55 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -4.01 -8.08) (end -4.01 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -1.47 -8.08) (end -1.47 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start 1.07 -8.08) (end 1.07 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -1.43 -8.08) (end 1.07 -8.08) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -1.43 2.42) (end 1.07 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(pad P$101 thru_hole oval (at -7.62 0 90) (size 3.016 1.508) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad P$102 thru_hole oval (at -5.08 0 90) (size 3.016 1.508) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad P$103 thru_hole oval (at -2.54 0 90) (size 3.016 1.508) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad P$104 thru_hole oval (at 0 0 90) (size 3.016 1.508) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad P$201 thru_hole oval (at -7.62 -5.08 90) (size 3.016 1.508) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad P$202 thru_hole oval (at -5.08 -5.08 90) (size 3.016 1.508) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad P$203 thru_hole oval (at -2.54 -5.08 90) (size 3.016 1.508) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad P$204 thru_hole oval (at 0 -5.08 90) (size 3.016 1.508) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
)
|
40
Hardware/kicad/CANNode.pretty/OWN_KF141V-P4_simple.kicad_mod
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
(module OWN_KF141V-P4_simple (layer F.Cu) (tedit 5BE8AF3A)
|
||||||
|
(fp_text reference >NAME (at -10.16 1.27 90) (layer F.SilkS)
|
||||||
|
(effects (font (size 1.2065 1.2065) (thickness 0.1016)) (justify left))
|
||||||
|
)
|
||||||
|
(fp_text value Val** (at 0 0) (layer F.SilkS)
|
||||||
|
(effects (font (size 1.27 1.27) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_line (start -11.59 -8.08) (end -11.59 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -11.59 -8.08) (end -9.09 -8.08) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -9.09 -8.08) (end -6.55 -8.08) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -6.55 -8.08) (end -4.01 -8.08) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -4.01 -8.08) (end -1.47 -8.08) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -1.47 2.42) (end -4.01 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -4.01 2.42) (end -6.55 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -6.55 2.42) (end -9.09 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -9.09 2.42) (end -11.59 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -9.09 -8.08) (end -9.09 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -6.55 -8.08) (end -6.55 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -4.01 -8.08) (end -4.01 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -1.47 -8.08) (end -1.47 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start 1.07 -8.08) (end 1.07 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -1.43 -8.08) (end 1.07 -8.08) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -1.43 2.42) (end 1.07 2.42) (layer F.SilkS) (width 0.127))
|
||||||
|
(pad 1 thru_hole oval (at -7.62 0 90) (size 3.016 1.508) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad 2 thru_hole oval (at -5.08 0 90) (size 3.016 1.508) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad 3 thru_hole oval (at -2.54 0 90) (size 3.016 1.508) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad 4 thru_hole oval (at 0 0 90) (size 3.016 1.508) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad 1 thru_hole oval (at -7.62 -5.08 90) (size 3.016 1.508) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad 2 thru_hole oval (at -5.08 -5.08 90) (size 3.016 1.508) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad 3 thru_hole oval (at -2.54 -5.08 90) (size 3.016 1.508) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
(pad 4 thru_hole oval (at 0 -5.08 90) (size 3.016 1.508) (drill 1) (layers *.Cu *.Mask)
|
||||||
|
(solder_mask_margin 0.1016))
|
||||||
|
)
|
267
Hardware/kicad/CANNode.pro
Normal file
@ -0,0 +1,267 @@
|
|||||||
|
update=Tue 30 Jun 2020 09:41:16 PM CEST
|
||||||
|
version=1
|
||||||
|
last_client=kicad
|
||||||
|
[general]
|
||||||
|
version=1
|
||||||
|
RootSch=
|
||||||
|
BoardNm=
|
||||||
|
[cvpcb]
|
||||||
|
version=1
|
||||||
|
NetIExt=net
|
||||||
|
[eeschema]
|
||||||
|
version=1
|
||||||
|
LibDir=
|
||||||
|
[eeschema/libraries]
|
||||||
|
[schematic_editor]
|
||||||
|
version=1
|
||||||
|
PageLayoutDescrFile=
|
||||||
|
PlotDirectoryName=images/
|
||||||
|
SubpartIdSeparator=0
|
||||||
|
SubpartFirstId=65
|
||||||
|
NetFmtName=Pcbnew
|
||||||
|
SpiceAjustPassiveValues=0
|
||||||
|
LabSize=50
|
||||||
|
ERC_TestSimilarLabels=1
|
||||||
|
[pcbnew]
|
||||||
|
version=1
|
||||||
|
PageLayoutDescrFile=
|
||||||
|
LastNetListRead=CANNode.net
|
||||||
|
CopperLayerCount=4
|
||||||
|
BoardThickness=1.6
|
||||||
|
AllowMicroVias=0
|
||||||
|
AllowBlindVias=0
|
||||||
|
RequireCourtyardDefinitions=0
|
||||||
|
ProhibitOverlappingCourtyards=1
|
||||||
|
MinTrackWidth=0.1524
|
||||||
|
MinViaDiameter=0.6858
|
||||||
|
MinViaDrill=0.3302
|
||||||
|
MinMicroViaDiameter=0.2
|
||||||
|
MinMicroViaDrill=0.09999999999999999
|
||||||
|
MinHoleToHole=0.25
|
||||||
|
TrackWidth1=0.3
|
||||||
|
TrackWidth2=0.175
|
||||||
|
TrackWidth3=0.2
|
||||||
|
TrackWidth4=0.25
|
||||||
|
TrackWidth5=0.3
|
||||||
|
TrackWidth6=0.4
|
||||||
|
TrackWidth7=0.6
|
||||||
|
TrackWidth8=0.8
|
||||||
|
TrackWidth9=1.6
|
||||||
|
ViaDiameter1=0.6858
|
||||||
|
ViaDrill1=0.3302
|
||||||
|
dPairWidth1=0.3
|
||||||
|
dPairGap1=0.175
|
||||||
|
dPairViaGap1=0.25
|
||||||
|
SilkLineWidth=0.15
|
||||||
|
SilkTextSizeV=1
|
||||||
|
SilkTextSizeH=1
|
||||||
|
SilkTextSizeThickness=0.15
|
||||||
|
SilkTextItalic=0
|
||||||
|
SilkTextUpright=1
|
||||||
|
CopperLineWidth=0.2
|
||||||
|
CopperTextSizeV=1.5
|
||||||
|
CopperTextSizeH=1.5
|
||||||
|
CopperTextThickness=0.3
|
||||||
|
CopperTextItalic=0
|
||||||
|
CopperTextUpright=1
|
||||||
|
EdgeCutLineWidth=0.2
|
||||||
|
CourtyardLineWidth=0.05
|
||||||
|
OthersLineWidth=0.15
|
||||||
|
OthersTextSizeV=1
|
||||||
|
OthersTextSizeH=1
|
||||||
|
OthersTextSizeThickness=0.15
|
||||||
|
OthersTextItalic=0
|
||||||
|
OthersTextUpright=1
|
||||||
|
SolderMaskClearance=0.2
|
||||||
|
SolderMaskMinWidth=0.25
|
||||||
|
SolderPasteClearance=0
|
||||||
|
SolderPasteRatio=-0
|
||||||
|
[pcbnew/Layer.F.Cu]
|
||||||
|
Name=F.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.In1.Cu]
|
||||||
|
Name=In1.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.In2.Cu]
|
||||||
|
Name=In2.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.In3.Cu]
|
||||||
|
Name=In3.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In4.Cu]
|
||||||
|
Name=In4.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In5.Cu]
|
||||||
|
Name=In5.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In6.Cu]
|
||||||
|
Name=In6.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In7.Cu]
|
||||||
|
Name=In7.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In8.Cu]
|
||||||
|
Name=In8.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In9.Cu]
|
||||||
|
Name=In9.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In10.Cu]
|
||||||
|
Name=In10.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In11.Cu]
|
||||||
|
Name=In11.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In12.Cu]
|
||||||
|
Name=In12.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In13.Cu]
|
||||||
|
Name=In13.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In14.Cu]
|
||||||
|
Name=In14.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In15.Cu]
|
||||||
|
Name=In15.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In16.Cu]
|
||||||
|
Name=In16.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In17.Cu]
|
||||||
|
Name=In17.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In18.Cu]
|
||||||
|
Name=In18.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In19.Cu]
|
||||||
|
Name=In19.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In20.Cu]
|
||||||
|
Name=In20.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In21.Cu]
|
||||||
|
Name=In21.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In22.Cu]
|
||||||
|
Name=In22.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In23.Cu]
|
||||||
|
Name=In23.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In24.Cu]
|
||||||
|
Name=In24.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In25.Cu]
|
||||||
|
Name=In25.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In26.Cu]
|
||||||
|
Name=In26.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In27.Cu]
|
||||||
|
Name=In27.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In28.Cu]
|
||||||
|
Name=In28.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In29.Cu]
|
||||||
|
Name=In29.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.In30.Cu]
|
||||||
|
Name=In30.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Layer.B.Cu]
|
||||||
|
Name=B.Cu
|
||||||
|
Type=0
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.B.Adhes]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.F.Adhes]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.B.Paste]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.F.Paste]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.B.SilkS]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.F.SilkS]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.B.Mask]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.F.Mask]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.Dwgs.User]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.Cmts.User]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.Eco1.User]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.Eco2.User]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.Edge.Cuts]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.Margin]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.B.CrtYd]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.F.CrtYd]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.B.Fab]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.F.Fab]
|
||||||
|
Enabled=1
|
||||||
|
[pcbnew/Layer.Rescue]
|
||||||
|
Enabled=0
|
||||||
|
[pcbnew/Netclasses]
|
||||||
|
[pcbnew/Netclasses/Default]
|
||||||
|
Name=Default
|
||||||
|
Clearance=0.175
|
||||||
|
TrackWidth=0.3
|
||||||
|
ViaDiameter=0.6858
|
||||||
|
ViaDrill=0.3302
|
||||||
|
uViaDiameter=0.3
|
||||||
|
uViaDrill=0.1
|
||||||
|
dPairWidth=0.3
|
||||||
|
dPairGap=0.175
|
||||||
|
dPairViaGap=0.25
|
||||||
|
[pcbnew/Netclasses/1]
|
||||||
|
Name=Power
|
||||||
|
Clearance=0.2
|
||||||
|
TrackWidth=0.5
|
||||||
|
ViaDiameter=1.25
|
||||||
|
ViaDrill=0.5
|
||||||
|
uViaDiameter=0.65
|
||||||
|
uViaDrill=0.2
|
||||||
|
dPairWidth=0.3
|
||||||
|
dPairGap=0.25
|
||||||
|
dPairViaGap=0.25
|
1887
Hardware/kicad/CANNode.sch
Normal file
1326
Hardware/kicad/DiffWS2811/DiffWS2811.kicad_pcb
Normal file
BIN
Hardware/kicad/DiffWS2811/DiffWS2811.pdf
Normal file
43
Hardware/kicad/DiffWS2811/DiffWS2811.pro
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
update=Tue Oct 22 14:04:36 2019
|
||||||
|
version=1
|
||||||
|
last_client=eeschema
|
||||||
|
[general]
|
||||||
|
version=1
|
||||||
|
RootSch=
|
||||||
|
BoardNm=
|
||||||
|
[pcbnew]
|
||||||
|
version=1
|
||||||
|
LastNetListRead=
|
||||||
|
UseCmpFile=1
|
||||||
|
PadDrill=0.600000000000
|
||||||
|
PadDrillOvalY=0.600000000000
|
||||||
|
PadSizeH=1.500000000000
|
||||||
|
PadSizeV=1.500000000000
|
||||||
|
PcbTextSizeV=1.500000000000
|
||||||
|
PcbTextSizeH=1.500000000000
|
||||||
|
PcbTextThickness=0.300000000000
|
||||||
|
ModuleTextSizeV=1.000000000000
|
||||||
|
ModuleTextSizeH=1.000000000000
|
||||||
|
ModuleTextSizeThickness=0.150000000000
|
||||||
|
SolderMaskClearance=0.000000000000
|
||||||
|
SolderMaskMinWidth=0.000000000000
|
||||||
|
DrawSegmentWidth=0.200000000000
|
||||||
|
BoardOutlineThickness=0.100000000000
|
||||||
|
ModuleOutlineThickness=0.150000000000
|
||||||
|
[cvpcb]
|
||||||
|
version=1
|
||||||
|
NetIExt=net
|
||||||
|
[eeschema]
|
||||||
|
version=1
|
||||||
|
LibDir=
|
||||||
|
[eeschema/libraries]
|
||||||
|
[schematic_editor]
|
||||||
|
version=1
|
||||||
|
PageLayoutDescrFile=
|
||||||
|
PlotDirectoryName=
|
||||||
|
SubpartIdSeparator=0
|
||||||
|
SubpartFirstId=65
|
||||||
|
NetFmtName=
|
||||||
|
SpiceAjustPassiveValues=0
|
||||||
|
LabSize=50
|
||||||
|
ERC_TestSimilarLabels=1
|
419
Hardware/kicad/DiffWS2811/DiffWS2811.sch
Normal file
@ -0,0 +1,419 @@
|
|||||||
|
EESchema Schematic File Version 4
|
||||||
|
LIBS:DiffWS2811-cache
|
||||||
|
EELAYER 26 0
|
||||||
|
EELAYER END
|
||||||
|
$Descr A4 11693 8268
|
||||||
|
encoding utf-8
|
||||||
|
Sheet 1 1
|
||||||
|
Title ""
|
||||||
|
Date ""
|
||||||
|
Rev ""
|
||||||
|
Comp ""
|
||||||
|
Comment1 ""
|
||||||
|
Comment2 ""
|
||||||
|
Comment3 ""
|
||||||
|
Comment4 ""
|
||||||
|
$EndDescr
|
||||||
|
$Comp
|
||||||
|
L 000_my_lib:DSN-MINI-360 MOD1
|
||||||
|
U 1 1 5C0664F1
|
||||||
|
P 2900 3550
|
||||||
|
F 0 "MOD1" H 2900 3500 50 0000 C CNN
|
||||||
|
F 1 "DSN-MINI-360" H 3125 3934 50 0001 C CNN
|
||||||
|
F 2 "000_my_footprints:DC-DC" H 3150 3700 50 0001 C CNN
|
||||||
|
F 3 "" H 3150 3700 50 0001 C CNN
|
||||||
|
1 2900 3550
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L Interface_UART:MAX485E U1
|
||||||
|
U 1 1 5C06691A
|
||||||
|
P 3850 2300
|
||||||
|
F 0 "U1" H 4100 1750 50 0000 C CNN
|
||||||
|
F 1 "MAX485E" H 3650 1750 50 0000 C CNN
|
||||||
|
F 2 "Package_SO:SOIC-8_3.9x4.9mm_P1.27mm" H 3850 1600 50 0001 C CNN
|
||||||
|
F 3 "https://datasheets.maximintegrated.com/en/ds/MAX1487E-MAX491E.pdf" H 3850 2350 50 0001 C CNN
|
||||||
|
1 3850 2300
|
||||||
|
-1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L Device:R_Small R1
|
||||||
|
U 1 1 5C066BB7
|
||||||
|
P 3150 2350
|
||||||
|
F 0 "R1" H 3209 2350 50 0000 L CNN
|
||||||
|
F 1 "R_Small" H 3209 2305 50 0001 L CNN
|
||||||
|
F 2 "Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder" H 3150 2350 50 0001 C CNN
|
||||||
|
F 3 "~" H 3150 2350 50 0001 C CNN
|
||||||
|
1 3150 2350
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L Connector_Generic:Conn_01x04 J1
|
||||||
|
U 1 1 5C066D15
|
||||||
|
P 2750 2400
|
||||||
|
F 0 "J1" H 2670 1975 50 0000 C CNN
|
||||||
|
F 1 "Conn_01x04" H 3200 2100 50 0001 C CNN
|
||||||
|
F 2 "Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical" H 2750 2400 50 0001 C CNN
|
||||||
|
F 3 "~" H 2750 2400 50 0001 C CNN
|
||||||
|
1 2750 2400
|
||||||
|
-1 0 0 1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L Connector_Generic:Conn_01x03 J2
|
||||||
|
U 1 1 5C066E44
|
||||||
|
P 4850 2200
|
||||||
|
F 0 "J2" H 4930 2196 50 0000 L CNN
|
||||||
|
F 1 "Conn_01x03" H 4930 2151 50 0001 L CNN
|
||||||
|
F 2 "Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical" H 4850 2200 50 0001 C CNN
|
||||||
|
F 3 "~" H 4850 2200 50 0001 C CNN
|
||||||
|
1 4850 2200
|
||||||
|
1 0 0 1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L Device:C_Small C1
|
||||||
|
U 1 1 5C066F30
|
||||||
|
P 4150 3350
|
||||||
|
F 0 "C1" H 4242 3396 50 0000 L CNN
|
||||||
|
F 1 "C_Small" H 4242 3305 50 0001 L CNN
|
||||||
|
F 2 "Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder" H 4150 3350 50 0001 C CNN
|
||||||
|
F 3 "~" H 4150 3350 50 0001 C CNN
|
||||||
|
1 4150 3350
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L Device:Jumper_NO_Small JP1
|
||||||
|
U 1 1 5C066FFC
|
||||||
|
P 3100 3200
|
||||||
|
F 0 "JP1" H 3100 3385 50 0000 C CNN
|
||||||
|
F 1 "Jumper" H 3100 3294 50 0000 C CNN
|
||||||
|
F 2 "Jumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mm" H 3100 3200 50 0001 C CNN
|
||||||
|
F 3 "~" H 3100 3200 50 0001 C CNN
|
||||||
|
1 3100 3200
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L power:GND #PWR0101
|
||||||
|
U 1 1 5C0670C6
|
||||||
|
P 3000 2550
|
||||||
|
F 0 "#PWR0101" H 3000 2300 50 0001 C CNN
|
||||||
|
F 1 "GND" H 3005 2377 50 0001 C CNN
|
||||||
|
F 2 "" H 3000 2550 50 0001 C CNN
|
||||||
|
F 3 "" H 3000 2550 50 0001 C CNN
|
||||||
|
1 3000 2550
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L power:VCC #PWR0102
|
||||||
|
U 1 1 5C067142
|
||||||
|
P 3850 1750
|
||||||
|
F 0 "#PWR0102" H 3850 1600 50 0001 C CNN
|
||||||
|
F 1 "VCC" H 4000 1800 50 0000 C CNN
|
||||||
|
F 2 "" H 3850 1750 50 0001 C CNN
|
||||||
|
F 3 "" H 3850 1750 50 0001 C CNN
|
||||||
|
1 3850 1750
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L power:-VSW #PWR0103
|
||||||
|
U 1 1 5C06719C
|
||||||
|
P 3000 2150
|
||||||
|
F 0 "#PWR0103" H 3000 2250 50 0001 C CNN
|
||||||
|
F 1 "-VSW" H 3015 2323 50 0000 C CNN
|
||||||
|
F 2 "" H 3000 2150 50 0001 C CNN
|
||||||
|
F 3 "" H 3000 2150 50 0001 C CNN
|
||||||
|
1 3000 2150
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L power:GND #PWR0104
|
||||||
|
U 1 1 5C067280
|
||||||
|
P 3100 3700
|
||||||
|
F 0 "#PWR0104" H 3100 3450 50 0001 C CNN
|
||||||
|
F 1 "GND" H 3105 3527 50 0001 C CNN
|
||||||
|
F 2 "" H 3100 3700 50 0001 C CNN
|
||||||
|
F 3 "" H 3100 3700 50 0001 C CNN
|
||||||
|
1 3100 3700
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L power:-VSW #PWR0106
|
||||||
|
U 1 1 5C0672B2
|
||||||
|
P 2750 3150
|
||||||
|
F 0 "#PWR0106" H 2750 3250 50 0001 C CNN
|
||||||
|
F 1 "-VSW" H 2765 3323 50 0000 C CNN
|
||||||
|
F 2 "" H 2750 3150 50 0001 C CNN
|
||||||
|
F 3 "" H 2750 3150 50 0001 C CNN
|
||||||
|
1 2750 3150
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L power:VCC #PWR0107
|
||||||
|
U 1 1 5C0672DA
|
||||||
|
P 3450 3150
|
||||||
|
F 0 "#PWR0107" H 3450 3000 50 0001 C CNN
|
||||||
|
F 1 "VCC" H 3467 3323 50 0000 C CNN
|
||||||
|
F 2 "" H 3450 3150 50 0001 C CNN
|
||||||
|
F 3 "" H 3450 3150 50 0001 C CNN
|
||||||
|
1 3450 3150
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
3850 1750 3850 1800
|
||||||
|
Wire Wire Line
|
||||||
|
2750 3150 2750 3200
|
||||||
|
Wire Wire Line
|
||||||
|
2750 3200 2900 3200
|
||||||
|
Wire Wire Line
|
||||||
|
3200 3200 3300 3200
|
||||||
|
Wire Wire Line
|
||||||
|
3450 3200 3450 3150
|
||||||
|
Wire Wire Line
|
||||||
|
3450 3200 3450 3300
|
||||||
|
Connection ~ 3450 3200
|
||||||
|
Wire Wire Line
|
||||||
|
2800 3300 2750 3300
|
||||||
|
Connection ~ 2750 3200
|
||||||
|
Wire Wire Line
|
||||||
|
2950 2200 3000 2200
|
||||||
|
Wire Wire Line
|
||||||
|
3000 2200 3000 2150
|
||||||
|
Wire Wire Line
|
||||||
|
2950 2500 3000 2500
|
||||||
|
Wire Wire Line
|
||||||
|
3000 2500 3000 2550
|
||||||
|
Wire Wire Line
|
||||||
|
2950 2400 3050 2400
|
||||||
|
Wire Wire Line
|
||||||
|
3050 2400 3050 2500
|
||||||
|
Wire Wire Line
|
||||||
|
3050 2500 3150 2500
|
||||||
|
Wire Wire Line
|
||||||
|
3150 2500 3150 2450
|
||||||
|
Wire Wire Line
|
||||||
|
3150 2250 3150 2200
|
||||||
|
Wire Wire Line
|
||||||
|
3150 2200 3050 2200
|
||||||
|
Wire Wire Line
|
||||||
|
3050 2200 3050 2300
|
||||||
|
Wire Wire Line
|
||||||
|
3050 2300 2950 2300
|
||||||
|
Wire Wire Line
|
||||||
|
3450 2200 3150 2200
|
||||||
|
Connection ~ 3150 2200
|
||||||
|
Wire Wire Line
|
||||||
|
3450 2500 3150 2500
|
||||||
|
Connection ~ 3150 2500
|
||||||
|
$Comp
|
||||||
|
L power:VCC #PWR0108
|
||||||
|
U 1 1 5C069637
|
||||||
|
P 4150 3150
|
||||||
|
F 0 "#PWR0108" H 4150 3000 50 0001 C CNN
|
||||||
|
F 1 "VCC" H 4300 3200 50 0000 C CNN
|
||||||
|
F 2 "" H 4150 3150 50 0001 C CNN
|
||||||
|
F 3 "" H 4150 3150 50 0001 C CNN
|
||||||
|
1 4150 3150
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L power:GND #PWR0109
|
||||||
|
U 1 1 5C069650
|
||||||
|
P 4150 3550
|
||||||
|
F 0 "#PWR0109" H 4150 3300 50 0001 C CNN
|
||||||
|
F 1 "GND" H 4155 3377 50 0001 C CNN
|
||||||
|
F 2 "" H 4150 3550 50 0001 C CNN
|
||||||
|
F 3 "" H 4150 3550 50 0001 C CNN
|
||||||
|
1 4150 3550
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
4150 3150 4150 3200
|
||||||
|
Wire Wire Line
|
||||||
|
4150 3450 4150 3500
|
||||||
|
$Comp
|
||||||
|
L power:GND #PWR0110
|
||||||
|
U 1 1 5C06A0D9
|
||||||
|
P 3850 2950
|
||||||
|
F 0 "#PWR0110" H 3850 2700 50 0001 C CNN
|
||||||
|
F 1 "GND" H 3855 2777 50 0001 C CNN
|
||||||
|
F 2 "" H 3850 2950 50 0001 C CNN
|
||||||
|
F 3 "" H 3850 2950 50 0001 C CNN
|
||||||
|
1 3850 2950
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
3850 2900 3850 2950
|
||||||
|
$Comp
|
||||||
|
L power:GND #PWR0111
|
||||||
|
U 1 1 5C06A85A
|
||||||
|
P 4300 2550
|
||||||
|
F 0 "#PWR0111" H 4300 2300 50 0001 C CNN
|
||||||
|
F 1 "GND" H 4305 2377 50 0001 C CNN
|
||||||
|
F 2 "" H 4300 2550 50 0001 C CNN
|
||||||
|
F 3 "" H 4300 2550 50 0001 C CNN
|
||||||
|
1 4300 2550
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
4250 2400 4300 2400
|
||||||
|
Wire Wire Line
|
||||||
|
4300 2400 4300 2500
|
||||||
|
Wire Wire Line
|
||||||
|
4300 2500 4250 2500
|
||||||
|
Wire Wire Line
|
||||||
|
4300 2300 4300 2400
|
||||||
|
Wire Wire Line
|
||||||
|
4300 2300 4250 2300
|
||||||
|
Connection ~ 4300 2400
|
||||||
|
Wire Wire Line
|
||||||
|
4300 2500 4300 2550
|
||||||
|
Connection ~ 4300 2500
|
||||||
|
$Comp
|
||||||
|
L power:VCC #PWR0112
|
||||||
|
U 1 1 5C06BD25
|
||||||
|
P 4600 2050
|
||||||
|
F 0 "#PWR0112" H 4600 1900 50 0001 C CNN
|
||||||
|
F 1 "VCC" H 4750 2100 50 0000 C CNN
|
||||||
|
F 2 "" H 4600 2050 50 0001 C CNN
|
||||||
|
F 3 "" H 4600 2050 50 0001 C CNN
|
||||||
|
1 4600 2050
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L power:GND #PWR0113
|
||||||
|
U 1 1 5C06CC4B
|
||||||
|
P 4600 2350
|
||||||
|
F 0 "#PWR0113" H 4600 2100 50 0001 C CNN
|
||||||
|
F 1 "GND" H 4605 2177 50 0001 C CNN
|
||||||
|
F 2 "" H 4600 2350 50 0001 C CNN
|
||||||
|
F 3 "" H 4600 2350 50 0001 C CNN
|
||||||
|
1 4600 2350
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
4650 2200 4500 2200
|
||||||
|
Wire Wire Line
|
||||||
|
4650 2100 4600 2100
|
||||||
|
Wire Wire Line
|
||||||
|
4600 2100 4600 2050
|
||||||
|
Wire Wire Line
|
||||||
|
4650 2300 4600 2300
|
||||||
|
Wire Wire Line
|
||||||
|
4600 2300 4600 2350
|
||||||
|
$Comp
|
||||||
|
L Device:R_Small R2
|
||||||
|
U 1 1 5C06E1D6
|
||||||
|
P 4400 2200
|
||||||
|
F 0 "R2" V 4296 2200 50 0000 C CNN
|
||||||
|
F 1 "R_Small" V 4295 2200 50 0001 C CNN
|
||||||
|
F 2 "Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder" H 4400 2200 50 0001 C CNN
|
||||||
|
F 3 "~" H 4400 2200 50 0001 C CNN
|
||||||
|
1 4400 2200
|
||||||
|
0 1 1 0
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
4250 2200 4300 2200
|
||||||
|
$Comp
|
||||||
|
L power:PWR_FLAG #FLG0101
|
||||||
|
U 1 1 5C07179E
|
||||||
|
P 2900 3150
|
||||||
|
F 0 "#FLG0101" H 2900 3225 50 0001 C CNN
|
||||||
|
F 1 "PWR_FLAG" H 2900 3324 50 0001 C CNN
|
||||||
|
F 2 "" H 2900 3150 50 0001 C CNN
|
||||||
|
F 3 "~" H 2900 3150 50 0001 C CNN
|
||||||
|
1 2900 3150
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
$Comp
|
||||||
|
L power:PWR_FLAG #FLG0102
|
||||||
|
U 1 1 5C071EE6
|
||||||
|
P 3300 3150
|
||||||
|
F 0 "#FLG0102" H 3300 3225 50 0001 C CNN
|
||||||
|
F 1 "PWR_FLAG" H 3300 3324 50 0001 C CNN
|
||||||
|
F 2 "" H 3300 3150 50 0001 C CNN
|
||||||
|
F 3 "~" H 3300 3150 50 0001 C CNN
|
||||||
|
1 3300 3150
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
3300 3150 3300 3200
|
||||||
|
Connection ~ 3300 3200
|
||||||
|
Wire Wire Line
|
||||||
|
3300 3200 3450 3200
|
||||||
|
Wire Wire Line
|
||||||
|
2900 3150 2900 3200
|
||||||
|
Connection ~ 2900 3200
|
||||||
|
Wire Wire Line
|
||||||
|
2900 3200 3000 3200
|
||||||
|
Wire Wire Line
|
||||||
|
2750 3200 2750 3300
|
||||||
|
$Comp
|
||||||
|
L power:PWR_FLAG #FLG0103
|
||||||
|
U 1 1 5C07505B
|
||||||
|
P 3350 3600
|
||||||
|
F 0 "#FLG0103" H 3350 3675 50 0001 C CNN
|
||||||
|
F 1 "PWR_FLAG" H 3350 3774 50 0001 C CNN
|
||||||
|
F 2 "" H 3350 3600 50 0001 C CNN
|
||||||
|
F 3 "~" H 3350 3600 50 0001 C CNN
|
||||||
|
1 3350 3600
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
3400 3300 3450 3300
|
||||||
|
Wire Wire Line
|
||||||
|
3100 3700 3100 3650
|
||||||
|
Wire Wire Line
|
||||||
|
3350 3600 3350 3700
|
||||||
|
Wire Wire Line
|
||||||
|
3350 3700 3100 3700
|
||||||
|
Connection ~ 3100 3700
|
||||||
|
$Comp
|
||||||
|
L Device:C_Small C2
|
||||||
|
U 1 1 5C07E1E5
|
||||||
|
P 4400 3350
|
||||||
|
F 0 "C2" H 4492 3396 50 0000 L CNN
|
||||||
|
F 1 "C_Small" H 4492 3305 50 0001 L CNN
|
||||||
|
F 2 "Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder" H 4400 3350 50 0001 C CNN
|
||||||
|
F 3 "~" H 4400 3350 50 0001 C CNN
|
||||||
|
1 4400 3350
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
4150 3200 4400 3200
|
||||||
|
Wire Wire Line
|
||||||
|
4400 3200 4400 3250
|
||||||
|
Connection ~ 4150 3200
|
||||||
|
Wire Wire Line
|
||||||
|
4150 3200 4150 3250
|
||||||
|
Wire Wire Line
|
||||||
|
4400 3450 4400 3500
|
||||||
|
Wire Wire Line
|
||||||
|
4400 3500 4150 3500
|
||||||
|
Connection ~ 4150 3500
|
||||||
|
Wire Wire Line
|
||||||
|
4150 3500 4150 3550
|
||||||
|
$Comp
|
||||||
|
L Device:CP_Small C3
|
||||||
|
U 1 1 5C07F5DF
|
||||||
|
P 4600 3350
|
||||||
|
F 0 "C3" H 4688 3396 50 0000 L CNN
|
||||||
|
F 1 "CP_Small" H 4688 3305 50 0000 L CNN
|
||||||
|
F 2 "Capacitor_SMD:CP_Elec_3x5.4" H 4600 3350 50 0001 C CNN
|
||||||
|
F 3 "~" H 4600 3350 50 0001 C CNN
|
||||||
|
1 4600 3350
|
||||||
|
1 0 0 -1
|
||||||
|
$EndComp
|
||||||
|
Wire Wire Line
|
||||||
|
4400 3200 4600 3200
|
||||||
|
Wire Wire Line
|
||||||
|
4600 3200 4600 3250
|
||||||
|
Connection ~ 4400 3200
|
||||||
|
Wire Wire Line
|
||||||
|
4600 3450 4600 3500
|
||||||
|
Wire Wire Line
|
||||||
|
4600 3500 4400 3500
|
||||||
|
Connection ~ 4400 3500
|
||||||
|
Text Label 3300 2200 0 50 ~ 0
|
||||||
|
D+
|
||||||
|
Text Label 3300 2500 0 50 ~ 0
|
||||||
|
D-
|
||||||
|
$EndSCHEMATC
|
1256
Hardware/kicad/DiffWS2811/DiffWS2811_min.kicad_pcb
Normal file
33
Hardware/kicad/DiffWS2811/DiffWS2811_min.pro
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
update=22/05/2015 07:44:53
|
||||||
|
version=1
|
||||||
|
last_client=kicad
|
||||||
|
[general]
|
||||||
|
version=1
|
||||||
|
RootSch=
|
||||||
|
BoardNm=
|
||||||
|
[pcbnew]
|
||||||
|
version=1
|
||||||
|
LastNetListRead=
|
||||||
|
UseCmpFile=1
|
||||||
|
PadDrill=0.600000000000
|
||||||
|
PadDrillOvalY=0.600000000000
|
||||||
|
PadSizeH=1.500000000000
|
||||||
|
PadSizeV=1.500000000000
|
||||||
|
PcbTextSizeV=1.500000000000
|
||||||
|
PcbTextSizeH=1.500000000000
|
||||||
|
PcbTextThickness=0.300000000000
|
||||||
|
ModuleTextSizeV=1.000000000000
|
||||||
|
ModuleTextSizeH=1.000000000000
|
||||||
|
ModuleTextSizeThickness=0.150000000000
|
||||||
|
SolderMaskClearance=0.000000000000
|
||||||
|
SolderMaskMinWidth=0.000000000000
|
||||||
|
DrawSegmentWidth=0.200000000000
|
||||||
|
BoardOutlineThickness=0.100000000000
|
||||||
|
ModuleOutlineThickness=0.150000000000
|
||||||
|
[cvpcb]
|
||||||
|
version=1
|
||||||
|
NetIExt=net
|
||||||
|
[eeschema]
|
||||||
|
version=1
|
||||||
|
LibDir=
|
||||||
|
[eeschema/libraries]
|
1554
Hardware/kicad/Modified.lib
Normal file
21809
Hardware/kicad/images/CANNode.svg
Normal file
After Width: | Height: | Size: 380 KiB |
21634
Hardware/kicad/images/CANNode_plain.svg
Normal file
After Width: | Height: | Size: 378 KiB |
BIN
Hardware/kicad/images/CANNode_rev2.0.jpg
Normal file
After Width: | Height: | Size: 1.1 MiB |
BIN
Hardware/kicad/images/CANNode_rev2.0.pdf
Normal file
BIN
Hardware/kicad/images/CANNode_rev2.0_jlcpcb_bottom.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
Hardware/kicad/images/CANNode_rev2.0_jlcpcb_top.png
Normal file
After Width: | Height: | Size: 103 KiB |
BIN
Hardware/kicad/images/CANNode_rev2.0_small.jpg
Normal file
After Width: | Height: | Size: 206 KiB |
BIN
Hardware/kicad/images/CANNode_rev2.0_top.png
Normal file
After Width: | Height: | Size: 696 KiB |
BIN
Hardware/kicad/images/CANNode_rev2.5.pdf
Normal file
24071
Hardware/kicad/images/CANNode_rev2.5.svg
Normal file
After Width: | Height: | Size: 445 KiB |
BIN
Hardware/kicad/images/CANNode_rev2.5_top.png
Normal file
After Width: | Height: | Size: 157 KiB |
44
Hardware/kicad/max481e.lib
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
EESchema-LIBRARY Version 2.4
|
||||||
|
#encoding utf-8
|
||||||
|
#
|
||||||
|
# MAX481E
|
||||||
|
#
|
||||||
|
DEF MAX481E U 0 20 Y Y 1 F N
|
||||||
|
F0 "U" -240 450 50 H V C CNN
|
||||||
|
F1 "MAX481E" 30 450 50 H V L CNN
|
||||||
|
F2 "" 0 -700 50 H I C CNN
|
||||||
|
F3 "" 0 50 50 H I C CNN
|
||||||
|
ALIAS MAX483E MAX485E MAX487E MAX1487E MAX3485 MAX3483 MAX3486
|
||||||
|
$FPLIST
|
||||||
|
DIP*W7.62mm*
|
||||||
|
SOIC*3.9x4.9mm*P1.27mm*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
C -12 -145 14 0 1 10 F
|
||||||
|
C -1 59 14 0 1 10 F
|
||||||
|
C 65 75 14 0 1 10 F
|
||||||
|
S -300 400 300 -500 0 1 10 f
|
||||||
|
S 50 125 50 125 0 1 0 N
|
||||||
|
P 2 0 1 10 -160 -200 -75 -200 N
|
||||||
|
P 2 0 1 10 -160 100 -50 100 N
|
||||||
|
P 2 0 1 10 -50 -126 -50 -136 N
|
||||||
|
P 2 0 1 10 -25 -200 210 -200 N
|
||||||
|
P 3 0 1 10 -160 -100 -50 -100 -50 -125 N
|
||||||
|
P 3 0 1 10 0 50 0 0 -160 0 N
|
||||||
|
P 3 0 1 10 50 125 150 125 150 -200 N
|
||||||
|
P 3 0 1 10 100 75 100 -150 0 -150 N
|
||||||
|
P 4 0 1 10 -75 -125 -75 -225 25 -175 -75 -125 N
|
||||||
|
P 4 0 1 10 -50 100 50 150 50 50 -50 100 N
|
||||||
|
P 4 0 1 10 75 75 175 75 175 100 210 100 N
|
||||||
|
X RO 1 -400 100 100 R 50 50 1 1 O
|
||||||
|
X ~RE 2 -400 0 100 R 50 50 1 1 I
|
||||||
|
X DE 3 -400 -100 100 R 50 50 1 1 I
|
||||||
|
X DI 4 -400 -200 100 R 50 50 1 1 I
|
||||||
|
X GND 5 0 -600 100 U 50 50 1 1 W
|
||||||
|
X A 6 400 -200 100 L 50 50 1 1 B
|
||||||
|
X B 7 400 100 100 L 50 50 1 1 B
|
||||||
|
X VCC 8 0 500 100 D 50 50 1 1 W
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
#End Library
|
29
Hardware/kicad/pca9306.lib
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
EESchema-LIBRARY Version 2.4
|
||||||
|
#encoding utf-8
|
||||||
|
#
|
||||||
|
# PCA9306
|
||||||
|
#
|
||||||
|
DEF PCA9306 U 0 40 Y Y 1 F N
|
||||||
|
F0 "U" -300 450 50 H V L CNN
|
||||||
|
F1 "PCA9306" 200 450 50 H V L CNN
|
||||||
|
F2 "" -400 350 50 H I C CNN
|
||||||
|
F3 "" -300 450 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
SSOP*2.95x2.8mm*P0.65mm*
|
||||||
|
VSSOP*2.3x2mm*P0.5mm*
|
||||||
|
X2SON*1.4x1mm*P0.35mm*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
S -300 400 300 -400 0 1 10 f
|
||||||
|
X GND 1 0 -500 100 U 50 50 1 1 W
|
||||||
|
X VREF1 2 -100 500 100 D 50 50 1 1 W
|
||||||
|
X SCL1 3 -400 -100 100 R 50 50 1 1 B
|
||||||
|
X SDA1 4 -400 0 100 R 50 50 1 1 B
|
||||||
|
X SDA2 5 400 0 100 L 50 50 1 1 B
|
||||||
|
X SCL2 6 400 -100 100 L 50 50 1 1 B
|
||||||
|
X VREF2 7 100 500 100 D 50 50 1 1 W
|
||||||
|
X EN 8 400 100 100 L 50 50 1 1 I
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
#End Library
|
1
LICENSE
Normal file
@ -0,0 +1 @@
|
|||||||
|
This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
|
23
platformio.ini
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#
|
||||||
|
# Project Configuration File
|
||||||
|
#
|
||||||
|
# A detailed documentation with the EXAMPLES is located here:
|
||||||
|
# http://docs.platformio.org/en/latest/projectconf.html
|
||||||
|
#
|
||||||
|
|
||||||
|
# A sign `#` at the beginning of the line indicates a comment
|
||||||
|
# Comment lines are ignored.
|
||||||
|
|
||||||
|
# Simple and base environment
|
||||||
|
# [env:mybaseenv]
|
||||||
|
# platform = %INSTALLED_PLATFORM_NAME_HERE%
|
||||||
|
# framework =
|
||||||
|
# board =
|
||||||
|
#
|
||||||
|
# Automatic targets - enable auto-uploading
|
||||||
|
# targets = upload
|
||||||
|
|
||||||
|
[env:teensy31]
|
||||||
|
platform = teensy
|
||||||
|
framework = arduino
|
||||||
|
board = teensy31
|
135
src/CANNode.cpp
@ -1,11 +1,11 @@
|
|||||||
#include <Arduino.h>
|
// #include <Arduino.h>
|
||||||
|
|
||||||
// -------------------------------------------------------------
|
// -------------------------------------------------------------
|
||||||
// CANNode for Teensy 3.1/3.2
|
// CANNode for Teensy 3.1/3.2
|
||||||
// GPLv2
|
// GPLv2
|
||||||
// by wiebel (c) 2015-2018
|
// by wiebel (c) 2015-2018
|
||||||
// github_push_test_01
|
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
#include <Metro.h>
|
#include <Metro.h>
|
||||||
#include <FlexCAN.h>
|
#include <FlexCAN.h>
|
||||||
#include <OneWire.h>
|
#include <OneWire.h>
|
||||||
@ -13,7 +13,9 @@
|
|||||||
|
|
||||||
// For Node definition:
|
// For Node definition:
|
||||||
|
|
||||||
#include "Node_2_def.h"
|
//#include "Node_1_def.h" // Dachstuhl
|
||||||
|
#include "Node_2_def.h" // Werkstatt
|
||||||
|
//#include "Node_3_def.h" // Keller
|
||||||
|
|
||||||
// Metro ticks in ms
|
// Metro ticks in ms
|
||||||
#define METRO_CAN_tick 1
|
#define METRO_CAN_tick 1
|
||||||
@ -63,13 +65,15 @@ FlexCAN CANbus(CAN_speed);
|
|||||||
// FLEXCAN0_MCR &= ~FLEXCAN_MCR_SRX_DIS;
|
// FLEXCAN0_MCR &= ~FLEXCAN_MCR_SRX_DIS;
|
||||||
// OneWire
|
// OneWire
|
||||||
uint8_t addr[8];
|
uint8_t addr[8];
|
||||||
|
uint8_t data[8];
|
||||||
uint8_t buffer[DS2406_BUF_LEN];
|
uint8_t buffer[DS2406_BUF_LEN];
|
||||||
uint8_t readout,trig_event,event_idx,tmp;
|
uint8_t readout,recheck,trig_event,event_idx,tmp;
|
||||||
OneWire OW_1(OW_pin);
|
OneWire OW_1(OW_pin);
|
||||||
|
|
||||||
telegram_comp_t mesg_comp;
|
telegram_comp_t mesg_comp;
|
||||||
|
|
||||||
static CAN_message_t txmsg,rxmsg;
|
static CAN_message_t global_txmsg,rxmsg;
|
||||||
|
CAN_message_t txmsg;
|
||||||
static uint8_t hex[17] = "0123456789abcdef";
|
static uint8_t hex[17] = "0123456789abcdef";
|
||||||
|
|
||||||
int txCount,rxCount;
|
int txCount,rxCount;
|
||||||
@ -121,10 +125,39 @@ uint8_t toggle_Pin(uint8_t pin){
|
|||||||
return digitalRead(pin);
|
return digitalRead(pin);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t forgeid(event_t event){
|
uint32_t event2id(event_t event){
|
||||||
return (event.prio<<26)+(event.dst<<16)+(NODE_ID<<8)+event.cmd;
|
return (event.prio<<26)+(event.dst<<16)+(NODE_ID<<8)+event.cmd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint32_t forgeid(uint8_t prio, uint8_t dst, uint8_t cmd, uint8_t type=0){
|
||||||
|
// CMD:
|
||||||
|
// Type: 0: SINGLE, 1: FIRST, 2: CONT, 3: LAST
|
||||||
|
return (prio<<26)+(type<<24)+(dst<<16)+(NODE_ID<<8)+cmd;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CAN_send(uint8_t prio, uint8_t dst, uint8_t cmd, uint8_t* data, uint8_t data_size, uint8_t type=0){
|
||||||
|
txmsg.ext = 1;
|
||||||
|
txmsg.timeout = 100;
|
||||||
|
txmsg.id = forgeid(prio, dst, cmd, type);
|
||||||
|
txmsg.len = data_size;
|
||||||
|
for (uint8_t i = 0; i < txmsg.len; i++) { txmsg.buf[i] = data[i]; }
|
||||||
|
return CANbus.write(txmsg);
|
||||||
|
// txmsg.buf[0]++;
|
||||||
|
// txmsg.len = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CAN_send(uint8_t prio, uint8_t dst, uint8_t cmd, uint8_t data, uint8_t type=0){
|
||||||
|
txmsg.ext = 1;
|
||||||
|
txmsg.timeout = 100;
|
||||||
|
txmsg.id = forgeid(prio, dst, cmd, type);
|
||||||
|
txmsg.len = 1;
|
||||||
|
txmsg.buf[0] = data;
|
||||||
|
return CANbus.write(txmsg);
|
||||||
|
// txmsg.buf[0]++;
|
||||||
|
// txmsg.len = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
telegram_comp_t parse_CAN(CAN_message_t mesg){
|
telegram_comp_t parse_CAN(CAN_message_t mesg){
|
||||||
telegram_comp_t tmp;
|
telegram_comp_t tmp;
|
||||||
tmp.prio=mesg.id>>26;
|
tmp.prio=mesg.id>>26;
|
||||||
@ -142,21 +175,25 @@ void send_event (uint8_t trig_event){
|
|||||||
|
|
||||||
for (uint8_t e_idx = 0; tx_events[e_idx].tag != 0; e_idx++)
|
for (uint8_t e_idx = 0; tx_events[e_idx].tag != 0; e_idx++)
|
||||||
if ( tx_events[e_idx].tag == trig_event ) {
|
if ( tx_events[e_idx].tag == trig_event ) {
|
||||||
txmsg.id = forgeid(tx_events[e_idx]);
|
txmsg.ext = 1;
|
||||||
|
txmsg.timeout = 100;
|
||||||
|
txmsg.id = event2id(tx_events[e_idx]);
|
||||||
txmsg.len = 1;
|
txmsg.len = 1;
|
||||||
// txmsg.timeout = 100;
|
|
||||||
txmsg.buf[0]= tx_events[e_idx].data;
|
txmsg.buf[0]= tx_events[e_idx].data;
|
||||||
CANbus.write(txmsg);
|
CANbus.write(txmsg);
|
||||||
Serial.print(F("Sending to CAN ID: "));
|
Serial.print(F("Sending to CAN ID: "));
|
||||||
Serial.print(txmsg.id);
|
Serial.print(txmsg.id);
|
||||||
Serial.print(F("DATA: "));
|
Serial.print(F("DATA: "));
|
||||||
Serial.println(txmsg.buf[0]);
|
Serial.println(txmsg.buf[0]);
|
||||||
txmsg.len = 0;
|
// txmsg.buf[0]++;
|
||||||
|
// txmsg.len = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void take_action (action_type type, uint8_t tag ){
|
|
||||||
|
void take_action (cmd_type type, uint8_t tag ){
|
||||||
for (uint8_t i = 0; action_map[i].tag != 0 ; i++) {
|
for (uint8_t i = 0; action_map[i].tag != 0 ; i++) {
|
||||||
if ( action_map[i].tag == tag ) {
|
if ( action_map[i].tag == tag ) {
|
||||||
|
bool old_state = digitalRead(outputs[action_map[i].outputs_idx].address);
|
||||||
switch ( type ) {
|
switch ( type ) {
|
||||||
case OFF:
|
case OFF:
|
||||||
digitalWrite(outputs[action_map[i].outputs_idx].address,LOW ^ outputs[action_map[i].outputs_idx].invert);
|
digitalWrite(outputs[action_map[i].outputs_idx].address,LOW ^ outputs[action_map[i].outputs_idx].invert);
|
||||||
@ -179,6 +216,19 @@ for (uint8_t i = 0; action_map[i].tag != 0 ; i++) {
|
|||||||
Serial.println(F("TBD"));
|
Serial.println(F("TBD"));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
bool new_state = digitalRead(outputs[action_map[i].outputs_idx].address);
|
||||||
|
if ( old_state == new_state) {
|
||||||
|
data[0]=action_map[i].outputs_idx;
|
||||||
|
data[1]=new_state ^ outputs[action_map[i].outputs_idx].invert;
|
||||||
|
Serial.println(F("Sending nochange to CAN"));
|
||||||
|
CAN_send(NOTIFY, 0x0, STATE_OUT, data, 2);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
data[0]=action_map[i].outputs_idx;
|
||||||
|
data[1]=new_state ^ outputs[action_map[i].outputs_idx].invert;
|
||||||
|
Serial.println(F("Sending change to CAN"));
|
||||||
|
CAN_send(NOTIFY, 0x0, NEWSTATE_OUT, data, 2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -196,8 +246,6 @@ void setup(void)
|
|||||||
pinMode(CAN_RS_PIN,OUTPUT);
|
pinMode(CAN_RS_PIN,OUTPUT);
|
||||||
digitalWrite(CAN_RS_PIN,0);
|
digitalWrite(CAN_RS_PIN,0);
|
||||||
CANbus.begin();
|
CANbus.begin();
|
||||||
txmsg.ext = 1;
|
|
||||||
txmsg.timeout = 100;
|
|
||||||
|
|
||||||
// outputs
|
// outputs
|
||||||
for (size_t i = 0; outputs[i].type != NOP; i++) {
|
for (size_t i = 0; outputs[i].type != NOP; i++) {
|
||||||
@ -252,11 +300,12 @@ void loop(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (new_owd) {
|
if (new_owd) {
|
||||||
|
// send new ID to all
|
||||||
Serial.print("Found a device: ");
|
Serial.print("Found a device: ");
|
||||||
print_OW_Device(addr);
|
print_OW_Device(addr);
|
||||||
Serial.println();
|
Serial.println();
|
||||||
|
CAN_send(NOTIFY, 0x0, NEW_TWID, addr, sizeof(addr));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (METRO_OW_read.check() ) {
|
if (METRO_OW_read.check() ) {
|
||||||
@ -280,19 +329,29 @@ void loop(void)
|
|||||||
}
|
}
|
||||||
// if ((switches_state[s_idx] != readout) && (readout != 255 )) {
|
// if ((switches_state[s_idx] != readout) && (readout != 255 )) {
|
||||||
if (switches_state[s_idx] != readout) {
|
if (switches_state[s_idx] != readout) {
|
||||||
tmp = readout ^ switches_state[s_idx];
|
delay(1);
|
||||||
switches_state[s_idx] = readout;
|
recheck = read_DS2406(switches[s_idx].addr);
|
||||||
action[0] = tmp & 0x08;
|
if (readout == recheck) {
|
||||||
action[1] = tmp & 0x04;
|
tmp = readout ^ switches_state[s_idx];
|
||||||
|
switches_state[s_idx] = readout;
|
||||||
|
action[0] = tmp & 0x08;
|
||||||
|
action[1] = tmp & 0x04;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (action[0]) {
|
if (action[0]) {
|
||||||
Serial.print("pioA of switch ");
|
Serial.print("pioA of switch ");
|
||||||
Serial.print(switches[s_idx].nick);
|
Serial.print(switches[s_idx].nick);
|
||||||
if (readout & 0x08) {
|
if (readout & 0x08) {
|
||||||
Serial.println(F(" is now OFF"));
|
Serial.println(F(" is now OFF"));
|
||||||
|
data[0]=switches[s_idx].nick;
|
||||||
|
data[1]=0;
|
||||||
|
CAN_send(NOTIFY, 0x0, STATE_IN, data, 2);
|
||||||
send_event(switches[s_idx].event_tag[0]);
|
send_event(switches[s_idx].event_tag[0]);
|
||||||
} else {
|
} else {
|
||||||
Serial.println(F(" is now ON"));
|
Serial.println(F(" is now ON"));
|
||||||
|
data[0]=switches[s_idx].nick;
|
||||||
|
data[1]=1;
|
||||||
|
CAN_send(NOTIFY, 0x0, STATE_IN, data, 2);
|
||||||
send_event(switches[s_idx].event_tag[1]);
|
send_event(switches[s_idx].event_tag[1]);
|
||||||
}
|
}
|
||||||
action[0] = 0;
|
action[0] = 0;
|
||||||
@ -302,9 +361,15 @@ void loop(void)
|
|||||||
Serial.print(switches[s_idx].nick);
|
Serial.print(switches[s_idx].nick);
|
||||||
if (readout & 0x04) {
|
if (readout & 0x04) {
|
||||||
Serial.println(F(" is now OFF"));
|
Serial.println(F(" is now OFF"));
|
||||||
|
data[0]=switches[s_idx].nick;
|
||||||
|
data[1]=2;
|
||||||
|
CAN_send(NOTIFY, 0x0, STATE_IN, data, 2);
|
||||||
send_event(switches[s_idx].event_tag[2]);
|
send_event(switches[s_idx].event_tag[2]);
|
||||||
} else {
|
} else {
|
||||||
Serial.println(F(" is now ON"));
|
Serial.println(F(" is now ON"));
|
||||||
|
data[0]=switches[s_idx].nick;
|
||||||
|
data[1]=3;
|
||||||
|
CAN_send(NOTIFY, 0x0, STATE_IN, data, 2);
|
||||||
send_event(switches[s_idx].event_tag[3]);
|
send_event(switches[s_idx].event_tag[3]);
|
||||||
}
|
}
|
||||||
action[1] = 0;
|
action[1] = 0;
|
||||||
@ -353,18 +418,18 @@ void loop(void)
|
|||||||
}
|
}
|
||||||
rxCount = 0;
|
rxCount = 0;
|
||||||
}
|
}
|
||||||
txTimer = 100;//milliseconds
|
// txTimer = 10;//milliseconds
|
||||||
if (txmsg.len != 0){
|
// if (txmsg.len != 0){
|
||||||
Serial.print("PUT=");
|
// Serial.print("PUT=");
|
||||||
Serial.print(txmsg.id,HEX);
|
// Serial.print(txmsg.id,HEX);
|
||||||
for (uint8_t i=0; i<txmsg.len; i++){
|
// for (uint8_t i=0; i<txmsg.len; i++){
|
||||||
Serial.print(":");
|
// Serial.print(":");
|
||||||
Serial.print(txmsg.buf[i],HEX);
|
// Serial.print(txmsg.buf[i],HEX);
|
||||||
}
|
// }
|
||||||
Serial.print("\n");
|
// Serial.print("\n");
|
||||||
CANbus.write(txmsg);
|
// CANbus.write(txmsg);
|
||||||
txmsg.buf[0]++;
|
// txmsg.buf[0]++;
|
||||||
txmsg.len = 0;
|
// txmsg.len = 0;
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
enum out_type { GPIO, PWM, OW, I2C, SPI, WS2811, DMX, NOP };
|
enum out_type { GPIO, PWM, OW, I2C, SPI, WS2811, DMX, NOP };
|
||||||
enum event_type { LOCAL, SEND};
|
enum event_type { LOCAL, SEND};
|
||||||
|
|
||||||
enum action_type { OFF, ON, VALUE, TOGGLE };
|
enum cmd_type { OFF, ON, VALUE, TOGGLE, STATE_OUT, STATE_IN, NEWSTATE_OUT, NEWSTATE_IN, BIN_DUMP, NEW_TWID };
|
||||||
enum telegram_type { ALERT, EVENT, NOTIFY, INFO };
|
enum telegram_prio { ALERT, EVENT, NOTIFY, INFO };
|
||||||
|
|
||||||
typedef struct CAN_telegram_t {
|
typedef struct CAN_telegram_t {
|
||||||
uint32_t id;
|
uint32_t id;
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
static uint8_t node_id PROGMEM= { NODE_ID };
|
static uint8_t node_id PROGMEM= { NODE_ID };
|
||||||
static OW_switch_t switches[N_SWITCHES] PROGMEM={
|
static OW_switch_t switches[N_SWITCHES] PROGMEM={
|
||||||
// nick, addr[8], event_tag[sw1, sw2]
|
// nick, addr[8], event_tag[sw1, sw2]
|
||||||
{ 255, { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, { 0, 0, 0, 0 } },
|
// { 255, { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, { 0, 0, 0, 0 } },
|
||||||
{ 201, { 0x12, 0x5b, 0x27, 0x50, 0x0, 0x0, 0x0, 0x26 }, { 1, 11, 2, 12 } }, // Flur -> Bad
|
{ 201, { 0x12, 0x5b, 0x27, 0x50, 0x0, 0x0, 0x0, 0x26 }, { 1, 11, 2, 12 } }, // Flur -> Bad
|
||||||
{ 202, { 0x12, 0xF7, 0x95, 0x4F, 0x0, 0x0, 0x0, 0x69 }, { 9, 9, 7, 7 } }, // Treppe Unten
|
{ 202, { 0x12, 0xF7, 0x95, 0x4F, 0x0, 0x0, 0x0, 0x69 }, { 9, 9, 7, 7 } }, // Treppe Unten
|
||||||
// { 203, { 0x12, 0x68, 0x31, 0x67, 0x0, 0x0, 0x0, 0xBC }, { 5, 6 } },
|
// { 203, { 0x12, 0x68, 0x31, 0x67, 0x0, 0x0, 0x0, 0xBC }, { 5, 6 } },
|
||||||
@ -40,7 +40,7 @@ static OW_switch_t switches[N_SWITCHES] PROGMEM={
|
|||||||
{ 011, { 0x12, 0x9A, 0x94, 0x4F, 0x0, 0x0, 0x0, 0x2D }, { 6, 6, 255, 254 } }, // Bjarne
|
{ 011, { 0x12, 0x9A, 0x94, 0x4F, 0x0, 0x0, 0x0, 0x2D }, { 6, 6, 255, 254 } }, // Bjarne
|
||||||
{ 012, { 0x12, 0x2F, 0x98, 0x4F, 0x0, 0x0, 0x0, 0xE0 }, { 8, 8, 0, 0 } }, // SZ
|
{ 012, { 0x12, 0x2F, 0x98, 0x4F, 0x0, 0x0, 0x0, 0xE0 }, { 8, 8, 0, 0 } }, // SZ
|
||||||
{ 255, { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, { 0, 0, 0, 0 } },
|
{ 255, { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, { 0, 0, 0, 0 } },
|
||||||
{ 0, { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, { 0, 0, 0, 0 } }
|
{ 0, { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, { 0, 0, 0, 0 } } // END MARK
|
||||||
};
|
};
|
||||||
static uint8_t switches_state[N_SWITCHES];
|
static uint8_t switches_state[N_SWITCHES];
|
||||||
static outputs_t outputs[N_OUTPUTS] PROGMEM={
|
static outputs_t outputs[N_OUTPUTS] PROGMEM={
|
||||||
|
@ -29,11 +29,22 @@
|
|||||||
static uint8_t node_id PROGMEM= { NODE_ID };
|
static uint8_t node_id PROGMEM= { NODE_ID };
|
||||||
static OW_switch_t switches[N_SWITCHES] PROGMEM={
|
static OW_switch_t switches[N_SWITCHES] PROGMEM={
|
||||||
// nick, addr[8], event_tag[pioA_FALL, pioA_RISE, pioB_FALL, pioB_RISE]
|
// nick, addr[8], event_tag[pioA_FALL, pioA_RISE, pioB_FALL, pioB_RISE]
|
||||||
{ 255, { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, { 0, 0, 0, 0 } },
|
// { 255, { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, { 0, 0, 0, 0 } },
|
||||||
|
{ 11, { 0x12, 0xF2, 0x2A, 0x66, 0x0, 0x0, 0x0, 0x41 }, { 31, 31, 0, 0 } }, // EZ -> Flur
|
||||||
|
{ 12, { 0x12, 0x37, 0x8A, 0x4F, 0x0, 0x0, 0x0, 0xE5 }, { 32, 32, 32, 32 } }, // im keller TEST
|
||||||
|
{ 13, { 0x12, 0x71, 0x51, 0x57, 0x0, 0x0, 0x0, 0x28 }, { 32, 32, 0, 0 } }, // Küche Kühlschank
|
||||||
|
{ 14, { 0x12, 0x5e, 0xff, 0x55, 0x0, 0x0, 0x0, 0x2c }, { 32, 32, 33, 33 } }, // Küche Terasse
|
||||||
|
|
||||||
{ 21, { 0x12, 0x86, 0xB4, 0x54, 0x0, 0x0, 0x0, 0x5F }, { 23, 23, 37, 37 } }, // Flur
|
{ 21, { 0x12, 0x86, 0xB4, 0x54, 0x0, 0x0, 0x0, 0x5F }, { 23, 23, 37, 37 } }, // Flur
|
||||||
{ 22, { 0x12, 0xC7, 0x2F, 0xCF, 0x0, 0x0, 0x0, 0xAF }, { 22, 22, 21, 21 } }, // WZ
|
{ 22, { 0x12, 0xCE, 0x6E, 0xCA, 0x0, 0x0, 0x0, 0x9C }, { 22, 22, 21, 21 } }, // WZ
|
||||||
|
{ 23, { 0x12, 0x15, 0xD4, 0x86, 0x0, 0x0, 0x0, 0xA0 }, { 31, 31, 32, 32 } }, // EZ -> Küche
|
||||||
|
// { 22, { 0x12, 0xC7, 0x2F, 0xCF, 0x0, 0x0, 0x0, 0xAF }, { 22, 22, 21, 21 } }, // WZ
|
||||||
// { 22, { 0x12, 0x5E, 0xFF, 0x55, 0x0, 0x0, 0x0, 0x2C }, { 21, 21, 22, 22 } }, // WZ
|
// { 22, { 0x12, 0x5E, 0xFF, 0x55, 0x0, 0x0, 0x0, 0x2C }, { 21, 21, 22, 22 } }, // WZ
|
||||||
{ 0, { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, { 0, 0, 0, 0 } }
|
|
||||||
|
//{ 21, { 0x12, 0x86, 0xB4, 0x54, 0x0, 0x0, 0x0, 0x5F }, { 3, 3, 4, 4 } },
|
||||||
|
// { 31, { 0x12, 0x88, 0xDD, 0x53, 0x0, 0x0, 0x0, 0x28 }, { 210, 211, 220, 221 } }, // Rolladenschalter (A - UP, B - DOWN)
|
||||||
|
{ 31, { 0x12, 0x8F, 0xE2, 0x86 ,0x0, 0x0, 0x0, 0xC6}, { 220, 221, 210, 211 } }, // Rolladenschalter (A - UP, B - DOWN)
|
||||||
|
{ 0, { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, { 0, 0, 0, 0 } } // END MARK
|
||||||
};
|
};
|
||||||
static uint8_t switches_state[N_SWITCHES];
|
static uint8_t switches_state[N_SWITCHES];
|
||||||
static outputs_t outputs[N_OUTPUTS] PROGMEM={
|
static outputs_t outputs[N_OUTPUTS] PROGMEM={
|
||||||
@ -56,15 +67,22 @@ static uint8_t outputs_state[N_OUTPUTS];
|
|||||||
static event_t tx_events[N_EVENTS] PROGMEM={
|
static event_t tx_events[N_EVENTS] PROGMEM={
|
||||||
// | --- ID --- |
|
// | --- ID --- |
|
||||||
// tag, prio, dst, cmd, data
|
// tag, prio, dst, cmd, data
|
||||||
|
{ 13, 0x03, 0x01, TOGGLE, 0x03},
|
||||||
|
{ 14, 0x03, 0x01, TOGGLE, 0x04},
|
||||||
|
{ 15, 0x03, 0x01, TOGGLE, 0x05},
|
||||||
|
{ 16, 0x03, 0x01, TOGGLE, 0x06},
|
||||||
|
{ 18, 0x03, 0x01, TOGGLE, 0x08},
|
||||||
{ 21, 0x03, 0x02, TOGGLE, 0x01},
|
{ 21, 0x03, 0x02, TOGGLE, 0x01},
|
||||||
{ 22, 0x03, 0x02, TOGGLE, 0x02},
|
{ 22, 0x03, 0x02, TOGGLE, 0x02},
|
||||||
{ 23, 0x03, 0x02, TOGGLE, 0x03},
|
{ 23, 0x03, 0x02, TOGGLE, 0x03},
|
||||||
{ 13, 0x03, 0x01, TOGGLE, 0x03},
|
{ 31, 0x03, 0x03, TOGGLE, 0x01},
|
||||||
{ 14, 0x03, 0x01, TOGGLE, 0x04},
|
{ 32, 0x03, 0x03, TOGGLE, 0x02},
|
||||||
{ 5, 0x03, 0x01, TOGGLE, 0x05},
|
{ 33, 0x03, 0x03, TOGGLE, 0x03},
|
||||||
{ 6, 0x03, 0x01, TOGGLE, 0x06},
|
{ 34, 0x03, 0x03, TOGGLE, 0x04},
|
||||||
|
{ 35, 0x03, 0x03, TOGGLE, 0x05},
|
||||||
|
{ 36, 0x03, 0x03, TOGGLE, 0x06},
|
||||||
{ 37, 0x03, 0x03, TOGGLE, 0x07},
|
{ 37, 0x03, 0x03, TOGGLE, 0x07},
|
||||||
{ 8, 0x03, 0x01, TOGGLE, 0x08},
|
{ 38, 0x03, 0x03, TOGGLE, 0x08},
|
||||||
{ 11, 0x03, 0x01, ON, 0x01},
|
{ 11, 0x03, 0x01, ON, 0x01},
|
||||||
{ 12, 0x03, 0x01, ON, 0x02},
|
{ 12, 0x03, 0x01, ON, 0x02},
|
||||||
{ 210, 0x03, 0xff, OFF, 0x06},
|
{ 210, 0x03, 0xff, OFF, 0x06},
|
||||||
|
@ -13,14 +13,14 @@
|
|||||||
#define DEBUG 0 // 1 for noisy serial
|
#define DEBUG 0 // 1 for noisy serial
|
||||||
#define LED 13
|
#define LED 13
|
||||||
|
|
||||||
#define RELAY1 0
|
#define RELAY1 0 // EZ
|
||||||
#define RELAY2 1
|
#define RELAY2 1 // Küche
|
||||||
#define RELAY3 23
|
#define RELAY3 23 // Terrasse
|
||||||
#define RELAY4 22
|
#define RELAY4 22 // RO_Garten
|
||||||
#define RELAY5 17
|
#define RELAY5 17 // RO_Garten
|
||||||
#define RELAY6 16
|
#define RELAY6 16 //
|
||||||
#define RELAY7 9
|
#define RELAY7 19 // EG Flur
|
||||||
#define RELAY8 10
|
#define RELAY8 18 //
|
||||||
|
|
||||||
// OneWire
|
// OneWire
|
||||||
#define OW_pin 14
|
#define OW_pin 14
|
||||||
@ -32,26 +32,24 @@ static OW_switch_t switches[N_SWITCHES] PROGMEM={
|
|||||||
{ 11, { 0x12, 0xF2, 0x2A, 0x66, 0x0, 0x0, 0x0, 0x41 }, { 1, 1, 0, 0 } }, // EZ -> Flur
|
{ 11, { 0x12, 0xF2, 0x2A, 0x66, 0x0, 0x0, 0x0, 0x41 }, { 1, 1, 0, 0 } }, // EZ -> Flur
|
||||||
{ 12, { 0x12, 0x37, 0x8A, 0x4F, 0x0, 0x0, 0x0, 0xE5 }, { 2, 2, 2, 2 } }, // im keller TEST
|
{ 12, { 0x12, 0x37, 0x8A, 0x4F, 0x0, 0x0, 0x0, 0xE5 }, { 2, 2, 2, 2 } }, // im keller TEST
|
||||||
{ 13, { 0x12, 0x71, 0x51, 0x57, 0x0, 0x0, 0x0, 0x28 }, { 2, 2, 0, 0 } }, // Küche Kühlschank
|
{ 13, { 0x12, 0x71, 0x51, 0x57, 0x0, 0x0, 0x0, 0x28 }, { 2, 2, 0, 0 } }, // Küche Kühlschank
|
||||||
|
{ 14, { 0x12, 0x5e, 0xff, 0x55, 0x0, 0x0, 0x0, 0x2c }, { 2, 2, 3, 3 } }, // Küche Terasse
|
||||||
//{ 21, { 0x12, 0x86, 0xB4, 0x54, 0x0, 0x0, 0x0, 0x5F }, { 3, 3, 4, 4 } },
|
//{ 21, { 0x12, 0x86, 0xB4, 0x54, 0x0, 0x0, 0x0, 0x5F }, { 3, 3, 4, 4 } },
|
||||||
{ 22, { 0x12, 0x84, 0xAD, 0x4F, 0x0, 0x0, 0x0, 0x12 }, { 1, 1, 2, 2 } }, // EZ -> Küche
|
{ 22, { 0x12, 0x84, 0xAD, 0x4F, 0x0, 0x0, 0x0, 0x12 }, { 1, 1, 2, 2 } }, // EZ -> Küche
|
||||||
// { 31, { 0x12, 0x88, 0xDD, 0x53, 0x0, 0x0, 0x0, 0x28 }, { 210, 211, 220, 221 } }, // Roldenschalter (A - UP, B - DOWN)
|
// { 31, { 0x12, 0x88, 0xDD, 0x53, 0x0, 0x0, 0x0, 0x28 }, { 210, 211, 220, 221 } }, // Rolladenschalter (A - UP, B - DOWN)
|
||||||
|
{ 31, { 0x12, 0x8F, 0xE2, 0x86 ,0x0, 0x0, 0x0, 0xC6}, { 220, 221, 210, 211 } }, // Rolladenschalter (A - UP, B - DOWN)
|
||||||
|
{ 0, { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, { 0, 0, 0, 0 } } // END MARK
|
||||||
};
|
};
|
||||||
static uint8_t switches_state[N_SWITCHES];
|
static uint8_t switches_state[N_SWITCHES];
|
||||||
static outputs_t outputs[N_OUTPUTS] PROGMEM={
|
static outputs_t outputs[N_OUTPUTS] PROGMEM={
|
||||||
// type, address(PIN), initial value, inverted
|
// type, address(PIN), initial value, inverted
|
||||||
{ GPIO, 0, 0, true }, // 0
|
{ GPIO, RELAY1, 0, true },
|
||||||
{ GPIO, 1, 0, true }, // 1
|
{ GPIO, RELAY2, 0, true },
|
||||||
{ GPIO, 23, 0, true }, // 2
|
{ GPIO, RELAY3, 0, true },
|
||||||
{ GPIO, 22, 0, true }, // 3
|
{ GPIO, RELAY4, 0, true },
|
||||||
{ GPIO, 17, 0, true }, // 4
|
{ GPIO, RELAY5, 0, true },
|
||||||
{ GPIO, 16, 0, true }, // 5
|
{ GPIO, RELAY6, 0, true },
|
||||||
<<<<<<< HEAD
|
{ GPIO, RELAY7, 0, true },
|
||||||
{ GPIO, 9, 255, true }, // 6
|
{ GPIO, RELAY8, 0, true },
|
||||||
{ GPIO, 10, 0, true }, // 7
|
|
||||||
=======
|
|
||||||
{ GPIO, 19, 0, true }, // 6
|
|
||||||
{ GPIO, 18, 0, true }, // 7
|
|
||||||
>>>>>>> led
|
|
||||||
{ NOP, 0xFF, 0, 0 }
|
{ NOP, 0xFF, 0, 0 }
|
||||||
};
|
};
|
||||||
static uint8_t outputs_state[N_OUTPUTS];
|
static uint8_t outputs_state[N_OUTPUTS];
|
||||||
@ -72,10 +70,10 @@ static event_t tx_events[N_EVENTS] PROGMEM={
|
|||||||
{ 8, 0x03, 0x03, TOGGLE, 0x08},
|
{ 8, 0x03, 0x03, TOGGLE, 0x08},
|
||||||
{ 11, 0x03, 0x01, ON, 0x01},
|
{ 11, 0x03, 0x01, ON, 0x01},
|
||||||
{ 12, 0x03, 0x01, ON, 0x02},
|
{ 12, 0x03, 0x01, ON, 0x02},
|
||||||
{ 210, 0x03, 0xff, OFF, 0x06},
|
{ 210, 0x03, 0x03, OFF, 0x04},
|
||||||
{ 211, 0x03, 0xff, ON, 0x06},
|
{ 211, 0x03, 0x03, ON, 0x04},
|
||||||
{ 220, 0x03, 0xff, OFF, 0x07},
|
{ 220, 0x03, 0x03, OFF, 0x05},
|
||||||
{ 221, 0x03, 0xff, ON, 0x07},
|
{ 221, 0x03, 0x03, ON, 0x05},
|
||||||
{ 255, 0x03, 0xff, OFF, 0x09},
|
{ 255, 0x03, 0xff, OFF, 0x09},
|
||||||
{ 254, 0x03, 0xff, ON, 0x09},
|
{ 254, 0x03, 0xff, ON, 0x09},
|
||||||
{ 10, 0x03, 0xff, TOGGLE, 0x01},
|
{ 10, 0x03, 0xff, TOGGLE, 0x01},
|
||||||
@ -95,13 +93,13 @@ static event_t tx_events[N_EVENTS] PROGMEM={
|
|||||||
|
|
||||||
static action_t action_map[N_ACTIONS] PROGMEM={
|
static action_t action_map[N_ACTIONS] PROGMEM={
|
||||||
// tag, output_idx
|
// tag, output_idx
|
||||||
{1, 0},
|
{1, 0}, // EZ
|
||||||
{2, 1},
|
{2, 1}, // Küche
|
||||||
{3, 2},
|
{3, 2}, // Terrasse
|
||||||
{4, 3},
|
{4, 3}, // RO_Garten
|
||||||
{5, 4},
|
{5, 4}, // RO_Garten
|
||||||
{6, 5},
|
{6, 5},
|
||||||
{7, 6},
|
{7, 6}, // EG_Flur
|
||||||
{8, 7},
|
{8, 7},
|
||||||
{9, 0},{9, 1},{9, 2},{9, 3},{9, 4},{9, 5},{9, 6},{9, 7},
|
{9, 0},{9, 1},{9, 2},{9, 3},{9, 4},{9, 5},{9, 6},{9, 7},
|
||||||
{210, 210},
|
{210, 210},
|
||||||
|
109
tools/can2coil.py
Executable file
@ -0,0 +1,109 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
from __future__ import absolute_import, print_function
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import argparse
|
||||||
|
import socket
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
import can
|
||||||
|
from can import Bus, BusState, Logger
|
||||||
|
|
||||||
|
import paho.mqtt.client as mqtt
|
||||||
|
|
||||||
|
sub_topic = "coil"
|
||||||
|
coil_map = {
|
||||||
|
'EZ': [ 0x03, 0x01 ],
|
||||||
|
'K': [ 0x03, 0x02 ],
|
||||||
|
'WZ1': [ 0x02, 0x01 ],
|
||||||
|
'WZ2': [ 0x02, 0x02 ],
|
||||||
|
'TER': [ 0x03, 0x03 ],
|
||||||
|
'FE': [ 0x03, 0x07 ],
|
||||||
|
'TRE': [ 0x02, 0x03 ],
|
||||||
|
'FO': [ 0x01, 0x03 ],
|
||||||
|
'TRO': [ 0x01, 0x07 ],
|
||||||
|
'KI1': [ 0x01, 0x06 ],
|
||||||
|
'KI2': [ 0x01, 0x04 ],
|
||||||
|
'SCH': [ 0x01, 0x08 ],
|
||||||
|
'B1': [ 0x01, 0x01 ],
|
||||||
|
'B2': [ 0x01, 0x02 ],
|
||||||
|
'ROL_EZ_G_DOWN': [0x03, 0x05],
|
||||||
|
'ROL_EZ_G_UP': [0x03,0x04],
|
||||||
|
'ROL_EZ_N_DOWN': [0x03, 0x06],
|
||||||
|
'ROL_EZ_N_UP': [0x03,0x08],
|
||||||
|
'EG1': [ 0x02, 0x09 ],
|
||||||
|
'EG2': [ 0x03, 0x09 ],
|
||||||
|
'OG': [ 0x01, 0x09 ],
|
||||||
|
'ALL': [ 0xFF, 0x09 ],
|
||||||
|
}
|
||||||
|
|
||||||
|
cmd_map = {
|
||||||
|
'off': 0,
|
||||||
|
'0': 0,
|
||||||
|
'on': 1,
|
||||||
|
'1': 1,
|
||||||
|
'value': 2,
|
||||||
|
'toggle': 3
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def decon(msg_id):
|
||||||
|
msg_prio=msg_id>>26
|
||||||
|
msg_type=(msg_id>>24) & 0x03
|
||||||
|
msg_dst=(msg_id>>16) & 0xFF
|
||||||
|
msg_src=(msg_id>>8) & 0xFF
|
||||||
|
msg_cmd=msg_id & 0xFF
|
||||||
|
# print("msg_id: ", hex(msg_id), "prio: ", hex(msg_prio),"type: ", hex(msg_type)," dst: ", hex(msg_dst)," src: ", hex(msg_src)," cmd: ",hex(msg_cmd))
|
||||||
|
return [msg_prio, msg_type, msg_dst, msg_src, msg_cmd]
|
||||||
|
|
||||||
|
def con(msg_dst,msg_cmd,msg_prio=3,msg_type=0,msg_src=11, ):
|
||||||
|
msg_id=(msg_prio<<26) + \
|
||||||
|
((msg_type&0x03)<<24) +\
|
||||||
|
((msg_dst&0xFF)<<16) +\
|
||||||
|
((msg_src&0xFF)<<8) +\
|
||||||
|
(msg_cmd&0xFF)
|
||||||
|
print("Constructed ID: "+hex(msg_id))
|
||||||
|
return msg_id
|
||||||
|
|
||||||
|
def on_connect(mcp_mqtt, userdata, flags, rc):
|
||||||
|
print("Connected with result code "+str(rc))
|
||||||
|
mcp_mqtt.subscribe(sub_topic+"/+")
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
can_filters = []
|
||||||
|
config = {"can_filters": can_filters, "single_handle": True}
|
||||||
|
config["interface"] = "socketcan_native"
|
||||||
|
config["bitrate"] = 125000
|
||||||
|
canbus = can.Bus("can1", **config)
|
||||||
|
# canBuffer= canbus.BufferedReader()
|
||||||
|
print('Connected to {}: {}'.format(canbus.__class__.__name__, canbus.channel_info))
|
||||||
|
print('Can Logger (Started on {})\n'.format(datetime.now()))
|
||||||
|
|
||||||
|
mcp_mqtt = mqtt.Client()
|
||||||
|
mcp_mqtt.on_connect = on_connect
|
||||||
|
mcp_mqtt.user_data_set(canbus)
|
||||||
|
mcp_mqtt.connect("mcp", 1883, 60)
|
||||||
|
|
||||||
|
mcp_mqtt.publish("coil/welcome", "1" , retain=0)
|
||||||
|
try:
|
||||||
|
while True:
|
||||||
|
msg = canbus.recv(1)
|
||||||
|
# msg = canBuffer.get_message()
|
||||||
|
if msg is not None:
|
||||||
|
de=decon(msg.arbitration_id)
|
||||||
|
m= { "prio": hex(de[0]), "type": hex(de[1]), "dst": hex(de[2]), "src": hex(de[3]), "cmd": hex(de[4]), "action": hex(msg.data[0]) }
|
||||||
|
if de[2]==0 and de[4] == 6:
|
||||||
|
print("received state: ", hex(de[3]), hex(msg.data[0]), hex(msg.data[1]))
|
||||||
|
for key, address in coil_map.items():
|
||||||
|
if address[0] == de[3] and address[1] == msg.data[0]+1:
|
||||||
|
print("coil/"+key+" changed to "+str(msg.data[1]))
|
||||||
|
mcp_mqtt.publish("coil/"+key+"/state", msg.data[1] , retain=1)
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
pass
|
||||||
|
finally:
|
||||||
|
canbus.shutdown()
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
85
tools/can2mqtt.py
Executable file
@ -0,0 +1,85 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
from __future__ import absolute_import, print_function
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import argparse
|
||||||
|
import socket
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
import can
|
||||||
|
from can import Bus, BusState, Logger
|
||||||
|
|
||||||
|
import paho.mqtt.client as mqtt
|
||||||
|
|
||||||
|
def decon(msg_id):
|
||||||
|
msg_prio=msg_id>>26
|
||||||
|
msg_type=(msg_id>>24) & 0x03
|
||||||
|
msg_dst=(msg_id>>16) & 0xFF
|
||||||
|
msg_src=(msg_id>>8) & 0xFF
|
||||||
|
msg_cmd=msg_id & 0xFF
|
||||||
|
print("prio: ", hex(msg_prio),"type: ", hex(msg_type)," dst: ", hex(msg_dst)," src: ", hex(msg_src)," cmd: ",hex(msg_cmd))
|
||||||
|
return [msg_prio, msg_type, msg_dst, msg_src, msg_cmd]
|
||||||
|
|
||||||
|
def on_connect(mcp_mqtt, userdata, flags, rc):
|
||||||
|
print("Connected with result code "+str(rc))
|
||||||
|
|
||||||
|
# Subscribing in on_connect() means that if we lose the connection and
|
||||||
|
# reconnect then subscriptions will be renewed.
|
||||||
|
mcp_mqtt.subscribe("can/raw")
|
||||||
|
mcp_mqtt.subscribe("ctest/#")
|
||||||
|
|
||||||
|
def on_message(mcp_mqtt, userdata, msg):
|
||||||
|
local_bus=userdata
|
||||||
|
topic=msg.topic
|
||||||
|
print("data Received topic: ", topic)
|
||||||
|
m_decode=str(msg.payload.decode("utf-8","ignore"))
|
||||||
|
print("data Received",m_decode)
|
||||||
|
msg_id=int(m_decode.split('#')[0],16)
|
||||||
|
|
||||||
|
msg_data=int(m_decode.split('#')[1],16)
|
||||||
|
print(msg_data)
|
||||||
|
m = can.Message(arbitration_id=msg_id,
|
||||||
|
data=[msg_data],
|
||||||
|
extended_id=True)
|
||||||
|
try:
|
||||||
|
local_bus.send(m)
|
||||||
|
except BaseException as e:
|
||||||
|
logging.error("Error sending can message {%s}: %s" % (m, e))
|
||||||
|
print("data sent to CAN",m)
|
||||||
|
def main():
|
||||||
|
verbosity = 2
|
||||||
|
|
||||||
|
logging_level_name = ['critical', 'error', 'warning', 'info', 'debug', 'subdebug'][min(5, verbosity)]
|
||||||
|
can.set_logging_level(logging_level_name)
|
||||||
|
|
||||||
|
can_filters = []
|
||||||
|
config = {"can_filters": can_filters, "single_handle": True}
|
||||||
|
config["interface"] = "socketcan"
|
||||||
|
config["bitrate"] = 125000
|
||||||
|
bus = Bus("can1", **config)
|
||||||
|
|
||||||
|
print('Connected to {}: {}'.format(bus.__class__.__name__, bus.channel_info))
|
||||||
|
print('Can Logger (Started on {})\n'.format(datetime.now()))
|
||||||
|
|
||||||
|
mcp_mqtt = mqtt.Client()
|
||||||
|
mcp_mqtt.on_connect = on_connect
|
||||||
|
mcp_mqtt.on_message = on_message
|
||||||
|
mcp_mqtt.user_data_set(bus)
|
||||||
|
mcp_mqtt.connect("mcp", 1883, 60)
|
||||||
|
|
||||||
|
try:
|
||||||
|
while True:
|
||||||
|
mcp_mqtt.loop_start()
|
||||||
|
msg = bus.recv(1)
|
||||||
|
if msg is not None:
|
||||||
|
de=decon(msg.arbitration_id)
|
||||||
|
m= { "prio": hex(de[0]), "type": hex(de[1]), "dst": hex(de[2]), "src": hex(de[3]), "cmd": hex(de[4]), "data": "".join("%02x" % b for b in msg.data) }
|
||||||
|
print(m)
|
||||||
|
mcp_mqtt.publish("can/rx", str(m))
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
pass
|
||||||
|
finally:
|
||||||
|
bus.shutdown()
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
63
tools/canfixer.py
Executable file
@ -0,0 +1,63 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# coding: utf-8
|
||||||
|
|
||||||
|
|
||||||
|
from __future__ import absolute_import, print_function
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import argparse
|
||||||
|
import socket
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
import can
|
||||||
|
from can import Bus, BusState, Logger
|
||||||
|
|
||||||
|
|
||||||
|
def decon(msg_id):
|
||||||
|
msg_prio=msg_id>>26
|
||||||
|
msg_type=(msg_id>>24) & 0x03
|
||||||
|
msg_dst=(msg_id>>16) & 0xFF
|
||||||
|
msg_src=(msg_id>>8) & 0xFF
|
||||||
|
msg_cmd=msg_id & 0xFF
|
||||||
|
print("prio: ", hex(msg_prio),"type: ", hex(msg_type)," dst: ", hex(msg_dst)," src: ", hex(msg_src)," cmd: ",hex(msg_cmd))
|
||||||
|
return [msg_prio, msg_type, msg_dst, msg_src, msg_cmd]
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
verbosity = 2
|
||||||
|
|
||||||
|
logging_level_name = ['critical', 'error', 'warning', 'info', 'debug', 'subdebug'][min(5, verbosity)]
|
||||||
|
can.set_logging_level(logging_level_name)
|
||||||
|
|
||||||
|
can_filters = []
|
||||||
|
config = {"can_filters": can_filters, "single_handle": True}
|
||||||
|
config["interface"] = "socketcan"
|
||||||
|
config["bitrate"] = 125000
|
||||||
|
bus = Bus("can1", **config)
|
||||||
|
|
||||||
|
print('Connected to {}: {}'.format(bus.__class__.__name__, bus.channel_info))
|
||||||
|
print('Can Logger (Started on {})\n'.format(datetime.now()))
|
||||||
|
|
||||||
|
try:
|
||||||
|
while True:
|
||||||
|
msg = bus.recv(1)
|
||||||
|
if msg is not None:
|
||||||
|
de=decon(msg.arbitration_id)
|
||||||
|
m= { "prio": hex(de[0]), "type": hex(de[1]), "dst": hex(de[2]), "src": hex(de[3]), "cmd": hex(de[4]), "target": hex(msg.data[0]) }
|
||||||
|
if de[2] is 3 and msg.data[0] is 3 and de[1] is 0 and de[3] is 3 and de[4] is 3 :
|
||||||
|
print(m)
|
||||||
|
m = can.Message(arbitration_id=0x0C030900,
|
||||||
|
data=[3],
|
||||||
|
extended_id=True)
|
||||||
|
try:
|
||||||
|
bus.send(m)
|
||||||
|
except BaseException as e:
|
||||||
|
logging.error("Error sending can message {%s}: %s" % (m, e))
|
||||||
|
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
pass
|
||||||
|
finally:
|
||||||
|
bus.shutdown()
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
163
tools/coil2can.py
Executable file
@ -0,0 +1,163 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
from __future__ import absolute_import, print_function
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import argparse
|
||||||
|
import socket
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
import can
|
||||||
|
from can import Bus, BusState, Logger
|
||||||
|
|
||||||
|
import paho.mqtt.client as mqtt
|
||||||
|
|
||||||
|
sub_topic = "coil"
|
||||||
|
coil_map = {
|
||||||
|
'EZ': [ 0x03, 0x01 ],
|
||||||
|
'K': [ 0x03, 0x02 ],
|
||||||
|
'WZ1': [ 0x02, 0x01 ],
|
||||||
|
'WZ2': [ 0x02, 0x02 ],
|
||||||
|
'TER': [ 0x03, 0x03 ],
|
||||||
|
'FE': [ 0x03, 0x07 ],
|
||||||
|
'TRE': [ 0x02, 0x03 ],
|
||||||
|
'FO': [ 0x01, 0x03 ],
|
||||||
|
'TRO': [ 0x01, 0x07 ],
|
||||||
|
'KI1': [ 0x01, 0x06 ],
|
||||||
|
'KI2': [ 0x01, 0x04 ],
|
||||||
|
'SCH': [ 0x01, 0x08 ],
|
||||||
|
'B1': [ 0x01, 0x01 ],
|
||||||
|
'B2': [ 0x01, 0x02 ],
|
||||||
|
'ROL_EZ_G_DOWN': [0x03, 0x05, -1],
|
||||||
|
'ROL_EZ_G_UP': [0x03,0x04, -1],
|
||||||
|
'ROL_EZ_N_DOWN': [0x03, 0x06, -2],
|
||||||
|
'ROL_EZ_N_UP': [0x03,0x08, -2],
|
||||||
|
'EG1': [ 0x02, 0x09 ],
|
||||||
|
'EG2': [ 0x03, 0x09 ],
|
||||||
|
'OG': [ 0x01, 0x09 ],
|
||||||
|
'ALL': [ 0xFF, 0x09 ],
|
||||||
|
}
|
||||||
|
|
||||||
|
cmd_map = {
|
||||||
|
'off': 0,
|
||||||
|
'0': 0,
|
||||||
|
'on': 1,
|
||||||
|
'1': 1,
|
||||||
|
'value': 2,
|
||||||
|
'toggle': 3
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def decon(msg_id):
|
||||||
|
msg_prio=msg_id>>26
|
||||||
|
msg_type=(msg_id>>24) & 0x03
|
||||||
|
msg_dst=(msg_id>>16) & 0xFF
|
||||||
|
msg_src=(msg_id>>8) & 0xFF
|
||||||
|
msg_cmd=msg_id & 0xFF
|
||||||
|
# print("msg_id: ", hex(msg_id), "prio: ", hex(msg_prio),"type: ", hex(msg_type)," dst: ", hex(msg_dst)," src: ", hex(msg_src)," cmd: ",hex(msg_cmd))
|
||||||
|
return [msg_prio, msg_type, msg_dst, msg_src, msg_cmd]
|
||||||
|
|
||||||
|
def con(msg_dst,msg_cmd,msg_prio=3,msg_type=0,msg_src=11, ):
|
||||||
|
msg_id=(msg_prio<<26) + \
|
||||||
|
((msg_type&0x03)<<24) +\
|
||||||
|
((msg_dst&0xFF)<<16) +\
|
||||||
|
((msg_src&0xFF)<<8) +\
|
||||||
|
(msg_cmd&0xFF)
|
||||||
|
print("Constructed ID: "+hex(msg_id))
|
||||||
|
return msg_id
|
||||||
|
|
||||||
|
def on_connect(mcp_mqtt, userdata, flags, rc):
|
||||||
|
print("Connected with result code "+str(rc))
|
||||||
|
|
||||||
|
# Subscribing in on_connect() means that if we lose the connection and
|
||||||
|
# reconnect then subscriptions will be renewed.
|
||||||
|
mcp_mqtt.subscribe(sub_topic+"/+")
|
||||||
|
print("Subscribed to:"+sub_topic+"/+")
|
||||||
|
|
||||||
|
def on_message(mcp_mqtt, userdata, msg):
|
||||||
|
local_bus=userdata
|
||||||
|
print("data Received topic: ", msg.topic)
|
||||||
|
m_decode=str(msg.payload.decode("utf-8","ignore"))
|
||||||
|
print("data Received",m_decode)
|
||||||
|
msg_cmd=cmd_map[m_decode]
|
||||||
|
sub=msg.topic[len(sub_topic)+1:]
|
||||||
|
coil=sub
|
||||||
|
print("substring: "+coil)
|
||||||
|
addr = coil_map[coil]
|
||||||
|
print("Addr:", addr)
|
||||||
|
if msg_cmd == 2:
|
||||||
|
msg_data.append(value)
|
||||||
|
print("msg_cmd",msg_cmd, len(addr))
|
||||||
|
if msg_cmd is not 0 and len(addr) is 3:
|
||||||
|
print("hello 001")
|
||||||
|
for key, value in coil_map.items():
|
||||||
|
print("checking: ", key)
|
||||||
|
if len(value) is 3:
|
||||||
|
print("value_2 is", value[2], "Addr: ", addr[2])
|
||||||
|
if value[2] is addr[2]:
|
||||||
|
msg_id=con(msg_dst=value[0],msg_cmd=0)
|
||||||
|
msg_data=[value[1]]
|
||||||
|
m = can.Message(arbitration_id=msg_id,
|
||||||
|
data=msg_data,
|
||||||
|
extended_id=True)
|
||||||
|
try:
|
||||||
|
local_bus.send(m)
|
||||||
|
except BaseException as e:
|
||||||
|
logging.error("Error sending can message {%s}: %s" % (m, e))
|
||||||
|
print("data sent to CAN",m)
|
||||||
|
|
||||||
|
msg_id=con(msg_dst=addr[0],msg_cmd=msg_cmd)
|
||||||
|
msg_data=[addr[1]]
|
||||||
|
|
||||||
|
m = can.Message(arbitration_id=msg_id,
|
||||||
|
data=msg_data,
|
||||||
|
extended_id=True)
|
||||||
|
try:
|
||||||
|
local_bus.send(m)
|
||||||
|
except BaseException as e:
|
||||||
|
logging.error("Error sending can message {%s}: %s" % (m, e))
|
||||||
|
print("data sent to CAN",m)
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
verbosity = 2
|
||||||
|
|
||||||
|
logging_level_name = ['critical', 'error', 'warning', 'info', 'debug', 'subdebug'][min(5, verbosity)]
|
||||||
|
can.set_logging_level(logging_level_name)
|
||||||
|
|
||||||
|
can_filters = []
|
||||||
|
config = {"can_filters": can_filters, "single_handle": True}
|
||||||
|
config["interface"] = "socketcan"
|
||||||
|
config["bitrate"] = 125000
|
||||||
|
bus = Bus("can1", **config)
|
||||||
|
|
||||||
|
print('Connected to {}: {}'.format(bus.__class__.__name__, bus.channel_info))
|
||||||
|
print('Can Logger (Started on {})\n'.format(datetime.now()))
|
||||||
|
|
||||||
|
mcp_mqtt = mqtt.Client()
|
||||||
|
mcp_mqtt.on_connect = on_connect
|
||||||
|
mcp_mqtt.on_message = on_message
|
||||||
|
mcp_mqtt.user_data_set(bus)
|
||||||
|
mcp_mqtt.connect("mcp", 1883, 60)
|
||||||
|
mcp_mqtt.loop_start()
|
||||||
|
|
||||||
|
try:
|
||||||
|
while True:
|
||||||
|
msg = bus.recv(1)
|
||||||
|
if msg is not None:
|
||||||
|
de=decon(msg.arbitration_id)
|
||||||
|
m= { "prio": hex(de[0]), "type": hex(de[1]), "dst": hex(de[2]), "src": hex(de[3]), "cmd": hex(de[4]), "action": hex(msg.data[0]) }
|
||||||
|
if de[2]==0 and de[4] == 6:
|
||||||
|
print("received state: ", hex(de[3]), hex(msg.data[0]), hex(msg.data[1]))
|
||||||
|
for key in coil_map:
|
||||||
|
address=coil_map[key]
|
||||||
|
if address[0] == de[3] and address[1] == msg.data[0]+1:
|
||||||
|
print("coil/"+key+" changed to "+str(msg.data[1]))
|
||||||
|
mcp_mqtt.publish("coil/"+key+"/state", msg.data[1] , retain=1)
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
pass
|
||||||
|
finally:
|
||||||
|
bus.shutdown()
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
41
tools/data2obj.py
Executable file
@ -0,0 +1,41 @@
|
|||||||
|
#! /usr/bin/env python
|
||||||
|
import sys
|
||||||
|
|
||||||
|
msg_id=int(str(sys.argv[1]),0) & 0x1FFFFFFF
|
||||||
|
msg_prio=msg_id>>26
|
||||||
|
msg_type=(msg_id>>24) & 0x03
|
||||||
|
msg_dst=(msg_id>>16) & 0xFF
|
||||||
|
msg_src=(msg_id>>8) & 0xFF
|
||||||
|
msg_cmd=msg_id & 0xFF
|
||||||
|
|
||||||
|
#print('id: {0:b}'.format(msg_id))
|
||||||
|
print('id: {0:#010x} {0:#031b}'.format(msg_id ,msg_id))
|
||||||
|
#print("id:", hex(msg_id), format(40,str(bin(msg_id))))
|
||||||
|
|
||||||
|
print('prio: {0:#03x} {0:#04b}'.format(msg_prio))
|
||||||
|
print('type: {0:#03x} {0:#04b}'.format(msg_type))
|
||||||
|
print('dst: {0:#04x} {0:#010b}'.format(msg_dst))
|
||||||
|
print('src: {0:#04x} {0:#010b}'.format(msg_src))
|
||||||
|
print('cmd: {0:#04x} {0:#010b}'.format(msg_cmd))
|
||||||
|
|
||||||
|
|
||||||
|
nmsg_prio=msg_id>>26
|
||||||
|
nmsg_type=(msg_id>>24) & 0x03
|
||||||
|
nmsg_src=(msg_id>>18) & 0x3F
|
||||||
|
nmsg_dst=(msg_id>>12) & 0x3F
|
||||||
|
nmsg_targ=(msg_id>>6) & 0x3F
|
||||||
|
nmsg_cmd=msg_id & 0x1F
|
||||||
|
|
||||||
|
|
||||||
|
print('New schema')
|
||||||
|
|
||||||
|
#print('id: {0:b}'.format(msg_id))
|
||||||
|
print('id: {0:#010x} {0:#031b}'.format(msg_id))
|
||||||
|
#print("id:", hex(msg_id), format(40,str(bin(msg_id))))
|
||||||
|
|
||||||
|
print('prio: {0:#04x} {0:#04b}'.format(nmsg_prio))
|
||||||
|
print('type: {0:#04x} {0:#04b}'.format(nmsg_type))
|
||||||
|
print('src: {0:#04x} {0:#08b}'.format(nmsg_src))
|
||||||
|
print('dst: {0:#04x} {0:#08b}'.format(nmsg_dst))
|
||||||
|
print('target: {0:#04x} {0:#08b}'.format(nmsg_targ))
|
||||||
|
print('cmd: {0:#04x} {0:#07b}'.format(nmsg_cmd))
|
170
tools/light2can.py
Executable file
@ -0,0 +1,170 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
from __future__ import absolute_import, print_function
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import argparse
|
||||||
|
import socket
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
import can
|
||||||
|
from can import Bus, BusState, Logger
|
||||||
|
|
||||||
|
import paho.mqtt.client as mqtt
|
||||||
|
|
||||||
|
sub_topic = "light"
|
||||||
|
aliases = {
|
||||||
|
'Esszimmer': 'EZ',
|
||||||
|
'Esszimmer oben': 'EZ',
|
||||||
|
'Küche': 'K',
|
||||||
|
'Wohnzimmer1': 'WZ1',
|
||||||
|
'Wohnzimmer2': 'WZ2',
|
||||||
|
'Wohnzimmer Nord': 'WZ1',
|
||||||
|
'Wohnzimmer Süd': 'WZ2',
|
||||||
|
'Wohnzimmer Tür': 'WZ1',
|
||||||
|
'Wohnzimmer TV': 'WZ2',
|
||||||
|
'Wohnzimmer Fernseher': 'WZ2',
|
||||||
|
'Bad Decke': 'B1',
|
||||||
|
'Bad Spiegel': 'B2',
|
||||||
|
'Bjarne': 'K1',
|
||||||
|
'Inka': 'K2',
|
||||||
|
'Schlafzimmer': 'SCH',
|
||||||
|
'Flur EG': 'FE',
|
||||||
|
'Flur unten': 'FE',
|
||||||
|
'Flur OG': 'FO',
|
||||||
|
'Flur oben': 'FO',
|
||||||
|
'Treppe EG': 'TRE',
|
||||||
|
'Treppe unten': 'TRE',
|
||||||
|
'Treppe OG': 'TRO',
|
||||||
|
'Treppe oben': 'TRO'
|
||||||
|
}
|
||||||
|
light_map = {
|
||||||
|
'EZ': [ 0x03, 0x01 ],
|
||||||
|
'K': [ 0x03, 0x02 ],
|
||||||
|
'WZ1': [ 0x02, 0x01 ],
|
||||||
|
'WZ2': [ 0x02, 0x02 ],
|
||||||
|
'TER': [ 0x03, 0x03 ],
|
||||||
|
'FE': [ 0x03, 0x07 ],
|
||||||
|
'TRE': [ 0x02, 0x03 ],
|
||||||
|
'FO': [ 0x01, 0x03 ],
|
||||||
|
'TRO': [ 0x01, 0x07 ],
|
||||||
|
'KI1': [ 0x01, 0x06 ],
|
||||||
|
'KI2': [ 0x01, 0x04 ],
|
||||||
|
'SCH': [ 0x01, 0x08 ],
|
||||||
|
'B1': [ 0x01, 0x01 ],
|
||||||
|
'B2': [ 0x01, 0x02 ],
|
||||||
|
'EG1': [ 0x02, 0x09 ],
|
||||||
|
'EG2': [ 0x03, 0x09 ],
|
||||||
|
'OG': [ 0x01, 0x09 ],
|
||||||
|
'ALL': [ 0xFF, 0x09 ],
|
||||||
|
}
|
||||||
|
cmd_map = {
|
||||||
|
'off': 0,
|
||||||
|
'0': 0,
|
||||||
|
'on': 1,
|
||||||
|
'1': 1,
|
||||||
|
'value': 2,
|
||||||
|
'toggle': 3
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def decon(msg_id):
|
||||||
|
msg_prio=msg_id>>26
|
||||||
|
msg_type=(msg_id>>24) & 0x03
|
||||||
|
msg_dst=(msg_id>>16) & 0xFF
|
||||||
|
msg_src=(msg_id>>8) & 0xFF
|
||||||
|
msg_cmd=msg_id & 0xFF
|
||||||
|
# print("msg_id: ", hex(msg_id), "prio: ", hex(msg_prio),"type: ", hex(msg_type)," dst: ", hex(msg_dst)," src: ", hex(msg_src)," cmd: ",hex(msg_cmd))
|
||||||
|
return [msg_prio, msg_type, msg_dst, msg_src, msg_cmd]
|
||||||
|
|
||||||
|
def con(msg_dst,msg_cmd,msg_prio=3,msg_type=0,msg_src=11, ):
|
||||||
|
msg_id=(msg_prio<<26) + \
|
||||||
|
((msg_type&0x03)<<24) +\
|
||||||
|
((msg_dst&0xFF)<<16) +\
|
||||||
|
((msg_src&0xFF)<<8) +\
|
||||||
|
(msg_cmd&0xFF)
|
||||||
|
print("Constructed ID: "+hex(msg_id))
|
||||||
|
return msg_id
|
||||||
|
|
||||||
|
def on_connect(mcp_mqtt, userdata, flags, rc):
|
||||||
|
print("Connected with result code "+str(rc))
|
||||||
|
|
||||||
|
# Subscribing in on_connect() means that if we lose the connection and
|
||||||
|
# reconnect then subscriptions will be renewed.
|
||||||
|
mcp_mqtt.subscribe(sub_topic+"/+")
|
||||||
|
print("Subscribed to:"+sub_topic+"/+")
|
||||||
|
|
||||||
|
def on_message(mcp_mqtt, userdata, msg):
|
||||||
|
local_bus=userdata
|
||||||
|
print("data Received topic: ", msg.topic)
|
||||||
|
m_decode=str(msg.payload.decode("utf-8","ignore"))
|
||||||
|
print("data Received",m_decode)
|
||||||
|
msg_cmd=cmd_map[m_decode]
|
||||||
|
sub=msg.topic[len(sub_topic)+1:]
|
||||||
|
light=aliases.get(sub,None)
|
||||||
|
if light is None:
|
||||||
|
light=sub
|
||||||
|
print("substring: "+light)
|
||||||
|
addr = light_map[light]
|
||||||
|
msg_id=con(msg_dst=addr[0],msg_cmd=msg_cmd)
|
||||||
|
msg_data=[addr[1]]
|
||||||
|
print(msg_data)
|
||||||
|
if msg_cmd == 2:
|
||||||
|
msg_data.append(value)
|
||||||
|
print(msg_data)
|
||||||
|
m = can.Message(arbitration_id=msg_id,
|
||||||
|
data=msg_data,
|
||||||
|
extended_id=True)
|
||||||
|
try:
|
||||||
|
local_bus.send(m)
|
||||||
|
except BaseException as e:
|
||||||
|
logging.error("Error sending can message {%s}: %s" % (m, e))
|
||||||
|
print("data sent to CAN",m)
|
||||||
|
if light == 'ALL':
|
||||||
|
print("ALL detected")
|
||||||
|
for key in light_map:
|
||||||
|
mcp_mqtt.publish("light/"+key+"/state", msg_cmd, retain=1)
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
verbosity = 2
|
||||||
|
|
||||||
|
logging_level_name = ['critical', 'error', 'warning', 'info', 'debug', 'subdebug'][min(5, verbosity)]
|
||||||
|
can.set_logging_level(logging_level_name)
|
||||||
|
|
||||||
|
can_filters = []
|
||||||
|
config = {"can_filters": can_filters, "single_handle": True}
|
||||||
|
config["interface"] = "socketcan_native"
|
||||||
|
config["bitrate"] = 125000
|
||||||
|
bus = Bus("can1", **config)
|
||||||
|
|
||||||
|
print('Connected to {}: {}'.format(bus.__class__.__name__, bus.channel_info))
|
||||||
|
print('Can Logger (Started on {})\n'.format(datetime.now()))
|
||||||
|
|
||||||
|
mcp_mqtt = mqtt.Client()
|
||||||
|
mcp_mqtt.on_connect = on_connect
|
||||||
|
mcp_mqtt.on_message = on_message
|
||||||
|
mcp_mqtt.user_data_set(bus)
|
||||||
|
mcp_mqtt.connect("mcp", 1883, 60)
|
||||||
|
mcp_mqtt.loop_start()
|
||||||
|
|
||||||
|
try:
|
||||||
|
while True:
|
||||||
|
msg = bus.recv(1)
|
||||||
|
if msg is not None:
|
||||||
|
de=decon(msg.arbitration_id)
|
||||||
|
m= { "prio": hex(de[0]), "type": hex(de[1]), "dst": hex(de[2]), "src": hex(de[3]), "cmd": hex(de[4]), "action": hex(msg.data[0]) }
|
||||||
|
if de[2]==0 and de[4] == 6:
|
||||||
|
print("received state: ", hex(de[3]), hex(msg.data[0]), hex(msg.data[1]))
|
||||||
|
for key in light_map:
|
||||||
|
address=light_map[key]
|
||||||
|
if address[0] == de[3] and address[1] == msg.data[0]+1:
|
||||||
|
print("light/"+key+" changed to "+str(msg.data[1]))
|
||||||
|
mcp_mqtt.publish("light/"+key+"/state", msg.data[1] , retain=1)
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
pass
|
||||||
|
finally:
|
||||||
|
bus.shutdown()
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
214
tools/mqtt2can.py
Executable file
@ -0,0 +1,214 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
from __future__ import absolute_import, print_function
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import argparse
|
||||||
|
import socket
|
||||||
|
import logging
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
import can
|
||||||
|
from can import Bus, BusState, Logger
|
||||||
|
|
||||||
|
import paho.mqtt.client as mqtt
|
||||||
|
|
||||||
|
base_topic="house"
|
||||||
|
|
||||||
|
coil_topic = "coil"
|
||||||
|
light_topic = "light"
|
||||||
|
switch_topic = "switch"
|
||||||
|
|
||||||
|
coil_map = {
|
||||||
|
# tag, node, address, affinity
|
||||||
|
# tag: (L)ight, (E)G, (O)G, (F)lur, (S)chlaf, (A)ussen
|
||||||
|
'EZ': [ "LE", 0x03, 0x01 ],
|
||||||
|
'K': [ "LE", 0x03, 0x02 ],
|
||||||
|
'WZ1': [ "LE", 0x02, 0x01 ],
|
||||||
|
'WZ2': [ "LE", 0x02, 0x02 ],
|
||||||
|
'TER': [ "LEA", 0x03, 0x03 ],
|
||||||
|
'FE': [ "LFE", 0x03, 0x07 ],
|
||||||
|
'TRE': [ "LFE", 0x02, 0x03 ],
|
||||||
|
'FO': [ "LFO", 0x01, 0x03 ],
|
||||||
|
'TRO': [ "LFO", 0x01, 0x07 ],
|
||||||
|
'KI1': [ "LSO", 0x01, 0x06 ],
|
||||||
|
'KI2': [ "LSO", 0x01, 0x04 ],
|
||||||
|
'SCH': [ "LSO", 0x01, 0x08 ],
|
||||||
|
'B1': [ "LO", 0x01, 0x01 ],
|
||||||
|
'B2': [ "LO", 0x01, 0x02 ],
|
||||||
|
'ROL_EZ_G_DOWN': [ "", 0x03, 0x05, -1],
|
||||||
|
'ROL_EZ_G_UP': [ "", 0x03, 0x04, -1],
|
||||||
|
'ROL_EZ_N_DOWN': [ "", 0x03, 0x06, -2],
|
||||||
|
'ROL_EZ_N_UP': [ "", 0x03, 0x08, -2],
|
||||||
|
# 'EG1': [ 0, 0x02, 0x09 ],
|
||||||
|
# 'EG2': [ 0, 0x03, 0x09 ],
|
||||||
|
# 'OG': [ 0, 0x01, 0x09 ],
|
||||||
|
'ALL': [ "", 0xFF, 0x09 ],
|
||||||
|
}
|
||||||
|
|
||||||
|
cmd_map = {
|
||||||
|
'off': 0,
|
||||||
|
'0': 0,
|
||||||
|
'on': 1,
|
||||||
|
'1': 1,
|
||||||
|
'value': 2,
|
||||||
|
'toggle': 3
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def decon(msg_id):
|
||||||
|
msg_prio=msg_id>>26
|
||||||
|
msg_type=(msg_id>>24) & 0x03
|
||||||
|
msg_dst=(msg_id>>16) & 0xFF
|
||||||
|
msg_src=(msg_id>>8) & 0xFF
|
||||||
|
msg_cmd=msg_id & 0xFF
|
||||||
|
# print("msg_id: ", hex(msg_id), "prio: ", hex(msg_prio),"type: ", hex(msg_type)," dst: ", hex(msg_dst)," src: ", hex(msg_src)," cmd: ",hex(msg_cmd))
|
||||||
|
return [msg_prio, msg_type, msg_dst, msg_src, msg_cmd]
|
||||||
|
|
||||||
|
def con(msg_dst,msg_cmd,msg_prio=3,msg_type=0,msg_src=11, ):
|
||||||
|
msg_id=(msg_prio<<26) + \
|
||||||
|
((msg_type&0x03)<<24) +\
|
||||||
|
((msg_dst&0xFF)<<16) +\
|
||||||
|
((msg_src&0xFF)<<8) +\
|
||||||
|
(msg_cmd&0xFF)
|
||||||
|
print("Constructed ID: "+hex(msg_id))
|
||||||
|
return msg_id
|
||||||
|
|
||||||
|
def coil_action(coil, payload, bus, tag=0 ):
|
||||||
|
try:
|
||||||
|
cmd=cmd_map[payload]
|
||||||
|
except BaseException as e:
|
||||||
|
logging.error("Error finding command {%s}: %s" % (payload, e))
|
||||||
|
print("Coil: ",coil,"cmd:", payload)
|
||||||
|
try:
|
||||||
|
addr = coil_map[coil]
|
||||||
|
print("Addr:", addr)
|
||||||
|
if cmd == 2:
|
||||||
|
print("TBD")
|
||||||
|
# msg_data.append(value)
|
||||||
|
print("cmd", cmd,"length: ", len(addr))
|
||||||
|
if tag is not 0:
|
||||||
|
if tag not in addr[0]:
|
||||||
|
print("not tagged with: ",tag)
|
||||||
|
return
|
||||||
|
|
||||||
|
if cmd is not 0 and len(addr) is 4:
|
||||||
|
print("Applying affinity")
|
||||||
|
for key, value in coil_map.items():
|
||||||
|
print("checking: ", key)
|
||||||
|
if len(value) is 4:
|
||||||
|
print("value_2 is", value[3], "Addr: ", addr[3])
|
||||||
|
if value[3] is addr[3]:
|
||||||
|
msg_id=con(msg_dst=value[1],msg_cmd=0)
|
||||||
|
msg_data=[value[2]]
|
||||||
|
m = can.Message(arbitration_id=msg_id,
|
||||||
|
data=msg_data,
|
||||||
|
extended_id=True)
|
||||||
|
try:
|
||||||
|
bus.send(m)
|
||||||
|
print("data sent to CAN",m)
|
||||||
|
except BaseException as e:
|
||||||
|
logging.error("Error sending can message {%s}: %s" % (m, e))
|
||||||
|
|
||||||
|
msg_id=con(msg_dst=addr[1],msg_cmd=cmd)
|
||||||
|
msg_data=[addr[2]]
|
||||||
|
print(msg_id)
|
||||||
|
m = can.Message(arbitration_id=msg_id,
|
||||||
|
data=msg_data,
|
||||||
|
extended_id=True)
|
||||||
|
try:
|
||||||
|
bus.send(m)
|
||||||
|
print("data sent to CAN",m)
|
||||||
|
except BaseException as e:
|
||||||
|
logging.error("Error sending can message {%s}: %s" % (m, e))
|
||||||
|
|
||||||
|
except BaseException as e:
|
||||||
|
logging.error("Error finding coil %s" % (coil))
|
||||||
|
|
||||||
|
def on_connect(mcp_mqtt, userdata, flags, rc):
|
||||||
|
print("Connected with result code "+str(rc))
|
||||||
|
|
||||||
|
# Subscribing in on_connect() means that if we lose the connection and
|
||||||
|
# reconnect then subscriptions will be renewed.
|
||||||
|
mcp_mqtt.subscribe(base_topic+"/#", 0)
|
||||||
|
print("Subscribed to: "+base_topic+"/#")
|
||||||
|
|
||||||
|
def on_message_coil(mcp_mqtt, bus, msg):
|
||||||
|
print("data Received topic: ", msg.topic)
|
||||||
|
m_decode=str(msg.payload.decode("utf-8","ignore"))
|
||||||
|
print("data Received",m_decode)
|
||||||
|
sub=msg.topic[len(base_topic)+len(coil_topic)+2:]
|
||||||
|
coil_action(sub, m_decode, bus)
|
||||||
|
|
||||||
|
|
||||||
|
def on_message_light(mcp_mqtt, bus, msg):
|
||||||
|
print("data Received topic: ", msg.topic)
|
||||||
|
m_decode=str(msg.payload.decode("utf-8","ignore"))
|
||||||
|
print("data Received",m_decode)
|
||||||
|
sub=msg.topic[len(base_topic)+len(light_topic)+2:]
|
||||||
|
coil_action(sub, m_decode, bus, "L")
|
||||||
|
|
||||||
|
|
||||||
|
def on_message(mcp_mqtt, obj, msg):
|
||||||
|
# This callback will be called for messages that we receive that do not
|
||||||
|
# match any patterns defined in topic specific callbacks, i.e. in this case
|
||||||
|
print(msg.topic + " " + str(msg.qos) + " " + str(msg.payload))
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
verbosity = 2
|
||||||
|
|
||||||
|
logging_level_name = ['critical', 'error', 'warning', 'info', 'debug', 'subdebug'][min(5, verbosity)]
|
||||||
|
can.set_logging_level(logging_level_name)
|
||||||
|
|
||||||
|
can_filters = []
|
||||||
|
config = {"can_filters": can_filters, "single_handle": True}
|
||||||
|
config["interface"] = "socketcan"
|
||||||
|
config["bitrate"] = 125000
|
||||||
|
bus = Bus("can1", **config)
|
||||||
|
|
||||||
|
print('Connected to {}: {}'.format(bus.__class__.__name__, bus.channel_info))
|
||||||
|
print('Can Logger (Started on {})\n'.format(datetime.now()))
|
||||||
|
|
||||||
|
mcp_mqtt = mqtt.Client()
|
||||||
|
mcp_mqtt.on_connect = on_connect
|
||||||
|
# mcp_mqtt.on_message = on_message
|
||||||
|
mcp_mqtt.user_data_set(bus)
|
||||||
|
mcp_mqtt.loop_start()
|
||||||
|
|
||||||
|
mcp_mqtt.message_callback_add(base_topic+"/"+coil_topic+"/+", on_message_coil)
|
||||||
|
mcp_mqtt.message_callback_add(base_topic+"/"+light_topic+"/+", on_message_light)
|
||||||
|
mcp_mqtt.on_message = on_message
|
||||||
|
mcp_mqtt.connect("mcp", 1883, 60)
|
||||||
|
|
||||||
|
mcp_mqtt.loop_start()
|
||||||
|
#mcp_mqtt.loop_forever()
|
||||||
|
|
||||||
|
|
||||||
|
try:
|
||||||
|
while True:
|
||||||
|
msg = bus.recv(1)
|
||||||
|
if msg is not None:
|
||||||
|
de=decon(msg.arbitration_id)
|
||||||
|
m= { "prio": hex(de[0]), "type": hex(de[1]), "dst": hex(de[2]), "src": hex(de[3]), "cmd": hex(de[4]), "action": hex(msg.data[0]) }
|
||||||
|
if de[2]==0 and de[4] == 6:
|
||||||
|
print("received state: ", hex(de[3]), hex(msg.data[0]), hex(msg.data[1]))
|
||||||
|
for key in coil_map:
|
||||||
|
address=coil_map[key]
|
||||||
|
if address[1] == de[3] and address[2] == msg.data[0]+1:
|
||||||
|
print("coil/"+key+" changed to "+str(msg.data[1]))
|
||||||
|
mcp_mqtt.publish(base_topic+"/"+coil_topic+"/"+key+"/state", msg.data[1] , retain=1)
|
||||||
|
if "L" in address[0]:
|
||||||
|
print("light/"+key+" changed to "+str(msg.data[1]))
|
||||||
|
mcp_mqtt.publish(base_topic+"/"+light_topic+"/"+key+"/state", msg.data[1] , retain=1)
|
||||||
|
elif de[2]==0 and de[4] == 5:
|
||||||
|
print("received state: ", de[3], msg.data[0], bin(msg.data[1]))
|
||||||
|
mcp_mqtt.publish(base_topic+"/"+switch_topic+"/"+str(de[3])+"-"+str(msg.data[0]), bin(msg.data[1]) , retain=1)
|
||||||
|
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
pass
|
||||||
|
finally:
|
||||||
|
bus.shutdown()
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
55
tools/obj2data.py
Executable file
@ -0,0 +1,55 @@
|
|||||||
|
#! /usr/bin/env python
|
||||||
|
import sys
|
||||||
|
import json
|
||||||
|
#stuff = json.loads(sys.argv[1])
|
||||||
|
|
||||||
|
|
||||||
|
#data = json.load(sys.stdin)
|
||||||
|
|
||||||
|
|
||||||
|
#print(json.dumps(sys.stdin, sort_keys=True, indent=4))
|
||||||
|
###print str(sys.argv[1])
|
||||||
|
#print(stuff['foo'])
|
||||||
|
|
||||||
|
#print(json.dumps(data, indent=4))
|
||||||
|
|
||||||
|
#msg_id=int(str(sys.argv[1]),0)
|
||||||
|
#msg_prio=msg_id>>26
|
||||||
|
#msg_type=(msg_id>>24) & 0x03
|
||||||
|
#msg_dst=(msg_id>>16) & 0xFF
|
||||||
|
#msg_src=(msg_id>>8) & 0xFF
|
||||||
|
#msg_cmd=msg_id & 0xFF
|
||||||
|
|
||||||
|
#print "id:", hex(msg_id), bin(msg_id)
|
||||||
|
#print "prio:", hex(msg_prio), bin(msg_prio)
|
||||||
|
#print "type:", hex(msg_type), bin(msg_type)
|
||||||
|
#print "dst:", hex(msg_dst), bin(msg_dst)
|
||||||
|
#print "src:", hex(msg_src), bin(msg_src)
|
||||||
|
#print "cmd:", hex(msg_cmd), bin(msg_cmd)
|
||||||
|
import sys
|
||||||
|
import simplejson as json
|
||||||
|
|
||||||
|
|
||||||
|
def main(args):
|
||||||
|
try:
|
||||||
|
inputFile = open(args[1])
|
||||||
|
input = json.load(inputFile)
|
||||||
|
inputFile.close()
|
||||||
|
except IndexError:
|
||||||
|
usage()
|
||||||
|
return False
|
||||||
|
if len(args) < 3:
|
||||||
|
print json.dumps(input, sort_keys = False, indent = 10)
|
||||||
|
else:
|
||||||
|
outputFile = open(args[2], "w")
|
||||||
|
json.dump(input, outputFile, sort_keys = False, indent = 4)
|
||||||
|
outputFile.close()
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
def usage():
|
||||||
|
print __doc__
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
sys.exit(not main(sys.argv))
|
149
tools/shutter2can.py
Executable file
@ -0,0 +1,149 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
from __future__ import absolute_import, print_function
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import argparse
|
||||||
|
import socket
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
import can
|
||||||
|
from can import Bus, BusState, Logger
|
||||||
|
|
||||||
|
import paho.mqtt.client as mqtt
|
||||||
|
|
||||||
|
sub_topic = "shutter"
|
||||||
|
aliases = {
|
||||||
|
'Esszimmer_Garten': 'EZ_G',
|
||||||
|
'Esszimmer_Nachbar': 'EZ_N',
|
||||||
|
'Wohnzimmer1': 'WZ1',
|
||||||
|
'Wohnzimmer2': 'WZ2',
|
||||||
|
'Wohnzimmer3': 'WZ3',
|
||||||
|
'Wohnzimmer4': 'WZ4',
|
||||||
|
}
|
||||||
|
event_map = {
|
||||||
|
'stop': 0,
|
||||||
|
'off': 0,
|
||||||
|
'up': 1,
|
||||||
|
'down': 2
|
||||||
|
}
|
||||||
|
coil_map = {
|
||||||
|
# up , down
|
||||||
|
'EZ_G': [ 0x03, 0x04 , 0x03, 0x05 ],
|
||||||
|
'EZ_N': [ 0x03, 0x08 , 0x03, 0x06 ],
|
||||||
|
'WZ1': [ 0x00, 0x01 , 0x00, 0x01 ],
|
||||||
|
'WZ2': [ 0x00, 0x01 , 0x00, 0x01 ],
|
||||||
|
'WZ3': [ 0x00, 0x01 , 0x00, 0x01 ],
|
||||||
|
'WZ4': [ 0x00, 0x01 , 0x00, 0x01 ]
|
||||||
|
}
|
||||||
|
cmd_map = {
|
||||||
|
'off': 0,
|
||||||
|
'on': 1,
|
||||||
|
'value': 2,
|
||||||
|
'toggle': 3
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def decon(msg_id):
|
||||||
|
msg_prio=msg_id>>26
|
||||||
|
msg_type=(msg_id>>24) & 0x03
|
||||||
|
msg_dst=(msg_id>>16) & 0xFF
|
||||||
|
msg_src=(msg_id>>8) & 0xFF
|
||||||
|
msg_cmd=msg_id & 0xFF
|
||||||
|
print("msg_id: ", hex(msg_id), "prio: ", hex(msg_prio),"type: ", hex(msg_type)," dst: ", hex(msg_dst)," src: ", hex(msg_src)," cmd: ",hex(msg_cmd))
|
||||||
|
return [msg_prio, msg_type, msg_dst, msg_src, msg_cmd]
|
||||||
|
|
||||||
|
def con(msg_dst,msg_cmd,msg_prio=3,msg_type=0,msg_src=11, ):
|
||||||
|
msg_id=(msg_prio<<26) + \
|
||||||
|
((msg_type&0x03)<<24) +\
|
||||||
|
((msg_dst&0xFF)<<16) +\
|
||||||
|
((msg_src&0xFF)<<8) +\
|
||||||
|
(msg_cmd&0xFF)
|
||||||
|
print("Constructed ID: "+hex(msg_id))
|
||||||
|
return msg_id
|
||||||
|
|
||||||
|
def on_connect(mcp_mqtt, userdata, flags, rc):
|
||||||
|
print("Connected with result code "+str(rc))
|
||||||
|
|
||||||
|
# Subscribing in on_connect() means that if we lose the connection and
|
||||||
|
# reconnect then subscriptions will be renewed.
|
||||||
|
mcp_mqtt.subscribe(sub_topic+"/+")
|
||||||
|
print("Subscribed to:"+sub_topic+"/+")
|
||||||
|
|
||||||
|
def on_message(mcp_mqtt, userdata, msg):
|
||||||
|
local_bus=userdata
|
||||||
|
print("data Received topic: ", msg.topic)
|
||||||
|
m_decode=str(msg.payload.decode("utf-8","ignore"))
|
||||||
|
print("data Received",m_decode)
|
||||||
|
data=m_decode
|
||||||
|
sub=msg.topic[len(sub_topic)+1:]
|
||||||
|
event=event_map[data]
|
||||||
|
coils={
|
||||||
|
'up': [ coil_map[sub][0], coil_map[sub][1] ],
|
||||||
|
'down': [ coil_map[sub][2], coil_map[sub][3] ]
|
||||||
|
}
|
||||||
|
if event is not None: # it's 0,1,2
|
||||||
|
for key, value in coils.items():
|
||||||
|
msg_id=con(msg_dst=value[0],msg_cmd=0)
|
||||||
|
msg_data=[value[1]]
|
||||||
|
print("turning off: ",sub,value[0],value[1])
|
||||||
|
m = can.Message(arbitration_id=msg_id,
|
||||||
|
data=msg_data,
|
||||||
|
extended_id=True)
|
||||||
|
print("going to sent to CAN",m)
|
||||||
|
try:
|
||||||
|
local_bus.send(m)
|
||||||
|
except BaseException as e:
|
||||||
|
logging.error("Error sending can message {%s}: %s" % (m, e))
|
||||||
|
print("data sent to CAN",m)
|
||||||
|
if event is not 0:
|
||||||
|
addr = coils[data]
|
||||||
|
print("turning on: ",addr[0],addr[1])
|
||||||
|
msg_id=con(msg_dst=addr[0],msg_cmd=1)
|
||||||
|
msg_data=[addr[1]]
|
||||||
|
print(msg_data)
|
||||||
|
m = can.Message(arbitration_id=msg_id,
|
||||||
|
data=msg_data,
|
||||||
|
extended_id=True)
|
||||||
|
print("going to sent to CAN",m)
|
||||||
|
|
||||||
|
try:
|
||||||
|
local_bus.send(m)
|
||||||
|
except BaseException as e:
|
||||||
|
logging.error("Error sending can message {%s}: %s" % (m, e))
|
||||||
|
print("data sent to CAN",m)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
verbosity = 2
|
||||||
|
|
||||||
|
logging_level_name = ['critical', 'error', 'warning', 'info', 'debug', 'subdebug'][min(5, verbosity)]
|
||||||
|
can.set_logging_level(logging_level_name)
|
||||||
|
|
||||||
|
can_filters = []
|
||||||
|
config = {"can_filters": can_filters, "single_handle": True}
|
||||||
|
config["interface"] = "socketcan"
|
||||||
|
config["bitrate"] = 125000
|
||||||
|
bus = Bus("can1", **config)
|
||||||
|
|
||||||
|
print('Connected to {}: {}'.format(bus.__class__.__name__, bus.channel_info))
|
||||||
|
print('Can Logger (Started on {})\n'.format(datetime.now()))
|
||||||
|
|
||||||
|
mcp_mqtt = mqtt.Client()
|
||||||
|
mcp_mqtt.on_connect = on_connect
|
||||||
|
mcp_mqtt.on_message = on_message
|
||||||
|
mcp_mqtt.user_data_set(bus)
|
||||||
|
mcp_mqtt.connect("mcp", 1883, 60)
|
||||||
|
|
||||||
|
try:
|
||||||
|
while True:
|
||||||
|
mcp_mqtt.loop()
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
pass
|
||||||
|
finally:
|
||||||
|
bus.shutdown()
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
141
tools/sunevents2can.py
Executable file
@ -0,0 +1,141 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# coding: utf-8
|
||||||
|
|
||||||
|
from __future__ import absolute_import, print_function
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import argparse
|
||||||
|
import socket
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
import can
|
||||||
|
from can import Bus, BusState, Logger
|
||||||
|
|
||||||
|
import paho.mqtt.client as mqtt
|
||||||
|
|
||||||
|
topic = "sunevents"
|
||||||
|
event_map = {
|
||||||
|
'sunrise': "up",
|
||||||
|
'night': "down",
|
||||||
|
}
|
||||||
|
coil_map = {
|
||||||
|
'ROL_EZ_DOWN': [0x03,0x05],
|
||||||
|
'ROL_EZ_UP': [0x03,0x04]
|
||||||
|
}
|
||||||
|
group_map = {
|
||||||
|
'up': ['ROL_EZ_UP'],
|
||||||
|
'down': ['ROL_EZ_DOWN']
|
||||||
|
}
|
||||||
|
cmd_map = {
|
||||||
|
'off': 0,
|
||||||
|
'on': 1,
|
||||||
|
'value': 2,
|
||||||
|
'toggle': 3
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def decon(msg_id):
|
||||||
|
msg_prio=msg_id>>26
|
||||||
|
msg_type=(msg_id>>24) & 0x03
|
||||||
|
msg_dst=(msg_id>>16) & 0xFF
|
||||||
|
msg_src=(msg_id>>8) & 0xFF
|
||||||
|
msg_cmd=msg_id & 0xFF
|
||||||
|
# print("msg_id: ", hex(msg_id), "prio: ", hex(msg_prio),"type: ", hex(msg_type)," dst: ", hex(msg_dst)," src: ", hex(msg_src)," cmd: ",hex(msg_cmd))
|
||||||
|
return [msg_prio, msg_type, msg_dst, msg_src, msg_cmd]
|
||||||
|
|
||||||
|
def con(msg_dst,msg_cmd,msg_prio=3,msg_type=0,msg_src=11, ):
|
||||||
|
msg_id=(msg_prio<<26) + \
|
||||||
|
((msg_type&0x03)<<24) +\
|
||||||
|
((msg_dst&0xFF)<<16) +\
|
||||||
|
((msg_src&0xFF)<<8) +\
|
||||||
|
(msg_cmd&0xFF)
|
||||||
|
print("Constructed ID: "+hex(msg_id))
|
||||||
|
return msg_id
|
||||||
|
|
||||||
|
def on_connect(mcp_mqtt, userdata, flags, rc):
|
||||||
|
print("Connected with result code "+str(rc))
|
||||||
|
|
||||||
|
# Subscribing in on_connect() means that if we lose the connection and
|
||||||
|
# reconnect then subscriptions will be renewed.
|
||||||
|
mcp_mqtt.subscribe(topic)
|
||||||
|
print("Subscribed to:",topic)
|
||||||
|
|
||||||
|
def on_message(mcp_mqtt, userdata, msg):
|
||||||
|
local_bus=userdata
|
||||||
|
print("data Received topic: ", msg.topic)
|
||||||
|
m_decode=str(msg.payload.decode("utf-8","ignore"))
|
||||||
|
print("data Received",m_decode)
|
||||||
|
data=m_decode
|
||||||
|
event=event_map[data]
|
||||||
|
if event is not None:
|
||||||
|
# event=sub
|
||||||
|
for key, value in coil_map.items():
|
||||||
|
msg_id=con(msg_dst=value[0],msg_cmd=0)
|
||||||
|
msg_data=[value[1]]
|
||||||
|
print("turning off: ",key,value[0],value[1])
|
||||||
|
m = can.Message(arbitration_id=msg_id,
|
||||||
|
data=msg_data,
|
||||||
|
extended_id=True)
|
||||||
|
print("going to sent to CAN",m)
|
||||||
|
try:
|
||||||
|
local_bus.send(m)
|
||||||
|
except BaseException as e:
|
||||||
|
logging.error("Error sending can message {%s}: %s" % (m, e))
|
||||||
|
print("data sent to CAN",m)
|
||||||
|
|
||||||
|
print("Group: ",event)
|
||||||
|
for coil in group_map[event]:
|
||||||
|
print("turning on", coil)
|
||||||
|
addr = coil_map[coil]
|
||||||
|
msg_id=con(msg_dst=addr[0],msg_cmd=1)
|
||||||
|
msg_data=[addr[1]]
|
||||||
|
print(msg_data)
|
||||||
|
m = can.Message(arbitration_id=msg_id,
|
||||||
|
data=msg_data,
|
||||||
|
extended_id=True)
|
||||||
|
print("going to sent to CAN",m)
|
||||||
|
|
||||||
|
try:
|
||||||
|
local_bus.send(m)
|
||||||
|
except BaseException as e:
|
||||||
|
logging.error("Error sending can message {%s}: %s" % (m, e))
|
||||||
|
print("data sent to CAN",m)
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
verbosity = 2
|
||||||
|
|
||||||
|
logging_level_name = ['critical', 'error', 'warning', 'info', 'debug', 'subdebug'][min(5, verbosity)]
|
||||||
|
can.set_logging_level(logging_level_name)
|
||||||
|
|
||||||
|
can_filters = []
|
||||||
|
config = {"can_filters": can_filters, "single_handle": True}
|
||||||
|
config["interface"] = "socketcan"
|
||||||
|
config["bitrate"] = 125000
|
||||||
|
bus = Bus("can1", **config)
|
||||||
|
|
||||||
|
print('Connected to {}: {}'.format(bus.__class__.__name__, bus.channel_info))
|
||||||
|
print('Can Logger (Started on {})\n'.format(datetime.now()))
|
||||||
|
|
||||||
|
mcp_mqtt = mqtt.Client()
|
||||||
|
mcp_mqtt.on_connect = on_connect
|
||||||
|
mcp_mqtt.on_message = on_message
|
||||||
|
mcp_mqtt.user_data_set(bus)
|
||||||
|
mcp_mqtt.connect("mcp", 1883, 60)
|
||||||
|
|
||||||
|
try:
|
||||||
|
while True:
|
||||||
|
mcp_mqtt.loop_start()
|
||||||
|
msg = bus.recv(1)
|
||||||
|
if msg is not None:
|
||||||
|
de=decon(msg.arbitration_id)
|
||||||
|
m= { "prio": hex(de[0]), "type": hex(de[1]), "dst": hex(de[2]), "src": hex(de[3]), "cmd": hex(de[4]), "action": hex(msg.data[0]) }
|
||||||
|
# print(m)
|
||||||
|
# mcp_mqtt.publish("can/rx", str(m))
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
pass
|
||||||
|
finally:
|
||||||
|
bus.shutdown()
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|