initial commit

This commit is contained in:
Hendrik Schutter 2018-11-21 23:17:31 +01:00
parent 2ca484dd6f
commit d075ca521c
35 changed files with 68241 additions and 0 deletions

8
.gitignore vendored Normal file
View File

@ -0,0 +1,8 @@
.project
.classpath
.settings/
.directory
/Software/Debug
/Software/Release

BIN
Hardware/LadeModi.ods Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,48 @@
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,5.0.0*
G04 #@! TF.CreationDate,2018-09-23T10:31:00+02:00*
G04 #@! TF.ProjectId,OpenChargeMicro,4F70656E4368617267654D6963726F2E,rev?*
G04 #@! TF.SameCoordinates,Original*
G04 #@! TF.FileFunction,Profile,NP*
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 5.0.0) date Sun Sep 23 10:31:00 2018*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
%ADD10C,0.200000*%
G04 APERTURE END LIST*
D10*
X78893800Y-99290000D02*
G75*
G03X78893800Y-99290000I-1500000J0D01*
G01*
X114276000Y-92480000D02*
G75*
G03X114276000Y-92480000I-1500000J0D01*
G01*
X114300000Y-131040000D02*
G75*
G03X114300000Y-131040000I-1500000J0D01*
G01*
X164060000Y-131040000D02*
G75*
G03X164060000Y-131040000I-1500000J0D01*
G01*
X164060000Y-92480000D02*
G75*
G03X164060000Y-92480000I-1500000J0D01*
G01*
X74295000Y-133350000D02*
X173990000Y-133350000D01*
X74295000Y-90170000D02*
X74295000Y-133350000D01*
X78893800Y-131040000D02*
G75*
G03X78893800Y-131040000I-1500000J0D01*
G01*
X173990000Y-90170000D02*
X173990000Y-133350000D01*
X74295000Y-90170000D02*
X173990000Y-90170000D01*
M02*

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,166 @@
M48
;DRILL file {KiCad 5.0.0} date Sun Sep 23 10:31:01 2018
;FORMAT={-:-/ absolute / inch / decimal}
FMAT,2
INCH,TZ
T1C0.0079
T2C0.0118
T3C0.0197
T4C0.0295
T5C0.0315
T6C0.0394
T7C0.0394
%
G90
G05
M72
T1
X4.5064Y-3.8845
X4.5531Y-4.9459
X4.6383Y-3.6752
X4.8563Y-3.7
X4.8816Y-4.7053
X4.9512Y-5.0751
X5.0294Y-4.8967
X5.2783Y-3.9042
X5.2794Y-5.1007
X5.345Y-4.8149
X5.4026Y-4.8389
X5.7084Y-5.0649
X5.8979Y-4.9062
X5.9935Y-3.65
X6.5875Y-3.6749
X6.7093Y-3.6986
X6.734Y-3.9048
T2
X3.7487Y-4.2017
X4.0931Y-4.1651
X4.4792Y-4.4649
X4.8031Y-5.0585
X4.9435Y-4.8098
X5.0585Y-5.05
X5.4531Y-5.05
X5.7082Y-4.9793
T3
X5.3Y-4.6
X5.3492Y-4.6
X5.95Y-4.6
X5.9992Y-4.6
X6.6Y-4.6
X6.6492Y-4.6
X4.65Y-4.6
X4.6992Y-4.6
T4
X6.6Y-4.925
X6.6787Y-4.925
X4.65Y-4.925
X4.7287Y-4.925
X5.3Y-4.925
X5.3787Y-4.925
X5.95Y-4.925
X6.0287Y-4.925
T5
X6.6Y-5.2
X6.6787Y-5.2
X5.95Y-5.2
X6.0287Y-5.2
X6.5Y-3.925
X6.5Y-4.025
X6.5Y-4.125
X6.5Y-4.225
X6.5Y-4.325
X6.8Y-3.925
X6.8Y-4.025
X6.8Y-4.125
X6.8Y-4.225
X6.8Y-4.325
X5.3Y-5.2
X5.3787Y-5.2
X5.85Y-3.925
X5.85Y-4.025
X5.85Y-4.125
X5.85Y-4.225
X5.85Y-4.325
X6.15Y-3.925
X6.15Y-4.025
X6.15Y-4.125
X6.15Y-4.225
X6.15Y-4.325
X4.55Y-3.925
X4.55Y-4.025
X4.55Y-4.125
X4.55Y-4.225
X4.55Y-4.325
X4.85Y-3.925
X4.85Y-4.025
X4.85Y-4.125
X4.85Y-4.225
X4.85Y-4.325
X5.2Y-3.925
X5.2Y-4.025
X5.2Y-4.125
X5.2Y-4.225
X5.2Y-4.325
X5.5Y-3.925
X5.5Y-4.025
X5.5Y-4.125
X5.5Y-4.225
X5.5Y-4.325
X4.65Y-5.2
X4.7287Y-5.2
T6
X3.855Y-3.9083
X3.855Y-4.2075
X3.0225Y-3.7125
X3.0225Y-4.5375
X3.1225Y-3.7125
X3.1225Y-4.5375
X3.2225Y-3.7125
X3.2225Y-4.5375
X3.3225Y-3.7125
X3.3225Y-4.5375
X3.4225Y-3.7125
X3.4225Y-4.5375
X3.5225Y-3.7125
X3.5225Y-4.5375
X3.6225Y-3.7125
X3.6225Y-4.5375
X3.7225Y-3.7125
X3.7225Y-4.5375
X3.8225Y-3.7125
X3.8225Y-4.5375
X3.9225Y-3.7125
X3.9225Y-4.5375
X4.0225Y-3.7125
X4.0225Y-4.5375
X4.1225Y-3.7125
X4.1225Y-4.5375
X4.2225Y-3.7125
X4.2225Y-4.5375
X3.85Y-4.69
X3.85Y-4.79
X3.85Y-4.89
X3.85Y-4.99
X3.85Y-5.09
X3.85Y-5.19
X5.51Y-3.65
X5.61Y-3.65
X5.71Y-3.65
X5.81Y-3.65
X4.25Y-4.75
X4.25Y-4.85
X4.25Y-4.95
X4.25Y-5.05
X4.25Y-5.15
T7
X3.1Y-4.7634
X3.1Y-4.9366
T6
X3.4556Y-4.8388G85X3.5344Y-4.8388
G05
X3.4556Y-5.075G85X3.5344Y-5.075
G05
X3.68Y-4.9963G85X3.68Y-4.9175
G05
T0
M30

View File

@ -0,0 +1,536 @@
EESchema-LIBRARY Version 2.4
#encoding utf-8
#
# 4xxx:CD4051BM96
#
DEF 4xxx:CD4051BM96 U 0 40 Y Y 1 F N
F0 "U" -400 550 50 H V C CNN
F1 "4xxx:CD4051BM96" 0 500 50 H V C CNN
F2 "" -450 -100 50 H I C CNN
F3 "" -450 -100 50 H I C CNN
$FPLIST
SOIC-16_150mil
$ENDFPLIST
DRAW
S 200 -400 -150 400 0 1 0 f
X y4 1 400 -50 200 L 50 50 1 1 B
X S1 10 -350 250 200 R 50 50 1 1 I
X S0 11 -350 350 200 R 50 50 1 1 I
X y3 12 400 50 200 L 50 50 1 1 B
X y0 13 400 350 200 L 50 50 1 1 B
X y1 14 400 250 200 L 50 50 1 1 B
X y2 15 400 150 200 L 50 50 1 1 B
X Vcc 16 -350 -250 200 R 50 50 1 1 I
X y6 2 400 -250 200 L 50 50 1 1 B
X z 3 -350 -150 200 R 50 50 1 1 B
X y7 4 400 -350 200 L 50 50 1 1 B
X y5 5 400 -150 200 L 50 50 1 1 B
X E 6 -350 50 200 R 50 50 1 1 I
X Vee 7 -350 -50 200 R 50 50 1 1 I
X GND 8 -350 -350 200 R 50 50 1 1 I
X S2 9 -350 150 200 R 50 50 1 1 I
ENDDRAW
ENDDEF
#
# Amplifier_Operational:LM324DR
#
DEF Amplifier_Operational:LM324DR U 0 40 Y Y 1 F N
F0 "U" -450 950 50 H V C CNN
F1 "Amplifier_Operational:LM324DR" -150 950 50 H V C CNN
F2 "" -100 200 50 H I C CNN
F3 "" -100 200 50 H I C CNN
$FPLIST
SOIC-14_150mil
$ENDFPLIST
DRAW
S 150 150 -400 850 0 1 0 f
X 1OUT 1 -600 800 200 R 50 50 1 1 O
X 3IN+ 10 350 400 200 L 50 50 1 1 I
X GND 11 350 500 200 L 50 50 1 1 I
X 4IN+ 12 350 600 200 L 50 50 1 1 I
X 4IN- 13 350 700 200 L 50 50 1 1 I
X 4OUT 14 350 800 200 L 50 50 1 1 O
X 1IN- 2 -600 700 200 R 50 50 1 1 I
X 1IN+ 3 -600 600 200 R 50 50 1 1 I
X Vcc 4 -600 500 200 R 50 50 1 1 I
X 2IN+ 5 -600 400 200 R 50 50 1 1 I
X 2IN- 6 -600 300 200 R 50 50 1 1 I
X 2OUT 7 -600 200 200 R 50 50 1 1 O
X 3OUT 8 350 200 200 L 50 50 1 1 O
X 3IN- 9 350 300 200 L 50 50 1 1 I
ENDDRAW
ENDDEF
#
# Battery_Management:TP4056
#
DEF Battery_Management:TP4056 U 0 40 Y Y 1 F N
F0 "U" -400 550 50 H V C CNN
F1 "Battery_Management:TP4056" -150 450 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
$FPLIST
SOP-8_EP_150mil
$ENDFPLIST
DRAW
S 100 -50 -450 400 0 1 0 f
X TEMP 1 -650 350 200 R 50 50 1 1 I
X PROG 2 -650 250 200 R 50 50 1 1 I
X GND 3 -650 150 200 R 50 50 1 1 W
X Vcc 4 -650 50 200 R 50 50 1 1 W
X BAT 5 300 50 200 L 50 50 1 1 w
X STDBY 6 300 150 200 L 50 50 1 1 O
X CHRG 7 300 250 200 L 50 50 1 1 O
X CE 8 300 350 200 L 50 50 1 1 B
ENDDRAW
ENDDEF
#
# Connector:Conn_01x02_Male
#
DEF Connector:Conn_01x02_Male J 0 40 Y N 1 F N
F0 "J" 0 100 50 H V C CNN
F1 "Connector:Conn_01x02_Male" 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 34 -95 0 -105 1 1 6 F
S 34 5 0 -5 1 1 6 F
P 2 1 1 6 50 -100 34 -100 N
P 2 1 1 6 50 0 34 0 N
X Pin_1 1 200 0 150 L 50 50 1 1 P
X Pin_2 2 200 -100 150 L 50 50 1 1 P
ENDDRAW
ENDDEF
#
# Connector:Conn_01x04_Male
#
DEF Connector:Conn_01x04_Male J 0 40 Y N 1 F N
F0 "J" 0 200 50 H V C CNN
F1 "Connector:Conn_01x04_Male" 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 34 -195 0 -205 1 1 6 F
S 34 -95 0 -105 1 1 6 F
S 34 5 0 -5 1 1 6 F
S 34 105 0 95 1 1 6 F
P 2 1 1 6 50 -200 34 -200 N
P 2 1 1 6 50 -100 34 -100 N
P 2 1 1 6 50 0 34 0 N
P 2 1 1 6 50 100 34 100 N
X Pin_1 1 200 100 150 L 50 50 1 1 P
X Pin_2 2 200 0 150 L 50 50 1 1 P
X Pin_3 3 200 -100 150 L 50 50 1 1 P
X Pin_4 4 200 -200 150 L 50 50 1 1 P
ENDDRAW
ENDDEF
#
# Connector:Conn_01x05_Male
#
DEF Connector:Conn_01x05_Male J 0 40 Y N 1 F N
F0 "J" 0 300 50 H V C CNN
F1 "Connector:Conn_01x05_Male" 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 34 -195 0 -205 1 1 6 F
S 34 -95 0 -105 1 1 6 F
S 34 5 0 -5 1 1 6 F
S 34 105 0 95 1 1 6 F
S 34 205 0 195 1 1 6 F
P 2 1 1 6 50 -200 34 -200 N
P 2 1 1 6 50 -100 34 -100 N
P 2 1 1 6 50 0 34 0 N
P 2 1 1 6 50 100 34 100 N
P 2 1 1 6 50 200 34 200 N
X Pin_1 1 200 200 150 L 50 50 1 1 P
X Pin_2 2 200 100 150 L 50 50 1 1 P
X Pin_3 3 200 0 150 L 50 50 1 1 P
X Pin_4 4 200 -100 150 L 50 50 1 1 P
X Pin_5 5 200 -200 150 L 50 50 1 1 P
ENDDRAW
ENDDEF
#
# Connector:Conn_01x06_Male
#
DEF Connector:Conn_01x06_Male J 0 40 Y N 1 F N
F0 "J" 0 300 50 H V C CNN
F1 "Connector:Conn_01x06_Male" 0 -400 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 34 -295 0 -305 1 1 6 F
S 34 -195 0 -205 1 1 6 F
S 34 -95 0 -105 1 1 6 F
S 34 5 0 -5 1 1 6 F
S 34 105 0 95 1 1 6 F
S 34 205 0 195 1 1 6 F
P 2 1 1 6 50 -300 34 -300 N
P 2 1 1 6 50 -200 34 -200 N
P 2 1 1 6 50 -100 34 -100 N
P 2 1 1 6 50 0 34 0 N
P 2 1 1 6 50 100 34 100 N
P 2 1 1 6 50 200 34 200 N
X Pin_1 1 200 200 150 L 50 50 1 1 P
X Pin_2 2 200 100 150 L 50 50 1 1 P
X Pin_3 3 200 0 150 L 50 50 1 1 P
X Pin_4 4 200 -100 150 L 50 50 1 1 P
X Pin_5 5 200 -200 150 L 50 50 1 1 P
X Pin_6 6 200 -300 150 L 50 50 1 1 P
ENDDRAW
ENDDEF
#
# Connector:USB_B_Mini
#
DEF Connector:USB_B_Mini J 0 40 Y Y 1 F N
F0 "J" -200 450 50 H V L CNN
F1 "Connector:USB_B_Mini" -200 350 50 H V L CNN
F2 "" 150 -50 50 H I C CNN
F3 "" 150 -50 50 H I C CNN
ALIAS USB_B_Mini
$FPLIST
USB*
$ENDFPLIST
DRAW
C -150 85 25 0 1 10 F
C -25 135 15 0 1 10 F
S -200 -300 200 300 0 1 10 f
S -5 -300 5 -270 0 1 0 N
S 10 50 -20 20 0 1 10 F
S 200 -205 170 -195 0 1 0 N
S 200 -105 170 -95 0 1 0 N
S 200 -5 170 5 0 1 0 N
S 200 195 170 205 0 1 0 N
P 2 0 1 10 -75 85 25 85 N
P 4 0 1 10 -125 85 -100 85 -50 135 -25 135 N
P 4 0 1 10 -100 85 -75 85 -50 35 0 35 N
P 4 0 1 10 25 110 25 60 75 85 25 110 F
P 5 0 1 0 -170 220 -70 220 -80 190 -160 190 -170 220 F
P 9 0 1 0 -185 230 -185 220 -175 190 -175 180 -65 180 -65 190 -55 220 -55 230 -185 230 N
X VBUS 1 300 200 100 L 50 50 1 1 w
X D- 2 300 -100 100 L 50 50 1 1 P
X D+ 3 300 0 100 L 50 50 1 1 P
X ID 4 300 -200 100 L 50 50 1 1 P
X GND 5 0 -400 100 U 50 50 1 1 w
X Shield 6 -100 -400 100 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# DevBoard:DevBoardV3
#
DEF DevBoard:DevBoardV3 U 0 40 Y Y 1 F N
F0 "U" -450 850 50 H V C CNN
F1 "DevBoard:DevBoardV3" 0 -250 50 H V C CNN
F2 "" -200 -200 50 H I C CNN
F3 "" -200 -200 50 H I C CNN
DRAW
T 0 0 700 50 0 0 0 FCC Normal 0 C C
S 550 -650 -600 750 0 1 0 f
X GND 1 -800 -550 200 R 50 50 1 1 w
X D13/SCK 10 -800 350 200 R 50 50 1 1 B
X T01 11 -800 450 200 R 50 50 1 1 O
X T02 12 -800 550 200 R 50 50 1 1 O
X Vin 13 -800 650 200 R 50 50 1 1 W
X GND 14 750 650 200 L 50 50 1 1 w
X A0 15 750 550 200 L 50 50 1 1 w
X A1 16 750 450 200 L 50 50 1 1 O
X A2 17 750 350 200 L 50 50 1 1 I
X A3 18 750 250 200 L 50 50 1 1 I
X A4 19 750 150 200 L 50 50 1 1 O
X D5 2 -800 -450 200 R 50 50 1 1 B
X A5 20 750 50 200 L 50 50 1 1 B
X WS2812B 21 750 -50 200 L 50 50 1 1 B
X RST 22 750 -150 200 L 50 50 1 1 B
X Rx 23 750 -250 200 L 50 50 1 1 B
X Tx 24 750 -350 200 L 50 50 1 1 B
X 3V3 25 750 -450 200 L 50 50 1 1 B
X 5V 26 750 -550 200 L 50 50 1 1 w
X D6 3 -800 -350 200 R 50 50 1 1 B
X D7 4 -800 -250 200 R 50 50 1 1 B
X D8 5 -800 -150 200 R 50 50 1 1 B
X D9 6 -800 -50 200 R 50 50 1 1 B
X D10 7 -800 50 200 R 50 50 1 1 B
X D11/MOSI 8 -800 150 200 R 50 50 1 1 B
X D12/MISO 9 -800 250 200 R 50 50 1 1 B
ENDDRAW
ENDDEF
#
# Device:Buzzer
#
DEF Device:Buzzer BZ 0 1 Y N 1 F N
F0 "BZ" 150 50 50 H V L CNN
F1 "Device:Buzzer" 150 -50 50 H V L CNN
F2 "" -25 100 50 V I C CNN
F3 "" -25 100 50 V I C CNN
$FPLIST
*Buzzer*
$ENDFPLIST
DRAW
A 0 0 125 -899 899 0 1 0 N 0 -125 0 125
P 2 0 1 0 -65 75 -45 75 N
P 2 0 1 0 -55 85 -55 65 N
P 2 0 1 0 0 125 0 -125 N
X - 1 -100 100 100 R 50 50 1 1 P
X + 2 -100 -100 100 R 50 50 1 1 P
ENDDRAW
ENDDEF
#
# Device:C
#
DEF Device:C C 0 10 N Y 1 F N
F0 "C" 25 100 50 H V L CNN
F1 "Device:C" 25 -100 50 H V L CNN
F2 "" 38 -150 50 H I C CNN
F3 "" 0 0 50 H I C CNN
$FPLIST
C_*
$ENDFPLIST
DRAW
P 2 0 1 20 -80 -30 80 -30 N
P 2 0 1 20 -80 30 80 30 N
X ~ 1 0 150 110 D 50 50 1 1 P
X ~ 2 0 -150 110 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# Device:CP
#
DEF Device:CP C 0 10 N Y 1 F N
F0 "C" 25 100 50 H V L CNN
F1 "Device:CP" 25 -100 50 H V L CNN
F2 "" 38 -150 50 H I C CNN
F3 "" 0 0 50 H I C CNN
$FPLIST
CP_*
$ENDFPLIST
DRAW
S -90 20 -90 40 0 1 0 N
S -90 20 90 20 0 1 0 N
S 90 -20 -90 -40 0 1 0 F
S 90 40 -90 40 0 1 0 N
S 90 40 90 20 0 1 0 N
P 2 0 1 0 -70 90 -30 90 N
P 2 0 1 0 -50 110 -50 70 N
X ~ 1 0 150 110 D 50 50 1 1 P
X ~ 2 0 -150 110 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# Device:LED
#
DEF Device:LED D 0 40 N N 1 F N
F0 "D" 0 100 50 H V C CNN
F1 "Device:LED" 0 -100 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
$FPLIST
LED*
LED_SMD:*
LED_THT:*
$ENDFPLIST
DRAW
P 2 0 1 8 -50 -50 -50 50 N
P 2 0 1 0 -50 0 50 0 N
P 4 0 1 8 50 -50 50 50 -50 0 50 -50 N
P 5 0 1 0 -120 -30 -180 -90 -150 -90 -180 -90 -180 -60 N
P 5 0 1 0 -70 -30 -130 -90 -100 -90 -130 -90 -130 -60 N
X K 1 -150 0 100 R 50 50 1 1 P
X A 2 150 0 100 L 50 50 1 1 P
ENDDRAW
ENDDEF
#
# Device:Q_PNP_BCE
#
DEF Device:Q_PNP_BCE Q 0 0 Y N 1 F N
F0 "Q" 200 50 50 H V L CNN
F1 "Device:Q_PNP_BCE" 200 -50 50 H V L CNN
F2 "" 200 100 50 H I C CNN
F3 "" 0 0 50 H I C CNN
DRAW
C 50 0 111 0 1 10 N
P 2 0 1 0 25 25 100 100 N
P 3 0 1 0 25 -25 100 -100 100 -100 N
P 3 0 1 20 25 75 25 -75 25 -75 N
P 5 0 1 0 90 -70 70 -90 50 -50 90 -70 90 -70 F
X B 1 -200 0 225 R 50 50 1 1 I
X C 2 100 200 100 D 50 50 1 1 P
X E 3 100 -200 100 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# Device:R
#
DEF Device:R R 0 0 N Y 1 F N
F0 "R" 80 0 50 V V C CNN
F1 "Device:R" 0 0 50 V V C CNN
F2 "" -70 0 50 V I C CNN
F3 "" 0 0 50 H I C CNN
$FPLIST
R_*
$ENDFPLIST
DRAW
S -40 -100 40 100 0 1 10 N
X ~ 1 0 150 50 D 50 50 1 1 P
X ~ 2 0 -150 50 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# Device:R_Shunt
#
DEF Device:R_Shunt R 0 0 N Y 1 F N
F0 "R" -175 0 50 V V C CNN
F1 "Device:R_Shunt" -100 0 50 V V C CNN
F2 "" -70 0 50 V I C CNN
F3 "" 0 0 50 H I C CNN
$FPLIST
R_*Shunt*
$ENDFPLIST
DRAW
S -40 -100 40 100 0 1 10 N
P 2 0 1 0 0 -100 50 -100 N
P 2 0 1 0 50 100 0 100 N
X 1 1 0 200 100 D 50 50 1 1 P
X 2 2 150 100 100 L 50 50 1 1 P
X 3 3 150 -100 100 L 50 50 1 1 P
X 4 4 0 -200 100 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# Regulator_Linear:AMS1117-5.0
#
DEF Regulator_Linear:AMS1117-5.0 U 0 10 Y Y 1 F N
F0 "U" -150 125 50 H V C CNN
F1 "Regulator_Linear:AMS1117-5.0" 0 125 50 H V L CNN
F2 "Package_TO_SOT_SMD:SOT-223-3_TabPin2" 0 200 50 H I C CNN
F3 "" 100 -250 50 H I C CNN
ALIAS AP1117-18 AP1117-25 AP1117-33 AP1117-50 LD1117S33TR_SOT223 LD1117S12TR_SOT223 LD1117S18TR_SOT223 LD1117S25TR_SOT223 LD1117S50TR_SOT223 NCP1117-12_SOT223 NCP1117-1.5_SOT223 NCP1117-1.8_SOT223 NCP1117-2.0_SOT223 NCP1117-2.5_SOT223 NCP1117-2.85_SOT223 NCP1117-3.3_SOT223 NCP1117-5.0_SOT223 AMS1117-1.5 AMS1117-1.8 AMS1117-2.5 AMS1117-2.85 AMS1117-3.3 AMS1117-5.0
$FPLIST
SOT?223*TabPin2*
$ENDFPLIST
DRAW
S -200 -200 200 75 0 1 10 f
X GND 1 0 -300 100 U 50 50 1 1 W
X VO 2 300 0 100 L 50 50 1 1 w
X VI 3 -300 0 100 R 50 50 1 1 W
ENDDRAW
ENDDEF
#
# Switch:SW_DIP_x05
#
DEF Switch:SW_DIP_x05 SW 0 0 Y N 1 F N
F0 "SW" 0 350 50 H V C CNN
F1 "Switch:SW_DIP_x05" 0 -350 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
$FPLIST
SW?DIP?x5*
$ENDFPLIST
DRAW
C -80 -200 20 0 0 0 N
C -80 -100 20 0 0 0 N
C -80 0 20 0 0 0 N
C -80 100 20 0 0 0 N
C -80 200 20 0 0 0 N
C 80 -200 20 0 0 0 N
C 80 -100 20 0 0 0 N
C 80 0 20 0 0 0 N
C 80 100 20 0 0 0 N
C 80 200 20 0 0 0 N
S -150 300 150 -300 0 1 10 f
P 2 0 0 0 -60 -194 93 -153 N
P 2 0 0 0 -60 -94 93 -53 N
P 2 0 0 0 -60 5 93 46 N
P 2 0 0 0 -60 105 93 146 N
P 2 0 0 0 -60 205 93 246 N
X ~ 1 -300 200 200 R 50 50 1 1 P
X ~ 10 300 200 200 L 50 50 1 1 P
X ~ 2 -300 100 200 R 50 50 1 1 P
X ~ 3 -300 0 200 R 50 50 1 1 P
X ~ 4 -300 -100 200 R 50 50 1 1 P
X ~ 5 -300 -200 200 R 50 50 1 1 P
X ~ 6 300 -200 200 L 50 50 1 1 P
X ~ 7 300 -100 200 L 50 50 1 1 P
X ~ 8 300 0 200 L 50 50 1 1 P
X ~ 9 300 100 200 L 50 50 1 1 P
ENDDRAW
ENDDEF
#
# Transistor_BJT:2N3906
#
DEF Transistor_BJT:2N3906 Q 0 0 Y N 1 F N
F0 "Q" 200 75 50 H V L CNN
F1 "Transistor_BJT:2N3906" 200 0 50 H V L CNN
F2 "Package_TO_SOT_THT:TO-92_Inline" 200 -75 50 H I L CIN
F3 "" 0 0 50 H I L CNN
ALIAS 2N3905
$FPLIST
TO?92*
$ENDFPLIST
DRAW
C 50 0 111 0 1 10 N
P 2 0 1 0 25 25 100 100 N
P 3 0 1 0 25 -25 100 -100 100 -100 N
P 3 0 1 20 25 75 25 -75 25 -75 N
P 5 0 1 0 90 -70 70 -90 50 -50 90 -70 90 -70 F
X E 1 100 -200 100 U 50 50 1 1 P
X B 2 -200 0 225 R 50 50 1 1 I
X C 3 100 200 100 D 50 50 1 1 P
ENDDRAW
ENDDEF
#
# power:+3V3
#
DEF power:+3V3 #PWR 0 0 Y Y 1 F P
F0 "#PWR" 0 -150 50 H I C CNN
F1 "power:+3V3" 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
#
#End Library

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,43 @@
update=Mi 21 Nov 2018 23:10:41 CET
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]
[schematic_editor]
version=1
PageLayoutDescrFile=
PlotDirectoryName=
SubpartIdSeparator=0
SubpartFirstId=65
NetFmtName=
SpiceAjustPassiveValues=0
LabSize=50
ERC_TestSimilarLabels=1

View File

@ -0,0 +1,162 @@
(rules PCB OpenChargeMicro
(snap_angle
fortyfive_degree
)
(autoroute_settings
(fanout off)
(autoroute on)
(postroute on)
(vias on)
(via_costs 50)
(plane_via_costs 5)
(start_ripup_costs 100)
(start_pass_no 7920)
(layer_rule F.Cu
(active on)
(preferred_direction horizontal)
(preferred_direction_trace_costs 1.0)
(against_preferred_direction_trace_costs 3.2)
)
(layer_rule B.Cu
(active on)
(preferred_direction vertical)
(preferred_direction_trace_costs 1.0)
(against_preferred_direction_trace_costs 1.5)
)
)
(rule
(width 152.4)
(clear 152.6)
(clear 76.2 (type smd_to_turn_gap))
(clear 38.2 (type smd_smd))
)
(padstack "Via[0-1]_449.834:199.898_um"
(shape
(circle F.Cu 449.8 0.0 0.0)
)
(shape
(circle B.Cu 449.8 0.0 0.0)
)
(attach off)
)
(padstack "Via[0-1]_508:299.974_um"
(shape
(circle F.Cu 508.0 0.0 0.0)
)
(shape
(circle B.Cu 508.0 0.0 0.0)
)
(attach off)
)
(padstack "Via[0-1]_599.948:299.974_um"
(shape
(circle F.Cu 600.0 0.0 0.0)
)
(shape
(circle B.Cu 600.0 0.0 0.0)
)
(attach off)
)
(via
"Via[0-1]_449.834:199.898_um" "Via[0-1]_449.834:199.898_um" default
)
(via
"Via[0-1]_508:299.974_um" "Via[0-1]_508:299.974_um" default
)
(via
"Via[0-1]_599.948:299.974_um" "Via[0-1]_599.948:299.974_um" default
)
(via
"Via[0-1]_449.834:199.898_um-kicad_default" "Via[0-1]_449.834:199.898_um" "kicad_default"
)
(via
"Via[0-1]_508:299.974_um-kicad_default" "Via[0-1]_508:299.974_um" "kicad_default"
)
(via
"Via[0-1]_599.948:299.974_um-kicad_default" "Via[0-1]_599.948:299.974_um" "kicad_default"
)
(via
"Via[0-1]_449.834:199.898_um-Charge" "Via[0-1]_449.834:199.898_um" Charge
)
(via
"Via[0-1]_508:299.974_um-Charge" "Via[0-1]_508:299.974_um" Charge
)
(via
"Via[0-1]_599.948:299.974_um-Charge" "Via[0-1]_599.948:299.974_um" Charge
)
(via
"Via[0-1]_449.834:199.898_um-Power" "Via[0-1]_449.834:199.898_um" Power
)
(via
"Via[0-1]_508:299.974_um-Power" "Via[0-1]_508:299.974_um" Power
)
(via
"Via[0-1]_599.948:299.974_um-Power" "Via[0-1]_599.948:299.974_um" Power
)
(via_rule
default "Via[0-1]_449.834:199.898_um"
)
(via_rule
"kicad_default" "Via[0-1]_449.834:199.898_um-kicad_default"
)
(via_rule
Charge "Via[0-1]_508:299.974_um-Charge"
)
(via_rule
Power "Via[0-1]_599.948:299.974_um-Power"
)
(class default
(clearance_class default)
(via_rule default)
(rule
(width 152.4)
)
(circuit
(use_layer F.Cu B.Cu)
)
)
(class "kicad_default"
"Net-(BZ1-Pad1)" "Net-(D1-Pad1)" "Net-(D1-Pad2)" "Net-(D2-Pad1)" "Net-(D2-Pad2)" "Net-(D3-Pad2)" "Net-(D3-Pad1)" "Net-(D4-Pad1)"
"Net-(D4-Pad2)" "Net-(D5-Pad2)" "Net-(D5-Pad1)" "Net-(D6-Pad2)" "Net-(D6-Pad1)" "Net-(D7-Pad1)" "Net-(D7-Pad2)" "Net-(D8-Pad2)"
"Net-(D8-Pad1)" vRx vTx SCL SDA "Net-(J4-Pad6)" Tx Rx
"Net-(Q1-Pad2)" "Net-(Q2-Pad1)" "Net-(R1-Pad2)" "Net-(R2-Pad2)" Ain05 Ain06 "Net-(R5-Pad1)" Ain08
"Net-(R6-Pad1)" Ain07 Buzzer PowerOn Ain01 Ain02 Ain03 Ain04
"5V_Probe" "Net-(R21-Pad2)" "Net-(R21-Pad1)" "Net-(R22-Pad2)" "Net-(R23-Pad2)" "Net-(R24-Pad2)" "Net-(R24-Pad1)" "Net-(R25-Pad2)"
"Net-(R26-Pad2)" "Net-(R27-Pad1)" "Net-(R27-Pad2)" "Net-(R28-Pad2)" "Net-(R29-Pad2)" "Net-(R30-Pad2)" "Net-(R30-Pad1)" "Net-(R31-Pad2)"
"Net-(R32-Pad2)" "Net-(R33-Pad2)" "Net-(R34-Pad2)" "Net-(R35-Pad2)" "Net-(R36-Pad2)" "Net-(R37-Pad2)" "Net-(R38-Pad2)" "Net-(R39-Pad2)"
"Net-(R40-Pad2)" "15V_Probe" Current02 Current03 Current04 Current01 Z S2
S1 S0
(clearance_class "kicad_default")
(via_rule kicad_default)
(rule
(width 152.4)
)
(circuit
(use_layer F.Cu B.Cu)
)
)
(class Charge
Vbat01 Vbat02 Vbat03 Vbat04 Charge5V "Net-(J10-Pad1)" "Net-(J12-Pad1)" "Net-(J16-Pad1)"
"Net-(J14-Pad1)"
(clearance_class Charge)
(via_rule Charge)
(rule
(width 300.0)
)
(circuit
(use_layer F.Cu B.Cu)
)
)
(class Power
GND +5V +3V3 15V
(clearance_class Power)
(via_rule Power)
(rule
(width 400.0)
)
(circuit
(use_layer F.Cu B.Cu)
)
)
)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

BIN
Hardware/Schematic.pdf.pdf Normal file

Binary file not shown.

166
Software/.cproject Normal file
View File

@ -0,0 +1,166 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
<storageModule moduleId="org.eclipse.cdt.core.settings">
<cconfiguration id="de.innot.avreclipse.configuration.app.debug.1427179435">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="de.innot.avreclipse.configuration.app.debug.1427179435" moduleId="org.eclipse.cdt.core.settings" name="Debug">
<externalSettings/>
<extensions>
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactName="${ProjName}" buildArtefactType="de.innot.avreclipse.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=de.innot.avreclipse.buildArtefactType.app,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" description="" id="de.innot.avreclipse.configuration.app.debug.1427179435" name="Debug" parent="de.innot.avreclipse.configuration.app.debug">
<folderInfo id="de.innot.avreclipse.configuration.app.debug.1427179435." name="/" resourcePath="">
<toolChain id="de.innot.avreclipse.toolchain.winavr.app.debug.1978605780" name="AVR-GCC Toolchain" superClass="de.innot.avreclipse.toolchain.winavr.app.debug">
<option id="de.innot.avreclipse.toolchain.options.toolchain.objcopy.flash.app.debug.2009251621" name="Generate HEX file for Flash memory" superClass="de.innot.avreclipse.toolchain.options.toolchain.objcopy.flash.app.debug" value="true" valueType="boolean"/>
<option id="de.innot.avreclipse.toolchain.options.toolchain.objcopy.eeprom.app.debug.835121431" name="Generate HEX file for EEPROM" superClass="de.innot.avreclipse.toolchain.options.toolchain.objcopy.eeprom.app.debug"/>
<option id="de.innot.avreclipse.toolchain.options.toolchain.objdump.app.debug.1695375897" name="Generate Extended Listing (Source + generated Assembler)" superClass="de.innot.avreclipse.toolchain.options.toolchain.objdump.app.debug"/>
<option id="de.innot.avreclipse.toolchain.options.toolchain.size.app.debug.2067657557" name="Print Size" superClass="de.innot.avreclipse.toolchain.options.toolchain.size.app.debug"/>
<option id="de.innot.avreclipse.toolchain.options.toolchain.avrdude.app.debug.549047469" name="AVRDude" superClass="de.innot.avreclipse.toolchain.options.toolchain.avrdude.app.debug"/>
<targetPlatform id="de.innot.avreclipse.targetplatform.winavr.app.debug.1506165090" name="AVR Cross-Target" superClass="de.innot.avreclipse.targetplatform.winavr.app.debug"/>
<builder buildPath="${workspace_loc:/openChargeMicro}/Debug" id="de.innot.avreclipse.target.builder.winavr.app.debug.1802160882" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="AVR GNU Make Builder" superClass="de.innot.avreclipse.target.builder.winavr.app.debug"/>
<tool id="de.innot.avreclipse.tool.assembler.winavr.app.debug.2973573" name="AVR Assembler" superClass="de.innot.avreclipse.tool.assembler.winavr.app.debug">
<option id="de.innot.avreclipse.assembler.option.debug.level.1730166117" name="Generate Debugging Info" superClass="de.innot.avreclipse.assembler.option.debug.level"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="de.innot.avreclipse.asm.option.include.paths.609228093" name="#include paths for preprocessor(-I)" superClass="de.innot.avreclipse.asm.option.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="/usr/avr/sys-root/include/"/>
</option>
<inputType id="de.innot.avreclipse.tool.assembler.input.1688645027" superClass="de.innot.avreclipse.tool.assembler.input"/>
</tool>
<tool id="de.innot.avreclipse.tool.compiler.winavr.app.debug.2133252740" name="AVR Compiler" superClass="de.innot.avreclipse.tool.compiler.winavr.app.debug">
<option id="de.innot.avreclipse.compiler.option.debug.level.1241513296" name="Generate Debugging Info" superClass="de.innot.avreclipse.compiler.option.debug.level"/>
<option id="de.innot.avreclipse.compiler.option.optimize.156807761" name="Optimization Level" superClass="de.innot.avreclipse.compiler.option.optimize"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="de.innot.avreclipse.compiler.option.incpath.2022106753" name="Include Paths (-I)" superClass="de.innot.avreclipse.compiler.option.incpath" valueType="includePath">
<listOptionValue builtIn="false" value="/usr/avr/sys-root/include/"/>
</option>
<inputType id="de.innot.avreclipse.compiler.winavr.input.507254525" name="C Source Files" superClass="de.innot.avreclipse.compiler.winavr.input"/>
</tool>
<tool id="de.innot.avreclipse.tool.cppcompiler.app.debug.1143634285" name="AVR C++ Compiler" superClass="de.innot.avreclipse.tool.cppcompiler.app.debug">
<option id="de.innot.avreclipse.cppcompiler.option.debug.level.503422737" name="Generate Debugging Info" superClass="de.innot.avreclipse.cppcompiler.option.debug.level"/>
<option id="de.innot.avreclipse.cppcompiler.option.optimize.155779868" name="Optimization Level" superClass="de.innot.avreclipse.cppcompiler.option.optimize"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="de.innot.avreclipse.cppcompiler.option.incpath.823066655" name="Include Paths (-I)" superClass="de.innot.avreclipse.cppcompiler.option.incpath" valueType="includePath">
<listOptionValue builtIn="false" value="/usr/avr/sys-root/include/"/>
</option>
<inputType id="de.innot.avreclipse.cppcompiler.input.250930691" superClass="de.innot.avreclipse.cppcompiler.input"/>
</tool>
<tool id="de.innot.avreclipse.tool.linker.winavr.app.debug.853456894" name="AVR C Linker" superClass="de.innot.avreclipse.tool.linker.winavr.app.debug"/>
<tool id="de.innot.avreclipse.tool.cpplinker.app.debug.903398008" name="AVR C++ Linker" superClass="de.innot.avreclipse.tool.cpplinker.app.debug">
<inputType id="de.innot.avreclipse.tool.cpplinker.input.65952620" name="OBJ Files" superClass="de.innot.avreclipse.tool.cpplinker.input">
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
</inputType>
</tool>
<tool id="de.innot.avreclipse.tool.archiver.winavr.base.800620483" name="AVR Archiver" superClass="de.innot.avreclipse.tool.archiver.winavr.base"/>
<tool id="de.innot.avreclipse.tool.objdump.winavr.app.debug.1372201036" name="AVR Create Extended Listing" superClass="de.innot.avreclipse.tool.objdump.winavr.app.debug"/>
<tool id="de.innot.avreclipse.tool.objcopy.flash.winavr.app.debug.1647373475" name="AVR Create Flash image" superClass="de.innot.avreclipse.tool.objcopy.flash.winavr.app.debug"/>
<tool id="de.innot.avreclipse.tool.objcopy.eeprom.winavr.app.debug.1462807145" name="AVR Create EEPROM image" superClass="de.innot.avreclipse.tool.objcopy.eeprom.winavr.app.debug"/>
<tool id="de.innot.avreclipse.tool.size.winavr.app.debug.705422082" name="Print Size" superClass="de.innot.avreclipse.tool.size.winavr.app.debug"/>
<tool id="de.innot.avreclipse.tool.avrdude.app.debug.1553302162" name="AVRDude" superClass="de.innot.avreclipse.tool.avrdude.app.debug"/>
</toolChain>
</folderInfo>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
</cconfiguration>
<cconfiguration id="de.innot.avreclipse.configuration.app.release.1977445521">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="de.innot.avreclipse.configuration.app.release.1977445521" moduleId="org.eclipse.cdt.core.settings" name="Release">
<externalSettings/>
<extensions>
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactName="${ProjName}" buildArtefactType="de.innot.avreclipse.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=de.innot.avreclipse.buildArtefactType.app,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" description="" id="de.innot.avreclipse.configuration.app.release.1977445521" name="Release" parent="de.innot.avreclipse.configuration.app.release">
<folderInfo id="de.innot.avreclipse.configuration.app.release.1977445521." name="/" resourcePath="">
<toolChain id="de.innot.avreclipse.toolchain.winavr.app.release.1633344275" name="AVR-GCC Toolchain" superClass="de.innot.avreclipse.toolchain.winavr.app.release">
<option id="de.innot.avreclipse.toolchain.options.toolchain.objcopy.flash.app.release.1628712508" name="Generate HEX file for Flash memory" superClass="de.innot.avreclipse.toolchain.options.toolchain.objcopy.flash.app.release"/>
<option id="de.innot.avreclipse.toolchain.options.toolchain.objcopy.eeprom.app.release.761603768" name="Generate HEX file for EEPROM" superClass="de.innot.avreclipse.toolchain.options.toolchain.objcopy.eeprom.app.release"/>
<option id="de.innot.avreclipse.toolchain.options.toolchain.objdump.app.release.774199864" name="Generate Extended Listing (Source + generated Assembler)" superClass="de.innot.avreclipse.toolchain.options.toolchain.objdump.app.release"/>
<option id="de.innot.avreclipse.toolchain.options.toolchain.size.app.release.716684797" name="Print Size" superClass="de.innot.avreclipse.toolchain.options.toolchain.size.app.release"/>
<option id="de.innot.avreclipse.toolchain.options.toolchain.avrdude.app.release.790992888" name="AVRDude" superClass="de.innot.avreclipse.toolchain.options.toolchain.avrdude.app.release"/>
<targetPlatform id="de.innot.avreclipse.targetplatform.winavr.app.release.1454696610" name="AVR Cross-Target" superClass="de.innot.avreclipse.targetplatform.winavr.app.release"/>
<builder buildPath="${workspace_loc:/openChargeMicro}/Release" id="de.innot.avreclipse.target.builder.winavr.app.release.267231778" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="AVR GNU Make Builder" superClass="de.innot.avreclipse.target.builder.winavr.app.release"/>
<tool id="de.innot.avreclipse.tool.assembler.winavr.app.release.390233255" name="AVR Assembler" superClass="de.innot.avreclipse.tool.assembler.winavr.app.release">
<option id="de.innot.avreclipse.assembler.option.debug.level.270978030" name="Generate Debugging Info" superClass="de.innot.avreclipse.assembler.option.debug.level" value="de.innot.avreclipse.assembler.option.debug.level.none" valueType="enumerated"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="de.innot.avreclipse.asm.option.include.paths.183896263" name="#include paths for preprocessor(-I)" superClass="de.innot.avreclipse.asm.option.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="/usr/avr/sys-root/include/"/>
</option>
<inputType id="de.innot.avreclipse.tool.assembler.input.103058488" superClass="de.innot.avreclipse.tool.assembler.input"/>
</tool>
<tool id="de.innot.avreclipse.tool.compiler.winavr.app.release.1599960695" name="AVR Compiler" superClass="de.innot.avreclipse.tool.compiler.winavr.app.release">
<option id="de.innot.avreclipse.compiler.option.debug.level.1506999036" name="Generate Debugging Info" superClass="de.innot.avreclipse.compiler.option.debug.level" value="de.innot.avreclipse.compiler.option.debug.level.none" valueType="enumerated"/>
<option id="de.innot.avreclipse.compiler.option.optimize.989197945" name="Optimization Level" superClass="de.innot.avreclipse.compiler.option.optimize" value="de.innot.avreclipse.compiler.optimize.size" valueType="enumerated"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="de.innot.avreclipse.compiler.option.incpath.634667513" name="Include Paths (-I)" superClass="de.innot.avreclipse.compiler.option.incpath" valueType="includePath">
<listOptionValue builtIn="false" value="/usr/avr/sys-root/include/"/>
</option>
<inputType id="de.innot.avreclipse.compiler.winavr.input.1619452791" name="C Source Files" superClass="de.innot.avreclipse.compiler.winavr.input"/>
</tool>
<tool id="de.innot.avreclipse.tool.cppcompiler.app.release.374758438" name="AVR C++ Compiler" superClass="de.innot.avreclipse.tool.cppcompiler.app.release">
<option id="de.innot.avreclipse.cppcompiler.option.debug.level.398659815" name="Generate Debugging Info" superClass="de.innot.avreclipse.cppcompiler.option.debug.level" value="de.innot.avreclipse.cppcompiler.option.debug.level.none" valueType="enumerated"/>
<option id="de.innot.avreclipse.cppcompiler.option.optimize.1835169824" name="Optimization Level" superClass="de.innot.avreclipse.cppcompiler.option.optimize" value="de.innot.avreclipse.cppcompiler.optimize.size" valueType="enumerated"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="de.innot.avreclipse.cppcompiler.option.incpath.373421266" name="Include Paths (-I)" superClass="de.innot.avreclipse.cppcompiler.option.incpath" valueType="includePath">
<listOptionValue builtIn="false" value="/usr/avr/sys-root/include/"/>
</option>
<inputType id="de.innot.avreclipse.cppcompiler.input.639428088" superClass="de.innot.avreclipse.cppcompiler.input"/>
</tool>
<tool id="de.innot.avreclipse.tool.linker.winavr.app.release.1898125859" name="AVR C Linker" superClass="de.innot.avreclipse.tool.linker.winavr.app.release"/>
<tool id="de.innot.avreclipse.tool.cpplinker.app.release.394362153" name="AVR C++ Linker" superClass="de.innot.avreclipse.tool.cpplinker.app.release">
<inputType id="de.innot.avreclipse.tool.cpplinker.input.203838715" name="OBJ Files" superClass="de.innot.avreclipse.tool.cpplinker.input">
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
</inputType>
</tool>
<tool id="de.innot.avreclipse.tool.archiver.winavr.base.1110636129" name="AVR Archiver" superClass="de.innot.avreclipse.tool.archiver.winavr.base"/>
<tool id="de.innot.avreclipse.tool.objdump.winavr.app.release.1100926224" name="AVR Create Extended Listing" superClass="de.innot.avreclipse.tool.objdump.winavr.app.release"/>
<tool id="de.innot.avreclipse.tool.objcopy.flash.winavr.app.release.1917597264" name="AVR Create Flash image" superClass="de.innot.avreclipse.tool.objcopy.flash.winavr.app.release"/>
<tool id="de.innot.avreclipse.tool.objcopy.eeprom.winavr.app.release.497869666" name="AVR Create EEPROM image" superClass="de.innot.avreclipse.tool.objcopy.eeprom.winavr.app.release"/>
<tool id="de.innot.avreclipse.tool.size.winavr.app.release.394474476" name="Print Size" superClass="de.innot.avreclipse.tool.size.winavr.app.release"/>
<tool id="de.innot.avreclipse.tool.avrdude.app.release.257247556" name="AVRDude" superClass="de.innot.avreclipse.tool.avrdude.app.release"/>
</toolChain>
</folderInfo>
<sourceEntries>
<entry excluding="src" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
</sourceEntries>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
</cconfiguration>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<project id="openChargeMicro.de.innot.avreclipse.project.winavr.elf_2.1.0.1725973903" name="AVR Cross Target Application" projectType="de.innot.avreclipse.project.winavr.elf_2.1.0"/>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
<storageModule moduleId="refreshScope" versionNumber="2">
<configuration configurationName="Debug">
<resource resourceType="PROJECT" workspacePath="/openChargeMicro"/>
</configuration>
<configuration configurationName="Release">
<resource resourceType="PROJECT" workspacePath="/openChargeMicro"/>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
<storageModule moduleId="scannerConfiguration">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
<scannerConfigBuildInfo instanceId="de.innot.avreclipse.configuration.app.debug.1427179435;de.innot.avreclipse.configuration.app.debug.1427179435.;de.innot.avreclipse.tool.cppcompiler.app.debug.1143634285;de.innot.avreclipse.cppcompiler.input.250930691">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="de.innot.avreclipse.core.AVRGCCManagedMakePerProjectProfileCPP"/>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="de.innot.avreclipse.configuration.app.release.1977445521;de.innot.avreclipse.configuration.app.release.1977445521.;de.innot.avreclipse.tool.compiler.winavr.app.release.1599960695;de.innot.avreclipse.compiler.winavr.input.1619452791">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="de.innot.avreclipse.core.AVRGCCManagedMakePerProjectProfileC"/>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="de.innot.avreclipse.configuration.app.debug.1427179435;de.innot.avreclipse.configuration.app.debug.1427179435.;de.innot.avreclipse.tool.compiler.winavr.app.debug.2133252740;de.innot.avreclipse.compiler.winavr.input.507254525">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="de.innot.avreclipse.core.AVRGCCManagedMakePerProjectProfileC"/>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="de.innot.avreclipse.configuration.app.release.1977445521;de.innot.avreclipse.configuration.app.release.1977445521.;de.innot.avreclipse.tool.cppcompiler.app.release.374758438;de.innot.avreclipse.cppcompiler.input.639428088">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="de.innot.avreclipse.core.AVRGCCManagedMakePerProjectProfileCPP"/>
</scannerConfigBuildInfo>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
</cproject>

48
Software/src/charger.cpp Normal file
View File

@ -0,0 +1,48 @@
/*
* Charger.cpp
*
* Created on: 19.11.2018
* Author: Hendrik Schutter
*/
#include "openChargeMicro.h"
charger::charger(struct s_charger pCharger) {
charger_settings = pCharger;
}
charger::~charger() {
}
double charger::getCurrent() {
mux.setChannel(charger_settings.chI);
int tmp = (int) io.readAdc(0);
double ret = ((double) tmp) * 1.00; //TODO calibration and testing
return ret;
}
double charger::getVoltage() {
mux.setChannel(charger_settings.chU);
int tmp = (int) io.readAdc(0);
double ret = ((double) tmp) * 1.00; //TODO calibration and testing
return ret;
}
double charger::getCapacity() {
//TODO
return 1.1;
}
double charger::getChargeTime() {
//TODO
return 1.1;
}
void charger::getInfo() {
char buffer[50];
sprintf(buffer, "Nr: %i - Uch %i - Ich %i\r\n", charger_settings.nr,
charger_settings.chU, charger_settings.chI);
serialSend(buffer);
}

34
Software/src/charger.h Normal file
View File

@ -0,0 +1,34 @@
/*
* charger.h
*
* Created on: 20.11.2018
* Author: Hendrik Schutter
*/
#ifndef SRC_CHARGER_H_
#define SRC_CHARGER_H_
struct s_charger {
int nr;
int chU;
int chI;
};
class charger {
private:
struct s_charger charger_settings;
ioController io;
multiplexer mux;
public:
charger(struct s_charger pCharger);
~charger();
double getCurrent();
double getVoltage();
double getCapacity();
double getChargeTime();
void getInfo();
};
#endif /* SRC_CHARGER_H_ */

View File

@ -0,0 +1,96 @@
/*
* ioController.cpp
*
* Created on: 20.11.2018
* Author: Hendrik Schutter
*/
#include "openChargeMicro.h"
ioController::ioController() {
ports_init();
adc_init();
}
ioController::~ioController() {
}
double ioController::get5VProbe() {
int tmp = (int) readAdc(2);
double ret = ((double) tmp) * 0.006242;
return ret;
}
double ioController::get15VProbe() {
int tmp = (int) readAdc(1);
double ret = ((double) tmp) * 0.014968;
return ret;
}
void ioController::ports_init() {
DDRD |= 1 << WS2812B;
DDRB |= 1 << ACTIVELED;
DDRB |= 1 << BUZZER;
DDRB |= 1 << POWERON;
DDRD |= 1 << S2;
DDRD |= 1 << S1;
DDRD |= 1 << S0;
DDRC &= ~(1 << PROBE15V);
DDRC &= ~(1 << PROBE5V);
DDRC &= ~(1 << Z);
}
void ioController::activateChargers() {
PORTB &= ~(1 << POWERON); //OFF
}
void ioController::deactivateChargers() {
PORTB |= (1 << POWERON); //ON
}
void ioController::setActiveLED(bool pBool) {
if (pBool) {
PORTB |= (1 << ACTIVELED); //ON
} else {
PORTB &= ~(1 << ACTIVELED); //OFF
}
}
void ioController::adc_init(void) {
ADMUX = (1 << REFS0); //select AVCC as reference
ADCSRA = (1 << ADEN) | 7; //enable and prescale = 128 (16MHz/128 = 125kHz)
}
int ioController::readAdc(char ch) {
ADMUX = (1 << REFS0) | (ch & 0x0f); //select input and ref
ADCSRA |= (1 << ADSC); //start the conversion
while (ADCSRA & (1 << ADSC))
; //wait for end of conversion
return ADCW;
}
void ioController::setMultiplexer(bool pS2, bool pS1, bool pS0) {
if (pS0) {
PORTD |= (1 << S0); //ON
} else {
PORTD &= ~(1 << S0); //OFF
}
if (pS1) {
PORTD |= (1 << S1); //ON
} else {
PORTD &= ~(1 << S1); //OFF
}
if (pS2) {
PORTD |= (1 << S2); //ON
} else {
PORTD &= ~(1 << S2); //OFF
}
}

View File

@ -0,0 +1,29 @@
/*
* ioController.h
*
* Created on: 20.11.2018
* Author: Hendrik Schutter
*/
#ifndef SRC_IOCONTROLLER_H_
#define SRC_IOCONTROLLER_H_
class ioController {
private:
public:
ioController();
~ioController();
double get5VProbe();
double get15VProbe();
void ports_init();
void activateChargers();
void deactivateChargers();
void setActiveLED(bool pBool);
void adc_init(void);
int readAdc(char chan);
void setMultiplexer(bool pS2, bool pS1, bool pS0);
};
#endif /* SRC_IOCONTROLLER_H_ */

113
Software/src/main.cpp Normal file
View File

@ -0,0 +1,113 @@
#include "openChargeMicro.h"
int main(void) {
serialSetup();
serialSend("Hello World\r\n");
ioController io;
io.deactivateChargers();
_delay_ms(1000); //Startup delay
io.setActiveLED(true);
io.activateChargers();
/* create charger */
s_charger charger_settings;
charger_settings.chU = 0;
charger_settings.chI = 4;
charger_settings.nr = 0;
charger charger01 = charger(charger_settings);
charger01.getInfo();
charger_settings.chU = 1;
charger_settings.chI = 5;
charger_settings.nr = 1;
charger charger02 = charger(charger_settings);
charger02.getInfo();
charger_settings.chU = 2;
charger_settings.chI = 6;
charger_settings.nr = 2;
charger charger03 = charger(charger_settings);
charger03.getInfo();
charger_settings.chU = 3;
charger_settings.chI = 7;
charger_settings.nr = 3;
charger charger04 = charger(charger_settings);
charger04.getInfo();
/* create charger */
while (true) {
char charVal[10];
dtostrf(charger01.getVoltage(), 4, 2, charVal);
serialSend("Charger01 - ");
serialSend(charVal);
serialSend(" Volt\r\n");
dtostrf(charger01.getCurrent(), 4, 2, charVal);
serialSend("Charger01 - ");
serialSend(charVal);
serialSend(" mAh\r\n");
dtostrf(charger02.getVoltage(), 4, 2, charVal);
serialSend("Charger02 - ");
serialSend(charVal);
serialSend(" Volt\r\n");
dtostrf(charger02.getCurrent(), 4, 2, charVal);
serialSend("Charger02 - ");
serialSend(charVal);
serialSend(" mAh\r\n");
dtostrf(charger03.getVoltage(), 4, 2, charVal);
serialSend("Charger03 - ");
serialSend(charVal);
serialSend(" Volt\r\n");
dtostrf(charger03.getCurrent(), 4, 2, charVal);
serialSend("Charger03 - ");
serialSend(charVal);
serialSend(" mAh\r\n");
dtostrf(charger04.getVoltage(), 4, 2, charVal);
serialSend("Charger04 - ");
serialSend(charVal);
serialSend(" Volt\r\n");
dtostrf(charger04.getCurrent(), 4, 2, charVal);
serialSend("Charger04 - ");
serialSend(charVal);
serialSend(" mAh\r\n");
serialSend("\r\n");
_delay_ms(1000);
}
return 0;
}
void serialSetup(void) {
//Register settings
//High and low bits
UBRR0H = (BUAD_RATE_CALC >> 8);
UBRR0L = BUAD_RATE_CALC;
//transimit and recieve enable
UCSR0B = (1 << TXEN0) | (1 << TXCIE0) | (1 << RXEN0) | (1 << RXCIE0);
UCSR0C = (1 << UCSZ01) | (1 << UCSZ00); //8 bit data format
}
void serialSend(const char* sendString) {
for (unsigned int i = 0; i < strlen(sendString); i++) {
while (( UCSR0A & (1 << UDRE0)) == 0) {
};
UDR0 = sendString[i];
}
}

View File

@ -0,0 +1,50 @@
/*
* multiplexer.cpp
*
* Created on: 20.11.2018
* Author: Hendrik Schutter
*/
#include "openChargeMicro.h"
multiplexer::multiplexer() {
}
multiplexer::~multiplexer() {
}
void multiplexer::setChannel(int pCh) {
// see http://www.ti.com/lit/ds/symlink/cd4051b.pdf
switch (pCh) {
case 0:
io.setMultiplexer(0, 0, 0);
break;
case 1:
io.setMultiplexer(0, 0, 1);
break;
case 2:
io.setMultiplexer(0, 1, 0);
break;
case 3:
io.setMultiplexer(0, 1, 1);
break;
case 4:
io.setMultiplexer(1, 0, 0);
break;
case 5:
io.setMultiplexer(1, 0, 1);
break;
case 6:
io.setMultiplexer(1, 1, 0);
break;
case 7:
io.setMultiplexer(1, 1, 1);
break;
default:
io.setMultiplexer(0, 0, 0);
break;
}
}

View File

@ -0,0 +1,22 @@
/*
* multiplexer.h
*
* Created on: 20.11.2018
* Author: Hendrik Schutter
*/
#ifndef SRC_MULTIPLEXER_H_
#define SRC_MULTIPLEXER_H_
class multiplexer {
private:
ioController io;
public:
multiplexer();
~multiplexer();
void setChannel(int pCh);
};
#endif /* SRC_MULTIPLEXER_H_ */

View File

@ -0,0 +1,31 @@
#include <avr/io.h>
#include <string.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <stdio.h>
#include <stdlib.h>
#include "ioController.h"
#include "multiplexer.h"
#include "charger.h"
/* PINS */
#define WS2812B PD2
#define ACTIVELED PB5
#define PROBE15V PC1
#define PROBE5V PC2
#define Z PC0
#define VTX PB3
#define VRX PB2
#define BUZZER PB1
#define POWERON PB0
#define S2 PD7
#define S1 PD6
#define S0 PD5
#define BUAD 9600
#define BUAD_RATE_CALC ((F_CPU/16/BUAD) - 1)
void serialSetup(void);
void serialSend(const char* sendString);