Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6c71191c9b | ||
|
|
1cf5d753c3 | ||
|
|
b2d99a5fbc | ||
|
|
6c278a124f | ||
|
|
bc2bda4f30 | ||
|
|
f02d4ad76b | ||
|
|
4bec43341f | ||
|
|
0736420074 | ||
|
|
a7267b5d23 | ||
|
|
f496578c13 |
@@ -5,12 +5,7 @@
|
|||||||
//#define RESET_FACTORY_DEFAULTS
|
//#define RESET_FACTORY_DEFAULTS
|
||||||
|
|
||||||
// Uncomment any of the lines below to enable debug messages for different parts of the code
|
// Uncomment any of the lines below to enable debug messages for different parts of the code
|
||||||
//#define DEBUG_FUNCTIONS
|
|
||||||
//#define DEBUG_SPEED
|
|
||||||
//#define DEBUG_PWM
|
|
||||||
//#define DEBUG_DCC_ACK
|
|
||||||
//#define DEBUG_DCC_MSG
|
//#define DEBUG_DCC_MSG
|
||||||
//#define DEBUG_STATE
|
|
||||||
|
|
||||||
#if defined(DEBUG_FUNCTIONS) or defined(DEBUG_SPEED) or defined(DEBUG_PWM) or defined(DEBUG_DCC_ACK) or defined(DEBUG_DCC_MSG) or defined(DEBUG_STATE)
|
#if defined(DEBUG_FUNCTIONS) or defined(DEBUG_SPEED) or defined(DEBUG_PWM) or defined(DEBUG_DCC_ACK) or defined(DEBUG_DCC_MSG) or defined(DEBUG_STATE)
|
||||||
#define DEBUG_PRINT
|
#define DEBUG_PRINT
|
||||||
@@ -365,17 +360,6 @@ void notifyDccSpeed(uint16_t Addr, DCC_ADDR_TYPE AddrType, uint8_t Speed, DCC_DI
|
|||||||
* Returns:
|
* Returns:
|
||||||
* None
|
* None
|
||||||
*/
|
*/
|
||||||
#ifdef DEBUG_SPEED
|
|
||||||
Serial.print("notifyDccSpeed: Addr: ");
|
|
||||||
Serial.print(Addr,DEC);
|
|
||||||
Serial.print( (AddrType == DCC_ADDR_SHORT) ? "-S" : "-L" );
|
|
||||||
Serial.print(" Speed: ");
|
|
||||||
Serial.print(Speed,DEC);
|
|
||||||
Serial.print(" Steps: ");
|
|
||||||
Serial.print(SpeedSteps,DEC);
|
|
||||||
Serial.print(" Dir: ");
|
|
||||||
Serial.println( (Dir == DCC_DIR_FWD) ? "Forward" : "Reverse" );
|
|
||||||
#endif
|
|
||||||
newDirection = Dir;
|
newDirection = Dir;
|
||||||
newSpeed = Speed;
|
newSpeed = Speed;
|
||||||
numSpeedSteps = SpeedSteps;
|
numSpeedSteps = SpeedSteps;
|
||||||
@@ -402,14 +386,6 @@ void notifyDccFunc(uint16_t Addr, DCC_ADDR_TYPE AddrType, FN_GROUP FuncGrp, uint
|
|||||||
* Returns:
|
* Returns:
|
||||||
* None
|
* None
|
||||||
*/
|
*/
|
||||||
#ifdef DEBUG_FUNCTIONS
|
|
||||||
Serial.print("notifyDccFunc: Addr: ");
|
|
||||||
Serial.print(Addr,DEC);
|
|
||||||
Serial.print( (AddrType == DCC_ADDR_SHORT) ? 'S' : 'L' );
|
|
||||||
Serial.print(" Function Group: ");
|
|
||||||
Serial.print(FuncGrp,DEC);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
switch(FuncGrp){
|
switch(FuncGrp){
|
||||||
case FN_0_4:
|
case FN_0_4:
|
||||||
bitWrite(newFunctionState, 0, FuncState & FN_BIT_00);
|
bitWrite(newFunctionState, 0, FuncState & FN_BIT_00);
|
||||||
@@ -417,30 +393,18 @@ void notifyDccFunc(uint16_t Addr, DCC_ADDR_TYPE AddrType, FN_GROUP FuncGrp, uint
|
|||||||
bitWrite(newFunctionState, 2, FuncState & FN_BIT_02);
|
bitWrite(newFunctionState, 2, FuncState & FN_BIT_02);
|
||||||
bitWrite(newFunctionState, 3, FuncState & FN_BIT_03);
|
bitWrite(newFunctionState, 3, FuncState & FN_BIT_03);
|
||||||
bitWrite(newFunctionState, 4, FuncState & FN_BIT_04);
|
bitWrite(newFunctionState, 4, FuncState & FN_BIT_04);
|
||||||
#ifdef DEBUG_FUNCTIONS
|
|
||||||
Serial.print(" FN 0-4: ");
|
|
||||||
Serial.print(newFunctionState & 0x1F);
|
|
||||||
#endif
|
|
||||||
break;
|
break;
|
||||||
case FN_5_8:
|
case FN_5_8:
|
||||||
bitWrite(newFunctionState, 5, FuncState & FN_BIT_05);
|
bitWrite(newFunctionState, 5, FuncState & FN_BIT_05);
|
||||||
bitWrite(newFunctionState, 6, FuncState & FN_BIT_06);
|
bitWrite(newFunctionState, 6, FuncState & FN_BIT_06);
|
||||||
bitWrite(newFunctionState, 7, FuncState & FN_BIT_07);
|
bitWrite(newFunctionState, 7, FuncState & FN_BIT_07);
|
||||||
bitWrite(newFunctionState, 8, FuncState & FN_BIT_08);
|
bitWrite(newFunctionState, 8, FuncState & FN_BIT_08);
|
||||||
#ifdef DEBUG_FUNCTIONS
|
|
||||||
Serial.print(" FN 5-8: ");
|
|
||||||
Serial.print((newFunctionState >> 5) & 0xF);
|
|
||||||
#endif
|
|
||||||
break;
|
break;
|
||||||
case FN_9_12:
|
case FN_9_12:
|
||||||
bitWrite(newFunctionState, 9, FuncState & FN_BIT_09);
|
bitWrite(newFunctionState, 9, FuncState & FN_BIT_09);
|
||||||
bitWrite(newFunctionState, 10, FuncState & FN_BIT_10);
|
bitWrite(newFunctionState, 10, FuncState & FN_BIT_10);
|
||||||
bitWrite(newFunctionState, 11, FuncState & FN_BIT_11);
|
bitWrite(newFunctionState, 11, FuncState & FN_BIT_11);
|
||||||
bitWrite(newFunctionState, 12, FuncState & FN_BIT_12);
|
bitWrite(newFunctionState, 12, FuncState & FN_BIT_12);
|
||||||
#ifdef DEBUG_FUNCTIONS
|
|
||||||
Serial.print(" FN 9-12: ");
|
|
||||||
Serial.print((newFunctionState >> 9) & 0xF);
|
|
||||||
#endif
|
|
||||||
break;
|
break;
|
||||||
case FN_13_20:
|
case FN_13_20:
|
||||||
bitWrite(newFunctionState, 13, FuncState & FN_BIT_13);
|
bitWrite(newFunctionState, 13, FuncState & FN_BIT_13);
|
||||||
@@ -451,10 +415,6 @@ void notifyDccFunc(uint16_t Addr, DCC_ADDR_TYPE AddrType, FN_GROUP FuncGrp, uint
|
|||||||
bitWrite(newFunctionState, 18, FuncState & FN_BIT_18);
|
bitWrite(newFunctionState, 18, FuncState & FN_BIT_18);
|
||||||
bitWrite(newFunctionState, 19, FuncState & FN_BIT_19);
|
bitWrite(newFunctionState, 19, FuncState & FN_BIT_19);
|
||||||
bitWrite(newFunctionState, 20, FuncState & FN_BIT_20);
|
bitWrite(newFunctionState, 20, FuncState & FN_BIT_20);
|
||||||
#ifdef DEBUG_FUNCTIONS
|
|
||||||
Serial.print(" FN 13-20: ");
|
|
||||||
Serial.print((newFunctionState >> 13) & 0xFF);
|
|
||||||
#endif
|
|
||||||
break;
|
break;
|
||||||
case FN_21_28:
|
case FN_21_28:
|
||||||
bitWrite(newFunctionState, 21, FuncState & FN_BIT_21);
|
bitWrite(newFunctionState, 21, FuncState & FN_BIT_21);
|
||||||
@@ -465,15 +425,8 @@ void notifyDccFunc(uint16_t Addr, DCC_ADDR_TYPE AddrType, FN_GROUP FuncGrp, uint
|
|||||||
bitWrite(newFunctionState, 26, FuncState & FN_BIT_26);
|
bitWrite(newFunctionState, 26, FuncState & FN_BIT_26);
|
||||||
bitWrite(newFunctionState, 27, FuncState & FN_BIT_27);
|
bitWrite(newFunctionState, 27, FuncState & FN_BIT_27);
|
||||||
bitWrite(newFunctionState, 28, FuncState & FN_BIT_28);
|
bitWrite(newFunctionState, 28, FuncState & FN_BIT_28);
|
||||||
#ifdef DEBUG_FUNCTIONS
|
|
||||||
Serial.print(" FN 21-28: ");
|
|
||||||
Serial.print((newFunctionState >> 21) & 0xFF);
|
|
||||||
#endif
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#ifdef DEBUG_FUNCTIONS
|
|
||||||
Serial.println();
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DEBUG_DCC_MSG
|
#ifdef DEBUG_DCC_MSG
|
||||||
@@ -512,16 +465,12 @@ void notifyCVAck(void){
|
|||||||
* Returns:
|
* Returns:
|
||||||
* None
|
* None
|
||||||
*/
|
*/
|
||||||
static bool ackDir = true;
|
static bool ackDir = false;
|
||||||
#ifdef DEBUG_DCC_ACK
|
OCR1A = ackDir ? maxOCR : 0;
|
||||||
Serial.println("notifyCVAck") ;
|
OCR1B = ackDir ? 0 : maxOCR;
|
||||||
#endif
|
|
||||||
|
|
||||||
digitalWrite(MOTOR_IN1_PIN, ackDir);
|
|
||||||
digitalWrite(MOTOR_IN2_PIN, !ackDir);
|
|
||||||
delay(6);
|
delay(6);
|
||||||
digitalWrite(MOTOR_IN1_PIN, 1);
|
OCR1A = 0;
|
||||||
digitalWrite(MOTOR_IN2_PIN, 1);
|
OCR1B = 0;
|
||||||
ackDir = !ackDir;
|
ackDir = !ackDir;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -579,7 +528,7 @@ void setup(){
|
|||||||
unlockNumber = dcc.getCV(CV_UNLOCK_NUMBER);
|
unlockNumber = dcc.getCV(CV_UNLOCK_NUMBER);
|
||||||
lockingNumber = dcc.getCV(CV_LOCKING_NUMBER);
|
lockingNumber = dcc.getCV(CV_LOCKING_NUMBER);
|
||||||
// set up PWM timer
|
// set up PWM timer
|
||||||
maxOCR = 8000 / constrain(pwmFreq, 1, 40); // 1-40 kHz
|
maxOCR = (F_CPU / 2000) / constrain(pwmFreq, 1, 40); // 1-40 kHz
|
||||||
TCCR1A = _BV(COM1A1) | _BV(COM1A0) | _BV(COM1B1) | _BV(COM1B0); // TIMER1 A and B invert PWM
|
TCCR1A = _BV(COM1A1) | _BV(COM1A0) | _BV(COM1B1) | _BV(COM1B0); // TIMER1 A and B invert PWM
|
||||||
TCCR1B = _BV(WGM13) | _BV(CS10); // TIMER1 prescaler=1, phase and frequency correct mode PWM, TOP=ICR1
|
TCCR1B = _BV(WGM13) | _BV(CS10); // TIMER1 prescaler=1, phase and frequency correct mode PWM, TOP=ICR1
|
||||||
ICR1 = maxOCR;
|
ICR1 = maxOCR;
|
||||||
@@ -633,14 +582,8 @@ void loop(){
|
|||||||
targetSpeed = actualSpeed = 0;
|
targetSpeed = actualSpeed = 0;
|
||||||
OCR1A = 0;
|
OCR1A = 0;
|
||||||
OCR1B = 0;
|
OCR1B = 0;
|
||||||
#ifdef DEBUG_PWM
|
|
||||||
Serial.println("Emergency stop");
|
|
||||||
#endif
|
|
||||||
}else if(newSpeed == 1){ // Stop if speed = 1
|
}else if(newSpeed == 1){ // Stop if speed = 1
|
||||||
targetSpeed = 0;
|
targetSpeed = 0;
|
||||||
#ifdef DEBUG_PWM
|
|
||||||
Serial.println("Regular stop");
|
|
||||||
#endif
|
|
||||||
}else{ // Calculate PWM value in the range 1..255
|
}else{ // Calculate PWM value in the range 1..255
|
||||||
uint8_t vScF1; // start to mid
|
uint8_t vScF1; // start to mid
|
||||||
uint8_t vScF2; // mid to high
|
uint8_t vScF2; // mid to high
|
||||||
|
|||||||
|
After Width: | Height: | Size: 61 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 84 KiB |
|
After Width: | Height: | Size: 76 KiB |
|
After Width: | Height: | Size: 53 KiB |
|
After Width: | Height: | Size: 62 KiB |
@@ -0,0 +1,24 @@
|
|||||||
|
### Footprint positions - created on 2026-09-29T16:15:05+0200 ###
|
||||||
|
### Printed by KiCad version 9.0.3
|
||||||
|
## Unit = mm, Angle = deg.
|
||||||
|
## Side : bottom
|
||||||
|
# Ref Val Package PosX PosY Rot Side
|
||||||
|
C5 100nF C_0603_1608Metric 59.9186 -111.7093 -90.0000 bottom
|
||||||
|
C6 4.7uF C_0603_1608Metric 58.3946 -111.7091 90.0000 bottom
|
||||||
|
C7 4.7uF C_0603_1608Metric 57.3786 -105.6639 -90.0000 bottom
|
||||||
|
D1 D_Bridge_+-AA TO-269AA 65.3304 -114.0206 0.0000 bottom
|
||||||
|
D2 MM3Z4V7ST1G D_SOD-323 56.7182 -114.8842 90.0000 bottom
|
||||||
|
D3 NSR0530HT1G D_SOD-323 62.6110 -107.1118 0.0000 bottom
|
||||||
|
D4 NSR0530HT1G D_SOD-323 62.6110 -105.1306 0.0000 bottom
|
||||||
|
R2 27k R_0603_1608Metric 59.9441 -114.0714 0.0000 bottom
|
||||||
|
R3 27k R_0603_1608Metric 59.1819 -109.4486 0.0000 bottom
|
||||||
|
R4 27k R_0603_1608Metric 59.1566 -107.9246 0.0000 bottom
|
||||||
|
R5 4.7k R_0603_1608Metric 56.8706 -111.7091 -90.0000 bottom
|
||||||
|
R6 4.7k R_0603_1608Metric 58.9534 -105.6641 90.0000 bottom
|
||||||
|
R11 1k R_0603_1608Metric 63.4238 -109.8295 -90.0000 bottom
|
||||||
|
T1 2N7002DWCT SOT-363_SC-70-6 57.2770 -117.9830 180.0000 bottom
|
||||||
|
T2 2N7002DWCT SOT-363_SC-70-6 51.6890 -116.0526 -90.0000 bottom
|
||||||
|
T3 2N7002DWCT SOT-363_SC-70-6 51.6890 -112.5982 -90.0000 bottom
|
||||||
|
T4 2N7002DWCT SOT-363_SC-70-6 51.6786 -105.7402 -90.0000 bottom
|
||||||
|
T5 2N7002DWCT SOT-363_SC-70-6 51.6786 -109.1438 -90.0000 bottom
|
||||||
|
## End
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
### Footprint positions - created on 2026-09-29T16:15:05+0200 ###
|
||||||
|
### Printed by KiCad version 9.0.3
|
||||||
|
## Unit = mm, Angle = deg.
|
||||||
|
## Side : top
|
||||||
|
# Ref Val Package PosX PosY Rot Side
|
||||||
|
C1 100nF C_0603_1608Metric 51.2318 -106.4514 0.0000 top
|
||||||
|
C2 100nF C_0603_1608Metric 55.0925 -106.4260 180.0000 top
|
||||||
|
C3 470pF C_0603_1608Metric 65.1002 -114.2491 -90.0000 top
|
||||||
|
C4 2.2uF C_0805_2012Metric 67.8330 -118.9355 0.0000 top
|
||||||
|
C8 10pF C_0603_1608Metric 59.7915 -119.1260 0.0000 top
|
||||||
|
C9 10pF C_0603_1608Metric 63.5762 -114.2493 -90.0000 top
|
||||||
|
C10 100nF C_0603_1608Metric 68.0721 -113.5126 0.0000 top
|
||||||
|
D5 Ye_LED LED_0603_1608Metric 57.4040 -105.6895 -90.0000 top
|
||||||
|
D6 Gr_LED LED_0603_1608Metric 65.2780 -105.6895 90.0000 top
|
||||||
|
D7 Rd_LED LED_0603_1608Metric 62.0522 -114.2493 90.0000 top
|
||||||
|
D8 Bl_LED LED_0603_1608Metric 52.1717 -118.8466 180.0000 top
|
||||||
|
IC1 MIC5205-5.0YM5-TR SOT-23-5 67.7750 -116.1034 180.0000 top
|
||||||
|
IC2 ATMEGA328P-AUR TQFP-32_7x7mm_P0.8mm 56.0000 -112.5410 90.0000 top
|
||||||
|
IC3 DRV8872DDAR Texas_HTSOP-8-1EP_3.9x4.9mm_P1.27mm_EP2.95x4.9mm_Mask2.4x3.1mm_ThermalVias 66.2480 -109.9820 0.0000 top
|
||||||
|
R1 4.7k R_0603_1608Metric 48.7426 -109.6518 -90.0000 top
|
||||||
|
R7 1k R_0603_1608Metric 55.3211 -118.8466 180.0000 top
|
||||||
|
R9 1k R_0603_1608Metric 55.0925 -104.9020 0.0000 top
|
||||||
|
R10 1k R_0603_1608Metric 66.9290 -105.6895 90.0000 top
|
||||||
|
X1 16M Crystal_SMD_2520-2Pin_2.5x2.0mm_HandSoldering 62.8015 -117.8400 -90.0000 top
|
||||||
|
## End
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
"Id";"Designator";"Footprint";"Quantity";"Designation";"Supplier and ref";
|
||||||
|
1;"C1,C2,C10,C5";"C_0603_1608Metric";4;"100nF";;;
|
||||||
|
2;"C3";"C_0603_1608Metric";1;"470pF";;;
|
||||||
|
3;"C4";"C_0805_2012Metric";1;"2.2uF";;;
|
||||||
|
4;"D7";"LED_0603_1608Metric";1;"Rd_LED";;;
|
||||||
|
5;"IC3";"Texas_HTSOP-8-1EP_3.9x4.9mm_P1.27mm_EP2.95x4.9mm_Mask2.4x3.1mm_ThermalVias";1;"DRV8872DDAR";;;
|
||||||
|
6;"R1,R5,R6";"R_0603_1608Metric";3;"4.7k";;;
|
||||||
|
7;"R10,R7,R9,R11";"R_0603_1608Metric";4;"1k";;;
|
||||||
|
8;"C8,C9";"C_0603_1608Metric";2;"10pF";;;
|
||||||
|
9;"D5";"LED_0603_1608Metric";1;"Ye_LED";;;
|
||||||
|
10;"D6";"LED_0603_1608Metric";1;"Gr_LED";;;
|
||||||
|
11;"IC1";"SOT-23-5";1;"MIC5205-5.0YM5-TR";;;
|
||||||
|
12;"IC2";"TQFP-32_7x7mm_P0.8mm";1;"ATMEGA328P-AUR";;;
|
||||||
|
13;"D8";"LED_0603_1608Metric";1;"Bl_LED";;;
|
||||||
|
14;"X1";"Crystal_SMD_2520-2Pin_2.5x2.0mm_HandSoldering";1;"16M";;;
|
||||||
|
15;"C6,C7";"C_0603_1608Metric";2;"4.7uF";;;
|
||||||
|
16;"D3,D4";"D_SOD-323";2;"NSR0530HT1G";;;
|
||||||
|
17;"R2,R3,R4";"R_0603_1608Metric";3;"27k";;;
|
||||||
|
18;"T1,T2,T5,T3,T4";"SOT-363_SC-70-6";5;"2N7002DWCT";;;
|
||||||
|
19;"D2";"D_SOD-323";1;"MM3Z4V7ST1G";;;
|
||||||
|
20;"D1";"TO-269AA";1;"D_Bridge_+-AA";;;
|
||||||
|
@@ -0,0 +1,12 @@
|
|||||||
|
M48
|
||||||
|
; DRILL file {KiCad 9.0.3} date 2026-09-29T16:14:39+0200
|
||||||
|
; FORMAT={-:-/ absolute / metric / decimal}
|
||||||
|
; #@! TF.CreationDate,2026-09-29T16:14:39+02:00
|
||||||
|
; #@! TF.GenerationSoftware,Kicad,Pcbnew,9.0.3
|
||||||
|
; #@! TF.FileFunction,NonPlated,1,4,NPTH
|
||||||
|
FMAT,2
|
||||||
|
METRIC
|
||||||
|
%
|
||||||
|
G90
|
||||||
|
G05
|
||||||
|
M30
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
M48
|
||||||
|
; DRILL file {KiCad 9.0.3} date 2026-09-29T16:14:39+0200
|
||||||
|
; FORMAT={-:-/ absolute / metric / decimal}
|
||||||
|
; #@! TF.CreationDate,2026-09-29T16:14:39+02:00
|
||||||
|
; #@! TF.GenerationSoftware,Kicad,Pcbnew,9.0.3
|
||||||
|
; #@! TF.FileFunction,Plated,1,4,PTH
|
||||||
|
FMAT,2
|
||||||
|
METRIC
|
||||||
|
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
|
||||||
|
T1C0.330
|
||||||
|
; #@! TA.AperFunction,Plated,PTH,ViaDrill
|
||||||
|
T2C0.400
|
||||||
|
%
|
||||||
|
G90
|
||||||
|
G05
|
||||||
|
T1
|
||||||
|
X65.598Y-108.682
|
||||||
|
X65.598Y-109.982
|
||||||
|
X65.598Y-111.282
|
||||||
|
X66.898Y-108.682
|
||||||
|
X66.898Y-109.982
|
||||||
|
X66.898Y-111.282
|
||||||
|
T2
|
||||||
|
X49.513Y-118.889
|
||||||
|
X49.802Y-112.962
|
||||||
|
X50.317Y-111.125
|
||||||
|
X50.47Y-107.671
|
||||||
|
X50.529Y-109.039
|
||||||
|
X52.33Y-109.169
|
||||||
|
X52.857Y-105.632
|
||||||
|
X52.95Y-107.442
|
||||||
|
X53.123Y-115.795
|
||||||
|
X53.15Y-109.906
|
||||||
|
X53.15Y-112.678
|
||||||
|
X53.315Y-111.213
|
||||||
|
X53.823Y-105.943
|
||||||
|
X54.656Y-109.554
|
||||||
|
X54.686Y-113.309
|
||||||
|
X55.448Y-110.588
|
||||||
|
X55.804Y-114.478
|
||||||
|
X56.159Y-109.753
|
||||||
|
X56.718Y-114.941
|
||||||
|
X57.226Y-109.703
|
||||||
|
X57.3Y-118.589
|
||||||
|
X57.785Y-114.071
|
||||||
|
X58.85Y-115.391
|
||||||
|
X60.173Y-116.066
|
||||||
|
X60.274Y-104.877
|
||||||
|
X65.059Y-116.113
|
||||||
|
X66.218Y-113.309
|
||||||
|
X69.123Y-110.617
|
||||||
|
X69.59Y-117.053
|
||||||
|
X69.672Y-106.959
|
||||||
|
M30
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
"Id";"Designator";"Footprint";"Quantity";"Designation";"Supplier and ref";
|
||||||
|
1;"C1,C2,C10,C5";"C_0603_1608Metric";4;"100nF";;;
|
||||||
|
2;"C3";"C_0603_1608Metric";1;"470pF";;;
|
||||||
|
3;"C4";"C_0805_2012Metric";1;"2.2uF";;;
|
||||||
|
4;"D7";"LED_0603_1608Metric";1;"Rd_LED";;;
|
||||||
|
5;"IC3";"Texas_HTSOP-8-1EP_3.9x4.9mm_P1.27mm_EP2.95x4.9mm_Mask2.4x3.1mm_ThermalVias";1;"DRV8872DDAR";;;
|
||||||
|
6;"R1,R5,R6";"R_0603_1608Metric";3;"4.7k";;;
|
||||||
|
7;"R10,R7,R9,R11";"R_0603_1608Metric";4;"1k";;;
|
||||||
|
8;"C8,C9";"C_0603_1608Metric";2;"10pF";;;
|
||||||
|
9;"D5";"LED_0603_1608Metric";1;"Ye_LED";;;
|
||||||
|
10;"D6";"LED_0603_1608Metric";1;"Gr_LED";;;
|
||||||
|
11;"IC1";"SOT-23-5";1;"MIC5205-5.0YM5-TR";;;
|
||||||
|
12;"IC2";"TQFP-32_7x7mm_P0.8mm";1;"ATMEGA328P-AUR";;;
|
||||||
|
13;"D8";"LED_0603_1608Metric";1;"Bl_LED";;;
|
||||||
|
14;"X1";"Crystal_SMD_2520-2Pin_2.5x2.0mm_HandSoldering";1;"16M";;;
|
||||||
|
15;"C6,C7";"C_0603_1608Metric";2;"4.7uF";;;
|
||||||
|
16;"D3,D4";"D_SOD-323";2;"NSR0530HT1G";;;
|
||||||
|
17;"R2,R3,R4";"R_0603_1608Metric";3;"27k";;;
|
||||||
|
18;"T1,T2,T5,T3,T4";"SOT-363_SC-70-6";5;"2N7002DWCT";;;
|
||||||
|
19;"D2";"D_SOD-323";1;"MM3Z4V7ST1G";;;
|
||||||
|
20;"D1";"TO-269AA";1;"D_Bridge_+-AA";;;
|
||||||
|
@@ -0,0 +1,135 @@
|
|||||||
|
{
|
||||||
|
"board": {
|
||||||
|
"active_layer": 0,
|
||||||
|
"active_layer_preset": "",
|
||||||
|
"auto_track_width": true,
|
||||||
|
"hidden_netclasses": [],
|
||||||
|
"hidden_nets": [],
|
||||||
|
"high_contrast_mode": 1,
|
||||||
|
"net_color_mode": 1,
|
||||||
|
"opacity": {
|
||||||
|
"images": 0.6,
|
||||||
|
"pads": 1.0,
|
||||||
|
"shapes": 1.0,
|
||||||
|
"tracks": 1.0,
|
||||||
|
"vias": 1.0,
|
||||||
|
"zones": 0.6
|
||||||
|
},
|
||||||
|
"selection_filter": {
|
||||||
|
"dimensions": true,
|
||||||
|
"footprints": true,
|
||||||
|
"graphics": true,
|
||||||
|
"keepouts": true,
|
||||||
|
"lockedItems": false,
|
||||||
|
"otherItems": true,
|
||||||
|
"pads": true,
|
||||||
|
"text": true,
|
||||||
|
"tracks": true,
|
||||||
|
"vias": true,
|
||||||
|
"zones": true
|
||||||
|
},
|
||||||
|
"visible_items": [
|
||||||
|
"vias",
|
||||||
|
"footprint_text",
|
||||||
|
"footprint_anchors",
|
||||||
|
"ratsnest",
|
||||||
|
"grid",
|
||||||
|
"footprints_front",
|
||||||
|
"footprints_back",
|
||||||
|
"footprint_values",
|
||||||
|
"tracks",
|
||||||
|
"drc_errors",
|
||||||
|
"drawing_sheet",
|
||||||
|
"bitmaps",
|
||||||
|
"pads",
|
||||||
|
"zones",
|
||||||
|
"drc_warnings",
|
||||||
|
"locked_item_shadows",
|
||||||
|
"conflict_shadows",
|
||||||
|
"shapes"
|
||||||
|
],
|
||||||
|
"visible_layers": "00000000_00000000_0000000a_aaaaaaff",
|
||||||
|
"zone_display_mode": 0
|
||||||
|
},
|
||||||
|
"git": {
|
||||||
|
"repo_type": "",
|
||||||
|
"repo_username": "",
|
||||||
|
"ssh_key": ""
|
||||||
|
},
|
||||||
|
"meta": {
|
||||||
|
"filename": "Lokdecoder_TI_altQuartz.kicad_prl",
|
||||||
|
"version": 5
|
||||||
|
},
|
||||||
|
"net_inspector_panel": {
|
||||||
|
"col_hidden": [
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false
|
||||||
|
],
|
||||||
|
"col_order": [
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
3,
|
||||||
|
4,
|
||||||
|
5,
|
||||||
|
6,
|
||||||
|
7,
|
||||||
|
8,
|
||||||
|
9,
|
||||||
|
10,
|
||||||
|
11
|
||||||
|
],
|
||||||
|
"col_widths": [
|
||||||
|
162,
|
||||||
|
147,
|
||||||
|
91,
|
||||||
|
67,
|
||||||
|
91,
|
||||||
|
91,
|
||||||
|
91,
|
||||||
|
71,
|
||||||
|
91,
|
||||||
|
91,
|
||||||
|
91,
|
||||||
|
91
|
||||||
|
],
|
||||||
|
"custom_group_rules": [],
|
||||||
|
"expanded_rows": [],
|
||||||
|
"filter_by_net_name": true,
|
||||||
|
"filter_by_netclass": true,
|
||||||
|
"filter_text": "",
|
||||||
|
"group_by_constraint": false,
|
||||||
|
"group_by_netclass": false,
|
||||||
|
"show_unconnected_nets": false,
|
||||||
|
"show_zero_pad_nets": false,
|
||||||
|
"sort_ascending": true,
|
||||||
|
"sorting_column": 0
|
||||||
|
},
|
||||||
|
"open_jobsets": [],
|
||||||
|
"project": {
|
||||||
|
"files": []
|
||||||
|
},
|
||||||
|
"schematic": {
|
||||||
|
"selection_filter": {
|
||||||
|
"graphics": true,
|
||||||
|
"images": true,
|
||||||
|
"labels": true,
|
||||||
|
"lockedItems": false,
|
||||||
|
"otherItems": true,
|
||||||
|
"pins": true,
|
||||||
|
"symbols": true,
|
||||||
|
"text": true,
|
||||||
|
"wires": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,844 @@
|
|||||||
|
{
|
||||||
|
"board": {
|
||||||
|
"3dviewports": [],
|
||||||
|
"design_settings": {
|
||||||
|
"defaults": {
|
||||||
|
"apply_defaults_to_fp_fields": false,
|
||||||
|
"apply_defaults_to_fp_shapes": false,
|
||||||
|
"apply_defaults_to_fp_text": false,
|
||||||
|
"board_outline_line_width": 0.05,
|
||||||
|
"copper_line_width": 0.2,
|
||||||
|
"copper_text_italic": false,
|
||||||
|
"copper_text_size_h": 1.5,
|
||||||
|
"copper_text_size_v": 1.5,
|
||||||
|
"copper_text_thickness": 0.3,
|
||||||
|
"copper_text_upright": false,
|
||||||
|
"courtyard_line_width": 0.05,
|
||||||
|
"dimension_precision": 4,
|
||||||
|
"dimension_units": 3,
|
||||||
|
"dimensions": {
|
||||||
|
"arrow_length": 1270000,
|
||||||
|
"extension_offset": 500000,
|
||||||
|
"keep_text_aligned": true,
|
||||||
|
"suppress_zeroes": true,
|
||||||
|
"text_position": 0,
|
||||||
|
"units_format": 0
|
||||||
|
},
|
||||||
|
"fab_line_width": 0.1,
|
||||||
|
"fab_text_italic": false,
|
||||||
|
"fab_text_size_h": 1.0,
|
||||||
|
"fab_text_size_v": 1.0,
|
||||||
|
"fab_text_thickness": 0.15,
|
||||||
|
"fab_text_upright": false,
|
||||||
|
"other_line_width": 0.1,
|
||||||
|
"other_text_italic": false,
|
||||||
|
"other_text_size_h": 1.0,
|
||||||
|
"other_text_size_v": 1.0,
|
||||||
|
"other_text_thickness": 0.15,
|
||||||
|
"other_text_upright": false,
|
||||||
|
"pads": {
|
||||||
|
"drill": 0.762,
|
||||||
|
"height": 1.524,
|
||||||
|
"width": 1.524
|
||||||
|
},
|
||||||
|
"silk_line_width": 0.12,
|
||||||
|
"silk_text_italic": false,
|
||||||
|
"silk_text_size_h": 1.0,
|
||||||
|
"silk_text_size_v": 1.0,
|
||||||
|
"silk_text_thickness": 0.15,
|
||||||
|
"silk_text_upright": false,
|
||||||
|
"zones": {
|
||||||
|
"min_clearance": 0.254
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"diff_pair_dimensions": [
|
||||||
|
{
|
||||||
|
"gap": 0.0,
|
||||||
|
"via_gap": 0.0,
|
||||||
|
"width": 0.0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"drc_exclusions": [],
|
||||||
|
"meta": {
|
||||||
|
"filename": "board_design_settings.json",
|
||||||
|
"version": 2
|
||||||
|
},
|
||||||
|
"rule_severities": {
|
||||||
|
"annular_width": "error",
|
||||||
|
"clearance": "error",
|
||||||
|
"connection_width": "warning",
|
||||||
|
"copper_edge_clearance": "error",
|
||||||
|
"copper_sliver": "warning",
|
||||||
|
"courtyards_overlap": "error",
|
||||||
|
"creepage": "error",
|
||||||
|
"diff_pair_gap_out_of_range": "error",
|
||||||
|
"diff_pair_uncoupled_length_too_long": "error",
|
||||||
|
"drill_out_of_range": "error",
|
||||||
|
"duplicate_footprints": "warning",
|
||||||
|
"extra_footprint": "warning",
|
||||||
|
"footprint": "error",
|
||||||
|
"footprint_filters_mismatch": "ignore",
|
||||||
|
"footprint_symbol_mismatch": "warning",
|
||||||
|
"footprint_type_mismatch": "ignore",
|
||||||
|
"hole_clearance": "error",
|
||||||
|
"hole_to_hole": "warning",
|
||||||
|
"holes_co_located": "warning",
|
||||||
|
"invalid_outline": "error",
|
||||||
|
"isolated_copper": "warning",
|
||||||
|
"item_on_disabled_layer": "error",
|
||||||
|
"items_not_allowed": "error",
|
||||||
|
"length_out_of_range": "error",
|
||||||
|
"lib_footprint_issues": "warning",
|
||||||
|
"lib_footprint_mismatch": "warning",
|
||||||
|
"malformed_courtyard": "error",
|
||||||
|
"microvia_drill_out_of_range": "error",
|
||||||
|
"mirrored_text_on_front_layer": "warning",
|
||||||
|
"missing_courtyard": "ignore",
|
||||||
|
"missing_footprint": "warning",
|
||||||
|
"net_conflict": "warning",
|
||||||
|
"nonmirrored_text_on_back_layer": "warning",
|
||||||
|
"npth_inside_courtyard": "ignore",
|
||||||
|
"padstack": "warning",
|
||||||
|
"pth_inside_courtyard": "ignore",
|
||||||
|
"shorting_items": "error",
|
||||||
|
"silk_edge_clearance": "warning",
|
||||||
|
"silk_over_copper": "warning",
|
||||||
|
"silk_overlap": "warning",
|
||||||
|
"skew_out_of_range": "error",
|
||||||
|
"solder_mask_bridge": "error",
|
||||||
|
"starved_thermal": "error",
|
||||||
|
"text_height": "warning",
|
||||||
|
"text_on_edge_cuts": "error",
|
||||||
|
"text_thickness": "warning",
|
||||||
|
"through_hole_pad_without_hole": "error",
|
||||||
|
"too_many_vias": "error",
|
||||||
|
"track_angle": "error",
|
||||||
|
"track_dangling": "warning",
|
||||||
|
"track_segment_length": "error",
|
||||||
|
"track_width": "error",
|
||||||
|
"tracks_crossing": "error",
|
||||||
|
"unconnected_items": "error",
|
||||||
|
"unresolved_variable": "error",
|
||||||
|
"via_dangling": "warning",
|
||||||
|
"zones_intersect": "error"
|
||||||
|
},
|
||||||
|
"rules": {
|
||||||
|
"max_error": 0.005,
|
||||||
|
"min_clearance": 0.0,
|
||||||
|
"min_connection": 0.0,
|
||||||
|
"min_copper_edge_clearance": 0.025,
|
||||||
|
"min_groove_width": 0.0,
|
||||||
|
"min_hole_clearance": 0.25,
|
||||||
|
"min_hole_to_hole": 0.25,
|
||||||
|
"min_microvia_diameter": 0.45,
|
||||||
|
"min_microvia_drill": 0.1,
|
||||||
|
"min_resolved_spokes": 2,
|
||||||
|
"min_silk_clearance": 0.0,
|
||||||
|
"min_text_height": 0.8,
|
||||||
|
"min_text_thickness": 0.08,
|
||||||
|
"min_through_hole_diameter": 0.3,
|
||||||
|
"min_track_width": 0.2,
|
||||||
|
"min_via_annular_width": 0.1,
|
||||||
|
"min_via_diameter": 0.45,
|
||||||
|
"solder_mask_to_copper_clearance": 0.0,
|
||||||
|
"use_height_for_length_calcs": true
|
||||||
|
},
|
||||||
|
"teardrop_options": [
|
||||||
|
{
|
||||||
|
"td_onpthpad": true,
|
||||||
|
"td_onroundshapesonly": false,
|
||||||
|
"td_onsmdpad": true,
|
||||||
|
"td_ontrackend": false,
|
||||||
|
"td_onvia": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"teardrop_parameters": [
|
||||||
|
{
|
||||||
|
"td_allow_use_two_tracks": true,
|
||||||
|
"td_curve_segcount": 0,
|
||||||
|
"td_height_ratio": 1.0,
|
||||||
|
"td_length_ratio": 0.5,
|
||||||
|
"td_maxheight": 2.0,
|
||||||
|
"td_maxlen": 1.0,
|
||||||
|
"td_on_pad_in_zone": false,
|
||||||
|
"td_target_name": "td_round_shape",
|
||||||
|
"td_width_to_size_filter_ratio": 0.9
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"td_allow_use_two_tracks": true,
|
||||||
|
"td_curve_segcount": 0,
|
||||||
|
"td_height_ratio": 1.0,
|
||||||
|
"td_length_ratio": 0.5,
|
||||||
|
"td_maxheight": 2.0,
|
||||||
|
"td_maxlen": 1.0,
|
||||||
|
"td_on_pad_in_zone": false,
|
||||||
|
"td_target_name": "td_rect_shape",
|
||||||
|
"td_width_to_size_filter_ratio": 0.9
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"td_allow_use_two_tracks": true,
|
||||||
|
"td_curve_segcount": 0,
|
||||||
|
"td_height_ratio": 1.0,
|
||||||
|
"td_length_ratio": 0.5,
|
||||||
|
"td_maxheight": 2.0,
|
||||||
|
"td_maxlen": 1.0,
|
||||||
|
"td_on_pad_in_zone": false,
|
||||||
|
"td_target_name": "td_track_end",
|
||||||
|
"td_width_to_size_filter_ratio": 0.9
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"track_widths": [
|
||||||
|
0.0,
|
||||||
|
0.3,
|
||||||
|
0.5,
|
||||||
|
1.0
|
||||||
|
],
|
||||||
|
"tuning_pattern_settings": {
|
||||||
|
"diff_pair_defaults": {
|
||||||
|
"corner_radius_percentage": 80,
|
||||||
|
"corner_style": 1,
|
||||||
|
"max_amplitude": 1.0,
|
||||||
|
"min_amplitude": 0.2,
|
||||||
|
"single_sided": false,
|
||||||
|
"spacing": 1.0
|
||||||
|
},
|
||||||
|
"diff_pair_skew_defaults": {
|
||||||
|
"corner_radius_percentage": 80,
|
||||||
|
"corner_style": 1,
|
||||||
|
"max_amplitude": 1.0,
|
||||||
|
"min_amplitude": 0.2,
|
||||||
|
"single_sided": false,
|
||||||
|
"spacing": 0.6
|
||||||
|
},
|
||||||
|
"single_track_defaults": {
|
||||||
|
"corner_radius_percentage": 80,
|
||||||
|
"corner_style": 1,
|
||||||
|
"max_amplitude": 1.0,
|
||||||
|
"min_amplitude": 0.2,
|
||||||
|
"single_sided": false,
|
||||||
|
"spacing": 0.6
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"via_dimensions": [
|
||||||
|
{
|
||||||
|
"diameter": 0.0,
|
||||||
|
"drill": 0.0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"diameter": 0.3,
|
||||||
|
"drill": 0.2
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"zones_allow_external_fillets": false
|
||||||
|
},
|
||||||
|
"ipc2581": {
|
||||||
|
"dist": "",
|
||||||
|
"distpn": "",
|
||||||
|
"internal_id": "",
|
||||||
|
"mfg": "",
|
||||||
|
"mpn": ""
|
||||||
|
},
|
||||||
|
"layer_pairs": [],
|
||||||
|
"layer_presets": [],
|
||||||
|
"viewports": []
|
||||||
|
},
|
||||||
|
"boards": [],
|
||||||
|
"cvpcb": {
|
||||||
|
"equivalence_files": []
|
||||||
|
},
|
||||||
|
"erc": {
|
||||||
|
"erc_exclusions": [],
|
||||||
|
"meta": {
|
||||||
|
"version": 0
|
||||||
|
},
|
||||||
|
"pin_map": [
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
2
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
2
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
2
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
2
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
2
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
2
|
||||||
|
],
|
||||||
|
[
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
2
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
2
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
2
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
2
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
2
|
||||||
|
],
|
||||||
|
[
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
2
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"rule_severities": {
|
||||||
|
"bus_definition_conflict": "error",
|
||||||
|
"bus_entry_needed": "error",
|
||||||
|
"bus_to_bus_conflict": "error",
|
||||||
|
"bus_to_net_conflict": "error",
|
||||||
|
"different_unit_footprint": "error",
|
||||||
|
"different_unit_net": "error",
|
||||||
|
"duplicate_reference": "error",
|
||||||
|
"duplicate_sheet_names": "error",
|
||||||
|
"endpoint_off_grid": "warning",
|
||||||
|
"extra_units": "error",
|
||||||
|
"footprint_filter": "ignore",
|
||||||
|
"footprint_link_issues": "warning",
|
||||||
|
"four_way_junction": "ignore",
|
||||||
|
"global_label_dangling": "warning",
|
||||||
|
"hier_label_mismatch": "error",
|
||||||
|
"label_dangling": "error",
|
||||||
|
"label_multiple_wires": "warning",
|
||||||
|
"lib_symbol_issues": "warning",
|
||||||
|
"lib_symbol_mismatch": "warning",
|
||||||
|
"missing_bidi_pin": "warning",
|
||||||
|
"missing_input_pin": "warning",
|
||||||
|
"missing_power_pin": "error",
|
||||||
|
"missing_unit": "warning",
|
||||||
|
"multiple_net_names": "warning",
|
||||||
|
"net_not_bus_member": "warning",
|
||||||
|
"no_connect_connected": "warning",
|
||||||
|
"no_connect_dangling": "warning",
|
||||||
|
"pin_not_connected": "error",
|
||||||
|
"pin_not_driven": "error",
|
||||||
|
"pin_to_pin": "warning",
|
||||||
|
"power_pin_not_driven": "error",
|
||||||
|
"same_local_global_label": "warning",
|
||||||
|
"similar_label_and_power": "warning",
|
||||||
|
"similar_labels": "warning",
|
||||||
|
"similar_power": "warning",
|
||||||
|
"simulation_model_issue": "ignore",
|
||||||
|
"single_global_label": "ignore",
|
||||||
|
"unannotated": "error",
|
||||||
|
"unconnected_wire_endpoint": "warning",
|
||||||
|
"unit_value_mismatch": "error",
|
||||||
|
"unresolved_variable": "error",
|
||||||
|
"wire_dangling": "error"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"libraries": {
|
||||||
|
"pinned_footprint_libs": [],
|
||||||
|
"pinned_symbol_libs": []
|
||||||
|
},
|
||||||
|
"meta": {
|
||||||
|
"filename": "Lokdecoder_TI_altQuartz.kicad_pro",
|
||||||
|
"version": 3
|
||||||
|
},
|
||||||
|
"net_settings": {
|
||||||
|
"classes": [
|
||||||
|
{
|
||||||
|
"bus_width": 12,
|
||||||
|
"clearance": 0.2,
|
||||||
|
"diff_pair_gap": 0.25,
|
||||||
|
"diff_pair_via_gap": 0.25,
|
||||||
|
"diff_pair_width": 0.2,
|
||||||
|
"line_style": 0,
|
||||||
|
"microvia_diameter": 0.45,
|
||||||
|
"microvia_drill": 0.1,
|
||||||
|
"name": "Default",
|
||||||
|
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
||||||
|
"priority": 2147483647,
|
||||||
|
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
||||||
|
"track_width": 0.25,
|
||||||
|
"via_diameter": 0.8,
|
||||||
|
"via_drill": 0.4,
|
||||||
|
"wire_width": 6
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"meta": {
|
||||||
|
"version": 4
|
||||||
|
},
|
||||||
|
"net_colors": null,
|
||||||
|
"netclass_assignments": null,
|
||||||
|
"netclass_patterns": [
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "+5V"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/A0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/A1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/A2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/A3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/A4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/A5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/A6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/A7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/AUX1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/AUX1_TTL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/AUX2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/AUX2_TTL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/AUX3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/AUX4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/AUX5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/AUX6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/AUX7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/AUX8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/D0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/D1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/D10"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/D12"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/D13"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/D2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/D4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/D5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/D6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/D7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/D8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/D9"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/DCC1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/DCC2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/DTR"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/F0f"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/F0r"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/MOT1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/MOT2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "/RESET"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "GND"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(C2-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(C3-Pad2)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(C8-Pad2)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(C9-Pad2)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(D3-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(D4-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(D5-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(D6-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(D7-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(D8-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "VCC"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"pcbnew": {
|
||||||
|
"last_paths": {
|
||||||
|
"gencad": "",
|
||||||
|
"idf": "",
|
||||||
|
"netlist": "",
|
||||||
|
"plot": "JLPCB/gerbers/",
|
||||||
|
"pos_files": "JLPCB/",
|
||||||
|
"specctra_dsn": "",
|
||||||
|
"step": "",
|
||||||
|
"svg": "",
|
||||||
|
"vrml": ""
|
||||||
|
},
|
||||||
|
"page_layout_descr_file": ""
|
||||||
|
},
|
||||||
|
"schematic": {
|
||||||
|
"annotate_start_num": 0,
|
||||||
|
"bom_export_filename": "${PROJECTNAME}.csv",
|
||||||
|
"bom_fmt_presets": [],
|
||||||
|
"bom_fmt_settings": {
|
||||||
|
"field_delimiter": ",",
|
||||||
|
"keep_line_breaks": false,
|
||||||
|
"keep_tabs": false,
|
||||||
|
"name": "CSV",
|
||||||
|
"ref_delimiter": ",",
|
||||||
|
"ref_range_delimiter": "",
|
||||||
|
"string_delimiter": "\""
|
||||||
|
},
|
||||||
|
"bom_presets": [],
|
||||||
|
"bom_settings": {
|
||||||
|
"exclude_dnp": false,
|
||||||
|
"fields_ordered": [
|
||||||
|
{
|
||||||
|
"group_by": false,
|
||||||
|
"label": "Reference",
|
||||||
|
"name": "Reference",
|
||||||
|
"show": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group_by": false,
|
||||||
|
"label": "Qty",
|
||||||
|
"name": "${QUANTITY}",
|
||||||
|
"show": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group_by": true,
|
||||||
|
"label": "Value",
|
||||||
|
"name": "Value",
|
||||||
|
"show": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group_by": true,
|
||||||
|
"label": "DNP",
|
||||||
|
"name": "${DNP}",
|
||||||
|
"show": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group_by": true,
|
||||||
|
"label": "Exclude from BOM",
|
||||||
|
"name": "${EXCLUDE_FROM_BOM}",
|
||||||
|
"show": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group_by": true,
|
||||||
|
"label": "Exclude from Board",
|
||||||
|
"name": "${EXCLUDE_FROM_BOARD}",
|
||||||
|
"show": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group_by": true,
|
||||||
|
"label": "Footprint",
|
||||||
|
"name": "Footprint",
|
||||||
|
"show": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group_by": false,
|
||||||
|
"label": "Datasheet",
|
||||||
|
"name": "Datasheet",
|
||||||
|
"show": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"filter_string": "",
|
||||||
|
"group_symbols": true,
|
||||||
|
"include_excluded_from_bom": true,
|
||||||
|
"name": "Default Editing",
|
||||||
|
"sort_asc": true,
|
||||||
|
"sort_field": "Reference"
|
||||||
|
},
|
||||||
|
"connection_grid_size": 50.0,
|
||||||
|
"drawing": {
|
||||||
|
"dashed_lines_dash_length_ratio": 12.0,
|
||||||
|
"dashed_lines_gap_length_ratio": 3.0,
|
||||||
|
"default_line_thickness": 6.0,
|
||||||
|
"default_text_size": 50.0,
|
||||||
|
"field_names": [],
|
||||||
|
"intersheets_ref_own_page": false,
|
||||||
|
"intersheets_ref_prefix": "",
|
||||||
|
"intersheets_ref_short": false,
|
||||||
|
"intersheets_ref_show": false,
|
||||||
|
"intersheets_ref_suffix": "",
|
||||||
|
"junction_size_choice": 3,
|
||||||
|
"label_size_ratio": 0.25,
|
||||||
|
"operating_point_overlay_i_precision": 3,
|
||||||
|
"operating_point_overlay_i_range": "~A",
|
||||||
|
"operating_point_overlay_v_precision": 3,
|
||||||
|
"operating_point_overlay_v_range": "~V",
|
||||||
|
"overbar_offset_ratio": 1.23,
|
||||||
|
"pin_symbol_size": 0.0,
|
||||||
|
"text_offset_ratio": 0.08
|
||||||
|
},
|
||||||
|
"legacy_lib_dir": "",
|
||||||
|
"legacy_lib_list": [],
|
||||||
|
"meta": {
|
||||||
|
"version": 1
|
||||||
|
},
|
||||||
|
"net_format_name": "",
|
||||||
|
"page_layout_descr_file": "",
|
||||||
|
"plot_directory": "",
|
||||||
|
"space_save_all_events": true,
|
||||||
|
"spice_current_sheet_as_root": false,
|
||||||
|
"spice_external_command": "spice \"%I\"",
|
||||||
|
"spice_model_current_sheet_as_root": true,
|
||||||
|
"spice_save_all_currents": false,
|
||||||
|
"spice_save_all_dissipations": false,
|
||||||
|
"spice_save_all_voltages": false,
|
||||||
|
"subpart_first_id": 65,
|
||||||
|
"subpart_id_separator": 0
|
||||||
|
},
|
||||||
|
"sheets": [
|
||||||
|
[
|
||||||
|
"2f7e9111-b907-47ad-8ba9-e986630c4265",
|
||||||
|
"Root"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"text_variables": {}
|
||||||
|
}
|
||||||
@@ -1,13 +1,12 @@
|
|||||||
M48
|
M48
|
||||||
; DRILL file {KiCad (5.1.6)-1} date 01/08/21 10:09:46
|
; DRILL file {KiCad 9.0.3} date 2026-09-29T16:13:55+0200
|
||||||
; FORMAT={-:-/ absolute / inch / decimal}
|
; FORMAT={-:-/ absolute / metric / decimal}
|
||||||
; #@! TF.CreationDate,2021-01-08T10:09:46+01:00
|
; #@! TF.CreationDate,2026-09-29T16:13:55+02:00
|
||||||
; #@! TF.GenerationSoftware,Kicad,Pcbnew,(5.1.6)-1
|
; #@! TF.GenerationSoftware,Kicad,Pcbnew,9.0.3
|
||||||
; #@! TF.FileFunction,NonPlated,1,4,NPTH
|
; #@! TF.FileFunction,NonPlated,1,4,NPTH
|
||||||
FMAT,2
|
FMAT,2
|
||||||
INCH
|
METRIC
|
||||||
%
|
%
|
||||||
G90
|
G90
|
||||||
G05
|
G05
|
||||||
T0
|
|
||||||
M30
|
M30
|
||||||
|
|||||||
@@ -1,53 +1,54 @@
|
|||||||
M48
|
M48
|
||||||
; DRILL file {KiCad (5.1.6)-1} date 01/08/21 10:09:46
|
; DRILL file {KiCad 9.0.3} date 2026-09-29T16:13:55+0200
|
||||||
; FORMAT={-:-/ absolute / inch / decimal}
|
; FORMAT={-:-/ absolute / metric / decimal}
|
||||||
; #@! TF.CreationDate,2021-01-08T10:09:46+01:00
|
; #@! TF.CreationDate,2026-09-29T16:13:55+02:00
|
||||||
; #@! TF.GenerationSoftware,Kicad,Pcbnew,(5.1.6)-1
|
; #@! TF.GenerationSoftware,Kicad,Pcbnew,9.0.3
|
||||||
; #@! TF.FileFunction,Plated,1,4,PTH
|
; #@! TF.FileFunction,Plated,1,4,PTH
|
||||||
FMAT,2
|
FMAT,2
|
||||||
INCH
|
METRIC
|
||||||
T1C0.0130
|
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
|
||||||
T2C0.0157
|
T1C0.330
|
||||||
|
; #@! TA.AperFunction,Plated,PTH,ViaDrill
|
||||||
|
T2C0.400
|
||||||
%
|
%
|
||||||
G90
|
G90
|
||||||
G05
|
G05
|
||||||
T1
|
T1
|
||||||
X2.5826Y-4.2788
|
X65.598Y-108.682
|
||||||
X2.5826Y-4.33
|
X65.598Y-109.982
|
||||||
X2.5826Y-4.3812
|
X65.598Y-111.282
|
||||||
X2.6338Y-4.2788
|
X66.898Y-108.682
|
||||||
X2.6338Y-4.33
|
X66.898Y-109.982
|
||||||
X2.6338Y-4.3812
|
X66.898Y-111.282
|
||||||
T2
|
T2
|
||||||
X1.9493Y-4.6807
|
X49.513Y-118.889
|
||||||
X1.9607Y-4.4473
|
X49.802Y-112.962
|
||||||
X1.981Y-4.375
|
X50.317Y-111.125
|
||||||
X1.987Y-4.239
|
X50.47Y-107.671
|
||||||
X1.9893Y-4.2929
|
X50.529Y-109.039
|
||||||
X2.0602Y-4.298
|
X52.33Y-109.169
|
||||||
X2.081Y-4.1588
|
X52.857Y-105.632
|
||||||
X2.0847Y-4.23
|
X52.95Y-107.442
|
||||||
X2.0914Y-4.5589
|
X53.123Y-115.795
|
||||||
X2.0925Y-4.327
|
X53.15Y-109.906
|
||||||
X2.0925Y-4.4361
|
X53.15Y-112.678
|
||||||
X2.099Y-4.3785
|
X53.315Y-111.213
|
||||||
X2.119Y-4.171
|
X53.823Y-105.943
|
||||||
X2.1518Y-4.3132
|
X54.656Y-109.554
|
||||||
X2.153Y-4.461
|
X54.686Y-113.309
|
||||||
X2.183Y-4.3539
|
X55.448Y-110.588
|
||||||
X2.197Y-4.507
|
X55.804Y-114.478
|
||||||
X2.211Y-4.321
|
X56.159Y-109.753
|
||||||
X2.233Y-4.5252
|
X56.718Y-114.941
|
||||||
X2.253Y-4.319
|
X57.226Y-109.703
|
||||||
X2.2559Y-4.6688
|
X57.3Y-118.589
|
||||||
X2.275Y-4.491
|
X57.785Y-114.071
|
||||||
X2.3169Y-4.543
|
X58.85Y-115.391
|
||||||
X2.369Y-4.5695
|
X60.173Y-116.066
|
||||||
X2.373Y-4.129
|
X60.274Y-104.877
|
||||||
X2.5614Y-4.5714
|
X65.059Y-116.113
|
||||||
X2.607Y-4.461
|
X66.218Y-113.309
|
||||||
X2.7214Y-4.355
|
X69.123Y-110.617
|
||||||
X2.7398Y-4.6084
|
X69.59Y-117.053
|
||||||
X2.743Y-4.211
|
X69.672Y-106.959
|
||||||
T0
|
|
||||||
M30
|
M30
|
||||||
|
|||||||
@@ -0,0 +1,121 @@
|
|||||||
|
Creative Commons Legal Code
|
||||||
|
|
||||||
|
CC0 1.0 Universal
|
||||||
|
|
||||||
|
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
|
||||||
|
LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
|
||||||
|
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
|
||||||
|
INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
|
||||||
|
REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
|
||||||
|
PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
|
||||||
|
THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
|
||||||
|
HEREUNDER.
|
||||||
|
|
||||||
|
Statement of Purpose
|
||||||
|
|
||||||
|
The laws of most jurisdictions throughout the world automatically confer
|
||||||
|
exclusive Copyright and Related Rights (defined below) upon the creator
|
||||||
|
and subsequent owner(s) (each and all, an "owner") of an original work of
|
||||||
|
authorship and/or a database (each, a "Work").
|
||||||
|
|
||||||
|
Certain owners wish to permanently relinquish those rights to a Work for
|
||||||
|
the purpose of contributing to a commons of creative, cultural and
|
||||||
|
scientific works ("Commons") that the public can reliably and without fear
|
||||||
|
of later claims of infringement build upon, modify, incorporate in other
|
||||||
|
works, reuse and redistribute as freely as possible in any form whatsoever
|
||||||
|
and for any purposes, including without limitation commercial purposes.
|
||||||
|
These owners may contribute to the Commons to promote the ideal of a free
|
||||||
|
culture and the further production of creative, cultural and scientific
|
||||||
|
works, or to gain reputation or greater distribution for their Work in
|
||||||
|
part through the use and efforts of others.
|
||||||
|
|
||||||
|
For these and/or other purposes and motivations, and without any
|
||||||
|
expectation of additional consideration or compensation, the person
|
||||||
|
associating CC0 with a Work (the "Affirmer"), to the extent that he or she
|
||||||
|
is an owner of Copyright and Related Rights in the Work, voluntarily
|
||||||
|
elects to apply CC0 to the Work and publicly distribute the Work under its
|
||||||
|
terms, with knowledge of his or her Copyright and Related Rights in the
|
||||||
|
Work and the meaning and intended legal effect of CC0 on those rights.
|
||||||
|
|
||||||
|
1. Copyright and Related Rights. A Work made available under CC0 may be
|
||||||
|
protected by copyright and related or neighboring rights ("Copyright and
|
||||||
|
Related Rights"). Copyright and Related Rights include, but are not
|
||||||
|
limited to, the following:
|
||||||
|
|
||||||
|
i. the right to reproduce, adapt, distribute, perform, display,
|
||||||
|
communicate, and translate a Work;
|
||||||
|
ii. moral rights retained by the original author(s) and/or performer(s);
|
||||||
|
iii. publicity and privacy rights pertaining to a person's image or
|
||||||
|
likeness depicted in a Work;
|
||||||
|
iv. rights protecting against unfair competition in regards to a Work,
|
||||||
|
subject to the limitations in paragraph 4(a), below;
|
||||||
|
v. rights protecting the extraction, dissemination, use and reuse of data
|
||||||
|
in a Work;
|
||||||
|
vi. database rights (such as those arising under Directive 96/9/EC of the
|
||||||
|
European Parliament and of the Council of 11 March 1996 on the legal
|
||||||
|
protection of databases, and under any national implementation
|
||||||
|
thereof, including any amended or successor version of such
|
||||||
|
directive); and
|
||||||
|
vii. other similar, equivalent or corresponding rights throughout the
|
||||||
|
world based on applicable law or treaty, and any national
|
||||||
|
implementations thereof.
|
||||||
|
|
||||||
|
2. Waiver. To the greatest extent permitted by, but not in contravention
|
||||||
|
of, applicable law, Affirmer hereby overtly, fully, permanently,
|
||||||
|
irrevocably and unconditionally waives, abandons, and surrenders all of
|
||||||
|
Affirmer's Copyright and Related Rights and associated claims and causes
|
||||||
|
of action, whether now known or unknown (including existing as well as
|
||||||
|
future claims and causes of action), in the Work (i) in all territories
|
||||||
|
worldwide, (ii) for the maximum duration provided by applicable law or
|
||||||
|
treaty (including future time extensions), (iii) in any current or future
|
||||||
|
medium and for any number of copies, and (iv) for any purpose whatsoever,
|
||||||
|
including without limitation commercial, advertising or promotional
|
||||||
|
purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
|
||||||
|
member of the public at large and to the detriment of Affirmer's heirs and
|
||||||
|
successors, fully intending that such Waiver shall not be subject to
|
||||||
|
revocation, rescission, cancellation, termination, or any other legal or
|
||||||
|
equitable action to disrupt the quiet enjoyment of the Work by the public
|
||||||
|
as contemplated by Affirmer's express Statement of Purpose.
|
||||||
|
|
||||||
|
3. Public License Fallback. Should any part of the Waiver for any reason
|
||||||
|
be judged legally invalid or ineffective under applicable law, then the
|
||||||
|
Waiver shall be preserved to the maximum extent permitted taking into
|
||||||
|
account Affirmer's express Statement of Purpose. In addition, to the
|
||||||
|
extent the Waiver is so judged Affirmer hereby grants to each affected
|
||||||
|
person a royalty-free, non transferable, non sublicensable, non exclusive,
|
||||||
|
irrevocable and unconditional license to exercise Affirmer's Copyright and
|
||||||
|
Related Rights in the Work (i) in all territories worldwide, (ii) for the
|
||||||
|
maximum duration provided by applicable law or treaty (including future
|
||||||
|
time extensions), (iii) in any current or future medium and for any number
|
||||||
|
of copies, and (iv) for any purpose whatsoever, including without
|
||||||
|
limitation commercial, advertising or promotional purposes (the
|
||||||
|
"License"). The License shall be deemed effective as of the date CC0 was
|
||||||
|
applied by Affirmer to the Work. Should any part of the License for any
|
||||||
|
reason be judged legally invalid or ineffective under applicable law, such
|
||||||
|
partial invalidity or ineffectiveness shall not invalidate the remainder
|
||||||
|
of the License, and in such case Affirmer hereby affirms that he or she
|
||||||
|
will not (i) exercise any of his or her remaining Copyright and Related
|
||||||
|
Rights in the Work or (ii) assert any associated claims and causes of
|
||||||
|
action with respect to the Work, in either case contrary to Affirmer's
|
||||||
|
express Statement of Purpose.
|
||||||
|
|
||||||
|
4. Limitations and Disclaimers.
|
||||||
|
|
||||||
|
a. No trademark or patent rights held by Affirmer are waived, abandoned,
|
||||||
|
surrendered, licensed or otherwise affected by this document.
|
||||||
|
b. Affirmer offers the Work as-is and makes no representations or
|
||||||
|
warranties of any kind concerning the Work, express, implied,
|
||||||
|
statutory or otherwise, including without limitation warranties of
|
||||||
|
title, merchantability, fitness for a particular purpose, non
|
||||||
|
infringement, or the absence of latent or other defects, accuracy, or
|
||||||
|
the present or absence of errors, whether or not discoverable, all to
|
||||||
|
the greatest extent permissible under applicable law.
|
||||||
|
c. Affirmer disclaims responsibility for clearing rights of other persons
|
||||||
|
that may apply to the Work or any use thereof, including without
|
||||||
|
limitation any person's Copyright and Related Rights in the Work.
|
||||||
|
Further, Affirmer disclaims responsibility for obtaining any necessary
|
||||||
|
consents, permissions or other rights required for any use of the
|
||||||
|
Work.
|
||||||
|
d. Affirmer understands and acknowledges that Creative Commons is not a
|
||||||
|
party to this document and has no duty or obligation with respect to
|
||||||
|
this CC0 or use of the Work.
|
||||||
@@ -25,10 +25,49 @@ DCC multifunction decoder for H0 locomotives
|
|||||||
|
|
||||||
## Firmware
|
## Firmware
|
||||||
- Arduino compatible programming (behaves like an UNO)
|
- Arduino compatible programming (behaves like an UNO)
|
||||||
- DCC decoding by [NMRADCC](https://github.com/mrrwa/NmraDcc) library
|
- DCC decoding by [NmraDcc](https://github.com/mrrwa/NmraDcc) library
|
||||||
|
|
||||||
## JMRI integration
|
## JMRI integration
|
||||||
|
|
||||||
|
|  |  |  |  |  |  |
|
||||||
|
| :---: | :---: | :---: | :---: | :---: | :---: |
|
||||||
|
| Basic | Motor | Basic speed control | Speed table | Function map | Advanced |
|
||||||
|
|
||||||
|
## Install guide
|
||||||
|
|
||||||
|
1. Get the PCB (e.g. [JLCPCB](https://jlcpcb.com/)) and the components (e.g. [mouser](https://www.mouser.at/), [digikey](https://www.digikey.at/))
|
||||||
|
2. Solder the components. The SOIC with exposed pad is a bit tricky, it can be soldered from the other side with a big tip and a lot of flux.
|
||||||
|
3. Install the Arduino bootloader using the pads 5V, GND, SCK, MISO, MOSI, RST and an Arduino. [Arduino as ISP](https://www.arduino.cc/en/Tutorial/BuiltInExamples/ArduinoISP)
|
||||||
|
4. Uncomment the line `#define RESET_FACTORY_DEFAULTS` to fill the EEPROM with the default CV values
|
||||||
|
5. Upload the code using the pads 5V, GND, RX, TX, DTR and a USB TTL UART cable [like this](https://www.mouser.at/ProductDetail/FTDI/TTL-232R-5V-WE/?qs=OMDV80DKjRpCUAS6UR9QpQ%3D%3D)
|
||||||
|
6. Re-comment the line `#define RESET_FACTORY_DEFAULTS` to avoid resetting to factory defaults every time.
|
||||||
|
7. Upload the code again.
|
||||||
|
8. Add the decoder XML file to JMRI. In DecoderPro select "File-> Import Decoder File..." and browse to the decoder [XML](JMRI_decoder_file/Public_Domain_GTI_green.xml). It will take some time, then adds the decoder definition to the database.
|
||||||
|
9. Connect the T1 and T2 pads to the programming track of your DCC system.
|
||||||
|
10. Add new locomotive with the "New Loco" button and then "Read type from decoder". It should detect the correct type:
|
||||||
|

|
||||||
|
11. If everything is fine, you can install the decoder into your locomotive!
|
||||||
|
### Pinout
|
||||||
|
| Pad | Function |
|
||||||
|
| :-- | :-- |
|
||||||
|
| M1 | Motor 1 |
|
||||||
|
| M2 | Motor 2 |
|
||||||
|
| T1 | Track 1 |
|
||||||
|
| T2 | Track 2 |
|
||||||
|
| V+ | Positive common for function outputs (keep-alive capacitor positive) |
|
||||||
|
| F0f | F0 function output forward (open drain) |
|
||||||
|
| F0r | F0 function output reverse (open drain) |
|
||||||
|
| 1-8 | AUX function output n (open drain) |
|
||||||
|
| 5V | internal microcontroller +5V supply |
|
||||||
|
| GND | ground (keep alive capacitor negative) |
|
||||||
|
| SCK | ISP programming clock (connect to ISP SCK) |
|
||||||
|
| MISO | ISP programming read (connect to ISP MISO) |
|
||||||
|
| MOSI | ISP programming write (connect to ISP MOSI) |
|
||||||
|
| RST | ISP programming reset (connect to ISP reset output)
|
||||||
|
| RX | serial programming receive (connect to TTL UART TX) |
|
||||||
|
| TX | serial programming transmit (connect to TTL UART RX) |
|
||||||
|
| DTR | serial programming reset through a 100 nF capacitor (connect to TTL UART DTR) |
|
||||||
|
|
||||||
## Todo list
|
## Todo list
|
||||||
- [ ] CV15, CV16 decoder locking
|
- [ ] CV15, CV16 decoder locking
|
||||||
- [ ] CV65 kick start
|
- [ ] CV65 kick start
|
||||||
|
|||||||