Compare commits
74 commits
firmware-0
...
main
Author | SHA1 | Date | |
---|---|---|---|
|
461b816115 | ||
1c0beb58aa | |||
bcfd9d74ee | |||
58dc9f4ff0 | |||
42432a3de3 | |||
368ec7a8b3 | |||
a690758476 | |||
d2e264db56 | |||
56d9756744 | |||
562d46a2e2 | |||
14f752413f | |||
df69103dff | |||
c78dc3368f | |||
b74d0c88ca | |||
c59f790c15 | |||
1a1fd39ffa | |||
9687cfe00d | |||
3a5c0cbfa8 | |||
7a5baf009b | |||
6554c0ae0a | |||
f32e16d28b | |||
76c1bf08d6 | |||
8ac87db926 | |||
78632d1d65 | |||
01887c16de | |||
2b67376b57 | |||
619ad570f4 | |||
6688cc788a | |||
d53cd91215 | |||
d046348ba9 | |||
3bc4ca4ce0 | |||
b260895de0 | |||
4036c5742c | |||
d6989ebe6d | |||
b245359a42 | |||
5e567e9256 | |||
c5e51ae070 | |||
56ec6cf87f | |||
3c441946fb | |||
24b7449580 | |||
1d249fce0f | |||
8640c29000 | |||
391d5816ae | |||
eb98ba4abb | |||
de6dde5f9a | |||
7e5bd28746 | |||
e5e13bbae3 | |||
20c4dcc397 | |||
d0a377dcca | |||
25d95b742f | |||
8876bbd4e8 | |||
3e29487286 | |||
362ebc7077 | |||
55d4cfb4b5 | |||
54c7e84de7 | |||
806aa2d057 | |||
0354a7cfbf | |||
f8523e1577 | |||
37e0b33cf3 | |||
a51cd81651 | |||
54fec62a3e | |||
e1fcb09ae7 | |||
1b1c0ce391 | |||
d6bd0f7638 | |||
a0f3db9a77 | |||
064db734d5 | |||
f5dc0b161a | |||
25bf84ee1e | |||
bacb48a918 | |||
1d667bd665 | |||
4fc9f62a26 | |||
f4556f75d4 | |||
52abf8e483 | |||
cbc20586c4 |
|
@ -71,16 +71,16 @@ void setup() {
|
||||||
|
|
||||||
|
|
||||||
// set all OUTPUT to low
|
// set all OUTPUT to low
|
||||||
digitalWrite(PinFAN, LOW);
|
digitalWrite(PinFAN, HIGH);
|
||||||
digitalWrite(PINwaterlevel, LOW);
|
digitalWrite(PINwaterlevel, LOW);
|
||||||
digitalWrite(PinLED, LOW);
|
digitalWrite(PinLED, HIGH);
|
||||||
digitalWrite(PinPUMP, LOW);
|
digitalWrite(PinPUMP, HIGH);
|
||||||
// except PINsoilmoisture
|
// except PINsoilmoisture
|
||||||
// PINsoilmoisture is always HIGH and gets LOW in moment of waterlevel measurement
|
// PINsoilmoisture is always HIGH and gets LOW in moment of waterlevel measurement
|
||||||
digitalWrite(PINsoilmoisture, LOW);
|
digitalWrite(PINsoilmoisture, LOW);
|
||||||
|
|
||||||
// set PWM frequency to 2.2KHz
|
// set PWM frequency to 13.37KHz
|
||||||
analogWriteFreq(2200);
|
analogWriteFreq(13370);
|
||||||
|
|
||||||
// Start EEPROM
|
// Start EEPROM
|
||||||
EEPROM.begin(512);
|
EEPROM.begin(512);
|
||||||
|
@ -100,7 +100,7 @@ void setup() {
|
||||||
Serial.println(":: initialise I2C ::");
|
Serial.println(":: initialise I2C ::");
|
||||||
// initialise Wire for I2C
|
// initialise Wire for I2C
|
||||||
Wire.begin();
|
Wire.begin();
|
||||||
|
Wire.setClockStretchLimit(2500);
|
||||||
Serial.println(":: initialise display ::");
|
Serial.println(":: initialise display ::");
|
||||||
// initialise I2C display
|
// initialise I2C display
|
||||||
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // Address 0x3C for 128x64
|
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // Address 0x3C for 128x64
|
||||||
|
@ -239,7 +239,7 @@ void loop() {
|
||||||
controlLED();
|
controlLED();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
controlPUMP();
|
||||||
|
|
||||||
displayScreens();
|
displayScreens();
|
||||||
|
|
||||||
|
@ -265,16 +265,24 @@ void loop() {
|
||||||
* - re-organize EEPROM saved values.
|
* - re-organize EEPROM saved values.
|
||||||
* - prevent GrowStart to be in the future
|
* - prevent GrowStart to be in the future
|
||||||
* - maybe let the user configure some screens to display.
|
* - maybe let the user configure some screens to display.
|
||||||
*
|
* - put EEPROM adresses into DEFINEs
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Fan control
|
||||||
|
*
|
||||||
|
* Vars:
|
||||||
|
* - FanVent (byte) Fan1 or Fan2
|
||||||
|
* - FanExhaust (byte) Fan1 or Fan2
|
||||||
|
* -
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -74,6 +74,9 @@ a:active {
|
||||||
width: 42px;
|
width: 42px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.helpbox {
|
||||||
|
font-size: 0.8em;
|
||||||
|
}
|
||||||
.nav {
|
.nav {
|
||||||
background: #333;
|
background: #333;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
@ -210,8 +213,8 @@ const char HTMLhelp[] PROGMEM = R"EOF(
|
||||||
<h2>❓ Help</h2>
|
<h2>❓ Help</h2>
|
||||||
Here you will get some helpful help.
|
Here you will get some helpful help.
|
||||||
<h3>API</h3>
|
<h3>API</h3>
|
||||||
Sensor data: <code>GET /api/sensors</code>
|
<a href='/api/sensors' target='_blank'>Sensor data</a>: <code>GET /api/sensors</code><br>
|
||||||
Debug all data: <code>GET /api/debug</code>
|
<a href='/api/debug' target='_blank'>Debug all data:</a> <code>GET /api/debug</code>
|
||||||
)EOF";
|
)EOF";
|
||||||
|
|
||||||
|
|
||||||
|
@ -505,10 +508,10 @@ const char HTMLgauge[] PROGMEM = R"EOF(
|
||||||
|
|
||||||
const char HTMLupdate[] PROGMEM = R"EOF(
|
const char HTMLupdate[] PROGMEM = R"EOF(
|
||||||
<p>You find the latest CanGrow firmware version on the <a href='https://git.la10cy.net/DeltaLima/CanGrow/releases' target='_blank'>release page</a> of the git repository.</p>
|
<p>You find the latest CanGrow firmware version on the <a href='https://git.la10cy.net/DeltaLima/CanGrow/releases' target='_blank'>release page</a> of the git repository.</p>
|
||||||
<form method='POST' action='/system/applyUpdate' enctype='multipart/form-data'>
|
<form method='POST' action='/system/applyUpdate' enctype='multipart/form-data' onsubmit="document.getElementById('divUploading').style.display = '';">
|
||||||
<b>Select .bin file:</b><br>
|
<b>Select .bin file:</b><br>
|
||||||
<input type='file' accept='.bin,.bin.gz' name='firmware'>
|
<input type='file' accept='.bin,.bin.gz' name='firmware' required>
|
||||||
<input type='submit' value='Update Firmware' onclick="document.getElementById('divUploading').style.display = '';">
|
<input type='submit' value='Update Firmware'>
|
||||||
</form>
|
</form>
|
||||||
<div id='divUploading' style='display: none;' class='warnmsg'>🛜 Uploading, please wait...<div>
|
<div id='divUploading' style='display: none;' class='warnmsg'>🛜 Uploading, please wait...<div>
|
||||||
)EOF";
|
)EOF";
|
||||||
|
|
|
@ -19,7 +19,7 @@ const bool APhidden = false;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// valSoilmoisture - contains the value of getSoilmoisture()
|
// valSoilmoisture - contains the value of getSoilmoisture()
|
||||||
byte valSoilmoisture;
|
unsigned short valSoilmoisture;
|
||||||
// valTemperature - contains the value of getTemperature()
|
// valTemperature - contains the value of getTemperature()
|
||||||
float valTemperature;
|
float valTemperature;
|
||||||
// valTemperature - contains the value of getHumidity()
|
// valTemperature - contains the value of getHumidity()
|
||||||
|
@ -38,6 +38,18 @@ byte ScreenIterationPassed = 0;
|
||||||
bool MaintenanceMode = false;
|
bool MaintenanceMode = false;
|
||||||
unsigned long MaintenanceStarted = 0;
|
unsigned long MaintenanceStarted = 0;
|
||||||
|
|
||||||
|
// helper variable to remember how many seconds the pump was
|
||||||
|
// already on within the actual watering cycle
|
||||||
|
byte PumpOnTimePassed = 0;
|
||||||
|
bool PumpOnManual = false;
|
||||||
|
|
||||||
|
// helper variable for pump control with soilmoisture
|
||||||
|
// average of last readings
|
||||||
|
unsigned short valSoilmoistureAvg = 0;
|
||||||
|
unsigned short valSoilmoistureAvg_tmp = 0;
|
||||||
|
byte valSoilmoistureAvg_count = 0;
|
||||||
|
//unsigned short
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* millis timer
|
* millis timer
|
||||||
*
|
*
|
||||||
|
@ -79,12 +91,14 @@ short NtpOffset;
|
||||||
// 2: I2C chirp sensor from catnip electronics
|
// 2: I2C chirp sensor from catnip electronics
|
||||||
byte MoistureSensor_Type;
|
byte MoistureSensor_Type;
|
||||||
// SoilmoistureLow - contains the value , when soil moisture is assumed to be low,
|
// SoilmoistureLow - contains the value , when soil moisture is assumed to be low,
|
||||||
byte SoilmoistureLow = 20;
|
byte SoilmoistureLow = 80;
|
||||||
// UsePump - is the pump used? bool
|
// UsePump - is the pump used? bool
|
||||||
bool UsePump;
|
// PumpMode (short) 1: Pump on every n days, 2: Pump on when Soilmoisture <= SoilmoistureLow, 3: Both
|
||||||
|
byte UsePump;
|
||||||
// UseFan - is the fan used? bool
|
// UseFan - is the fan used? bool
|
||||||
|
// PumpOnTime in seconds
|
||||||
byte PumpOnTime = 3;
|
byte PumpOnTime = 3;
|
||||||
bool UseFan;
|
byte UseFan;
|
||||||
// In case the user uses no 12V LED on the LED output and an relais instead
|
// In case the user uses no 12V LED on the LED output and an relais instead
|
||||||
// we have to disable PWM. So we ask here for what kind of light user is going
|
// we have to disable PWM. So we ask here for what kind of light user is going
|
||||||
bool UseLEDrelais;
|
bool UseLEDrelais;
|
||||||
|
@ -93,6 +107,10 @@ bool UseFANrelais;
|
||||||
byte TemperatureSensor_Type;
|
byte TemperatureSensor_Type;
|
||||||
unsigned short MaintenanceDuration = 300;
|
unsigned short MaintenanceDuration = 300;
|
||||||
char Esp32CamIP[16];
|
char Esp32CamIP[16];
|
||||||
|
// PumpLastOn (long) timestamp
|
||||||
|
unsigned long PumpLastOn;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Grow Stuff
|
// Grow Stuff
|
||||||
|
@ -127,6 +145,10 @@ byte PinFANPWM = 255;
|
||||||
bool SunFade;
|
bool SunFade;
|
||||||
byte SunFadeDuration = 30;
|
byte SunFadeDuration = 30;
|
||||||
|
|
||||||
|
// PumpIntervalVeg (int) in days
|
||||||
|
byte PumpIntervalVeg = 5;
|
||||||
|
byte PumpIntervalBloom = 3;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* NTP
|
* NTP
|
||||||
|
|
|
@ -187,7 +187,13 @@ int getSoilmoisture(byte moistureSensor, bool returnRAW = false) {
|
||||||
if(returnRAW == true) {
|
if(returnRAW == true) {
|
||||||
return soilmoisture;
|
return soilmoisture;
|
||||||
} else {
|
} else {
|
||||||
return map(soilmoisture, wet, dry, 100, 0);
|
short soilmoistureP = map(soilmoisture, wet, dry, 100, 0);
|
||||||
|
// dont return negative percentage values
|
||||||
|
if(soilmoistureP < 0) {
|
||||||
|
return 0;
|
||||||
|
} else {
|
||||||
|
return soilmoistureP;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -104,7 +104,10 @@ bool loadEEPROM() {
|
||||||
* 218 SunFadeDuration
|
* 218 SunFadeDuration
|
||||||
* 219 MaintenanceDuration (2 byte)
|
* 219 MaintenanceDuration (2 byte)
|
||||||
* 221 Esp32CamIP (16 byte)
|
* 221 Esp32CamIP (16 byte)
|
||||||
* 237 ...
|
* 237 PumpLastOn (4 byte)
|
||||||
|
* 241 PumpIntervalVeg (1 byte)
|
||||||
|
* 242 PumpIntervalBloom (1 byte)
|
||||||
|
* 243 ...
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -167,7 +170,10 @@ bool loadEEPROM() {
|
||||||
// size is 2 byte
|
// size is 2 byte
|
||||||
EEPROM.get(219, MaintenanceDuration);
|
EEPROM.get(219, MaintenanceDuration);
|
||||||
// size is 16 byte
|
// size is 16 byte
|
||||||
EEPROM.get(221, Esp32CamIP);
|
EEPROM.get(221, Esp32CamIP);
|
||||||
|
// size is 4 byte
|
||||||
|
EEPROM.get(237, PumpLastOn);
|
||||||
|
|
||||||
}
|
}
|
||||||
// TODO auth does not work atm
|
// TODO auth does not work atm
|
||||||
// EEPROM.get(160, WebUiUsername);
|
// EEPROM.get(160, WebUiUsername);
|
||||||
|
@ -202,6 +208,10 @@ bool loadEEPROM() {
|
||||||
EEPROM.get(216, PinFANPWM);
|
EEPROM.get(216, PinFANPWM);
|
||||||
EEPROM.get(217, SunFade);
|
EEPROM.get(217, SunFade);
|
||||||
EEPROM.get(218, SunFadeDuration);
|
EEPROM.get(218, SunFadeDuration);
|
||||||
|
// size is 1 byte
|
||||||
|
EEPROM.get(241, PumpIntervalVeg);
|
||||||
|
// size is 1 byte
|
||||||
|
EEPROM.get(242, PumpIntervalBloom);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -360,6 +370,30 @@ void wifiAp() {
|
||||||
//Serial.println("The login credentials for the WebUI are 'cangrow' for username and password");
|
//Serial.println("The login credentials for the WebUI are 'cangrow' for username and password");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unsigned short growState() {
|
||||||
|
/*
|
||||||
|
* growState()
|
||||||
|
*
|
||||||
|
* returns growState as short
|
||||||
|
*
|
||||||
|
* 1 - vegetation
|
||||||
|
* 2 - bloom
|
||||||
|
* 3 - harvest
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
unsigned short state;
|
||||||
|
|
||||||
|
if(DayOfGrow > (DaysVeg + DaysBloom ) ) {
|
||||||
|
state = 3;
|
||||||
|
} else if(DayOfGrow > DaysVeg ) {
|
||||||
|
state = 2;
|
||||||
|
} else {
|
||||||
|
state = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
void setOutput(byte Output, byte OutputState) {
|
void setOutput(byte Output, byte OutputState) {
|
||||||
/*
|
/*
|
||||||
* Pin assignments
|
* Pin assignments
|
||||||
|
@ -405,9 +439,9 @@ void setOutput(byte Output, byte OutputState) {
|
||||||
//~ Serial.println(UseRelais);
|
//~ Serial.println(UseRelais);
|
||||||
|
|
||||||
if( (UseRelais == true) || (OutputPin == PinPUMP) ) {
|
if( (UseRelais == true) || (OutputPin == PinPUMP) ) {
|
||||||
digitalWrite(OutputPin, OutputState);
|
digitalWrite(OutputPin, 1 - OutputState);
|
||||||
} else {
|
} else {
|
||||||
analogWrite(OutputPin, OutputState);
|
analogWrite(OutputPin, 255 - OutputState);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -418,15 +452,22 @@ void controlLED() {
|
||||||
unsigned int secondsSunrise = (SunriseHour * 60 * 60) + (SunriseMinute * 60);
|
unsigned int secondsSunrise = (SunriseHour * 60 * 60) + (SunriseMinute * 60);
|
||||||
unsigned int secondsToday = (timeClient.getHours() * 60 * 60) + (timeClient.getMinutes() * 60) + timeClient.getSeconds();
|
unsigned int secondsToday = (timeClient.getHours() * 60 * 60) + (timeClient.getMinutes() * 60) + timeClient.getSeconds();
|
||||||
|
|
||||||
if(DayOfGrow > DaysVeg ) {
|
switch(growState()) {
|
||||||
lightHours = LighthoursBloom;
|
case 1:
|
||||||
} else {
|
lightHours = LighthoursVeg;
|
||||||
lightHours = LighthoursVeg;
|
break;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
lightHours = LighthoursBloom;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
lightHours = 0;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// check if secondsToday is larger then secondsSunrise time AND if
|
// check if secondsToday is larger then secondsSunrise time AND if
|
||||||
// secondsToday is smaller then the sum of secondsSunrise + seconds of lightHours
|
// secondsToday is smaller then the sum of secondsSunrise + seconds of lightHours
|
||||||
if( ((secondsToday >= secondsSunrise) && (secondsToday <= ( secondsSunrise + (lightHours * 60 * 60))) ) ){
|
if( ((secondsToday >= secondsSunrise) && (secondsToday <= ( secondsSunrise + (lightHours * 60 * 60))) ) && (growState() < 3) ){
|
||||||
//Serial.println("light on time");
|
//Serial.println("light on time");
|
||||||
|
|
||||||
// when SunFade is true, fade LED light. Otherwise just turn on or off
|
// when SunFade is true, fade LED light. Otherwise just turn on or off
|
||||||
|
@ -460,10 +501,25 @@ void controlLED() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void refreshSensors() {
|
void refreshSensors() {
|
||||||
|
byte soilmoistureAvgSampleCount = 5;
|
||||||
|
|
||||||
valSoilmoisture = getSoilmoisture(MoistureSensor_Type);
|
valSoilmoisture = getSoilmoisture(MoistureSensor_Type);
|
||||||
valHumidity = getHumidity();
|
valHumidity = getHumidity();
|
||||||
valTemperature = getTemperature(TemperatureSensor_Type);
|
valTemperature = getTemperature(TemperatureSensor_Type);
|
||||||
valWaterlevel = getWaterlevel();
|
valWaterlevel = getWaterlevel();
|
||||||
|
|
||||||
|
// get average of 5 readings for valSoilmoisture
|
||||||
|
valSoilmoistureAvg_tmp = valSoilmoistureAvg_tmp + valSoilmoisture;
|
||||||
|
if(valSoilmoistureAvg_count < soilmoistureAvgSampleCount - 1) {
|
||||||
|
valSoilmoistureAvg_count++;
|
||||||
|
} else {
|
||||||
|
// build average
|
||||||
|
valSoilmoistureAvg = valSoilmoistureAvg_tmp / soilmoistureAvgSampleCount;
|
||||||
|
// reset everything
|
||||||
|
valSoilmoistureAvg_tmp = 0;
|
||||||
|
valSoilmoistureAvg_count = 0;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void displayScreens() {
|
void displayScreens() {
|
||||||
|
@ -499,7 +555,8 @@ void displayScreens() {
|
||||||
display.println("s");
|
display.println("s");
|
||||||
} else {
|
} else {
|
||||||
// in this switch case the single screens gets defined
|
// in this switch case the single screens gets defined
|
||||||
switch(ScreenToDisplay) {
|
//switch(ScreenToDisplay) {
|
||||||
|
switch(0) {
|
||||||
case 0:
|
case 0:
|
||||||
display.print("Humidity: ");
|
display.print("Humidity: ");
|
||||||
display.print(valHumidity);
|
display.print(valHumidity);
|
||||||
|
@ -511,9 +568,10 @@ void displayScreens() {
|
||||||
display.println("");
|
display.println("");
|
||||||
display.print("Moisture: ");
|
display.print("Moisture: ");
|
||||||
display.print(valSoilmoisture);
|
display.print(valSoilmoisture);
|
||||||
display.println(" %");
|
display.print(" % ");
|
||||||
|
display.println(valSoilmoistureAvg);
|
||||||
display.println("");
|
display.println("");
|
||||||
if(UsePump == true) {
|
if(UsePump > 0) {
|
||||||
display.print("Pump Waterlvl: ");
|
display.print("Pump Waterlvl: ");
|
||||||
switch(valWaterlevel) {
|
switch(valWaterlevel) {
|
||||||
case 0:
|
case 0:
|
||||||
|
@ -567,26 +625,128 @@ void displayScreens() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
unsigned short growState() {
|
|
||||||
/*
|
/*
|
||||||
* growState()
|
* Pump control
|
||||||
*
|
*
|
||||||
* returns growState as short
|
* Vars:
|
||||||
|
* - UsePump (byte)
|
||||||
|
* - PumpOnTime (byte) in sec
|
||||||
|
* - SoilmoistureLow (byte) in %
|
||||||
|
* - PumpLastOn (long) timestamp
|
||||||
|
* - PumpMode (byte) 1: Pump on every n days, 2: Pump on when Soilmoisture <= SoilmoistureLow, 3: Both
|
||||||
*
|
*
|
||||||
* 1 - vegetation
|
* - PumpIntervalVeg (byte) in days
|
||||||
* 2 - bloom
|
* - PumpIntervalBloom (byte) in days
|
||||||
* 3 - harvest
|
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
unsigned short state;
|
|
||||||
|
void controlPUMP() {
|
||||||
|
byte PumpInterval;
|
||||||
|
|
||||||
if(DayOfGrow > (DaysVeg + DaysBloom ) ) {
|
// UsePump true and not in harvest state?
|
||||||
state = 3;
|
// dont water within the first 15 sec after startup
|
||||||
} else if(DayOfGrow > DaysVeg ) {
|
if ( (UsePump > 0) && (growState() < 3) && (millis() > 15000) ) {
|
||||||
state = 2;
|
switch(growState()) {
|
||||||
|
case 1:
|
||||||
|
PumpInterval = PumpIntervalVeg;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
PumpInterval = PumpIntervalBloom;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
PumpInterval = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// when PumpOnManuel is true, turn pump on for PumpOnTime seconds
|
||||||
|
if(PumpOnManual == true) {
|
||||||
|
if(PumpOnTimePassed < PumpOnTime) {
|
||||||
|
setOutput(3, 1);
|
||||||
|
//digitalWrite(PinPUMP, HIGH);
|
||||||
|
PumpOnTimePassed++;
|
||||||
|
} else {
|
||||||
|
PumpOnManual = false;
|
||||||
|
setOutput(3, 0);
|
||||||
|
//digitalWrite(PinPUMP, LOW);
|
||||||
|
EEPROM.put(237, PumpLastOn);
|
||||||
|
PumpOnTimePassed = 0;
|
||||||
|
}
|
||||||
|
// otherwise check which PumpMode to use
|
||||||
|
} else {
|
||||||
|
switch(UsePump) {
|
||||||
|
case 1:
|
||||||
|
// when diff of time now and time pumpLastOn is greater then PumpInterval, do some watering (Or manual watering)
|
||||||
|
if( (timeClient.getEpochTime() - PumpLastOn) >= (PumpInterval) ) { // TODO: * 24 * 60 * 60 PumpInterval
|
||||||
|
// only water as long PumpOnTime
|
||||||
|
if(PumpOnTimePassed < PumpOnTime) {
|
||||||
|
setOutput(3, 1);
|
||||||
|
//digitalWrite(PinPUMP, HIGH);
|
||||||
|
PumpOnTimePassed++;
|
||||||
|
} else {
|
||||||
|
setOutput(3, 0);
|
||||||
|
//digitalWrite(PinPUMP, LOW);
|
||||||
|
PumpLastOn = timeClient.getEpochTime();
|
||||||
|
// write the value to EEPROM for the case ESP gets restarted
|
||||||
|
EEPROM.put(237, PumpLastOn);
|
||||||
|
PumpOnTimePassed = 0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
setOutput(3, 0);
|
||||||
|
//digitalWrite(PinPUMP, LOW);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
// when valSoilmoistureAvg is lower then SoilMoisture low do some watering
|
||||||
|
if( (valSoilmoistureAvg < SoilmoistureLow) || ( (valSoilmoistureAvg >= SoilmoistureLow) && ( (PumpOnTimePassed > 0) && (PumpOnTimePassed <= PumpOnTime) ) ) ) {
|
||||||
|
// check if we alerady exceeded max PumpOnTime
|
||||||
|
if(PumpOnTimePassed < PumpOnTime) {
|
||||||
|
setOutput(3, 1);
|
||||||
|
//digitalWrite(PinPUMP, HIGH);
|
||||||
|
PumpOnTimePassed++;
|
||||||
|
} else {
|
||||||
|
setOutput(3, 0);
|
||||||
|
//digitalWrite(PinPUMP, LOW);
|
||||||
|
PumpLastOn = timeClient.getEpochTime();
|
||||||
|
PumpOnTimePassed = 0;
|
||||||
|
}
|
||||||
|
// when valSoilmoistureAvg is greater then the Low value,
|
||||||
|
} else {
|
||||||
|
setOutput(3, 0);
|
||||||
|
//digitalWrite(PinPUMP, LOW);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
//
|
||||||
|
case 3:
|
||||||
|
if( ( (timeClient.getEpochTime() - PumpLastOn) >= (PumpInterval) ) && //TODO calculate PumpInterval into days as well here
|
||||||
|
( (valSoilmoistureAvg < SoilmoistureLow) ||
|
||||||
|
( (valSoilmoistureAvg >= SoilmoistureLow) && ( (PumpOnTimePassed > 0) && (PumpOnTimePassed <= PumpOnTime) ) )
|
||||||
|
) ) {
|
||||||
|
// check if we alerady exceeded max PumpOnTime
|
||||||
|
if(PumpOnTimePassed < PumpOnTime) {
|
||||||
|
setOutput(3, 1);
|
||||||
|
//digitalWrite(PinPUMP, HIGH);
|
||||||
|
PumpOnTimePassed++;
|
||||||
|
} else {
|
||||||
|
setOutput(3, 0);
|
||||||
|
//digitalWrite(PinPUMP, LOW);
|
||||||
|
PumpLastOn = timeClient.getEpochTime();
|
||||||
|
EEPROM.put(237, PumpLastOn);
|
||||||
|
PumpOnTimePassed = 0;
|
||||||
|
}
|
||||||
|
// when valSoilmoistureAvg is greater then the Low value,
|
||||||
|
} else {
|
||||||
|
setOutput(3, 0);
|
||||||
|
//digitalWrite(PinPUMP, LOW);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
state = 1;
|
// ensure pump is off when it should be off
|
||||||
|
setOutput(3, 0);
|
||||||
|
//digitalWrite(PinPUMP, LOW);
|
||||||
}
|
}
|
||||||
|
|
||||||
return state;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* CanGrow_Version.h gets generated from cangrow.sh */
|
/* CanGrow_Version.h gets generated from cangrow.sh */
|
||||||
|
|
||||||
const char* CanGrowVer = "0.1-dev";
|
const char* CanGrowVer = "0.1-dev";
|
||||||
const char* CanGrowBuild = "72bb58c";
|
const char* CanGrowBuild = "d2e264d-20240919022041";
|
||||||
|
|
||||||
|
|
|
@ -180,23 +180,17 @@ void SysRestart() {
|
||||||
|
|
||||||
void SysWipe() {
|
void SysWipe() {
|
||||||
String body = returnHTMLheader();
|
String body = returnHTMLheader();
|
||||||
// TODO only debug and development solution, remove this later
|
body += "<h1>❗❗ Wiping EEPROM</h1>";
|
||||||
if(webserver.hasArg("confirmed")) {
|
body += "<div class='warnmsg'>All settings will be removed!!<br>";
|
||||||
body += "<div class='warnmsg'><h2>!! Wiping CanGrow's EEPROM !!</h2><br>Device will restart in a few seconds.<br>After restart a new WiFi 'CanGrow-unconfigured' will be created. To access the WebUI visit <a href='http://192.168.4.20'>http://192.168.4.20</a></div>";
|
body += "<br>Please confirm wiping the EEPROM";
|
||||||
body += FPSTR(HTMLfooter);
|
body += "<form action='/system/wipeConfirm' method='post'><br>Please confirm: <input type='checkbox' id='confirm' name='confirm' required /><br><input type='submit' value='Confirm wiping' /></form>";
|
||||||
webserver.send(200, "text/html", body);
|
body += "</div>";
|
||||||
wipeEEPROM();
|
body += FPSTR(HTMLfooter);
|
||||||
} else {
|
webserver.send(200, "text/html", body);
|
||||||
body += "<h1>❗❗ Wiping EEPROM</h1>";
|
|
||||||
body += "<div class='warnmsg'>All settings will be removed!!<br>";
|
|
||||||
body += "<br>Please confirm wiping the EEPROM";
|
|
||||||
body += "<form action='/system/wipe'><input type='hidden' name='confirmed' value='true' /><input type='submit' value='Confirm wiping' /></form>";
|
|
||||||
body += "</div>";
|
|
||||||
body += FPSTR(HTMLfooter);
|
|
||||||
webserver.send(200, "text/html", body);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Sys404() {
|
void Sys404() {
|
||||||
String body = returnHTMLheader();
|
String body = returnHTMLheader();
|
||||||
body += "<div class='warnmsg'><h1>❗ ️ 404 - not found</h1></div>";
|
body += "<div class='warnmsg'><h1>❗ ️ 404 - not found</h1></div>";
|
||||||
|
@ -363,16 +357,16 @@ void WEBroot() {
|
||||||
switch(growState()) {
|
switch(growState()) {
|
||||||
case 1:
|
case 1:
|
||||||
body += "🌱 vegetation<br>\n";
|
body += "🌱 vegetation<br>\n";
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
body += "🌼 bloom<br>\n";
|
body += "🌼 bloom<br>\n";
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
body += "🍂 harvest<br>\n";
|
body += "🍂 harvest\n";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(UsePump == true) {
|
if(UsePump > 0) {
|
||||||
body += "<b>Pump water level:</b> ";
|
body += "<b>Pump water level:</b> ";
|
||||||
switch(getWaterlevel()) {
|
switch(getWaterlevel()) {
|
||||||
case 0:
|
case 0:
|
||||||
|
@ -472,19 +466,19 @@ void WEBgrowSettings() {
|
||||||
|
|
||||||
body += "Vegetation duration: <input class='inputShort' type='number' name='DaysVeg' min='0' max='255' value='";
|
body += "Vegetation duration: <input class='inputShort' type='number' name='DaysVeg' min='0' max='255' value='";
|
||||||
body += DaysVeg;
|
body += DaysVeg;
|
||||||
body+= "' required>Days<br>\n";
|
body+= "' required>days<br>\n";
|
||||||
|
|
||||||
body += "Bloom duration: <input class='inputShort' type='number' name='DaysBloom' min='0' max='255' value='";
|
body += "Bloom duration: <input class='inputShort' type='number' name='DaysBloom' min='0' max='255' value='";
|
||||||
body += DaysBloom;
|
body += DaysBloom;
|
||||||
body+= "' required> Days<br>\n";
|
body+= "' required> days<br>\n";
|
||||||
|
|
||||||
body += "Time LED ON vegetation: <input class='inputShort' type='number' name='LighthoursVeg' min='0' max='255' value='";
|
body += "Time LED ON vegetation: <input class='inputShort' type='number' name='LighthoursVeg' min='0' max='255' value='";
|
||||||
body += LighthoursVeg;
|
body += LighthoursVeg;
|
||||||
body+= "' required> Hours<br>\n";
|
body+= "' required> hours<br>\n";
|
||||||
|
|
||||||
body += "Time LED ON bloom: <input class='inputShort' type='number' name='LighthoursBloom' min='0' max='255' value='";
|
body += "Time LED ON bloom: <input class='inputShort' type='number' name='LighthoursBloom' min='0' max='255' value='";
|
||||||
body += LighthoursBloom;
|
body += LighthoursBloom;
|
||||||
body+= "' required> Hours<br>\n";
|
body+= "' required> hours<br>\n";
|
||||||
|
|
||||||
body += "Sunrise: <input class='inputShort' type='number' name='SunriseHour' min='0' max='23' value='";
|
body += "Sunrise: <input class='inputShort' type='number' name='SunriseHour' min='0' max='23' value='";
|
||||||
body += SunriseHour;
|
body += SunriseHour;
|
||||||
|
@ -515,6 +509,20 @@ void WEBgrowSettings() {
|
||||||
body += "'/> %<br>\n";
|
body += "'/> %<br>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
body += "Pump interval vegetation: every <input class='inputShort' type='number' name='PumpIntervalVeg' min='0' max='255' value='";
|
||||||
|
body += PumpIntervalVeg;
|
||||||
|
body += "' required ";
|
||||||
|
if( (UsePump != 1) && UsePump != 3) { body += "readonly"; }
|
||||||
|
body += "> days<br>\n";
|
||||||
|
|
||||||
|
body += "Pump interval bloom: every <input class='inputShort' type='number' name='PumpIntervalBloom' min='0' max='255' value='";
|
||||||
|
body += PumpIntervalBloom;
|
||||||
|
body += "' required ";
|
||||||
|
if((UsePump != 1) && (UsePump != 3)) { body += "readonly"; }
|
||||||
|
body += "> days<br>\n";
|
||||||
|
|
||||||
|
|
||||||
body += "<input type='submit' value='💾 Save settings'>\n";
|
body += "<input type='submit' value='💾 Save settings'>\n";
|
||||||
body += "</form>\n";
|
body += "</form>\n";
|
||||||
body += FPSTR(JSconvertDateToEpoch);
|
body += FPSTR(JSconvertDateToEpoch);
|
||||||
|
@ -551,19 +559,32 @@ void WEBsystemSettings() {
|
||||||
body += "<form method='post' action='/systemSettings/save'>\n";
|
body += "<form method='post' action='/systemSettings/save'>\n";
|
||||||
|
|
||||||
// UseFan bool
|
// UseFan bool
|
||||||
body += "Use FAN: <select id='UseFan' name='UseFan' required>\n";
|
body += "Fan mode: <select id='UseFan' name='UseFan' required>\n";
|
||||||
if(configured == false){body += "<option disabled value='' selected hidden>---</option>\n";}
|
if(configured == false){body += "<option disabled value='' selected hidden>---</option>\n";}
|
||||||
body += "<option value='1'" + returnStrSelected(UseFan, 1) + ">Yes</option>\n";
|
body += "<option value='1'" + returnStrSelected(UseFan, 0) + ">Off</option>\n";
|
||||||
body += "<option value='0'" + returnStrSelected(UseFan, 0) + ">No</option>\n";
|
body += "<option value='1'" + returnStrSelected(UseFan, 1) + ">Use</option>\n";
|
||||||
|
body += "<option value='0'" + returnStrSelected(UseFan, 2) + ">Do not use</option>\n";
|
||||||
body += "</select><br>\n";
|
body += "</select><br>\n";
|
||||||
|
|
||||||
|
/*
|
||||||
// UsePump bool
|
// UsePump bool
|
||||||
body += "Use PUMP: <select id='UsePump' name='UsePump' required>\n";
|
body += "Use PUMP: <select id='UsePump' name='UsePump' required>\n";
|
||||||
if(configured == false){body += "<option disabled value='' selected hidden>---</option>\n";}
|
if(configured == false){body += "<option disabled value='' selected hidden>---</option>\n";}
|
||||||
body += "<option value='1'" + returnStrSelected(UsePump, 1) + ">Yes</option>\n";
|
body += "<option value='1'" + returnStrSelected(UsePump, 1) + ">Yes</option>\n";
|
||||||
body += "<option value='0'" + returnStrSelected(UsePump, 0) + ">No</option>\n";
|
body += "<option value='0'" + returnStrSelected(UsePump, 0) + ">No</option>\n";
|
||||||
body += "</select><br>\n";
|
body += "</select><br>\n";
|
||||||
|
*/
|
||||||
|
// PumpMode byte
|
||||||
|
body += "Pump mode: <select id='UsePump' name='UsePump' required>\n";
|
||||||
|
if(configured == false){body += "<option disabled value='' selected hidden>---</option>\n";}
|
||||||
|
body += "<option value='0'" + returnStrSelected(UsePump, 0) + ">Off</option>\n";
|
||||||
|
body += "<option value='1'" + returnStrSelected(UsePump, 1) + ">1</option>\n";
|
||||||
|
body += "<option value='2'" + returnStrSelected(UsePump, 2) + ">2</option>\n";
|
||||||
|
body += "<option value='3'" + returnStrSelected(UsePump, 3) + ">3</option>\n";
|
||||||
|
body += "</select><br><p class='helpbox'><b>1:</b> Water every few days.<br> \
|
||||||
|
<b>2:</b> Water if the soil moisture falls below <i>Soilmoisture low</i> value<br> \
|
||||||
|
<b>3:</b> Water every few days if the soil moisture falls below <i>Soilmoisture low</i> value.</p>\n";
|
||||||
|
|
||||||
// UseLEDrelais bool
|
// UseLEDrelais bool
|
||||||
body += "Use relais for LED: <select id='UseLEDrelais' name='UseLEDrelais' required>\n";
|
body += "Use relais for LED: <select id='UseLEDrelais' name='UseLEDrelais' required>\n";
|
||||||
if(configured == false){body += "<option disabled value='' selected hidden>---</option>\n";}
|
if(configured == false){body += "<option disabled value='' selected hidden>---</option>\n";}
|
||||||
|
@ -580,10 +601,11 @@ void WEBsystemSettings() {
|
||||||
|
|
||||||
// TODO ugly. can this done be better?
|
// TODO ugly. can this done be better?
|
||||||
// PumpOnTime int
|
// PumpOnTime int
|
||||||
body += "PUMP ON time: <input class='inputShort' type='number' name='PumpOnTime' min='0' max='255' value='";
|
body += "Pump ON time: <input class='inputShort' type='number' name='PumpOnTime' min='0' max='255' value='";
|
||||||
body += PumpOnTime;
|
body += PumpOnTime;
|
||||||
body += "' required> Seconds<br>\n";
|
body += "' required> Seconds<br>\n";
|
||||||
|
|
||||||
|
|
||||||
// MoistureSensor_Type byte
|
// MoistureSensor_Type byte
|
||||||
body += "Soilmoisture sensor: <select id='MoistureSensor_Type' name='MoistureSensor_Type' required>\n";
|
body += "Soilmoisture sensor: <select id='MoistureSensor_Type' name='MoistureSensor_Type' required>\n";
|
||||||
if(configured == false) {
|
if(configured == false) {
|
||||||
|
@ -741,6 +763,8 @@ void POSTgrowSettings() {
|
||||||
SunriseMinute = webserver.arg("SunriseMinute").toInt();
|
SunriseMinute = webserver.arg("SunriseMinute").toInt();
|
||||||
SunFade = webserver.arg("SunFade").toInt();
|
SunFade = webserver.arg("SunFade").toInt();
|
||||||
SunFadeDuration = webserver.arg("SunFadeDuration").toInt();
|
SunFadeDuration = webserver.arg("SunFadeDuration").toInt();
|
||||||
|
PumpIntervalVeg = webserver.arg("PumpIntervalVeg").toInt();
|
||||||
|
PumpIntervalBloom = webserver.arg("PumpIntervalBloom").toInt();
|
||||||
|
|
||||||
// size is 32 byte
|
// size is 32 byte
|
||||||
EEPROM.put(170, GrowName);
|
EEPROM.put(170, GrowName);
|
||||||
|
@ -764,6 +788,10 @@ void POSTgrowSettings() {
|
||||||
EEPROM.put(216, PinFANPWM);
|
EEPROM.put(216, PinFANPWM);
|
||||||
EEPROM.put(217, SunFade);
|
EEPROM.put(217, SunFade);
|
||||||
EEPROM.put(218, SunFadeDuration);
|
EEPROM.put(218, SunFadeDuration);
|
||||||
|
// size is 1 byte
|
||||||
|
EEPROM.put(241, PumpIntervalVeg);
|
||||||
|
// size is 1 byte
|
||||||
|
EEPROM.put(242, PumpIntervalBloom);
|
||||||
|
|
||||||
EEPROM.commit();
|
EEPROM.commit();
|
||||||
|
|
||||||
|
@ -812,7 +840,7 @@ void POSTsystemSettings() {
|
||||||
TemperatureSensor_Type = webserver.arg("TemperatureSensor_Type").toInt();
|
TemperatureSensor_Type = webserver.arg("TemperatureSensor_Type").toInt();
|
||||||
MaintenanceDuration = webserver.arg("MaintenanceDuration").toInt();
|
MaintenanceDuration = webserver.arg("MaintenanceDuration").toInt();
|
||||||
String Esp32CamIP_tmp = webserver.arg("Esp32CamIP");
|
String Esp32CamIP_tmp = webserver.arg("Esp32CamIP");
|
||||||
Esp32CamIP_tmp.toCharArray(Esp32CamIP, 221);
|
Esp32CamIP_tmp.toCharArray(Esp32CamIP, 221);
|
||||||
|
|
||||||
|
|
||||||
configured = true;
|
configured = true;
|
||||||
|
@ -992,6 +1020,27 @@ void POSTsetOutput() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void POSTsetPumpManual() {
|
||||||
|
PumpOnManual = webserver.arg("PumpOnManual").toInt();
|
||||||
|
webserver.sendHeader("Location", String("/?success"), true);
|
||||||
|
webserver.send(302, "text/plain", "switch: success!\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
void POSTwipeConfirm() {
|
||||||
|
String body = returnHTMLheader();
|
||||||
|
// TODO only debug and development solution, remove this later
|
||||||
|
String confirm = webserver.arg("confirm");
|
||||||
|
if(confirm == "on") {
|
||||||
|
body += "<div class='warnmsg'><h2>!! Wiping CanGrow's EEPROM !!</h2><br>Device will restart in a few seconds.<br>After restart a new WiFi 'CanGrow-unconfigured' will be created. To access the WebUI visit <a href='http://192.168.4.20'>http://192.168.4.20</a></div>";
|
||||||
|
body += FPSTR(HTMLfooter);
|
||||||
|
webserver.send(200, "text/html", body);
|
||||||
|
wipeEEPROM();
|
||||||
|
} else {
|
||||||
|
webserver.send(400, "text/html", String("Error, 'confirm' missing nor wrong"));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* API section
|
* API section
|
||||||
|
@ -1004,6 +1053,7 @@ void APIgetSensors() {
|
||||||
JsonDocument jsonSensors;
|
JsonDocument jsonSensors;
|
||||||
|
|
||||||
jsonSensors["soilmoisture"] = valSoilmoisture;
|
jsonSensors["soilmoisture"] = valSoilmoisture;
|
||||||
|
jsonSensors["soilmoistureAvg"] = valSoilmoistureAvg;
|
||||||
jsonSensors["temperature"] = valTemperature;
|
jsonSensors["temperature"] = valTemperature;
|
||||||
jsonSensors["humidity"] = valHumidity;
|
jsonSensors["humidity"] = valHumidity;
|
||||||
jsonSensors["waterlevel"] = valWaterlevel;
|
jsonSensors["waterlevel"] = valWaterlevel;
|
||||||
|
@ -1018,6 +1068,13 @@ void APIgetDebug() {
|
||||||
|
|
||||||
JsonDocument jsonDebug;
|
JsonDocument jsonDebug;
|
||||||
|
|
||||||
|
// Runtime vars
|
||||||
|
JsonObject objRuntime = jsonDebug["runtime"].add<JsonObject>();
|
||||||
|
objRuntime["PumpOnTimePassed"] = PumpOnTimePassed;
|
||||||
|
objRuntime["PumpOnManual"] = PumpOnManual;
|
||||||
|
objRuntime["valSoilmoistureAvg"] = valSoilmoistureAvg;
|
||||||
|
objRuntime["valSoilmoistureAvg_tmp"] = valSoilmoistureAvg_tmp;
|
||||||
|
objRuntime["valSoilmoistureAvg_count"] = valSoilmoistureAvg_count;
|
||||||
|
|
||||||
// WiFi
|
// WiFi
|
||||||
JsonObject objWiFi = jsonDebug["wifi"].add<JsonObject>();
|
JsonObject objWiFi = jsonDebug["wifi"].add<JsonObject>();
|
||||||
|
@ -1040,6 +1097,8 @@ void APIgetDebug() {
|
||||||
objSystem["TemperatureSensor_Type"] = TemperatureSensor_Type;
|
objSystem["TemperatureSensor_Type"] = TemperatureSensor_Type;
|
||||||
objSystem["NtpOffset"] = NtpOffset;
|
objSystem["NtpOffset"] = NtpOffset;
|
||||||
objSystem["MaintenanceDuration"] = MaintenanceDuration;
|
objSystem["MaintenanceDuration"] = MaintenanceDuration;
|
||||||
|
objSystem["PumpOnTime"] = PumpOnTime;
|
||||||
|
objSystem["PumpLastOn"] = PumpLastOn;
|
||||||
|
|
||||||
// Grow
|
// Grow
|
||||||
JsonObject objGrow = jsonDebug["grow"].add<JsonObject>();
|
JsonObject objGrow = jsonDebug["grow"].add<JsonObject>();
|
||||||
|
@ -1057,7 +1116,8 @@ void APIgetDebug() {
|
||||||
objGrow["PinLEDPWM"] = PinLEDPWM;
|
objGrow["PinLEDPWM"] = PinLEDPWM;
|
||||||
objGrow["PinFANPWM"] = PinFANPWM;
|
objGrow["PinFANPWM"] = PinFANPWM;
|
||||||
objGrow["DayOfGrow"] = DayOfGrow;
|
objGrow["DayOfGrow"] = DayOfGrow;
|
||||||
|
objGrow["PumpIntervalVeg"] = PumpIntervalVeg;
|
||||||
|
objGrow["PumpIntervalBloom"] = PumpIntervalBloom;
|
||||||
|
|
||||||
|
|
||||||
// Sensors
|
// Sensors
|
||||||
|
@ -1126,6 +1186,8 @@ void WebHandler() {
|
||||||
webserver.on("/system/restart", HTTP_GET, SysRestart);
|
webserver.on("/system/restart", HTTP_GET, SysRestart);
|
||||||
// wipe eeprom triggered from WebGui
|
// wipe eeprom triggered from WebGui
|
||||||
webserver.on("/system/wipe", HTTP_GET, SysWipe);
|
webserver.on("/system/wipe", HTTP_GET, SysWipe);
|
||||||
|
// confirm wiping the device
|
||||||
|
webserver.on("/system/wipeConfirm", HTTP_POST, POSTwipeConfirm);
|
||||||
// Maintenance mode
|
// Maintenance mode
|
||||||
webserver.on("/system/maintenance", HTTP_GET, SysMaintenance);
|
webserver.on("/system/maintenance", HTTP_GET, SysMaintenance);
|
||||||
// system update with binary
|
// system update with binary
|
||||||
|
@ -1144,6 +1206,7 @@ void WebHandler() {
|
||||||
|
|
||||||
// switching MOSFETs
|
// switching MOSFETs
|
||||||
webserver.on("/switch", HTTP_POST, POSTsetOutput);
|
webserver.on("/switch", HTTP_POST, POSTsetOutput);
|
||||||
|
webserver.on("/pumpManual", HTTP_POST, POSTsetPumpManual);
|
||||||
|
|
||||||
// api stuff
|
// api stuff
|
||||||
webserver.on("/api/sensors", HTTP_GET, APIgetSensors);
|
webserver.on("/api/sensors", HTTP_GET, APIgetSensors);
|
||||||
|
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 291 KiB |
|
@ -37,9 +37,9 @@
|
||||||
"other_text_thickness": 0.15,
|
"other_text_thickness": 0.15,
|
||||||
"other_text_upright": false,
|
"other_text_upright": false,
|
||||||
"pads": {
|
"pads": {
|
||||||
"drill": 1.1,
|
"drill": 0.8,
|
||||||
"height": 2.1,
|
"height": 1.6,
|
||||||
"width": 2.1
|
"width": 1.6
|
||||||
},
|
},
|
||||||
"silk_line_width": 0.1,
|
"silk_line_width": 0.1,
|
||||||
"silk_text_italic": false,
|
"silk_text_italic": false,
|
||||||
|
@ -79,6 +79,7 @@
|
||||||
"footprint_type_mismatch": "ignore",
|
"footprint_type_mismatch": "ignore",
|
||||||
"hole_clearance": "error",
|
"hole_clearance": "error",
|
||||||
"hole_near_hole": "error",
|
"hole_near_hole": "error",
|
||||||
|
"holes_co_located": "warning",
|
||||||
"invalid_outline": "error",
|
"invalid_outline": "error",
|
||||||
"isolated_copper": "warning",
|
"isolated_copper": "warning",
|
||||||
"item_on_disabled_layer": "error",
|
"item_on_disabled_layer": "error",
|
||||||
|
@ -491,6 +492,7 @@
|
||||||
},
|
},
|
||||||
"schematic": {
|
"schematic": {
|
||||||
"annotate_start_num": 0,
|
"annotate_start_num": 0,
|
||||||
|
"bom_export_filename": "",
|
||||||
"bom_fmt_presets": [],
|
"bom_fmt_presets": [],
|
||||||
"bom_fmt_settings": {
|
"bom_fmt_settings": {
|
||||||
"field_delimiter": ",",
|
"field_delimiter": ",",
|
||||||
|
@ -590,7 +592,7 @@
|
||||||
"sheets": [
|
"sheets": [
|
||||||
[
|
[
|
||||||
"42428fce-ab8c-4a80-af19-dee4f0070d36",
|
"42428fce-ab8c-4a80-af19-dee4f0070d36",
|
||||||
"Stammblatt"
|
"Root"
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"text_variables": {}
|
"text_variables": {}
|
||||||
|
|
Before Width: | Height: | Size: 129 KiB After Width: | Height: | Size: 134 KiB |
Before Width: | Height: | Size: 186 KiB After Width: | Height: | Size: 196 KiB |
Before Width: | Height: | Size: 97 KiB After Width: | Height: | Size: 102 KiB |
|
@ -0,0 +1,152 @@
|
||||||
|
(footprint "CanGrow-SolderWire-0.1sqmm_1x01_D0.4mm_OD1mm_0.8mm"
|
||||||
|
(version 20240108)
|
||||||
|
(generator "pcbnew")
|
||||||
|
(generator_version "8.0")
|
||||||
|
(layer "F.Cu")
|
||||||
|
(descr "Soldered wire connection, for a single 0.1 mm² wire, basic insulation, conductor diameter 0.4mm, outer diameter 1mm, size source Multi-Contact FLEXI-E 0.1 (https://ec.staubli.com/AcroFiles/Catalogues/TM_Cab-Main-11014119_(en)_hi.pdf), bend radius 3 times outer diameter, generated with kicad-footprint-generator")
|
||||||
|
(tags "connector wire 0.1sqmm")
|
||||||
|
(property "Reference" "VCC3.3"
|
||||||
|
(at 0 -2 0)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "3ed91354-25bd-4e84-bfb7-188fd65fc8e9")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 0.8 0.8)
|
||||||
|
(thickness 0.1)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Value" "SolderWire"
|
||||||
|
(at 0 2 0)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(uuid "706134de-5a43-4b0f-a24a-fc10492bb447")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1 1)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Footprint" "Connector_Wire:SolderWire-0.1sqmm_1x01_D0.4mm_OD1mm"
|
||||||
|
(at 0 0 0)
|
||||||
|
(unlocked yes)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(hide yes)
|
||||||
|
(uuid "3ad71b9a-27a6-4a0e-bdb9-5be60a26b692")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Datasheet" ""
|
||||||
|
(at 0 0 0)
|
||||||
|
(unlocked yes)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(hide yes)
|
||||||
|
(uuid "dddc3c2c-a4fc-463d-90ad-f465505d4a51")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Description" ""
|
||||||
|
(at 0 0 0)
|
||||||
|
(unlocked yes)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(hide yes)
|
||||||
|
(uuid "ec7bec08-cf6f-41d0-9924-f484b7198917")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(attr exclude_from_pos_files exclude_from_bom)
|
||||||
|
(fp_line
|
||||||
|
(start -1.3 -1.3)
|
||||||
|
(end -1.3 1.3)
|
||||||
|
(stroke
|
||||||
|
(width 0.05)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.CrtYd")
|
||||||
|
(uuid "e690fe82-f99d-4c33-9eaa-df5fd9925bf4")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -1.3 1.3)
|
||||||
|
(end 1.3 1.3)
|
||||||
|
(stroke
|
||||||
|
(width 0.05)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.CrtYd")
|
||||||
|
(uuid "de44eeda-4e8f-4e38-ab31-bc2514ca1c52")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start 1.3 -1.3)
|
||||||
|
(end -1.3 -1.3)
|
||||||
|
(stroke
|
||||||
|
(width 0.05)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.CrtYd")
|
||||||
|
(uuid "a58f350b-223a-4a2b-b385-7221f51f4b68")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start 1.3 1.3)
|
||||||
|
(end 1.3 -1.3)
|
||||||
|
(stroke
|
||||||
|
(width 0.05)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.CrtYd")
|
||||||
|
(uuid "3fa8882e-d3e5-49d9-8ba4-cec9106635a2")
|
||||||
|
)
|
||||||
|
(fp_circle
|
||||||
|
(center 0 0)
|
||||||
|
(end 0.5 0)
|
||||||
|
(stroke
|
||||||
|
(width 0.1)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(fill none)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(uuid "fc8bd121-be08-4d5a-8538-8d1003ba0cd8")
|
||||||
|
)
|
||||||
|
(fp_text user "${REFERENCE}"
|
||||||
|
(at 0 0 0)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(uuid "dbe65801-e081-4887-bdbd-f547de25cfc2")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 0.25 0.25)
|
||||||
|
(thickness 0.04)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pad "1" thru_hole roundrect
|
||||||
|
(at 0 0)
|
||||||
|
(size 1.6 1.6)
|
||||||
|
(drill 0.8)
|
||||||
|
(layers "*.Cu" "*.Mask")
|
||||||
|
(remove_unused_layers no)
|
||||||
|
(roundrect_rratio 0.15625)
|
||||||
|
(uuid "84abadc5-3aca-4364-bb7c-4e5aca89770a")
|
||||||
|
)
|
||||||
|
(model "${KICAD8_3DMODEL_DIR}/Connector_Wire.3dshapes/SolderWire-0.1sqmm_1x01_D0.4mm_OD1mm.wrl"
|
||||||
|
(offset
|
||||||
|
(xyz 0 0 0)
|
||||||
|
)
|
||||||
|
(scale
|
||||||
|
(xyz 1 1 1)
|
||||||
|
)
|
||||||
|
(rotate
|
||||||
|
(xyz 0 0 0)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
|
@ -7,6 +7,7 @@
|
||||||
(property "Reference" "U3"
|
(property "Reference" "U3"
|
||||||
(at 0 7.3152 180)
|
(at 0 7.3152 180)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
|
(hide yes)
|
||||||
(uuid "5401f2b9-08c4-433b-a536-95365a9d5b27")
|
(uuid "5401f2b9-08c4-433b-a536-95365a9d5b27")
|
||||||
(effects
|
(effects
|
||||||
(font
|
(font
|
||||||
|
@ -18,6 +19,7 @@
|
||||||
(property "Value" "SRT_Power_3A"
|
(property "Value" "SRT_Power_3A"
|
||||||
(at -0.3556 5.1816 0)
|
(at -0.3556 5.1816 0)
|
||||||
(layer "F.Fab")
|
(layer "F.Fab")
|
||||||
|
(hide yes)
|
||||||
(uuid "3aca6114-af0d-478b-80ab-52d5719c58c0")
|
(uuid "3aca6114-af0d-478b-80ab-52d5719c58c0")
|
||||||
(effects
|
(effects
|
||||||
(font
|
(font
|
||||||
|
@ -35,6 +37,7 @@
|
||||||
(effects
|
(effects
|
||||||
(font
|
(font
|
||||||
(size 1.27 1.27)
|
(size 1.27 1.27)
|
||||||
|
(thickness 0.15)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -47,6 +50,7 @@
|
||||||
(effects
|
(effects
|
||||||
(font
|
(font
|
||||||
(size 1.27 1.27)
|
(size 1.27 1.27)
|
||||||
|
(thickness 0.15)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -59,287 +63,288 @@
|
||||||
(effects
|
(effects
|
||||||
(font
|
(font
|
||||||
(size 1.27 1.27)
|
(size 1.27 1.27)
|
||||||
|
(thickness 0.15)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(attr through_hole)
|
(attr through_hole)
|
||||||
(fp_line
|
(fp_line
|
||||||
(start -11.176 -7.493)
|
(start -10.2122 -6.0076)
|
||||||
(end -11.176 8.636)
|
(end -10.2122 10.1214)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.12)
|
(width 0.12)
|
||||||
(type solid)
|
(type solid)
|
||||||
)
|
)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "c04c845e-4b76-4dc5-b3a1-2129724a526d")
|
(uuid "6292f9f0-b20e-4f1e-990a-0b11f0bae5e2")
|
||||||
)
|
)
|
||||||
(fp_line
|
(fp_line
|
||||||
(start -11.176 8.636)
|
(start -10.2122 10.1214)
|
||||||
(end 10.16 8.636)
|
(end 11.1238 10.1214)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.12)
|
(width 0.12)
|
||||||
(type solid)
|
(type solid)
|
||||||
)
|
)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "b279bc16-0fa3-40ad-9a71-246db78cd5db")
|
(uuid "7b8db049-a75b-4c09-b1c9-de8a147005c4")
|
||||||
)
|
)
|
||||||
(fp_line
|
(fp_line
|
||||||
(start -7.4168 -1.8796)
|
(start -6.453 -0.3942)
|
||||||
(end -1.3208 -1.8796)
|
(end -0.357 -0.3942)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.12)
|
(width 0.12)
|
||||||
(type solid)
|
(type solid)
|
||||||
)
|
)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "1cc5b0bc-c494-4f7d-bca7-4c61a9317e88")
|
(uuid "c4ed20b9-5f3d-4741-9180-be3de36b2638")
|
||||||
)
|
)
|
||||||
(fp_line
|
(fp_line
|
||||||
(start -7.4168 2.5908)
|
(start -6.453 4.0762)
|
||||||
(end -7.4168 -1.8796)
|
(end -6.453 -0.3942)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.12)
|
(width 0.12)
|
||||||
(type solid)
|
(type solid)
|
||||||
)
|
)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "cb93a75e-f00e-4ada-977c-4ebffb53a1ef")
|
(uuid "d7e1ea82-a28a-4e4c-8051-86a68fea340c")
|
||||||
)
|
)
|
||||||
(fp_line
|
(fp_line
|
||||||
(start -6.2992 -5.7658)
|
(start -5.3354 -4.2804)
|
||||||
(end -2.8702 -5.7658)
|
(end -1.9064 -4.2804)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.12)
|
(width 0.12)
|
||||||
(type solid)
|
(type solid)
|
||||||
)
|
)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "58d4cb4b-5a3f-4493-aa99-0deaf5683749")
|
(uuid "06328989-1b0f-46d7-883b-033109387c94")
|
||||||
)
|
)
|
||||||
(fp_line
|
(fp_line
|
||||||
(start -6.2992 -4.4958)
|
(start -5.3354 -3.0104)
|
||||||
(end -6.2992 -5.7658)
|
(end -5.3354 -4.2804)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.12)
|
(width 0.12)
|
||||||
(type solid)
|
(type solid)
|
||||||
)
|
)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "23c244a5-fbbf-43b9-8e18-3f2c2f80daac")
|
(uuid "8d77e0eb-1044-47c3-83fb-eeb0a96fae5d")
|
||||||
)
|
)
|
||||||
(fp_line
|
(fp_line
|
||||||
(start -2.8702 -5.7658)
|
(start -1.9064 -4.2804)
|
||||||
(end -2.8702 -4.4958)
|
(end -1.9064 -3.0104)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.12)
|
(width 0.12)
|
||||||
(type solid)
|
(type solid)
|
||||||
)
|
)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "dc18e288-f18f-43b9-8bf9-a20134e8fe6b")
|
(uuid "aacf448e-591d-467e-9b05-308beed279bf")
|
||||||
)
|
)
|
||||||
(fp_line
|
(fp_line
|
||||||
(start -2.8702 -4.4958)
|
(start -1.9064 -3.0104)
|
||||||
(end -6.2992 -4.4958)
|
(end -5.3354 -3.0104)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.12)
|
(width 0.12)
|
||||||
(type solid)
|
(type solid)
|
||||||
)
|
)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "0db4cf0f-ac7a-4c9b-ae10-55a36ddbd4e4")
|
(uuid "1a4d146d-43a7-4082-9120-8896a6302895")
|
||||||
)
|
)
|
||||||
(fp_line
|
(fp_line
|
||||||
(start -1.3208 2.5908)
|
(start -0.357 4.0762)
|
||||||
(end -7.4168 2.5908)
|
(end -6.453 4.0762)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.12)
|
(width 0.12)
|
||||||
(type solid)
|
(type solid)
|
||||||
)
|
)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "bb094c9b-9d8c-4f38-83ed-01fc7944b9a1")
|
(uuid "28f1cc66-eb55-47b0-8a8f-d7e1518711f4")
|
||||||
)
|
)
|
||||||
(fp_line
|
(fp_line
|
||||||
(start -1.3208 2.5908)
|
(start -0.357 4.0762)
|
||||||
(end -1.3208 -1.8796)
|
(end -0.357 -0.3942)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.12)
|
(width 0.12)
|
||||||
(type solid)
|
(type solid)
|
||||||
)
|
)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "15406a1c-aa60-4574-94bc-bc7b1c93f995")
|
(uuid "6820cfba-dad3-4b8f-888f-85dbe2540377")
|
||||||
)
|
)
|
||||||
(fp_line
|
(fp_line
|
||||||
(start 0.3556 -3.4544)
|
(start 1.3194 -1.969)
|
||||||
(end 0.3556 3.2004)
|
(end 1.3194 4.6858)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.12)
|
(width 0.12)
|
||||||
(type solid)
|
(type solid)
|
||||||
)
|
)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "7f056460-3325-494e-89b7-e00faf35b853")
|
(uuid "6a862895-3bf4-4887-9dab-db5334a221bc")
|
||||||
)
|
)
|
||||||
(fp_line
|
(fp_line
|
||||||
(start 0.3556 -3.4544)
|
(start 1.3194 -1.969)
|
||||||
(end 7.0104 -3.4544)
|
(end 7.9742 -1.969)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.12)
|
(width 0.12)
|
||||||
(type solid)
|
(type solid)
|
||||||
)
|
)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "fb81112c-7565-47b2-8682-db2abbd3ddf0")
|
(uuid "79debc5c-9a35-496c-8f29-014030f144a4")
|
||||||
)
|
)
|
||||||
(fp_line
|
(fp_line
|
||||||
(start 1.9304 -0.5969)
|
(start 2.8942 0.8885)
|
||||||
(end 4.5593 -0.5969)
|
(end 5.5231 0.8885)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.12)
|
(width 0.12)
|
||||||
(type solid)
|
(type solid)
|
||||||
)
|
)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "48533810-e56f-47c8-8bce-ce1c68dc9c75")
|
(uuid "84cd7a4d-d683-4fbc-825f-665c5b0f0758")
|
||||||
)
|
)
|
||||||
(fp_line
|
(fp_line
|
||||||
(start 1.9304 0.0381)
|
(start 2.8942 1.5235)
|
||||||
(end 1.9304 -0.5969)
|
(end 2.8942 0.8885)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.12)
|
(width 0.12)
|
||||||
(type solid)
|
(type solid)
|
||||||
)
|
)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "03a589e3-a74e-4336-8cad-43118c287e8a")
|
(uuid "4e52b40e-83c8-4d07-95ff-b90fa1783618")
|
||||||
)
|
)
|
||||||
(fp_line
|
(fp_line
|
||||||
(start 1.9304 0.0381)
|
(start 2.8942 1.5235)
|
||||||
(end 4.5593 0.0381)
|
(end 5.5231 1.5235)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.12)
|
(width 0.12)
|
||||||
(type solid)
|
(type solid)
|
||||||
)
|
)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "ce0e1e31-1518-4423-8678-79c96482e137")
|
(uuid "a399ee1e-f3f5-4636-9f46-aa9b47e0db94")
|
||||||
)
|
)
|
||||||
(fp_line
|
(fp_line
|
||||||
(start 4.5593 -1.2954)
|
(start 5.5231 0.19)
|
||||||
(end 5.8293 -0.2794)
|
(end 6.7931 1.206)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.12)
|
(width 0.12)
|
||||||
(type solid)
|
(type solid)
|
||||||
)
|
)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "60031373-aa96-4773-880b-c8200b9c8446")
|
(uuid "974ab6af-0377-40af-977c-a13764cf3b42")
|
||||||
)
|
)
|
||||||
(fp_line
|
(fp_line
|
||||||
(start 4.5593 -0.5969)
|
(start 5.5231 0.8885)
|
||||||
(end 4.5593 -1.2954)
|
(end 5.5231 0.19)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.12)
|
(width 0.12)
|
||||||
(type solid)
|
(type solid)
|
||||||
)
|
)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "e8ee4f92-28ab-4a33-a9f9-a6abaf63c07f")
|
(uuid "a43ae26f-5b7d-4a6a-a076-714c678ef718")
|
||||||
)
|
)
|
||||||
(fp_line
|
(fp_line
|
||||||
(start 4.5593 0.8001)
|
(start 5.5231 2.2855)
|
||||||
(end 4.5593 0.0381)
|
(end 5.5231 1.5235)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.12)
|
(width 0.12)
|
||||||
(type solid)
|
(type solid)
|
||||||
)
|
)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "08acbb33-d7a2-40ec-b9c7-e1637e3c6b50")
|
(uuid "cc8ed141-1479-47bc-b57c-ac3d7de64f29")
|
||||||
)
|
)
|
||||||
(fp_line
|
(fp_line
|
||||||
(start 5.8293 -0.2794)
|
(start 6.7931 1.206)
|
||||||
(end 4.5593 0.8001)
|
(end 5.5231 2.2855)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.12)
|
(width 0.12)
|
||||||
(type solid)
|
(type solid)
|
||||||
)
|
)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "93934ce2-e724-43a7-936d-d5b13ecab734")
|
(uuid "59d9abe5-a32f-469b-9fd6-08593b95afde")
|
||||||
)
|
)
|
||||||
(fp_line
|
(fp_line
|
||||||
(start 7.0104 -3.4544)
|
(start 7.9742 -1.969)
|
||||||
(end 7.0104 3.2004)
|
(end 7.9742 4.6858)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.12)
|
(width 0.12)
|
||||||
(type solid)
|
(type solid)
|
||||||
)
|
)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "67302b70-b929-4d08-9b20-00ad993d7c48")
|
(uuid "73f5a41f-61af-42a7-bacf-c58d7968f53a")
|
||||||
)
|
)
|
||||||
(fp_line
|
(fp_line
|
||||||
(start 7.0104 3.2004)
|
(start 7.9742 4.6858)
|
||||||
(end 0.3556 3.2004)
|
(end 1.3194 4.6858)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.12)
|
(width 0.12)
|
||||||
(type solid)
|
(type solid)
|
||||||
)
|
)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "0718d059-35cf-4406-ab64-7d7e6d83cf21")
|
(uuid "9ec91a9f-ceda-4f7c-b422-f6a162037a63")
|
||||||
)
|
)
|
||||||
(fp_line
|
(fp_line
|
||||||
(start 10.16 -7.493)
|
(start 11.1238 -6.0076)
|
||||||
(end -11.176 -7.493)
|
(end -10.2122 -6.0076)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.12)
|
(width 0.12)
|
||||||
(type solid)
|
(type solid)
|
||||||
)
|
)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "3f15543c-c79e-44be-a583-62309e7f62ac")
|
(uuid "ed6fa262-c61a-4bb7-90b5-f3b3ee971658")
|
||||||
)
|
)
|
||||||
(fp_line
|
(fp_line
|
||||||
(start 10.16 8.636)
|
(start 11.1238 10.1214)
|
||||||
(end 10.16 -7.493)
|
(end 11.1238 -6.0076)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.12)
|
(width 0.12)
|
||||||
(type solid)
|
(type solid)
|
||||||
)
|
)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "53974b4e-f4fd-4a51-b72c-09e66d707da7")
|
(uuid "0251e69d-8ab4-482d-b741-3238b0fef811")
|
||||||
)
|
)
|
||||||
(fp_circle
|
(fp_circle
|
||||||
(center -8.1534 -4.8641)
|
(center -7.1896 -3.3787)
|
||||||
(end -7.5819 -4.3561)
|
(end -6.6181 -2.8707)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.12)
|
(width 0.12)
|
||||||
(type solid)
|
(type solid)
|
||||||
)
|
)
|
||||||
(fill none)
|
(fill none)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "c9f36fdc-7af5-40c1-b400-6db31e87c78d")
|
(uuid "55702fe3-b28e-4e80-86d3-f64c403681d1")
|
||||||
)
|
)
|
||||||
(fp_circle
|
(fp_circle
|
||||||
(center -8.1026 5.8166)
|
(center -7.1388 7.302)
|
||||||
(end -7.5311 6.3246)
|
(end -6.5673 7.81)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.12)
|
(width 0.12)
|
||||||
(type solid)
|
(type solid)
|
||||||
)
|
)
|
||||||
(fill none)
|
(fill none)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "4e0da6f8-ad5e-4cc1-95ba-014ff87aee07")
|
(uuid "0ffe4b1a-c314-4a3c-8456-b73925f03b28")
|
||||||
)
|
)
|
||||||
(fp_circle
|
(fp_circle
|
||||||
(center 6.4262 -4.8641)
|
(center 7.39 -3.3787)
|
||||||
(end 6.9977 -4.3561)
|
(end 7.9615 -2.8707)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.12)
|
(width 0.12)
|
||||||
(type solid)
|
(type solid)
|
||||||
)
|
)
|
||||||
(fill none)
|
(fill none)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "1cb73701-38be-459b-a7c5-86d645c4cc0e")
|
(uuid "82347fd5-ab01-478d-bf06-2837edd3b9c5")
|
||||||
)
|
)
|
||||||
(fp_circle
|
(fp_circle
|
||||||
(center 6.5278 5.7912)
|
(center 7.4916 7.2766)
|
||||||
(end 7.0993 6.2992)
|
(end 8.0631 7.7846)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.12)
|
(width 0.12)
|
||||||
(type solid)
|
(type solid)
|
||||||
)
|
)
|
||||||
(fill none)
|
(fill none)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "079e6cb8-ca9e-47a7-9f22-9f08bcf4c5ee")
|
(uuid "f74d6220-edbd-4a39-a810-7cf19016933f")
|
||||||
)
|
)
|
||||||
(fp_poly
|
(fp_poly
|
||||||
(pts
|
(pts
|
||||||
(xy -6.7056 -2.54) (xy -6.2992 -2.54) (xy -6.2992 -1.9304) (xy -6.7056 -1.9304)
|
(xy -5.7418 -1.0546) (xy -5.3354 -1.0546) (xy -5.3354 -0.445) (xy -5.7418 -0.445)
|
||||||
)
|
)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.1)
|
(width 0.1)
|
||||||
|
@ -347,11 +352,11 @@
|
||||||
)
|
)
|
||||||
(fill solid)
|
(fill solid)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "9f932498-4dae-4e35-9fff-b4bb98c73816")
|
(uuid "80ff133a-8874-4f0a-8c9e-250633a8855a")
|
||||||
)
|
)
|
||||||
(fp_poly
|
(fp_poly
|
||||||
(pts
|
(pts
|
||||||
(xy -6.7056 2.6416) (xy -6.2992 2.6416) (xy -6.2992 3.2512) (xy -6.7056 3.2512)
|
(xy -5.7418 4.127) (xy -5.3354 4.127) (xy -5.3354 4.7366) (xy -5.7418 4.7366)
|
||||||
)
|
)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.1)
|
(width 0.1)
|
||||||
|
@ -359,11 +364,11 @@
|
||||||
)
|
)
|
||||||
(fill solid)
|
(fill solid)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "372c02f5-61f4-4301-aca3-d818a674272e")
|
(uuid "6e08c3a4-3092-400f-9a55-4e8081226741")
|
||||||
)
|
)
|
||||||
(fp_poly
|
(fp_poly
|
||||||
(pts
|
(pts
|
||||||
(xy -5.2324 -2.54) (xy -4.826 -2.54) (xy -4.826 -1.9304) (xy -5.2324 -1.9304)
|
(xy -4.2686 -1.0546) (xy -3.8622 -1.0546) (xy -3.8622 -0.445) (xy -4.2686 -0.445)
|
||||||
)
|
)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.1)
|
(width 0.1)
|
||||||
|
@ -371,11 +376,11 @@
|
||||||
)
|
)
|
||||||
(fill solid)
|
(fill solid)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "8b8d18d4-2701-4c72-966d-f580819a5bea")
|
(uuid "6a96c3fa-8827-498f-9c6c-ffb212b62a93")
|
||||||
)
|
)
|
||||||
(fp_poly
|
(fp_poly
|
||||||
(pts
|
(pts
|
||||||
(xy -5.2324 2.6416) (xy -4.826 2.6416) (xy -4.826 3.2512) (xy -5.2324 3.2512)
|
(xy -4.2686 4.127) (xy -3.8622 4.127) (xy -3.8622 4.7366) (xy -4.2686 4.7366)
|
||||||
)
|
)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.1)
|
(width 0.1)
|
||||||
|
@ -383,11 +388,11 @@
|
||||||
)
|
)
|
||||||
(fill solid)
|
(fill solid)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "d6255dee-580f-4b85-9e3c-df858fc7bc8d")
|
(uuid "0886a33b-f340-44bf-9de5-f44938efcb54")
|
||||||
)
|
)
|
||||||
(fp_poly
|
(fp_poly
|
||||||
(pts
|
(pts
|
||||||
(xy -3.7592 -2.54) (xy -3.3528 -2.54) (xy -3.3528 -1.9304) (xy -3.7592 -1.9304)
|
(xy -2.7954 -1.0546) (xy -2.389 -1.0546) (xy -2.389 -0.445) (xy -2.7954 -0.445)
|
||||||
)
|
)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.1)
|
(width 0.1)
|
||||||
|
@ -395,11 +400,11 @@
|
||||||
)
|
)
|
||||||
(fill solid)
|
(fill solid)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "ebef6c64-7266-47b4-9a64-d9d611adc26d")
|
(uuid "51e3d89a-8455-4f58-ad05-c15d024e9c54")
|
||||||
)
|
)
|
||||||
(fp_poly
|
(fp_poly
|
||||||
(pts
|
(pts
|
||||||
(xy -3.7592 2.6416) (xy -3.3528 2.6416) (xy -3.3528 3.2512) (xy -3.7592 3.2512)
|
(xy -2.7954 4.127) (xy -2.389 4.127) (xy -2.389 4.7366) (xy -2.7954 4.7366)
|
||||||
)
|
)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.1)
|
(width 0.1)
|
||||||
|
@ -407,11 +412,11 @@
|
||||||
)
|
)
|
||||||
(fill solid)
|
(fill solid)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "59be5a8f-ac87-4541-97df-321cb1234c4f")
|
(uuid "5514ba93-c636-4e40-855a-d8123eaad1aa")
|
||||||
)
|
)
|
||||||
(fp_poly
|
(fp_poly
|
||||||
(pts
|
(pts
|
||||||
(xy -2.2352 -2.54) (xy -1.8288 -2.54) (xy -1.8288 -1.9304) (xy -2.2352 -1.9304)
|
(xy -1.2714 -1.0546) (xy -0.865 -1.0546) (xy -0.865 -0.445) (xy -1.2714 -0.445)
|
||||||
)
|
)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.1)
|
(width 0.1)
|
||||||
|
@ -419,11 +424,11 @@
|
||||||
)
|
)
|
||||||
(fill solid)
|
(fill solid)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "b1663dd5-c63f-4034-b29b-537f9a6abd47")
|
(uuid "d6b9bc27-cda7-4d8b-ad26-7b36a48ecfbd")
|
||||||
)
|
)
|
||||||
(fp_poly
|
(fp_poly
|
||||||
(pts
|
(pts
|
||||||
(xy -2.2352 2.6416) (xy -1.8288 2.6416) (xy -1.8288 3.2512) (xy -2.2352 3.2512)
|
(xy -1.2714 4.127) (xy -0.865 4.127) (xy -0.865 4.7366) (xy -1.2714 4.7366)
|
||||||
)
|
)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.1)
|
(width 0.1)
|
||||||
|
@ -431,52 +436,52 @@
|
||||||
)
|
)
|
||||||
(fill solid)
|
(fill solid)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "6e5990fc-9a52-480e-b640-cabfc2a6cd18")
|
(uuid "3fef23e2-4bcd-4924-97f4-7575ce7994b1")
|
||||||
)
|
)
|
||||||
(fp_line
|
(fp_line
|
||||||
(start -11.3538 -7.6454)
|
(start -10.39 -6.16)
|
||||||
(end -11.3538 8.8138)
|
(end -10.39 10.2992)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.12)
|
(width 0.12)
|
||||||
(type solid)
|
(type solid)
|
||||||
)
|
)
|
||||||
(layer "F.Fab")
|
(layer "F.Fab")
|
||||||
(uuid "e21c3eb0-fdf3-4a2d-9d84-f366a7426b90")
|
(uuid "bc1192d1-b770-4e65-bd6d-2beed31fb275")
|
||||||
)
|
)
|
||||||
(fp_line
|
(fp_line
|
||||||
(start -11.3538 -7.6454)
|
(start -10.39 -6.16)
|
||||||
(end 10.3378 -7.6708)
|
(end 11.3016 -6.1854)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.12)
|
(width 0.12)
|
||||||
(type solid)
|
(type solid)
|
||||||
)
|
)
|
||||||
(layer "F.Fab")
|
(layer "F.Fab")
|
||||||
(uuid "f2231139-582f-43f7-a92f-646e424ad044")
|
(uuid "ac2ec45c-be62-4db0-88df-ef12d1f24714")
|
||||||
)
|
)
|
||||||
(fp_line
|
(fp_line
|
||||||
(start -11.3538 8.8138)
|
(start -10.39 10.2992)
|
||||||
(end 10.3378 8.8138)
|
(end 11.3016 10.2992)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.12)
|
(width 0.12)
|
||||||
(type solid)
|
(type solid)
|
||||||
)
|
)
|
||||||
(layer "F.Fab")
|
(layer "F.Fab")
|
||||||
(uuid "ff2d64a2-f244-4e27-a61c-b0184f18f038")
|
(uuid "90a38e33-4119-4758-ac3b-323f8c73139c")
|
||||||
)
|
)
|
||||||
(fp_line
|
(fp_line
|
||||||
(start 10.3378 -7.6708)
|
(start 11.3016 -6.1854)
|
||||||
(end 10.3378 8.8138)
|
(end 11.3016 10.2992)
|
||||||
(stroke
|
(stroke
|
||||||
(width 0.12)
|
(width 0.12)
|
||||||
(type solid)
|
(type solid)
|
||||||
)
|
)
|
||||||
(layer "F.Fab")
|
(layer "F.Fab")
|
||||||
(uuid "e571d0ae-d587-45ad-9b62-7a686b2f0c60")
|
(uuid "22193204-ae0b-4462-95d6-f226e27ae968")
|
||||||
)
|
)
|
||||||
(fp_text user "-"
|
(fp_text user "-"
|
||||||
(at 6.4262 -4.9276 0)
|
(at 7.39 -3.4422 0)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "4f88e670-b848-4271-a5f8-bd548b64cadd")
|
(uuid "0bec24d9-5468-4c4b-96d3-ef96e25202cf")
|
||||||
(effects
|
(effects
|
||||||
(font
|
(font
|
||||||
(size 1 1)
|
(size 1 1)
|
||||||
|
@ -485,9 +490,9 @@
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(fp_text user "-"
|
(fp_text user "-"
|
||||||
(at -8.1534 -4.9276 0)
|
(at -7.1896 -3.4422 0)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "86dab817-ad16-4cdc-b19d-607ba0d990ab")
|
(uuid "0c9a77a8-8422-401b-a5a1-b40da4e203c0")
|
||||||
(effects
|
(effects
|
||||||
(font
|
(font
|
||||||
(size 1 1)
|
(size 1 1)
|
||||||
|
@ -496,9 +501,9 @@
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(fp_text user "VOUT"
|
(fp_text user "VOUT"
|
||||||
(at 8.8138 0.0508 -90)
|
(at 9.7776 1.5362 -90)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "876b8e16-62cc-4ae3-9c78-14a6cc337309")
|
(uuid "3c0d7914-45a5-4bbb-8f5b-40ede46c7d70")
|
||||||
(effects
|
(effects
|
||||||
(font
|
(font
|
||||||
(size 1 1)
|
(size 1 1)
|
||||||
|
@ -507,9 +512,9 @@
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(fp_text user "+"
|
(fp_text user "+"
|
||||||
(at 6.5278 5.7277 0)
|
(at -7.1388 7.2385 0)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "935ff27f-9949-446d-a438-f14c3624acfc")
|
(uuid "4145e214-17c8-4e57-9147-ea318329ca66")
|
||||||
(effects
|
(effects
|
||||||
(font
|
(font
|
||||||
(size 1 1)
|
(size 1 1)
|
||||||
|
@ -518,9 +523,9 @@
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(fp_text user "4.5-28V"
|
(fp_text user "4.5-28V"
|
||||||
(at -9.7536 0.3048 -90)
|
(at -8.7898 1.7902 -90)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "d89e1384-2d5d-4d2d-bcf8-24657a3939a7")
|
(uuid "9e9858d1-9320-4297-aaee-1e9bd601ead9")
|
||||||
(effects
|
(effects
|
||||||
(font
|
(font
|
||||||
(size 1 1)
|
(size 1 1)
|
||||||
|
@ -529,9 +534,9 @@
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(fp_text user "+"
|
(fp_text user "+"
|
||||||
(at -8.1026 5.7531 0)
|
(at 7.4916 7.2131 0)
|
||||||
(layer "F.SilkS")
|
(layer "F.SilkS")
|
||||||
(uuid "e3820af4-2c8f-4e79-b4d3-6c49dcea8bb5")
|
(uuid "c1d9d6ad-e0e9-47c6-989c-71feb1923647")
|
||||||
(effects
|
(effects
|
||||||
(font
|
(font
|
||||||
(size 1 1)
|
(size 1 1)
|
||||||
|
@ -540,68 +545,68 @@
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(pad "1" thru_hole rect
|
(pad "1" thru_hole rect
|
||||||
(at -10.16 4.572 90)
|
(at -9.1962 6.1704 90)
|
||||||
(size 1.6 1.6)
|
(size 1.6 1.6)
|
||||||
(drill 0.8)
|
(drill 0.8)
|
||||||
(layers "*.Cu" "*.Mask")
|
(layers "*.Cu" "*.Mask")
|
||||||
(remove_unused_layers no)
|
(remove_unused_layers no)
|
||||||
(uuid "6550b245-c3c7-4898-8573-6476b3094631")
|
(uuid "7be89935-c19e-4baa-904a-69452ec23d23")
|
||||||
)
|
)
|
||||||
(pad "1" thru_hole rect
|
(pad "1" thru_hole rect
|
||||||
(at -10.16 7.112 90)
|
(at -9.1962 8.7104 90)
|
||||||
(size 1.6 1.6)
|
(size 1.6 1.6)
|
||||||
(drill 0.8)
|
(drill 0.8)
|
||||||
(layers "*.Cu" "*.Mask")
|
(layers "*.Cu" "*.Mask")
|
||||||
(remove_unused_layers no)
|
(remove_unused_layers no)
|
||||||
(uuid "2c55b3c8-f1e1-407a-8b02-310137232038")
|
(uuid "8f4284a4-3768-4b1e-9962-d551ccf57e63")
|
||||||
)
|
)
|
||||||
(pad "2" thru_hole oval
|
(pad "2" thru_hole oval
|
||||||
(at -10.1854 -3.683 90)
|
(at -9.2216 -2.1976 90)
|
||||||
(size 1.6 1.6)
|
(size 1.6 1.6)
|
||||||
(drill 0.8)
|
(drill 0.8)
|
||||||
(layers "*.Cu" "*.Mask")
|
(layers "*.Cu" "*.Mask")
|
||||||
(remove_unused_layers no)
|
(remove_unused_layers no)
|
||||||
(uuid "6f8804ba-99ab-459b-84ff-3c356b03222a")
|
(uuid "1f87148a-c7c2-483f-b799-2ff5e01ff488")
|
||||||
)
|
)
|
||||||
(pad "2" thru_hole oval
|
(pad "2" thru_hole oval
|
||||||
(at -10.16 -6.223 90)
|
(at -9.1962 -4.7376 90)
|
||||||
(size 1.6 1.6)
|
(size 1.6 1.6)
|
||||||
(drill 0.8)
|
(drill 0.8)
|
||||||
(layers "*.Cu" "*.Mask")
|
(layers "*.Cu" "*.Mask")
|
||||||
(remove_unused_layers no)
|
(remove_unused_layers no)
|
||||||
(uuid "b8ed6aef-b96f-4eb3-a1a2-2deefde02bbb")
|
(uuid "bf2458a2-a107-48c3-bb88-9e881f49434c")
|
||||||
)
|
)
|
||||||
(pad "3" thru_hole rect
|
(pad "3" thru_hole rect
|
||||||
(at 8.636 4.699 90)
|
(at 9.5998 6.1844 90)
|
||||||
(size 1.6 1.6)
|
(size 1.6 1.6)
|
||||||
(drill 0.8)
|
(drill 0.8)
|
||||||
(layers "*.Cu" "*.Mask")
|
(layers "*.Cu" "*.Mask")
|
||||||
(remove_unused_layers no)
|
(remove_unused_layers no)
|
||||||
(uuid "5892046d-9427-451a-9d67-551089438a5d")
|
(uuid "69cb71b1-224d-4fe7-8b14-ee9b1da593fb")
|
||||||
)
|
)
|
||||||
(pad "3" thru_hole rect
|
(pad "3" thru_hole rect
|
||||||
(at 8.636 7.239 90)
|
(at 9.5998 8.7244 90)
|
||||||
(size 1.6 1.6)
|
(size 1.6 1.6)
|
||||||
(drill 0.8)
|
(drill 0.8)
|
||||||
(layers "*.Cu" "*.Mask")
|
(layers "*.Cu" "*.Mask")
|
||||||
(remove_unused_layers no)
|
(remove_unused_layers no)
|
||||||
(uuid "519792c2-361a-4982-84bb-b0360a514c29")
|
(uuid "39b44515-755a-4a18-9e94-5d0b3431f548")
|
||||||
)
|
)
|
||||||
(pad "4" thru_hole oval
|
(pad "4" thru_hole oval
|
||||||
(at 8.7376 -3.683 90)
|
(at 9.7014 -2.1976 90)
|
||||||
(size 1.6 1.6)
|
(size 1.6 1.6)
|
||||||
(drill 0.8)
|
(drill 0.8)
|
||||||
(layers "*.Cu" "*.Mask")
|
(layers "*.Cu" "*.Mask")
|
||||||
(remove_unused_layers no)
|
(remove_unused_layers no)
|
||||||
(uuid "efe9e9b1-891f-4b33-a064-306161845044")
|
(uuid "6af0a541-44c2-41dc-9c4e-37db310350d6")
|
||||||
)
|
)
|
||||||
(pad "4" thru_hole oval
|
(pad "4" thru_hole oval
|
||||||
(at 8.763 -6.223 90)
|
(at 9.7268 -4.7376 90)
|
||||||
(size 1.6 1.6)
|
(size 1.6 1.6)
|
||||||
(drill 0.8)
|
(drill 0.8)
|
||||||
(layers "*.Cu" "*.Mask")
|
(layers "*.Cu" "*.Mask")
|
||||||
(remove_unused_layers no)
|
(remove_unused_layers no)
|
||||||
(uuid "16f7d0b3-7073-4c65-a466-c8a09376cdd7")
|
(uuid "204e6602-d630-4983-8e4d-fb59a5c65572")
|
||||||
)
|
)
|
||||||
(model "${KISYS3DMOD}/Module.3dshapes/Arduino_UNO_R2.wrl"
|
(model "${KISYS3DMOD}/Module.3dshapes/Arduino_UNO_R2.wrl"
|
||||||
(offset
|
(offset
|
||||||
|
@ -614,4 +619,4 @@
|
||||||
(xyz 0 0 0)
|
(xyz 0 0 0)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.3*
|
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.5*
|
||||||
G04 #@! TF.CreationDate,2024-06-05T14:32:50+02:00*
|
G04 #@! TF.CreationDate,2024-09-25T02:09:32+02:00*
|
||||||
G04 #@! TF.ProjectId,CanGrow,43616e47-726f-4772-9e6b-696361645f70,rev?*
|
G04 #@! TF.ProjectId,CanGrow,43616e47-726f-4772-9e6b-696361645f70,rev?*
|
||||||
G04 #@! TF.SameCoordinates,Original*
|
G04 #@! TF.SameCoordinates,Original*
|
||||||
G04 #@! TF.FileFunction,Soldermask,Bot*
|
G04 #@! TF.FileFunction,Soldermask,Bot*
|
||||||
G04 #@! TF.FilePolarity,Negative*
|
G04 #@! TF.FilePolarity,Negative*
|
||||||
%FSLAX46Y46*%
|
%FSLAX46Y46*%
|
||||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||||
G04 Created by KiCad (PCBNEW 8.0.3) date 2024-06-05 14:32:50*
|
G04 Created by KiCad (PCBNEW 8.0.5) date 2024-09-25 02:09:32*
|
||||||
%MOMM*%
|
%MOMM*%
|
||||||
%LPD*%
|
%LPD*%
|
||||||
G01*
|
G01*
|
||||||
|
@ -31,321 +31,358 @@ G04 Aperture macros list*
|
||||||
G04 Aperture macros list end*
|
G04 Aperture macros list end*
|
||||||
%ADD10R,1.600000X1.600000*%
|
%ADD10R,1.600000X1.600000*%
|
||||||
%ADD11C,1.600000*%
|
%ADD11C,1.600000*%
|
||||||
%ADD12O,1.600000X1.600000*%
|
%ADD12R,1.800000X1.100000*%
|
||||||
%ADD13R,2.000000X1.905000*%
|
%ADD13RoundRect,0.275000X-0.625000X0.275000X-0.625000X-0.275000X0.625000X-0.275000X0.625000X0.275000X0*%
|
||||||
%ADD14O,2.000000X1.905000*%
|
%ADD14O,1.600000X1.600000*%
|
||||||
%ADD15RoundRect,0.250001X-0.799999X-0.799999X0.799999X-0.799999X0.799999X0.799999X-0.799999X0.799999X0*%
|
%ADD15R,2.000000X1.905000*%
|
||||||
%ADD16R,1.800000X1.800000*%
|
%ADD16O,2.000000X1.905000*%
|
||||||
%ADD17C,1.800000*%
|
%ADD17R,1.800000X1.800000*%
|
||||||
%ADD18RoundRect,1.500000X1.500000X1.500000X-1.500000X1.500000X-1.500000X-1.500000X1.500000X-1.500000X0*%
|
%ADD18C,1.800000*%
|
||||||
%ADD19C,6.000000*%
|
%ADD19RoundRect,1.500000X1.500000X1.500000X-1.500000X1.500000X-1.500000X-1.500000X1.500000X-1.500000X0*%
|
||||||
%ADD20C,5.600000*%
|
%ADD20C,6.000000*%
|
||||||
%ADD21O,1.800000X1.800000*%
|
%ADD21C,5.600000*%
|
||||||
%ADD22O,3.800000X8.000000*%
|
%ADD22O,1.800000X1.800000*%
|
||||||
%ADD23R,1.700000X1.700000*%
|
%ADD23O,3.800000X8.000000*%
|
||||||
%ADD24O,1.700000X1.700000*%
|
%ADD24R,1.700000X1.700000*%
|
||||||
%ADD25R,2.000000X2.000000*%
|
%ADD25O,1.700000X1.700000*%
|
||||||
%ADD26O,2.000000X1.600000*%
|
%ADD26R,2.000000X2.000000*%
|
||||||
%ADD27C,1.100000*%
|
%ADD27O,2.000000X1.600000*%
|
||||||
%ADD28R,1.730000X2.030000*%
|
%ADD28RoundRect,0.250000X-0.550000X-0.550000X0.550000X-0.550000X0.550000X0.550000X-0.550000X0.550000X0*%
|
||||||
%ADD29O,1.730000X2.030000*%
|
%ADD29RoundRect,0.275000X0.625000X-0.275000X0.625000X0.275000X-0.625000X0.275000X-0.625000X-0.275000X0*%
|
||||||
%ADD30RoundRect,0.250001X0.799999X0.799999X-0.799999X0.799999X-0.799999X-0.799999X0.799999X-0.799999X0*%
|
%ADD30C,1.100000*%
|
||||||
|
%ADD31R,1.730000X2.030000*%
|
||||||
|
%ADD32O,1.730000X2.030000*%
|
||||||
|
%ADD33RoundRect,0.250000X0.550000X0.550000X-0.550000X0.550000X-0.550000X-0.550000X0.550000X-0.550000X0*%
|
||||||
G04 APERTURE END LIST*
|
G04 APERTURE END LIST*
|
||||||
D10*
|
D10*
|
||||||
X101500000Y-90100000D03*
|
X156600000Y-108750000D03*
|
||||||
D11*
|
D11*
|
||||||
X104000000Y-90100000D03*
|
X156600000Y-111250000D03*
|
||||||
X103955112Y-94200000D03*
|
|
||||||
X101455112Y-94200000D03*
|
|
||||||
D10*
|
|
||||||
X153500000Y-111250000D03*
|
|
||||||
D11*
|
|
||||||
X153500000Y-108750000D03*
|
|
||||||
X123520000Y-88850000D03*
|
|
||||||
D12*
|
D12*
|
||||||
X133680000Y-88850000D03*
|
X127400000Y-42690000D03*
|
||||||
|
D13*
|
||||||
|
X129470000Y-43960000D03*
|
||||||
|
X127400000Y-45230000D03*
|
||||||
D11*
|
D11*
|
||||||
X117000000Y-42420000D03*
|
X117000000Y-42420000D03*
|
||||||
D12*
|
|
||||||
X106840000Y-42420000D03*
|
|
||||||
D13*
|
|
||||||
X138430000Y-83750000D03*
|
|
||||||
D14*
|
D14*
|
||||||
|
X106840000Y-42420000D03*
|
||||||
|
D15*
|
||||||
|
X138430000Y-83750000D03*
|
||||||
|
D16*
|
||||||
X138430000Y-81210000D03*
|
X138430000Y-81210000D03*
|
||||||
X138430000Y-78670000D03*
|
X138430000Y-78670000D03*
|
||||||
D13*
|
D15*
|
||||||
X129800000Y-35150000D03*
|
X129800000Y-35150000D03*
|
||||||
D14*
|
D16*
|
||||||
X129800000Y-32610000D03*
|
X129800000Y-32610000D03*
|
||||||
X129800000Y-30070000D03*
|
X129800000Y-30070000D03*
|
||||||
D11*
|
D11*
|
||||||
|
X139900000Y-53320000D03*
|
||||||
|
D14*
|
||||||
|
X139900000Y-63480000D03*
|
||||||
|
D10*
|
||||||
|
X130748000Y-108846000D03*
|
||||||
|
X130748000Y-111386000D03*
|
||||||
|
D14*
|
||||||
|
X130722600Y-100478000D03*
|
||||||
|
X130748000Y-97938000D03*
|
||||||
|
D10*
|
||||||
|
X149544000Y-108860000D03*
|
||||||
|
X149544000Y-111400000D03*
|
||||||
|
D14*
|
||||||
|
X149645600Y-100478000D03*
|
||||||
|
X149671000Y-97938000D03*
|
||||||
|
D11*
|
||||||
X177750000Y-92250000D03*
|
X177750000Y-92250000D03*
|
||||||
D12*
|
D14*
|
||||||
X187910000Y-92250000D03*
|
X187910000Y-92250000D03*
|
||||||
D15*
|
D17*
|
||||||
X153750000Y-68000000D03*
|
|
||||||
D11*
|
|
||||||
X106750000Y-72750000D03*
|
|
||||||
D12*
|
|
||||||
X116910000Y-72750000D03*
|
|
||||||
D11*
|
|
||||||
X142680000Y-60340000D03*
|
|
||||||
D12*
|
|
||||||
X142680000Y-70500000D03*
|
|
||||||
D16*
|
|
||||||
X122231000Y-81220000D03*
|
X122231000Y-81220000D03*
|
||||||
D17*
|
|
||||||
X122231000Y-83760000D03*
|
|
||||||
D18*
|
D18*
|
||||||
X113930000Y-59700000D03*
|
X122231000Y-83760000D03*
|
||||||
D19*
|
D19*
|
||||||
|
X113930000Y-59700000D03*
|
||||||
|
D20*
|
||||||
X106730000Y-59700000D03*
|
X106730000Y-59700000D03*
|
||||||
D16*
|
|
||||||
X122250000Y-102750000D03*
|
|
||||||
D17*
|
D17*
|
||||||
|
X122250000Y-102750000D03*
|
||||||
|
D18*
|
||||||
X122250000Y-105290000D03*
|
X122250000Y-105290000D03*
|
||||||
D11*
|
D11*
|
||||||
X195500000Y-29200000D03*
|
X195500000Y-29200000D03*
|
||||||
D12*
|
D14*
|
||||||
X185340000Y-29200000D03*
|
X185340000Y-29200000D03*
|
||||||
D20*
|
|
||||||
X87000000Y-26500000D03*
|
|
||||||
D11*
|
|
||||||
X116910000Y-69500000D03*
|
|
||||||
D12*
|
D12*
|
||||||
X106750000Y-69500000D03*
|
X127430000Y-91400000D03*
|
||||||
D16*
|
D13*
|
||||||
X106770000Y-87720000D03*
|
X129500000Y-92670000D03*
|
||||||
|
X127430000Y-93940000D03*
|
||||||
D21*
|
D21*
|
||||||
|
X87000000Y-22750000D03*
|
||||||
|
D11*
|
||||||
|
X116855000Y-69500000D03*
|
||||||
|
D14*
|
||||||
|
X106695000Y-69500000D03*
|
||||||
|
D17*
|
||||||
|
X106770000Y-87720000D03*
|
||||||
|
D22*
|
||||||
X116930000Y-87720000D03*
|
X116930000Y-87720000D03*
|
||||||
D11*
|
D11*
|
||||||
|
X133000000Y-94000000D03*
|
||||||
|
D14*
|
||||||
|
X133000000Y-83840000D03*
|
||||||
|
D11*
|
||||||
X195500000Y-52900000D03*
|
X195500000Y-52900000D03*
|
||||||
D12*
|
D14*
|
||||||
X185340000Y-52900000D03*
|
X185340000Y-52900000D03*
|
||||||
D11*
|
D11*
|
||||||
X198180000Y-71050000D03*
|
X198180000Y-71050000D03*
|
||||||
D12*
|
D14*
|
||||||
X188020000Y-71050000D03*
|
X188020000Y-71050000D03*
|
||||||
D20*
|
D21*
|
||||||
X203000000Y-26500000D03*
|
X203000000Y-22750000D03*
|
||||||
|
D11*
|
||||||
|
X139920000Y-66500000D03*
|
||||||
|
D14*
|
||||||
|
X150080000Y-66500000D03*
|
||||||
D11*
|
D11*
|
||||||
X116910000Y-100250000D03*
|
X116910000Y-100250000D03*
|
||||||
D12*
|
D14*
|
||||||
X106750000Y-100250000D03*
|
X106750000Y-100250000D03*
|
||||||
D22*
|
D11*
|
||||||
|
X153100000Y-78010000D03*
|
||||||
|
D14*
|
||||||
|
X153100000Y-67850000D03*
|
||||||
|
D12*
|
||||||
|
X121500000Y-69860000D03*
|
||||||
|
D13*
|
||||||
|
X123570000Y-71130000D03*
|
||||||
|
X121500000Y-72400000D03*
|
||||||
|
D12*
|
||||||
|
X127400000Y-69860000D03*
|
||||||
|
D13*
|
||||||
|
X129470000Y-71130000D03*
|
||||||
|
X127400000Y-72400000D03*
|
||||||
|
D23*
|
||||||
X96500000Y-97650000D03*
|
X96500000Y-97650000D03*
|
||||||
X96500000Y-106950000D03*
|
X96500000Y-106950000D03*
|
||||||
D23*
|
D24*
|
||||||
X195485000Y-60100000D03*
|
X195485000Y-60100000D03*
|
||||||
D24*
|
|
||||||
X192945000Y-60100000D03*
|
|
||||||
D18*
|
|
||||||
X113930000Y-81220000D03*
|
|
||||||
D19*
|
|
||||||
X106730000Y-81220000D03*
|
|
||||||
D25*
|
D25*
|
||||||
X150100000Y-31750000D03*
|
X192945000Y-60100000D03*
|
||||||
|
D19*
|
||||||
|
X113930000Y-81220000D03*
|
||||||
|
D20*
|
||||||
|
X106730000Y-81220000D03*
|
||||||
D26*
|
D26*
|
||||||
X150100000Y-34290000D03*
|
X150100000Y-27460000D03*
|
||||||
X150100000Y-36830000D03*
|
D27*
|
||||||
X150100000Y-39370000D03*
|
X150100000Y-30000000D03*
|
||||||
X150100000Y-41910000D03*
|
X150100000Y-32540000D03*
|
||||||
X150100000Y-44450000D03*
|
X150100000Y-35080000D03*
|
||||||
X150100000Y-46990000D03*
|
X150100000Y-37620000D03*
|
||||||
X150100000Y-49530000D03*
|
X150100000Y-40160000D03*
|
||||||
X172960000Y-49530000D03*
|
X150100000Y-42700000D03*
|
||||||
X172960000Y-46990000D03*
|
X150100000Y-45240000D03*
|
||||||
X172960000Y-44450000D03*
|
X172960000Y-45240000D03*
|
||||||
X172960000Y-41910000D03*
|
X172960000Y-42700000D03*
|
||||||
X172960000Y-39370000D03*
|
X172960000Y-40160000D03*
|
||||||
X172960000Y-36830000D03*
|
X172960000Y-37620000D03*
|
||||||
X172960000Y-34290000D03*
|
X172960000Y-35080000D03*
|
||||||
X172960000Y-31750000D03*
|
X172960000Y-32540000D03*
|
||||||
D23*
|
X172960000Y-30000000D03*
|
||||||
X195955000Y-77050000D03*
|
X172960000Y-27460000D03*
|
||||||
|
D24*
|
||||||
|
X195400000Y-77000000D03*
|
||||||
|
D25*
|
||||||
|
X192860000Y-77000000D03*
|
||||||
|
X190320000Y-77000000D03*
|
||||||
D24*
|
D24*
|
||||||
X193415000Y-77050000D03*
|
|
||||||
X190875000Y-77050000D03*
|
|
||||||
D23*
|
|
||||||
X195485000Y-38630000D03*
|
X195485000Y-38630000D03*
|
||||||
D24*
|
D25*
|
||||||
X192945000Y-38630000D03*
|
X192945000Y-38630000D03*
|
||||||
X190405000Y-38630000D03*
|
X190405000Y-38630000D03*
|
||||||
X187865000Y-38630000D03*
|
X187865000Y-38630000D03*
|
||||||
D15*
|
D28*
|
||||||
X136750000Y-52500000D03*
|
X131800000Y-50800000D03*
|
||||||
D16*
|
|
||||||
X174830000Y-82250000D03*
|
|
||||||
D21*
|
|
||||||
X174830000Y-92410000D03*
|
|
||||||
D16*
|
|
||||||
X122300000Y-32620000D03*
|
|
||||||
D17*
|
D17*
|
||||||
|
X174830000Y-82250000D03*
|
||||||
|
D22*
|
||||||
|
X174830000Y-92410000D03*
|
||||||
|
D17*
|
||||||
|
X122300000Y-32620000D03*
|
||||||
|
D18*
|
||||||
X122300000Y-35160000D03*
|
X122300000Y-35160000D03*
|
||||||
D23*
|
|
||||||
X172420000Y-99250000D03*
|
|
||||||
D24*
|
D24*
|
||||||
X174960000Y-99250000D03*
|
X195600000Y-99250000D03*
|
||||||
X177500000Y-99250000D03*
|
D25*
|
||||||
D10*
|
X193060000Y-99250000D03*
|
||||||
X138730000Y-70025000D03*
|
X190520000Y-99250000D03*
|
||||||
D12*
|
D11*
|
||||||
X138730000Y-67485000D03*
|
X101455112Y-94200000D03*
|
||||||
X131110000Y-67485000D03*
|
X103955112Y-94200000D03*
|
||||||
X131110000Y-70025000D03*
|
D24*
|
||||||
D23*
|
|
||||||
X195490000Y-47890000D03*
|
X195490000Y-47890000D03*
|
||||||
D24*
|
D25*
|
||||||
X192950000Y-47890000D03*
|
X192950000Y-47890000D03*
|
||||||
X190410000Y-47890000D03*
|
X190410000Y-47890000D03*
|
||||||
X187870000Y-47890000D03*
|
X187870000Y-47890000D03*
|
||||||
D23*
|
D11*
|
||||||
X195485000Y-33980000D03*
|
X133000000Y-45310000D03*
|
||||||
|
D14*
|
||||||
|
X133000000Y-35150000D03*
|
||||||
|
D12*
|
||||||
|
X138400000Y-45170000D03*
|
||||||
|
D29*
|
||||||
|
X136330000Y-43900000D03*
|
||||||
|
X138400000Y-42630000D03*
|
||||||
D24*
|
D24*
|
||||||
|
X195485000Y-33980000D03*
|
||||||
|
D25*
|
||||||
X192945000Y-33980000D03*
|
X192945000Y-33980000D03*
|
||||||
X190405000Y-33980000D03*
|
X190405000Y-33980000D03*
|
||||||
X187865000Y-33980000D03*
|
X187865000Y-33980000D03*
|
||||||
D11*
|
D28*
|
||||||
X142750000Y-33000000D03*
|
X156500000Y-67860000D03*
|
||||||
D12*
|
D23*
|
||||||
X142750000Y-43160000D03*
|
|
||||||
D15*
|
|
||||||
X157500000Y-68000000D03*
|
|
||||||
D10*
|
|
||||||
X138800000Y-42685000D03*
|
|
||||||
D12*
|
|
||||||
X138800000Y-40145000D03*
|
|
||||||
X131180000Y-40145000D03*
|
|
||||||
X131180000Y-42685000D03*
|
|
||||||
D22*
|
|
||||||
X96500000Y-42450000D03*
|
X96500000Y-42450000D03*
|
||||||
X96500000Y-33150000D03*
|
X96500000Y-33150000D03*
|
||||||
X96500000Y-64000000D03*
|
X96500000Y-64000000D03*
|
||||||
X96500000Y-54700000D03*
|
X96500000Y-54700000D03*
|
||||||
D13*
|
D15*
|
||||||
X129680000Y-62250000D03*
|
X129680000Y-62250000D03*
|
||||||
D14*
|
D16*
|
||||||
X129680000Y-59710000D03*
|
X129680000Y-59710000D03*
|
||||||
X129680000Y-57170000D03*
|
X129680000Y-57170000D03*
|
||||||
D10*
|
D28*
|
||||||
X143630000Y-91470000D03*
|
X188000000Y-67900000D03*
|
||||||
D12*
|
|
||||||
X143630000Y-88930000D03*
|
|
||||||
X136010000Y-88930000D03*
|
|
||||||
X136010000Y-91470000D03*
|
|
||||||
D15*
|
|
||||||
X193000000Y-65000000D03*
|
|
||||||
D11*
|
D11*
|
||||||
X187670000Y-88250000D03*
|
X187670000Y-88250000D03*
|
||||||
D12*
|
|
||||||
X197830000Y-88250000D03*
|
|
||||||
D10*
|
|
||||||
X119794888Y-54750000D03*
|
|
||||||
D11*
|
|
||||||
X122294888Y-54750000D03*
|
|
||||||
D13*
|
|
||||||
X129680000Y-83750000D03*
|
|
||||||
D14*
|
D14*
|
||||||
|
X197830000Y-88250000D03*
|
||||||
|
D11*
|
||||||
|
X102500000Y-66200000D03*
|
||||||
|
X102500000Y-68700000D03*
|
||||||
|
X116900000Y-95000000D03*
|
||||||
|
D14*
|
||||||
|
X106740000Y-95000000D03*
|
||||||
|
D10*
|
||||||
|
X101500000Y-90100000D03*
|
||||||
|
D11*
|
||||||
|
X104000000Y-90100000D03*
|
||||||
|
X133000000Y-72460000D03*
|
||||||
|
D14*
|
||||||
|
X133000000Y-62300000D03*
|
||||||
|
D15*
|
||||||
|
X129680000Y-83750000D03*
|
||||||
|
D16*
|
||||||
X129680000Y-81210000D03*
|
X129680000Y-81210000D03*
|
||||||
X129680000Y-78670000D03*
|
X129680000Y-78670000D03*
|
||||||
D10*
|
|
||||||
X128204000Y-108710000D03*
|
|
||||||
X128204000Y-111250000D03*
|
|
||||||
D12*
|
D12*
|
||||||
X128178600Y-100455000D03*
|
X138370000Y-72370000D03*
|
||||||
X128204000Y-97915000D03*
|
|
||||||
D10*
|
|
||||||
X147000000Y-108837000D03*
|
|
||||||
X147000000Y-111377000D03*
|
|
||||||
D12*
|
|
||||||
X147101600Y-100455000D03*
|
|
||||||
X147127000Y-97915000D03*
|
|
||||||
D16*
|
|
||||||
X106760000Y-66240000D03*
|
|
||||||
D21*
|
|
||||||
X116920000Y-66240000D03*
|
|
||||||
D20*
|
|
||||||
X87000000Y-113500000D03*
|
|
||||||
D27*
|
|
||||||
X108910000Y-48540000D03*
|
|
||||||
D28*
|
|
||||||
X103830000Y-50700000D03*
|
|
||||||
D29*
|
D29*
|
||||||
X106370000Y-50700000D03*
|
X136300000Y-71100000D03*
|
||||||
X108910000Y-50700000D03*
|
X138370000Y-69830000D03*
|
||||||
X111450000Y-50700000D03*
|
D17*
|
||||||
|
X106760000Y-66240000D03*
|
||||||
|
D22*
|
||||||
|
X116920000Y-66240000D03*
|
||||||
|
D21*
|
||||||
|
X87000000Y-117250000D03*
|
||||||
|
D11*
|
||||||
|
X146480000Y-32600000D03*
|
||||||
|
D14*
|
||||||
|
X136320000Y-32600000D03*
|
||||||
|
D30*
|
||||||
|
X108900000Y-48620000D03*
|
||||||
|
D31*
|
||||||
|
X103820000Y-50780000D03*
|
||||||
|
D32*
|
||||||
|
X106360000Y-50780000D03*
|
||||||
|
X108900000Y-50780000D03*
|
||||||
|
X111440000Y-50780000D03*
|
||||||
D11*
|
D11*
|
||||||
X181830000Y-85750000D03*
|
X181830000Y-85750000D03*
|
||||||
X181830000Y-88250000D03*
|
X181830000Y-88250000D03*
|
||||||
D10*
|
D10*
|
||||||
X122250000Y-111250000D03*
|
X123600000Y-108750000D03*
|
||||||
D11*
|
D11*
|
||||||
X122250000Y-108750000D03*
|
X123600000Y-111250000D03*
|
||||||
D16*
|
D17*
|
||||||
X106870000Y-39160000D03*
|
X106870000Y-39160000D03*
|
||||||
D21*
|
D22*
|
||||||
X117030000Y-39160000D03*
|
X117030000Y-39160000D03*
|
||||||
D23*
|
D11*
|
||||||
X195485000Y-43250000D03*
|
X136325000Y-39600000D03*
|
||||||
|
D14*
|
||||||
|
X146485000Y-39600000D03*
|
||||||
|
D11*
|
||||||
|
X117000000Y-46000000D03*
|
||||||
|
D14*
|
||||||
|
X106840000Y-46000000D03*
|
||||||
D24*
|
D24*
|
||||||
|
X195485000Y-43250000D03*
|
||||||
|
D25*
|
||||||
X192945000Y-43250000D03*
|
X192945000Y-43250000D03*
|
||||||
X190405000Y-43250000D03*
|
X190405000Y-43250000D03*
|
||||||
X187865000Y-43250000D03*
|
X187865000Y-43250000D03*
|
||||||
D18*
|
D11*
|
||||||
X113990000Y-108095000D03*
|
X116860000Y-73500000D03*
|
||||||
|
D14*
|
||||||
|
X106700000Y-73500000D03*
|
||||||
D19*
|
D19*
|
||||||
|
X113990000Y-108095000D03*
|
||||||
|
D20*
|
||||||
X106790000Y-108095000D03*
|
X106790000Y-108095000D03*
|
||||||
D11*
|
D11*
|
||||||
X116930000Y-90980000D03*
|
X116930000Y-90980000D03*
|
||||||
D12*
|
D14*
|
||||||
X106770000Y-90980000D03*
|
X106770000Y-90980000D03*
|
||||||
D16*
|
D17*
|
||||||
X170830000Y-82250000D03*
|
X170830000Y-82250000D03*
|
||||||
D21*
|
|
||||||
X170830000Y-92410000D03*
|
|
||||||
D22*
|
D22*
|
||||||
|
X170830000Y-92410000D03*
|
||||||
|
D23*
|
||||||
X96500000Y-85450000D03*
|
X96500000Y-85450000D03*
|
||||||
X96500000Y-76150000D03*
|
X96500000Y-76150000D03*
|
||||||
D11*
|
|
||||||
X123000000Y-48570000D03*
|
|
||||||
D12*
|
D12*
|
||||||
X123000000Y-38410000D03*
|
X121500000Y-42690000D03*
|
||||||
D18*
|
D13*
|
||||||
X114000000Y-32610000D03*
|
X123570000Y-43960000D03*
|
||||||
|
X121500000Y-45230000D03*
|
||||||
|
D12*
|
||||||
|
X138400000Y-93900000D03*
|
||||||
|
D29*
|
||||||
|
X136330000Y-92630000D03*
|
||||||
|
X138400000Y-91360000D03*
|
||||||
|
D12*
|
||||||
|
X121490000Y-91400000D03*
|
||||||
|
D13*
|
||||||
|
X123560000Y-92670000D03*
|
||||||
|
X121490000Y-93940000D03*
|
||||||
D19*
|
D19*
|
||||||
X106800000Y-32610000D03*
|
X114000000Y-32610000D03*
|
||||||
D11*
|
|
||||||
X106840000Y-45670000D03*
|
|
||||||
D12*
|
|
||||||
X117000000Y-45670000D03*
|
|
||||||
D11*
|
|
||||||
X106770000Y-94230000D03*
|
|
||||||
D12*
|
|
||||||
X116930000Y-94230000D03*
|
|
||||||
D20*
|
D20*
|
||||||
X203000000Y-113500000D03*
|
X106800000Y-32610000D03*
|
||||||
D23*
|
D21*
|
||||||
X177250000Y-47250000D03*
|
X203000000Y-117250000D03*
|
||||||
D24*
|
D24*
|
||||||
X177250000Y-44710000D03*
|
X177250000Y-42790000D03*
|
||||||
|
D25*
|
||||||
|
X177250000Y-40250000D03*
|
||||||
D11*
|
D11*
|
||||||
X122930000Y-75660000D03*
|
X144200000Y-74300000D03*
|
||||||
D12*
|
D14*
|
||||||
X122930000Y-65500000D03*
|
X144200000Y-84460000D03*
|
||||||
D11*
|
|
||||||
X147430000Y-81890000D03*
|
|
||||||
D12*
|
|
||||||
X147430000Y-92050000D03*
|
|
||||||
D15*
|
|
||||||
X158500000Y-111250000D03*
|
|
||||||
D16*
|
|
||||||
X122230000Y-59710000D03*
|
|
||||||
D17*
|
D17*
|
||||||
|
X122230000Y-59710000D03*
|
||||||
|
D18*
|
||||||
X122230000Y-62250000D03*
|
X122230000Y-62250000D03*
|
||||||
D11*
|
D11*
|
||||||
X197830000Y-84250000D03*
|
X197830000Y-84250000D03*
|
||||||
D12*
|
D14*
|
||||||
X187670000Y-84250000D03*
|
X187670000Y-84250000D03*
|
||||||
D30*
|
D33*
|
||||||
X169750000Y-52500000D03*
|
X169750000Y-50800000D03*
|
||||||
M02*
|
M02*
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.3*
|
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.5*
|
||||||
G04 #@! TF.CreationDate,2024-06-05T14:32:50+02:00*
|
G04 #@! TF.CreationDate,2024-09-25T02:09:32+02:00*
|
||||||
G04 #@! TF.ProjectId,CanGrow,43616e47-726f-4772-9e6b-696361645f70,rev?*
|
G04 #@! TF.ProjectId,CanGrow,43616e47-726f-4772-9e6b-696361645f70,rev?*
|
||||||
G04 #@! TF.SameCoordinates,Original*
|
G04 #@! TF.SameCoordinates,Original*
|
||||||
G04 #@! TF.FileFunction,Paste,Bot*
|
G04 #@! TF.FileFunction,Paste,Bot*
|
||||||
G04 #@! TF.FilePolarity,Positive*
|
G04 #@! TF.FilePolarity,Positive*
|
||||||
%FSLAX46Y46*%
|
%FSLAX46Y46*%
|
||||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||||
G04 Created by KiCad (PCBNEW 8.0.3) date 2024-06-05 14:32:50*
|
G04 Created by KiCad (PCBNEW 8.0.5) date 2024-09-25 02:09:32*
|
||||||
%MOMM*%
|
%MOMM*%
|
||||||
%LPD*%
|
%LPD*%
|
||||||
G01*
|
G01*
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.3*
|
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.5*
|
||||||
G04 #@! TF.CreationDate,2024-06-05T14:32:50+02:00*
|
G04 #@! TF.CreationDate,2024-09-25T02:09:32+02:00*
|
||||||
G04 #@! TF.ProjectId,CanGrow,43616e47-726f-4772-9e6b-696361645f70,rev?*
|
G04 #@! TF.ProjectId,CanGrow,43616e47-726f-4772-9e6b-696361645f70,rev?*
|
||||||
G04 #@! TF.SameCoordinates,Original*
|
G04 #@! TF.SameCoordinates,Original*
|
||||||
G04 #@! TF.FileFunction,Legend,Bot*
|
G04 #@! TF.FileFunction,Legend,Bot*
|
||||||
G04 #@! TF.FilePolarity,Positive*
|
G04 #@! TF.FilePolarity,Positive*
|
||||||
%FSLAX46Y46*%
|
%FSLAX46Y46*%
|
||||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||||
G04 Created by KiCad (PCBNEW 8.0.3) date 2024-06-05 14:32:50*
|
G04 Created by KiCad (PCBNEW 8.0.5) date 2024-09-25 02:09:32*
|
||||||
%MOMM*%
|
%MOMM*%
|
||||||
%LPD*%
|
%LPD*%
|
||||||
G01*
|
G01*
|
||||||
|
@ -33,403 +33,440 @@ G04 Aperture macros list end*
|
||||||
%ADD11C,0.300000*%
|
%ADD11C,0.300000*%
|
||||||
%ADD12R,1.600000X1.600000*%
|
%ADD12R,1.600000X1.600000*%
|
||||||
%ADD13C,1.600000*%
|
%ADD13C,1.600000*%
|
||||||
%ADD14O,1.600000X1.600000*%
|
%ADD14R,1.800000X1.100000*%
|
||||||
%ADD15R,2.000000X1.905000*%
|
%ADD15RoundRect,0.275000X-0.625000X0.275000X-0.625000X-0.275000X0.625000X-0.275000X0.625000X0.275000X0*%
|
||||||
%ADD16O,2.000000X1.905000*%
|
%ADD16O,1.600000X1.600000*%
|
||||||
%ADD17RoundRect,0.250001X-0.799999X-0.799999X0.799999X-0.799999X0.799999X0.799999X-0.799999X0.799999X0*%
|
%ADD17R,2.000000X1.905000*%
|
||||||
%ADD18R,1.800000X1.800000*%
|
%ADD18O,2.000000X1.905000*%
|
||||||
%ADD19C,1.800000*%
|
%ADD19R,1.800000X1.800000*%
|
||||||
%ADD20RoundRect,1.500000X1.500000X1.500000X-1.500000X1.500000X-1.500000X-1.500000X1.500000X-1.500000X0*%
|
%ADD20C,1.800000*%
|
||||||
%ADD21C,6.000000*%
|
%ADD21RoundRect,1.500000X1.500000X1.500000X-1.500000X1.500000X-1.500000X-1.500000X1.500000X-1.500000X0*%
|
||||||
%ADD22C,5.600000*%
|
%ADD22C,6.000000*%
|
||||||
%ADD23O,1.800000X1.800000*%
|
%ADD23C,5.600000*%
|
||||||
%ADD24O,3.800000X8.000000*%
|
%ADD24O,1.800000X1.800000*%
|
||||||
%ADD25R,1.700000X1.700000*%
|
%ADD25O,3.800000X8.000000*%
|
||||||
%ADD26O,1.700000X1.700000*%
|
%ADD26R,1.700000X1.700000*%
|
||||||
%ADD27R,2.000000X2.000000*%
|
%ADD27O,1.700000X1.700000*%
|
||||||
%ADD28O,2.000000X1.600000*%
|
%ADD28R,2.000000X2.000000*%
|
||||||
%ADD29C,1.100000*%
|
%ADD29O,2.000000X1.600000*%
|
||||||
%ADD30R,1.730000X2.030000*%
|
%ADD30RoundRect,0.250000X-0.550000X-0.550000X0.550000X-0.550000X0.550000X0.550000X-0.550000X0.550000X0*%
|
||||||
%ADD31O,1.730000X2.030000*%
|
%ADD31RoundRect,0.275000X0.625000X-0.275000X0.625000X0.275000X-0.625000X0.275000X-0.625000X-0.275000X0*%
|
||||||
%ADD32RoundRect,0.250001X0.799999X0.799999X-0.799999X0.799999X-0.799999X-0.799999X0.799999X-0.799999X0*%
|
%ADD32C,1.100000*%
|
||||||
|
%ADD33R,1.730000X2.030000*%
|
||||||
|
%ADD34O,1.730000X2.030000*%
|
||||||
|
%ADD35RoundRect,0.250000X0.550000X0.550000X-0.550000X0.550000X-0.550000X-0.550000X0.550000X-0.550000X0*%
|
||||||
G04 APERTURE END LIST*
|
G04 APERTURE END LIST*
|
||||||
D10*
|
D10*
|
||||||
X161600000Y-68950000D02*
|
X161150000Y-68950000D02*
|
||||||
X162000000Y-69750000D01*
|
X161550000Y-69750000D01*
|
||||||
X152750000Y-65000000D02*
|
X152300000Y-65000000D02*
|
||||||
X153750000Y-66000000D01*
|
X153300000Y-66000000D01*
|
||||||
X148250000Y-62500000D01*
|
X147800000Y-62500000D01*
|
||||||
X152750000Y-65000000D01*
|
X152300000Y-65000000D01*
|
||||||
G36*
|
G36*
|
||||||
X152750000Y-65000000D02*
|
X152300000Y-65000000D02*
|
||||||
G01*
|
G01*
|
||||||
X153750000Y-66000000D01*
|
X153300000Y-66000000D01*
|
||||||
X148250000Y-62500000D01*
|
X147800000Y-62500000D01*
|
||||||
X152750000Y-65000000D01*
|
X152300000Y-65000000D01*
|
||||||
G37*
|
G37*
|
||||||
X162090000Y-68925000D02*
|
X161640000Y-68925000D02*
|
||||||
X162290000Y-69325000D01*
|
X161840000Y-69325000D01*
|
||||||
X156250000Y-64500000D02*
|
X155800000Y-64500000D02*
|
||||||
X155250000Y-66000000D01*
|
X154800000Y-66000000D01*
|
||||||
X157250000Y-60500000D01*
|
X156800000Y-60500000D01*
|
||||||
X156250000Y-64500000D01*
|
X155800000Y-64500000D01*
|
||||||
G36*
|
G36*
|
||||||
X156250000Y-64500000D02*
|
X155800000Y-64500000D02*
|
||||||
G01*
|
G01*
|
||||||
X155250000Y-66000000D01*
|
X154800000Y-66000000D01*
|
||||||
X157250000Y-60500000D01*
|
X156800000Y-60500000D01*
|
||||||
X156250000Y-64500000D01*
|
X155800000Y-64500000D01*
|
||||||
G37*
|
G37*
|
||||||
X157250000Y-65000000D02*
|
X156800000Y-65000000D02*
|
||||||
X156250000Y-66000000D01*
|
X155800000Y-66000000D01*
|
||||||
X158250000Y-62000000D01*
|
X157800000Y-62000000D01*
|
||||||
X157250000Y-65000000D01*
|
X156800000Y-65000000D01*
|
||||||
G36*
|
G36*
|
||||||
X157250000Y-65000000D02*
|
X156800000Y-65000000D02*
|
||||||
G01*
|
G01*
|
||||||
X156250000Y-66000000D01*
|
X155800000Y-66000000D01*
|
||||||
X158250000Y-62000000D01*
|
X157800000Y-62000000D01*
|
||||||
X157250000Y-65000000D01*
|
X156800000Y-65000000D01*
|
||||||
G37*
|
G37*
|
||||||
X161800000Y-68850000D02*
|
X161350000Y-68850000D02*
|
||||||
X162200000Y-69650000D01*
|
X161750000Y-69650000D01*
|
||||||
X161750000Y-70000000D02*
|
X161300000Y-70000000D02*
|
||||||
X156250000Y-71500000D01*
|
X155800000Y-71500000D01*
|
||||||
X161250000Y-69000000D01*
|
X160800000Y-69000000D01*
|
||||||
X161750000Y-70000000D01*
|
X161300000Y-70000000D01*
|
||||||
G36*
|
G36*
|
||||||
X161750000Y-70000000D02*
|
X161300000Y-70000000D02*
|
||||||
G01*
|
G01*
|
||||||
X156250000Y-71500000D01*
|
X155800000Y-71500000D01*
|
||||||
X161250000Y-69000000D01*
|
X160800000Y-69000000D01*
|
||||||
X161750000Y-70000000D01*
|
X161300000Y-70000000D01*
|
||||||
G37*
|
G37*
|
||||||
X154750000Y-63500000D02*
|
X154300000Y-63500000D02*
|
||||||
X154750000Y-66000000D01*
|
X154300000Y-66000000D01*
|
||||||
X153250000Y-59000000D01*
|
X152800000Y-59000000D01*
|
||||||
X154750000Y-63500000D01*
|
X154300000Y-63500000D01*
|
||||||
G36*
|
G36*
|
||||||
X154750000Y-63500000D02*
|
X154300000Y-63500000D02*
|
||||||
G01*
|
G01*
|
||||||
X154750000Y-66000000D01*
|
X154300000Y-66000000D01*
|
||||||
X153250000Y-59000000D01*
|
X152800000Y-59000000D01*
|
||||||
X154750000Y-63500000D01*
|
X154300000Y-63500000D01*
|
||||||
G37*
|
G37*
|
||||||
X152750000Y-63500000D02*
|
X152300000Y-63500000D02*
|
||||||
X154250000Y-66000000D01*
|
X153800000Y-66000000D01*
|
||||||
X149250000Y-60500000D01*
|
X148800000Y-60500000D01*
|
||||||
X152750000Y-63500000D01*
|
X152300000Y-63500000D01*
|
||||||
G36*
|
G36*
|
||||||
X152750000Y-63500000D02*
|
X152300000Y-63500000D02*
|
||||||
G01*
|
G01*
|
||||||
X154250000Y-66000000D01*
|
X153800000Y-66000000D01*
|
||||||
X149250000Y-60500000D01*
|
X148800000Y-60500000D01*
|
||||||
X152750000Y-63500000D01*
|
X152300000Y-63500000D01*
|
||||||
G37*
|
G37*
|
||||||
D11*
|
D11*
|
||||||
X156750000Y-72000000D02*
|
X156300000Y-72000000D02*
|
||||||
X155250000Y-73000000D01*
|
X154800000Y-73000000D01*
|
||||||
X153250000Y-72000000D01*
|
X152800000Y-72000000D01*
|
||||||
X152750000Y-70000000D01*
|
X152300000Y-70000000D01*
|
||||||
X157250000Y-70000000D01*
|
X156800000Y-70000000D01*
|
||||||
X156750000Y-72000000D01*
|
X156300000Y-72000000D01*
|
||||||
%LPC*%
|
%LPC*%
|
||||||
D12*
|
D12*
|
||||||
X101500000Y-90100000D03*
|
X156600000Y-108750000D03*
|
||||||
D13*
|
D13*
|
||||||
X104000000Y-90100000D03*
|
X156600000Y-111250000D03*
|
||||||
X103955112Y-94200000D03*
|
|
||||||
X101455112Y-94200000D03*
|
|
||||||
D12*
|
|
||||||
X153500000Y-111250000D03*
|
|
||||||
D13*
|
|
||||||
X153500000Y-108750000D03*
|
|
||||||
X123520000Y-88850000D03*
|
|
||||||
D14*
|
D14*
|
||||||
X133680000Y-88850000D03*
|
X127400000Y-42690000D03*
|
||||||
|
D15*
|
||||||
|
X129470000Y-43960000D03*
|
||||||
|
X127400000Y-45230000D03*
|
||||||
D13*
|
D13*
|
||||||
X117000000Y-42420000D03*
|
X117000000Y-42420000D03*
|
||||||
D14*
|
|
||||||
X106840000Y-42420000D03*
|
|
||||||
D15*
|
|
||||||
X138430000Y-83750000D03*
|
|
||||||
D16*
|
D16*
|
||||||
|
X106840000Y-42420000D03*
|
||||||
|
D17*
|
||||||
|
X138430000Y-83750000D03*
|
||||||
|
D18*
|
||||||
X138430000Y-81210000D03*
|
X138430000Y-81210000D03*
|
||||||
X138430000Y-78670000D03*
|
X138430000Y-78670000D03*
|
||||||
D15*
|
D17*
|
||||||
X129800000Y-35150000D03*
|
X129800000Y-35150000D03*
|
||||||
D16*
|
D18*
|
||||||
X129800000Y-32610000D03*
|
X129800000Y-32610000D03*
|
||||||
X129800000Y-30070000D03*
|
X129800000Y-30070000D03*
|
||||||
D13*
|
D13*
|
||||||
|
X139900000Y-53320000D03*
|
||||||
|
D16*
|
||||||
|
X139900000Y-63480000D03*
|
||||||
|
D12*
|
||||||
|
X130748000Y-108846000D03*
|
||||||
|
X130748000Y-111386000D03*
|
||||||
|
D16*
|
||||||
|
X130722600Y-100478000D03*
|
||||||
|
X130748000Y-97938000D03*
|
||||||
|
D12*
|
||||||
|
X149544000Y-108860000D03*
|
||||||
|
X149544000Y-111400000D03*
|
||||||
|
D16*
|
||||||
|
X149645600Y-100478000D03*
|
||||||
|
X149671000Y-97938000D03*
|
||||||
|
D13*
|
||||||
X177750000Y-92250000D03*
|
X177750000Y-92250000D03*
|
||||||
D14*
|
D16*
|
||||||
X187910000Y-92250000D03*
|
X187910000Y-92250000D03*
|
||||||
D17*
|
D19*
|
||||||
X153750000Y-68000000D03*
|
|
||||||
D13*
|
|
||||||
X106750000Y-72750000D03*
|
|
||||||
D14*
|
|
||||||
X116910000Y-72750000D03*
|
|
||||||
D13*
|
|
||||||
X142680000Y-60340000D03*
|
|
||||||
D14*
|
|
||||||
X142680000Y-70500000D03*
|
|
||||||
D18*
|
|
||||||
X122231000Y-81220000D03*
|
X122231000Y-81220000D03*
|
||||||
D19*
|
|
||||||
X122231000Y-83760000D03*
|
|
||||||
D20*
|
D20*
|
||||||
X113930000Y-59700000D03*
|
X122231000Y-83760000D03*
|
||||||
D21*
|
D21*
|
||||||
|
X113930000Y-59700000D03*
|
||||||
|
D22*
|
||||||
X106730000Y-59700000D03*
|
X106730000Y-59700000D03*
|
||||||
D18*
|
|
||||||
X122250000Y-102750000D03*
|
|
||||||
D19*
|
D19*
|
||||||
|
X122250000Y-102750000D03*
|
||||||
|
D20*
|
||||||
X122250000Y-105290000D03*
|
X122250000Y-105290000D03*
|
||||||
D13*
|
D13*
|
||||||
X195500000Y-29200000D03*
|
X195500000Y-29200000D03*
|
||||||
D14*
|
D16*
|
||||||
X185340000Y-29200000D03*
|
X185340000Y-29200000D03*
|
||||||
D22*
|
|
||||||
X87000000Y-26500000D03*
|
|
||||||
D13*
|
|
||||||
X116910000Y-69500000D03*
|
|
||||||
D14*
|
D14*
|
||||||
X106750000Y-69500000D03*
|
X127430000Y-91400000D03*
|
||||||
D18*
|
D15*
|
||||||
X106770000Y-87720000D03*
|
X129500000Y-92670000D03*
|
||||||
|
X127430000Y-93940000D03*
|
||||||
D23*
|
D23*
|
||||||
|
X87000000Y-22750000D03*
|
||||||
|
D13*
|
||||||
|
X116855000Y-69500000D03*
|
||||||
|
D16*
|
||||||
|
X106695000Y-69500000D03*
|
||||||
|
D19*
|
||||||
|
X106770000Y-87720000D03*
|
||||||
|
D24*
|
||||||
X116930000Y-87720000D03*
|
X116930000Y-87720000D03*
|
||||||
D13*
|
D13*
|
||||||
|
X133000000Y-94000000D03*
|
||||||
|
D16*
|
||||||
|
X133000000Y-83840000D03*
|
||||||
|
D13*
|
||||||
X195500000Y-52900000D03*
|
X195500000Y-52900000D03*
|
||||||
D14*
|
D16*
|
||||||
X185340000Y-52900000D03*
|
X185340000Y-52900000D03*
|
||||||
D13*
|
D13*
|
||||||
X198180000Y-71050000D03*
|
X198180000Y-71050000D03*
|
||||||
D14*
|
D16*
|
||||||
X188020000Y-71050000D03*
|
X188020000Y-71050000D03*
|
||||||
D22*
|
D23*
|
||||||
X203000000Y-26500000D03*
|
X203000000Y-22750000D03*
|
||||||
|
D13*
|
||||||
|
X139920000Y-66500000D03*
|
||||||
|
D16*
|
||||||
|
X150080000Y-66500000D03*
|
||||||
D13*
|
D13*
|
||||||
X116910000Y-100250000D03*
|
X116910000Y-100250000D03*
|
||||||
D14*
|
D16*
|
||||||
X106750000Y-100250000D03*
|
X106750000Y-100250000D03*
|
||||||
D24*
|
D13*
|
||||||
|
X153100000Y-78010000D03*
|
||||||
|
D16*
|
||||||
|
X153100000Y-67850000D03*
|
||||||
|
D14*
|
||||||
|
X121500000Y-69860000D03*
|
||||||
|
D15*
|
||||||
|
X123570000Y-71130000D03*
|
||||||
|
X121500000Y-72400000D03*
|
||||||
|
D14*
|
||||||
|
X127400000Y-69860000D03*
|
||||||
|
D15*
|
||||||
|
X129470000Y-71130000D03*
|
||||||
|
X127400000Y-72400000D03*
|
||||||
|
D25*
|
||||||
X96500000Y-97650000D03*
|
X96500000Y-97650000D03*
|
||||||
X96500000Y-106950000D03*
|
X96500000Y-106950000D03*
|
||||||
D25*
|
D26*
|
||||||
X195485000Y-60100000D03*
|
X195485000Y-60100000D03*
|
||||||
D26*
|
|
||||||
X192945000Y-60100000D03*
|
|
||||||
D20*
|
|
||||||
X113930000Y-81220000D03*
|
|
||||||
D21*
|
|
||||||
X106730000Y-81220000D03*
|
|
||||||
D27*
|
D27*
|
||||||
X150100000Y-31750000D03*
|
X192945000Y-60100000D03*
|
||||||
|
D21*
|
||||||
|
X113930000Y-81220000D03*
|
||||||
|
D22*
|
||||||
|
X106730000Y-81220000D03*
|
||||||
D28*
|
D28*
|
||||||
X150100000Y-34290000D03*
|
X150100000Y-27460000D03*
|
||||||
X150100000Y-36830000D03*
|
D29*
|
||||||
X150100000Y-39370000D03*
|
X150100000Y-30000000D03*
|
||||||
X150100000Y-41910000D03*
|
X150100000Y-32540000D03*
|
||||||
X150100000Y-44450000D03*
|
X150100000Y-35080000D03*
|
||||||
X150100000Y-46990000D03*
|
X150100000Y-37620000D03*
|
||||||
X150100000Y-49530000D03*
|
X150100000Y-40160000D03*
|
||||||
X172960000Y-49530000D03*
|
X150100000Y-42700000D03*
|
||||||
X172960000Y-46990000D03*
|
X150100000Y-45240000D03*
|
||||||
X172960000Y-44450000D03*
|
X172960000Y-45240000D03*
|
||||||
X172960000Y-41910000D03*
|
X172960000Y-42700000D03*
|
||||||
X172960000Y-39370000D03*
|
X172960000Y-40160000D03*
|
||||||
X172960000Y-36830000D03*
|
X172960000Y-37620000D03*
|
||||||
X172960000Y-34290000D03*
|
X172960000Y-35080000D03*
|
||||||
X172960000Y-31750000D03*
|
X172960000Y-32540000D03*
|
||||||
D25*
|
X172960000Y-30000000D03*
|
||||||
X195955000Y-77050000D03*
|
X172960000Y-27460000D03*
|
||||||
|
D26*
|
||||||
|
X195400000Y-77000000D03*
|
||||||
|
D27*
|
||||||
|
X192860000Y-77000000D03*
|
||||||
|
X190320000Y-77000000D03*
|
||||||
D26*
|
D26*
|
||||||
X193415000Y-77050000D03*
|
|
||||||
X190875000Y-77050000D03*
|
|
||||||
D25*
|
|
||||||
X195485000Y-38630000D03*
|
X195485000Y-38630000D03*
|
||||||
D26*
|
D27*
|
||||||
X192945000Y-38630000D03*
|
X192945000Y-38630000D03*
|
||||||
X190405000Y-38630000D03*
|
X190405000Y-38630000D03*
|
||||||
X187865000Y-38630000D03*
|
X187865000Y-38630000D03*
|
||||||
D17*
|
D30*
|
||||||
X136750000Y-52500000D03*
|
X131800000Y-50800000D03*
|
||||||
D18*
|
|
||||||
X174830000Y-82250000D03*
|
|
||||||
D23*
|
|
||||||
X174830000Y-92410000D03*
|
|
||||||
D18*
|
|
||||||
X122300000Y-32620000D03*
|
|
||||||
D19*
|
D19*
|
||||||
|
X174830000Y-82250000D03*
|
||||||
|
D24*
|
||||||
|
X174830000Y-92410000D03*
|
||||||
|
D19*
|
||||||
|
X122300000Y-32620000D03*
|
||||||
|
D20*
|
||||||
X122300000Y-35160000D03*
|
X122300000Y-35160000D03*
|
||||||
D25*
|
|
||||||
X172420000Y-99250000D03*
|
|
||||||
D26*
|
D26*
|
||||||
X174960000Y-99250000D03*
|
X195600000Y-99250000D03*
|
||||||
X177500000Y-99250000D03*
|
D27*
|
||||||
D12*
|
X193060000Y-99250000D03*
|
||||||
X138730000Y-70025000D03*
|
X190520000Y-99250000D03*
|
||||||
D14*
|
D13*
|
||||||
X138730000Y-67485000D03*
|
X101455112Y-94200000D03*
|
||||||
X131110000Y-67485000D03*
|
X103955112Y-94200000D03*
|
||||||
X131110000Y-70025000D03*
|
D26*
|
||||||
D25*
|
|
||||||
X195490000Y-47890000D03*
|
X195490000Y-47890000D03*
|
||||||
D26*
|
D27*
|
||||||
X192950000Y-47890000D03*
|
X192950000Y-47890000D03*
|
||||||
X190410000Y-47890000D03*
|
X190410000Y-47890000D03*
|
||||||
X187870000Y-47890000D03*
|
X187870000Y-47890000D03*
|
||||||
D25*
|
D13*
|
||||||
X195485000Y-33980000D03*
|
X133000000Y-45310000D03*
|
||||||
|
D16*
|
||||||
|
X133000000Y-35150000D03*
|
||||||
|
D14*
|
||||||
|
X138400000Y-45170000D03*
|
||||||
|
D31*
|
||||||
|
X136330000Y-43900000D03*
|
||||||
|
X138400000Y-42630000D03*
|
||||||
D26*
|
D26*
|
||||||
|
X195485000Y-33980000D03*
|
||||||
|
D27*
|
||||||
X192945000Y-33980000D03*
|
X192945000Y-33980000D03*
|
||||||
X190405000Y-33980000D03*
|
X190405000Y-33980000D03*
|
||||||
X187865000Y-33980000D03*
|
X187865000Y-33980000D03*
|
||||||
D13*
|
D30*
|
||||||
X142750000Y-33000000D03*
|
X156500000Y-67860000D03*
|
||||||
D14*
|
D25*
|
||||||
X142750000Y-43160000D03*
|
|
||||||
D17*
|
|
||||||
X157500000Y-68000000D03*
|
|
||||||
D12*
|
|
||||||
X138800000Y-42685000D03*
|
|
||||||
D14*
|
|
||||||
X138800000Y-40145000D03*
|
|
||||||
X131180000Y-40145000D03*
|
|
||||||
X131180000Y-42685000D03*
|
|
||||||
D24*
|
|
||||||
X96500000Y-42450000D03*
|
X96500000Y-42450000D03*
|
||||||
X96500000Y-33150000D03*
|
X96500000Y-33150000D03*
|
||||||
X96500000Y-64000000D03*
|
X96500000Y-64000000D03*
|
||||||
X96500000Y-54700000D03*
|
X96500000Y-54700000D03*
|
||||||
D15*
|
D17*
|
||||||
X129680000Y-62250000D03*
|
X129680000Y-62250000D03*
|
||||||
D16*
|
D18*
|
||||||
X129680000Y-59710000D03*
|
X129680000Y-59710000D03*
|
||||||
X129680000Y-57170000D03*
|
X129680000Y-57170000D03*
|
||||||
D12*
|
D30*
|
||||||
X143630000Y-91470000D03*
|
X188000000Y-67900000D03*
|
||||||
D14*
|
|
||||||
X143630000Y-88930000D03*
|
|
||||||
X136010000Y-88930000D03*
|
|
||||||
X136010000Y-91470000D03*
|
|
||||||
D17*
|
|
||||||
X193000000Y-65000000D03*
|
|
||||||
D13*
|
D13*
|
||||||
X187670000Y-88250000D03*
|
X187670000Y-88250000D03*
|
||||||
D14*
|
|
||||||
X197830000Y-88250000D03*
|
|
||||||
D12*
|
|
||||||
X119794888Y-54750000D03*
|
|
||||||
D13*
|
|
||||||
X122294888Y-54750000D03*
|
|
||||||
D15*
|
|
||||||
X129680000Y-83750000D03*
|
|
||||||
D16*
|
D16*
|
||||||
|
X197830000Y-88250000D03*
|
||||||
|
D13*
|
||||||
|
X102500000Y-66200000D03*
|
||||||
|
X102500000Y-68700000D03*
|
||||||
|
X116900000Y-95000000D03*
|
||||||
|
D16*
|
||||||
|
X106740000Y-95000000D03*
|
||||||
|
D12*
|
||||||
|
X101500000Y-90100000D03*
|
||||||
|
D13*
|
||||||
|
X104000000Y-90100000D03*
|
||||||
|
X133000000Y-72460000D03*
|
||||||
|
D16*
|
||||||
|
X133000000Y-62300000D03*
|
||||||
|
D17*
|
||||||
|
X129680000Y-83750000D03*
|
||||||
|
D18*
|
||||||
X129680000Y-81210000D03*
|
X129680000Y-81210000D03*
|
||||||
X129680000Y-78670000D03*
|
X129680000Y-78670000D03*
|
||||||
D12*
|
|
||||||
X128204000Y-108710000D03*
|
|
||||||
X128204000Y-111250000D03*
|
|
||||||
D14*
|
D14*
|
||||||
X128178600Y-100455000D03*
|
X138370000Y-72370000D03*
|
||||||
X128204000Y-97915000D03*
|
|
||||||
D12*
|
|
||||||
X147000000Y-108837000D03*
|
|
||||||
X147000000Y-111377000D03*
|
|
||||||
D14*
|
|
||||||
X147101600Y-100455000D03*
|
|
||||||
X147127000Y-97915000D03*
|
|
||||||
D18*
|
|
||||||
X106760000Y-66240000D03*
|
|
||||||
D23*
|
|
||||||
X116920000Y-66240000D03*
|
|
||||||
D22*
|
|
||||||
X87000000Y-113500000D03*
|
|
||||||
D29*
|
|
||||||
X108910000Y-48540000D03*
|
|
||||||
D30*
|
|
||||||
X103830000Y-50700000D03*
|
|
||||||
D31*
|
D31*
|
||||||
X106370000Y-50700000D03*
|
X136300000Y-71100000D03*
|
||||||
X108910000Y-50700000D03*
|
X138370000Y-69830000D03*
|
||||||
X111450000Y-50700000D03*
|
D19*
|
||||||
|
X106760000Y-66240000D03*
|
||||||
|
D24*
|
||||||
|
X116920000Y-66240000D03*
|
||||||
|
D23*
|
||||||
|
X87000000Y-117250000D03*
|
||||||
|
D13*
|
||||||
|
X146480000Y-32600000D03*
|
||||||
|
D16*
|
||||||
|
X136320000Y-32600000D03*
|
||||||
|
D32*
|
||||||
|
X108900000Y-48620000D03*
|
||||||
|
D33*
|
||||||
|
X103820000Y-50780000D03*
|
||||||
|
D34*
|
||||||
|
X106360000Y-50780000D03*
|
||||||
|
X108900000Y-50780000D03*
|
||||||
|
X111440000Y-50780000D03*
|
||||||
D13*
|
D13*
|
||||||
X181830000Y-85750000D03*
|
X181830000Y-85750000D03*
|
||||||
X181830000Y-88250000D03*
|
X181830000Y-88250000D03*
|
||||||
D12*
|
D12*
|
||||||
X122250000Y-111250000D03*
|
X123600000Y-108750000D03*
|
||||||
D13*
|
D13*
|
||||||
X122250000Y-108750000D03*
|
X123600000Y-111250000D03*
|
||||||
D18*
|
D19*
|
||||||
X106870000Y-39160000D03*
|
X106870000Y-39160000D03*
|
||||||
D23*
|
D24*
|
||||||
X117030000Y-39160000D03*
|
X117030000Y-39160000D03*
|
||||||
D25*
|
D13*
|
||||||
X195485000Y-43250000D03*
|
X136325000Y-39600000D03*
|
||||||
|
D16*
|
||||||
|
X146485000Y-39600000D03*
|
||||||
|
D13*
|
||||||
|
X117000000Y-46000000D03*
|
||||||
|
D16*
|
||||||
|
X106840000Y-46000000D03*
|
||||||
D26*
|
D26*
|
||||||
|
X195485000Y-43250000D03*
|
||||||
|
D27*
|
||||||
X192945000Y-43250000D03*
|
X192945000Y-43250000D03*
|
||||||
X190405000Y-43250000D03*
|
X190405000Y-43250000D03*
|
||||||
X187865000Y-43250000D03*
|
X187865000Y-43250000D03*
|
||||||
D20*
|
D13*
|
||||||
X113990000Y-108095000D03*
|
X116860000Y-73500000D03*
|
||||||
|
D16*
|
||||||
|
X106700000Y-73500000D03*
|
||||||
D21*
|
D21*
|
||||||
|
X113990000Y-108095000D03*
|
||||||
|
D22*
|
||||||
X106790000Y-108095000D03*
|
X106790000Y-108095000D03*
|
||||||
D13*
|
D13*
|
||||||
X116930000Y-90980000D03*
|
X116930000Y-90980000D03*
|
||||||
D14*
|
D16*
|
||||||
X106770000Y-90980000D03*
|
X106770000Y-90980000D03*
|
||||||
D18*
|
D19*
|
||||||
X170830000Y-82250000D03*
|
X170830000Y-82250000D03*
|
||||||
D23*
|
|
||||||
X170830000Y-92410000D03*
|
|
||||||
D24*
|
D24*
|
||||||
|
X170830000Y-92410000D03*
|
||||||
|
D25*
|
||||||
X96500000Y-85450000D03*
|
X96500000Y-85450000D03*
|
||||||
X96500000Y-76150000D03*
|
X96500000Y-76150000D03*
|
||||||
D13*
|
|
||||||
X123000000Y-48570000D03*
|
|
||||||
D14*
|
D14*
|
||||||
X123000000Y-38410000D03*
|
X121500000Y-42690000D03*
|
||||||
D20*
|
D15*
|
||||||
X114000000Y-32610000D03*
|
X123570000Y-43960000D03*
|
||||||
|
X121500000Y-45230000D03*
|
||||||
|
D14*
|
||||||
|
X138400000Y-93900000D03*
|
||||||
|
D31*
|
||||||
|
X136330000Y-92630000D03*
|
||||||
|
X138400000Y-91360000D03*
|
||||||
|
D14*
|
||||||
|
X121490000Y-91400000D03*
|
||||||
|
D15*
|
||||||
|
X123560000Y-92670000D03*
|
||||||
|
X121490000Y-93940000D03*
|
||||||
D21*
|
D21*
|
||||||
X106800000Y-32610000D03*
|
X114000000Y-32610000D03*
|
||||||
D13*
|
|
||||||
X106840000Y-45670000D03*
|
|
||||||
D14*
|
|
||||||
X117000000Y-45670000D03*
|
|
||||||
D13*
|
|
||||||
X106770000Y-94230000D03*
|
|
||||||
D14*
|
|
||||||
X116930000Y-94230000D03*
|
|
||||||
D22*
|
D22*
|
||||||
X203000000Y-113500000D03*
|
X106800000Y-32610000D03*
|
||||||
D25*
|
D23*
|
||||||
X177250000Y-47250000D03*
|
X203000000Y-117250000D03*
|
||||||
D26*
|
D26*
|
||||||
X177250000Y-44710000D03*
|
X177250000Y-42790000D03*
|
||||||
|
D27*
|
||||||
|
X177250000Y-40250000D03*
|
||||||
D13*
|
D13*
|
||||||
X122930000Y-75660000D03*
|
X144200000Y-74300000D03*
|
||||||
D14*
|
D16*
|
||||||
X122930000Y-65500000D03*
|
X144200000Y-84460000D03*
|
||||||
D13*
|
|
||||||
X147430000Y-81890000D03*
|
|
||||||
D14*
|
|
||||||
X147430000Y-92050000D03*
|
|
||||||
D17*
|
|
||||||
X158500000Y-111250000D03*
|
|
||||||
D18*
|
|
||||||
X122230000Y-59710000D03*
|
|
||||||
D19*
|
D19*
|
||||||
|
X122230000Y-59710000D03*
|
||||||
|
D20*
|
||||||
X122230000Y-62250000D03*
|
X122230000Y-62250000D03*
|
||||||
D13*
|
D13*
|
||||||
X197830000Y-84250000D03*
|
X197830000Y-84250000D03*
|
||||||
D14*
|
D16*
|
||||||
X187670000Y-84250000D03*
|
X187670000Y-84250000D03*
|
||||||
D32*
|
D35*
|
||||||
X169750000Y-52500000D03*
|
X169750000Y-50800000D03*
|
||||||
%LPD*%
|
%LPD*%
|
||||||
M02*
|
M02*
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.3*
|
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.5*
|
||||||
G04 #@! TF.CreationDate,2024-06-05T14:32:50+02:00*
|
G04 #@! TF.CreationDate,2024-09-25T02:09:32+02:00*
|
||||||
G04 #@! TF.ProjectId,CanGrow,43616e47-726f-4772-9e6b-696361645f70,rev?*
|
G04 #@! TF.ProjectId,CanGrow,43616e47-726f-4772-9e6b-696361645f70,rev?*
|
||||||
G04 #@! TF.SameCoordinates,Original*
|
G04 #@! TF.SameCoordinates,Original*
|
||||||
G04 #@! TF.FileFunction,Profile,NP*
|
G04 #@! TF.FileFunction,Profile,NP*
|
||||||
%FSLAX46Y46*%
|
%FSLAX46Y46*%
|
||||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||||
G04 Created by KiCad (PCBNEW 8.0.3) date 2024-06-05 14:32:50*
|
G04 Created by KiCad (PCBNEW 8.0.5) date 2024-09-25 02:09:32*
|
||||||
%MOMM*%
|
%MOMM*%
|
||||||
%LPD*%
|
%LPD*%
|
||||||
G01*
|
G01*
|
||||||
|
@ -15,9 +15,9 @@ G04 #@! TA.AperFunction,Profile*
|
||||||
G04 #@! TD*
|
G04 #@! TD*
|
||||||
G04 APERTURE END LIST*
|
G04 APERTURE END LIST*
|
||||||
D10*
|
D10*
|
||||||
X83000000Y-22500000D02*
|
X83000000Y-18750000D02*
|
||||||
X207000000Y-22500000D01*
|
X207000000Y-18750000D01*
|
||||||
X207000000Y-117500000D01*
|
X207000000Y-121250000D01*
|
||||||
X83000000Y-117500000D01*
|
X83000000Y-121250000D01*
|
||||||
X83000000Y-22500000D01*
|
X83000000Y-18750000D01*
|
||||||
M02*
|
M02*
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.3*
|
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.5*
|
||||||
G04 #@! TF.CreationDate,2024-06-05T14:32:50+02:00*
|
G04 #@! TF.CreationDate,2024-09-25T02:09:32+02:00*
|
||||||
G04 #@! TF.ProjectId,CanGrow,43616e47-726f-4772-9e6b-696361645f70,rev?*
|
G04 #@! TF.ProjectId,CanGrow,43616e47-726f-4772-9e6b-696361645f70,rev?*
|
||||||
G04 #@! TF.SameCoordinates,Original*
|
G04 #@! TF.SameCoordinates,Original*
|
||||||
G04 #@! TF.FileFunction,Soldermask,Top*
|
G04 #@! TF.FileFunction,Soldermask,Top*
|
||||||
G04 #@! TF.FilePolarity,Negative*
|
G04 #@! TF.FilePolarity,Negative*
|
||||||
%FSLAX46Y46*%
|
%FSLAX46Y46*%
|
||||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||||
G04 Created by KiCad (PCBNEW 8.0.3) date 2024-06-05 14:32:50*
|
G04 Created by KiCad (PCBNEW 8.0.5) date 2024-09-25 02:09:32*
|
||||||
%MOMM*%
|
%MOMM*%
|
||||||
%LPD*%
|
%LPD*%
|
||||||
G01*
|
G01*
|
||||||
|
@ -31,321 +31,358 @@ G04 Aperture macros list*
|
||||||
G04 Aperture macros list end*
|
G04 Aperture macros list end*
|
||||||
%ADD10R,1.600000X1.600000*%
|
%ADD10R,1.600000X1.600000*%
|
||||||
%ADD11C,1.600000*%
|
%ADD11C,1.600000*%
|
||||||
%ADD12O,1.600000X1.600000*%
|
%ADD12R,1.800000X1.100000*%
|
||||||
%ADD13R,2.000000X1.905000*%
|
%ADD13RoundRect,0.275000X-0.625000X0.275000X-0.625000X-0.275000X0.625000X-0.275000X0.625000X0.275000X0*%
|
||||||
%ADD14O,2.000000X1.905000*%
|
%ADD14O,1.600000X1.600000*%
|
||||||
%ADD15RoundRect,0.250001X-0.799999X-0.799999X0.799999X-0.799999X0.799999X0.799999X-0.799999X0.799999X0*%
|
%ADD15R,2.000000X1.905000*%
|
||||||
%ADD16R,1.800000X1.800000*%
|
%ADD16O,2.000000X1.905000*%
|
||||||
%ADD17C,1.800000*%
|
%ADD17R,1.800000X1.800000*%
|
||||||
%ADD18RoundRect,1.500000X1.500000X1.500000X-1.500000X1.500000X-1.500000X-1.500000X1.500000X-1.500000X0*%
|
%ADD18C,1.800000*%
|
||||||
%ADD19C,6.000000*%
|
%ADD19RoundRect,1.500000X1.500000X1.500000X-1.500000X1.500000X-1.500000X-1.500000X1.500000X-1.500000X0*%
|
||||||
%ADD20C,5.600000*%
|
%ADD20C,6.000000*%
|
||||||
%ADD21O,1.800000X1.800000*%
|
%ADD21C,5.600000*%
|
||||||
%ADD22O,3.800000X8.000000*%
|
%ADD22O,1.800000X1.800000*%
|
||||||
%ADD23R,1.700000X1.700000*%
|
%ADD23O,3.800000X8.000000*%
|
||||||
%ADD24O,1.700000X1.700000*%
|
%ADD24R,1.700000X1.700000*%
|
||||||
%ADD25R,2.000000X2.000000*%
|
%ADD25O,1.700000X1.700000*%
|
||||||
%ADD26O,2.000000X1.600000*%
|
%ADD26R,2.000000X2.000000*%
|
||||||
%ADD27C,1.100000*%
|
%ADD27O,2.000000X1.600000*%
|
||||||
%ADD28R,1.730000X2.030000*%
|
%ADD28RoundRect,0.250000X-0.550000X-0.550000X0.550000X-0.550000X0.550000X0.550000X-0.550000X0.550000X0*%
|
||||||
%ADD29O,1.730000X2.030000*%
|
%ADD29RoundRect,0.275000X0.625000X-0.275000X0.625000X0.275000X-0.625000X0.275000X-0.625000X-0.275000X0*%
|
||||||
%ADD30RoundRect,0.250001X0.799999X0.799999X-0.799999X0.799999X-0.799999X-0.799999X0.799999X-0.799999X0*%
|
%ADD30C,1.100000*%
|
||||||
|
%ADD31R,1.730000X2.030000*%
|
||||||
|
%ADD32O,1.730000X2.030000*%
|
||||||
|
%ADD33RoundRect,0.250000X0.550000X0.550000X-0.550000X0.550000X-0.550000X-0.550000X0.550000X-0.550000X0*%
|
||||||
G04 APERTURE END LIST*
|
G04 APERTURE END LIST*
|
||||||
D10*
|
D10*
|
||||||
X101500000Y-90100000D03*
|
X156600000Y-108750000D03*
|
||||||
D11*
|
D11*
|
||||||
X104000000Y-90100000D03*
|
X156600000Y-111250000D03*
|
||||||
X103955112Y-94200000D03*
|
|
||||||
X101455112Y-94200000D03*
|
|
||||||
D10*
|
|
||||||
X153500000Y-111250000D03*
|
|
||||||
D11*
|
|
||||||
X153500000Y-108750000D03*
|
|
||||||
X123520000Y-88850000D03*
|
|
||||||
D12*
|
D12*
|
||||||
X133680000Y-88850000D03*
|
X127400000Y-42690000D03*
|
||||||
|
D13*
|
||||||
|
X129470000Y-43960000D03*
|
||||||
|
X127400000Y-45230000D03*
|
||||||
D11*
|
D11*
|
||||||
X117000000Y-42420000D03*
|
X117000000Y-42420000D03*
|
||||||
D12*
|
|
||||||
X106840000Y-42420000D03*
|
|
||||||
D13*
|
|
||||||
X138430000Y-83750000D03*
|
|
||||||
D14*
|
D14*
|
||||||
|
X106840000Y-42420000D03*
|
||||||
|
D15*
|
||||||
|
X138430000Y-83750000D03*
|
||||||
|
D16*
|
||||||
X138430000Y-81210000D03*
|
X138430000Y-81210000D03*
|
||||||
X138430000Y-78670000D03*
|
X138430000Y-78670000D03*
|
||||||
D13*
|
D15*
|
||||||
X129800000Y-35150000D03*
|
X129800000Y-35150000D03*
|
||||||
D14*
|
D16*
|
||||||
X129800000Y-32610000D03*
|
X129800000Y-32610000D03*
|
||||||
X129800000Y-30070000D03*
|
X129800000Y-30070000D03*
|
||||||
D11*
|
D11*
|
||||||
|
X139900000Y-53320000D03*
|
||||||
|
D14*
|
||||||
|
X139900000Y-63480000D03*
|
||||||
|
D10*
|
||||||
|
X130748000Y-108846000D03*
|
||||||
|
X130748000Y-111386000D03*
|
||||||
|
D14*
|
||||||
|
X130722600Y-100478000D03*
|
||||||
|
X130748000Y-97938000D03*
|
||||||
|
D10*
|
||||||
|
X149544000Y-108860000D03*
|
||||||
|
X149544000Y-111400000D03*
|
||||||
|
D14*
|
||||||
|
X149645600Y-100478000D03*
|
||||||
|
X149671000Y-97938000D03*
|
||||||
|
D11*
|
||||||
X177750000Y-92250000D03*
|
X177750000Y-92250000D03*
|
||||||
D12*
|
D14*
|
||||||
X187910000Y-92250000D03*
|
X187910000Y-92250000D03*
|
||||||
D15*
|
D17*
|
||||||
X153750000Y-68000000D03*
|
|
||||||
D11*
|
|
||||||
X106750000Y-72750000D03*
|
|
||||||
D12*
|
|
||||||
X116910000Y-72750000D03*
|
|
||||||
D11*
|
|
||||||
X142680000Y-60340000D03*
|
|
||||||
D12*
|
|
||||||
X142680000Y-70500000D03*
|
|
||||||
D16*
|
|
||||||
X122231000Y-81220000D03*
|
X122231000Y-81220000D03*
|
||||||
D17*
|
|
||||||
X122231000Y-83760000D03*
|
|
||||||
D18*
|
D18*
|
||||||
X113930000Y-59700000D03*
|
X122231000Y-83760000D03*
|
||||||
D19*
|
D19*
|
||||||
|
X113930000Y-59700000D03*
|
||||||
|
D20*
|
||||||
X106730000Y-59700000D03*
|
X106730000Y-59700000D03*
|
||||||
D16*
|
|
||||||
X122250000Y-102750000D03*
|
|
||||||
D17*
|
D17*
|
||||||
|
X122250000Y-102750000D03*
|
||||||
|
D18*
|
||||||
X122250000Y-105290000D03*
|
X122250000Y-105290000D03*
|
||||||
D11*
|
D11*
|
||||||
X195500000Y-29200000D03*
|
X195500000Y-29200000D03*
|
||||||
D12*
|
D14*
|
||||||
X185340000Y-29200000D03*
|
X185340000Y-29200000D03*
|
||||||
D20*
|
|
||||||
X87000000Y-26500000D03*
|
|
||||||
D11*
|
|
||||||
X116910000Y-69500000D03*
|
|
||||||
D12*
|
D12*
|
||||||
X106750000Y-69500000D03*
|
X127430000Y-91400000D03*
|
||||||
D16*
|
D13*
|
||||||
X106770000Y-87720000D03*
|
X129500000Y-92670000D03*
|
||||||
|
X127430000Y-93940000D03*
|
||||||
D21*
|
D21*
|
||||||
|
X87000000Y-22750000D03*
|
||||||
|
D11*
|
||||||
|
X116855000Y-69500000D03*
|
||||||
|
D14*
|
||||||
|
X106695000Y-69500000D03*
|
||||||
|
D17*
|
||||||
|
X106770000Y-87720000D03*
|
||||||
|
D22*
|
||||||
X116930000Y-87720000D03*
|
X116930000Y-87720000D03*
|
||||||
D11*
|
D11*
|
||||||
|
X133000000Y-94000000D03*
|
||||||
|
D14*
|
||||||
|
X133000000Y-83840000D03*
|
||||||
|
D11*
|
||||||
X195500000Y-52900000D03*
|
X195500000Y-52900000D03*
|
||||||
D12*
|
D14*
|
||||||
X185340000Y-52900000D03*
|
X185340000Y-52900000D03*
|
||||||
D11*
|
D11*
|
||||||
X198180000Y-71050000D03*
|
X198180000Y-71050000D03*
|
||||||
D12*
|
D14*
|
||||||
X188020000Y-71050000D03*
|
X188020000Y-71050000D03*
|
||||||
D20*
|
D21*
|
||||||
X203000000Y-26500000D03*
|
X203000000Y-22750000D03*
|
||||||
|
D11*
|
||||||
|
X139920000Y-66500000D03*
|
||||||
|
D14*
|
||||||
|
X150080000Y-66500000D03*
|
||||||
D11*
|
D11*
|
||||||
X116910000Y-100250000D03*
|
X116910000Y-100250000D03*
|
||||||
D12*
|
D14*
|
||||||
X106750000Y-100250000D03*
|
X106750000Y-100250000D03*
|
||||||
D22*
|
D11*
|
||||||
|
X153100000Y-78010000D03*
|
||||||
|
D14*
|
||||||
|
X153100000Y-67850000D03*
|
||||||
|
D12*
|
||||||
|
X121500000Y-69860000D03*
|
||||||
|
D13*
|
||||||
|
X123570000Y-71130000D03*
|
||||||
|
X121500000Y-72400000D03*
|
||||||
|
D12*
|
||||||
|
X127400000Y-69860000D03*
|
||||||
|
D13*
|
||||||
|
X129470000Y-71130000D03*
|
||||||
|
X127400000Y-72400000D03*
|
||||||
|
D23*
|
||||||
X96500000Y-97650000D03*
|
X96500000Y-97650000D03*
|
||||||
X96500000Y-106950000D03*
|
X96500000Y-106950000D03*
|
||||||
D23*
|
D24*
|
||||||
X195485000Y-60100000D03*
|
X195485000Y-60100000D03*
|
||||||
D24*
|
|
||||||
X192945000Y-60100000D03*
|
|
||||||
D18*
|
|
||||||
X113930000Y-81220000D03*
|
|
||||||
D19*
|
|
||||||
X106730000Y-81220000D03*
|
|
||||||
D25*
|
D25*
|
||||||
X150100000Y-31750000D03*
|
X192945000Y-60100000D03*
|
||||||
|
D19*
|
||||||
|
X113930000Y-81220000D03*
|
||||||
|
D20*
|
||||||
|
X106730000Y-81220000D03*
|
||||||
D26*
|
D26*
|
||||||
X150100000Y-34290000D03*
|
X150100000Y-27460000D03*
|
||||||
X150100000Y-36830000D03*
|
D27*
|
||||||
X150100000Y-39370000D03*
|
X150100000Y-30000000D03*
|
||||||
X150100000Y-41910000D03*
|
X150100000Y-32540000D03*
|
||||||
X150100000Y-44450000D03*
|
X150100000Y-35080000D03*
|
||||||
X150100000Y-46990000D03*
|
X150100000Y-37620000D03*
|
||||||
X150100000Y-49530000D03*
|
X150100000Y-40160000D03*
|
||||||
X172960000Y-49530000D03*
|
X150100000Y-42700000D03*
|
||||||
X172960000Y-46990000D03*
|
X150100000Y-45240000D03*
|
||||||
X172960000Y-44450000D03*
|
X172960000Y-45240000D03*
|
||||||
X172960000Y-41910000D03*
|
X172960000Y-42700000D03*
|
||||||
X172960000Y-39370000D03*
|
X172960000Y-40160000D03*
|
||||||
X172960000Y-36830000D03*
|
X172960000Y-37620000D03*
|
||||||
X172960000Y-34290000D03*
|
X172960000Y-35080000D03*
|
||||||
X172960000Y-31750000D03*
|
X172960000Y-32540000D03*
|
||||||
D23*
|
X172960000Y-30000000D03*
|
||||||
X195955000Y-77050000D03*
|
X172960000Y-27460000D03*
|
||||||
|
D24*
|
||||||
|
X195400000Y-77000000D03*
|
||||||
|
D25*
|
||||||
|
X192860000Y-77000000D03*
|
||||||
|
X190320000Y-77000000D03*
|
||||||
D24*
|
D24*
|
||||||
X193415000Y-77050000D03*
|
|
||||||
X190875000Y-77050000D03*
|
|
||||||
D23*
|
|
||||||
X195485000Y-38630000D03*
|
X195485000Y-38630000D03*
|
||||||
D24*
|
D25*
|
||||||
X192945000Y-38630000D03*
|
X192945000Y-38630000D03*
|
||||||
X190405000Y-38630000D03*
|
X190405000Y-38630000D03*
|
||||||
X187865000Y-38630000D03*
|
X187865000Y-38630000D03*
|
||||||
D15*
|
D28*
|
||||||
X136750000Y-52500000D03*
|
X131800000Y-50800000D03*
|
||||||
D16*
|
|
||||||
X174830000Y-82250000D03*
|
|
||||||
D21*
|
|
||||||
X174830000Y-92410000D03*
|
|
||||||
D16*
|
|
||||||
X122300000Y-32620000D03*
|
|
||||||
D17*
|
D17*
|
||||||
|
X174830000Y-82250000D03*
|
||||||
|
D22*
|
||||||
|
X174830000Y-92410000D03*
|
||||||
|
D17*
|
||||||
|
X122300000Y-32620000D03*
|
||||||
|
D18*
|
||||||
X122300000Y-35160000D03*
|
X122300000Y-35160000D03*
|
||||||
D23*
|
|
||||||
X172420000Y-99250000D03*
|
|
||||||
D24*
|
D24*
|
||||||
X174960000Y-99250000D03*
|
X195600000Y-99250000D03*
|
||||||
X177500000Y-99250000D03*
|
D25*
|
||||||
D10*
|
X193060000Y-99250000D03*
|
||||||
X138730000Y-70025000D03*
|
X190520000Y-99250000D03*
|
||||||
D12*
|
D11*
|
||||||
X138730000Y-67485000D03*
|
X101455112Y-94200000D03*
|
||||||
X131110000Y-67485000D03*
|
X103955112Y-94200000D03*
|
||||||
X131110000Y-70025000D03*
|
D24*
|
||||||
D23*
|
|
||||||
X195490000Y-47890000D03*
|
X195490000Y-47890000D03*
|
||||||
D24*
|
D25*
|
||||||
X192950000Y-47890000D03*
|
X192950000Y-47890000D03*
|
||||||
X190410000Y-47890000D03*
|
X190410000Y-47890000D03*
|
||||||
X187870000Y-47890000D03*
|
X187870000Y-47890000D03*
|
||||||
D23*
|
D11*
|
||||||
X195485000Y-33980000D03*
|
X133000000Y-45310000D03*
|
||||||
|
D14*
|
||||||
|
X133000000Y-35150000D03*
|
||||||
|
D12*
|
||||||
|
X138400000Y-45170000D03*
|
||||||
|
D29*
|
||||||
|
X136330000Y-43900000D03*
|
||||||
|
X138400000Y-42630000D03*
|
||||||
D24*
|
D24*
|
||||||
|
X195485000Y-33980000D03*
|
||||||
|
D25*
|
||||||
X192945000Y-33980000D03*
|
X192945000Y-33980000D03*
|
||||||
X190405000Y-33980000D03*
|
X190405000Y-33980000D03*
|
||||||
X187865000Y-33980000D03*
|
X187865000Y-33980000D03*
|
||||||
D11*
|
D28*
|
||||||
X142750000Y-33000000D03*
|
X156500000Y-67860000D03*
|
||||||
D12*
|
D23*
|
||||||
X142750000Y-43160000D03*
|
|
||||||
D15*
|
|
||||||
X157500000Y-68000000D03*
|
|
||||||
D10*
|
|
||||||
X138800000Y-42685000D03*
|
|
||||||
D12*
|
|
||||||
X138800000Y-40145000D03*
|
|
||||||
X131180000Y-40145000D03*
|
|
||||||
X131180000Y-42685000D03*
|
|
||||||
D22*
|
|
||||||
X96500000Y-42450000D03*
|
X96500000Y-42450000D03*
|
||||||
X96500000Y-33150000D03*
|
X96500000Y-33150000D03*
|
||||||
X96500000Y-64000000D03*
|
X96500000Y-64000000D03*
|
||||||
X96500000Y-54700000D03*
|
X96500000Y-54700000D03*
|
||||||
D13*
|
D15*
|
||||||
X129680000Y-62250000D03*
|
X129680000Y-62250000D03*
|
||||||
D14*
|
D16*
|
||||||
X129680000Y-59710000D03*
|
X129680000Y-59710000D03*
|
||||||
X129680000Y-57170000D03*
|
X129680000Y-57170000D03*
|
||||||
D10*
|
D28*
|
||||||
X143630000Y-91470000D03*
|
X188000000Y-67900000D03*
|
||||||
D12*
|
|
||||||
X143630000Y-88930000D03*
|
|
||||||
X136010000Y-88930000D03*
|
|
||||||
X136010000Y-91470000D03*
|
|
||||||
D15*
|
|
||||||
X193000000Y-65000000D03*
|
|
||||||
D11*
|
D11*
|
||||||
X187670000Y-88250000D03*
|
X187670000Y-88250000D03*
|
||||||
D12*
|
|
||||||
X197830000Y-88250000D03*
|
|
||||||
D10*
|
|
||||||
X119794888Y-54750000D03*
|
|
||||||
D11*
|
|
||||||
X122294888Y-54750000D03*
|
|
||||||
D13*
|
|
||||||
X129680000Y-83750000D03*
|
|
||||||
D14*
|
D14*
|
||||||
|
X197830000Y-88250000D03*
|
||||||
|
D11*
|
||||||
|
X102500000Y-66200000D03*
|
||||||
|
X102500000Y-68700000D03*
|
||||||
|
X116900000Y-95000000D03*
|
||||||
|
D14*
|
||||||
|
X106740000Y-95000000D03*
|
||||||
|
D10*
|
||||||
|
X101500000Y-90100000D03*
|
||||||
|
D11*
|
||||||
|
X104000000Y-90100000D03*
|
||||||
|
X133000000Y-72460000D03*
|
||||||
|
D14*
|
||||||
|
X133000000Y-62300000D03*
|
||||||
|
D15*
|
||||||
|
X129680000Y-83750000D03*
|
||||||
|
D16*
|
||||||
X129680000Y-81210000D03*
|
X129680000Y-81210000D03*
|
||||||
X129680000Y-78670000D03*
|
X129680000Y-78670000D03*
|
||||||
D10*
|
|
||||||
X128204000Y-108710000D03*
|
|
||||||
X128204000Y-111250000D03*
|
|
||||||
D12*
|
D12*
|
||||||
X128178600Y-100455000D03*
|
X138370000Y-72370000D03*
|
||||||
X128204000Y-97915000D03*
|
|
||||||
D10*
|
|
||||||
X147000000Y-108837000D03*
|
|
||||||
X147000000Y-111377000D03*
|
|
||||||
D12*
|
|
||||||
X147101600Y-100455000D03*
|
|
||||||
X147127000Y-97915000D03*
|
|
||||||
D16*
|
|
||||||
X106760000Y-66240000D03*
|
|
||||||
D21*
|
|
||||||
X116920000Y-66240000D03*
|
|
||||||
D20*
|
|
||||||
X87000000Y-113500000D03*
|
|
||||||
D27*
|
|
||||||
X108910000Y-48540000D03*
|
|
||||||
D28*
|
|
||||||
X103830000Y-50700000D03*
|
|
||||||
D29*
|
D29*
|
||||||
X106370000Y-50700000D03*
|
X136300000Y-71100000D03*
|
||||||
X108910000Y-50700000D03*
|
X138370000Y-69830000D03*
|
||||||
X111450000Y-50700000D03*
|
D17*
|
||||||
|
X106760000Y-66240000D03*
|
||||||
|
D22*
|
||||||
|
X116920000Y-66240000D03*
|
||||||
|
D21*
|
||||||
|
X87000000Y-117250000D03*
|
||||||
|
D11*
|
||||||
|
X146480000Y-32600000D03*
|
||||||
|
D14*
|
||||||
|
X136320000Y-32600000D03*
|
||||||
|
D30*
|
||||||
|
X108900000Y-48620000D03*
|
||||||
|
D31*
|
||||||
|
X103820000Y-50780000D03*
|
||||||
|
D32*
|
||||||
|
X106360000Y-50780000D03*
|
||||||
|
X108900000Y-50780000D03*
|
||||||
|
X111440000Y-50780000D03*
|
||||||
D11*
|
D11*
|
||||||
X181830000Y-85750000D03*
|
X181830000Y-85750000D03*
|
||||||
X181830000Y-88250000D03*
|
X181830000Y-88250000D03*
|
||||||
D10*
|
D10*
|
||||||
X122250000Y-111250000D03*
|
X123600000Y-108750000D03*
|
||||||
D11*
|
D11*
|
||||||
X122250000Y-108750000D03*
|
X123600000Y-111250000D03*
|
||||||
D16*
|
D17*
|
||||||
X106870000Y-39160000D03*
|
X106870000Y-39160000D03*
|
||||||
D21*
|
D22*
|
||||||
X117030000Y-39160000D03*
|
X117030000Y-39160000D03*
|
||||||
D23*
|
D11*
|
||||||
X195485000Y-43250000D03*
|
X136325000Y-39600000D03*
|
||||||
|
D14*
|
||||||
|
X146485000Y-39600000D03*
|
||||||
|
D11*
|
||||||
|
X117000000Y-46000000D03*
|
||||||
|
D14*
|
||||||
|
X106840000Y-46000000D03*
|
||||||
D24*
|
D24*
|
||||||
|
X195485000Y-43250000D03*
|
||||||
|
D25*
|
||||||
X192945000Y-43250000D03*
|
X192945000Y-43250000D03*
|
||||||
X190405000Y-43250000D03*
|
X190405000Y-43250000D03*
|
||||||
X187865000Y-43250000D03*
|
X187865000Y-43250000D03*
|
||||||
D18*
|
D11*
|
||||||
X113990000Y-108095000D03*
|
X116860000Y-73500000D03*
|
||||||
|
D14*
|
||||||
|
X106700000Y-73500000D03*
|
||||||
D19*
|
D19*
|
||||||
|
X113990000Y-108095000D03*
|
||||||
|
D20*
|
||||||
X106790000Y-108095000D03*
|
X106790000Y-108095000D03*
|
||||||
D11*
|
D11*
|
||||||
X116930000Y-90980000D03*
|
X116930000Y-90980000D03*
|
||||||
D12*
|
D14*
|
||||||
X106770000Y-90980000D03*
|
X106770000Y-90980000D03*
|
||||||
D16*
|
D17*
|
||||||
X170830000Y-82250000D03*
|
X170830000Y-82250000D03*
|
||||||
D21*
|
|
||||||
X170830000Y-92410000D03*
|
|
||||||
D22*
|
D22*
|
||||||
|
X170830000Y-92410000D03*
|
||||||
|
D23*
|
||||||
X96500000Y-85450000D03*
|
X96500000Y-85450000D03*
|
||||||
X96500000Y-76150000D03*
|
X96500000Y-76150000D03*
|
||||||
D11*
|
|
||||||
X123000000Y-48570000D03*
|
|
||||||
D12*
|
D12*
|
||||||
X123000000Y-38410000D03*
|
X121500000Y-42690000D03*
|
||||||
D18*
|
D13*
|
||||||
X114000000Y-32610000D03*
|
X123570000Y-43960000D03*
|
||||||
|
X121500000Y-45230000D03*
|
||||||
|
D12*
|
||||||
|
X138400000Y-93900000D03*
|
||||||
|
D29*
|
||||||
|
X136330000Y-92630000D03*
|
||||||
|
X138400000Y-91360000D03*
|
||||||
|
D12*
|
||||||
|
X121490000Y-91400000D03*
|
||||||
|
D13*
|
||||||
|
X123560000Y-92670000D03*
|
||||||
|
X121490000Y-93940000D03*
|
||||||
D19*
|
D19*
|
||||||
X106800000Y-32610000D03*
|
X114000000Y-32610000D03*
|
||||||
D11*
|
|
||||||
X106840000Y-45670000D03*
|
|
||||||
D12*
|
|
||||||
X117000000Y-45670000D03*
|
|
||||||
D11*
|
|
||||||
X106770000Y-94230000D03*
|
|
||||||
D12*
|
|
||||||
X116930000Y-94230000D03*
|
|
||||||
D20*
|
D20*
|
||||||
X203000000Y-113500000D03*
|
X106800000Y-32610000D03*
|
||||||
D23*
|
D21*
|
||||||
X177250000Y-47250000D03*
|
X203000000Y-117250000D03*
|
||||||
D24*
|
D24*
|
||||||
X177250000Y-44710000D03*
|
X177250000Y-42790000D03*
|
||||||
|
D25*
|
||||||
|
X177250000Y-40250000D03*
|
||||||
D11*
|
D11*
|
||||||
X122930000Y-75660000D03*
|
X144200000Y-74300000D03*
|
||||||
D12*
|
D14*
|
||||||
X122930000Y-65500000D03*
|
X144200000Y-84460000D03*
|
||||||
D11*
|
|
||||||
X147430000Y-81890000D03*
|
|
||||||
D12*
|
|
||||||
X147430000Y-92050000D03*
|
|
||||||
D15*
|
|
||||||
X158500000Y-111250000D03*
|
|
||||||
D16*
|
|
||||||
X122230000Y-59710000D03*
|
|
||||||
D17*
|
D17*
|
||||||
|
X122230000Y-59710000D03*
|
||||||
|
D18*
|
||||||
X122230000Y-62250000D03*
|
X122230000Y-62250000D03*
|
||||||
D11*
|
D11*
|
||||||
X197830000Y-84250000D03*
|
X197830000Y-84250000D03*
|
||||||
D12*
|
D14*
|
||||||
X187670000Y-84250000D03*
|
X187670000Y-84250000D03*
|
||||||
D30*
|
D33*
|
||||||
X169750000Y-52500000D03*
|
X169750000Y-50800000D03*
|
||||||
M02*
|
M02*
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.3*
|
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.5*
|
||||||
G04 #@! TF.CreationDate,2024-06-05T14:32:50+02:00*
|
G04 #@! TF.CreationDate,2024-09-25T02:09:32+02:00*
|
||||||
G04 #@! TF.ProjectId,CanGrow,43616e47-726f-4772-9e6b-696361645f70,rev?*
|
G04 #@! TF.ProjectId,CanGrow,43616e47-726f-4772-9e6b-696361645f70,rev?*
|
||||||
G04 #@! TF.SameCoordinates,Original*
|
G04 #@! TF.SameCoordinates,Original*
|
||||||
G04 #@! TF.FileFunction,Paste,Top*
|
G04 #@! TF.FileFunction,Paste,Top*
|
||||||
G04 #@! TF.FilePolarity,Positive*
|
G04 #@! TF.FilePolarity,Positive*
|
||||||
%FSLAX46Y46*%
|
%FSLAX46Y46*%
|
||||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||||
G04 Created by KiCad (PCBNEW 8.0.3) date 2024-06-05 14:32:50*
|
G04 Created by KiCad (PCBNEW 8.0.5) date 2024-09-25 02:09:32*
|
||||||
%MOMM*%
|
%MOMM*%
|
||||||
%LPD*%
|
%LPD*%
|
||||||
G01*
|
G01*
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
M48
|
M48
|
||||||
; DRILL file {KiCad 8.0.3} date 2024-06-05T14:32:52+0200
|
; DRILL file {KiCad 8.0.5} date 2024-09-25T02:09:34+0200
|
||||||
; FORMAT={-:-/ absolute / metric / decimal}
|
; FORMAT={-:-/ absolute / metric / decimal}
|
||||||
; #@! TF.CreationDate,2024-06-05T14:32:52+02:00
|
; #@! TF.CreationDate,2024-09-25T02:09:34+02:00
|
||||||
; #@! TF.GenerationSoftware,Kicad,Pcbnew,8.0.3
|
; #@! TF.GenerationSoftware,Kicad,Pcbnew,8.0.5
|
||||||
; #@! TF.FileFunction,NonPlated,1,2,NPTH
|
; #@! TF.FileFunction,NonPlated,1,2,NPTH
|
||||||
FMAT,2
|
FMAT,2
|
||||||
METRIC
|
METRIC
|
||||||
|
@ -12,5 +12,5 @@ T1C1.100
|
||||||
G90
|
G90
|
||||||
G05
|
G05
|
||||||
T1
|
T1
|
||||||
X108.91Y-48.54
|
X108.9Y-48.62
|
||||||
M30
|
M30
|
||||||
|
|
|
@ -1,87 +1,114 @@
|
||||||
M48
|
M48
|
||||||
; DRILL file {KiCad 8.0.3} date 2024-06-05T14:32:52+0200
|
; DRILL file {KiCad 8.0.5} date 2024-09-25T02:09:34+0200
|
||||||
; FORMAT={-:-/ absolute / metric / decimal}
|
; FORMAT={-:-/ absolute / metric / decimal}
|
||||||
; #@! TF.CreationDate,2024-06-05T14:32:52+02:00
|
; #@! TF.CreationDate,2024-09-25T02:09:34+02:00
|
||||||
; #@! TF.GenerationSoftware,Kicad,Pcbnew,8.0.3
|
; #@! TF.GenerationSoftware,Kicad,Pcbnew,8.0.5
|
||||||
; #@! TF.FileFunction,Plated,1,2,PTH
|
; #@! TF.FileFunction,Plated,1,2,PTH
|
||||||
FMAT,2
|
FMAT,2
|
||||||
METRIC
|
METRIC
|
||||||
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
|
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
|
||||||
T1C0.800
|
T1C0.750
|
||||||
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
|
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
|
||||||
T2C0.900
|
T2C0.800
|
||||||
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
|
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
|
||||||
T3C1.000
|
T3C0.900
|
||||||
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
|
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
|
||||||
T4C1.020
|
T4C1.000
|
||||||
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
|
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
|
||||||
T5C1.100
|
T5C1.020
|
||||||
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
|
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
|
||||||
T6C2.000
|
T6C1.100
|
||||||
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
|
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
|
||||||
T7C3.200
|
T7C2.000
|
||||||
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
|
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
|
||||||
T8C4.500
|
T8C3.200
|
||||||
|
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
|
||||||
|
T9C4.500
|
||||||
%
|
%
|
||||||
G90
|
G90
|
||||||
G05
|
G05
|
||||||
T1
|
T1
|
||||||
|
X121.89Y-91.4
|
||||||
|
X121.89Y-93.94
|
||||||
|
X121.9Y-42.69
|
||||||
|
X121.9Y-45.23
|
||||||
|
X121.9Y-69.86
|
||||||
|
X121.9Y-72.4
|
||||||
|
X123.16Y-92.67
|
||||||
|
X123.17Y-43.96
|
||||||
|
X123.17Y-71.13
|
||||||
|
X127.8Y-42.69
|
||||||
|
X127.8Y-45.23
|
||||||
|
X127.8Y-69.86
|
||||||
|
X127.8Y-72.4
|
||||||
|
X127.83Y-91.4
|
||||||
|
X127.83Y-93.94
|
||||||
|
X129.07Y-43.96
|
||||||
|
X129.07Y-71.13
|
||||||
|
X129.1Y-92.67
|
||||||
|
X136.7Y-71.1
|
||||||
|
X136.73Y-43.9
|
||||||
|
X136.73Y-92.63
|
||||||
|
X137.97Y-69.83
|
||||||
|
X137.97Y-72.37
|
||||||
|
X138.0Y-42.63
|
||||||
|
X138.0Y-45.17
|
||||||
|
X138.0Y-91.36
|
||||||
|
X138.0Y-93.9
|
||||||
|
T2
|
||||||
X101.455Y-94.2
|
X101.455Y-94.2
|
||||||
X101.5Y-90.1
|
X101.5Y-90.1
|
||||||
|
X102.5Y-66.2
|
||||||
|
X102.5Y-68.7
|
||||||
X103.955Y-94.2
|
X103.955Y-94.2
|
||||||
X104.0Y-90.1
|
X104.0Y-90.1
|
||||||
X106.75Y-69.5
|
X106.695Y-69.5
|
||||||
X106.75Y-72.75
|
X106.7Y-73.5
|
||||||
|
X106.74Y-95.0
|
||||||
X106.75Y-100.25
|
X106.75Y-100.25
|
||||||
X106.77Y-90.98
|
X106.77Y-90.98
|
||||||
X106.77Y-94.23
|
|
||||||
X106.84Y-42.42
|
X106.84Y-42.42
|
||||||
X106.84Y-45.67
|
X106.84Y-46.0
|
||||||
X116.91Y-69.5
|
X116.855Y-69.5
|
||||||
X116.91Y-72.75
|
X116.86Y-73.5
|
||||||
|
X116.9Y-95.0
|
||||||
X116.91Y-100.25
|
X116.91Y-100.25
|
||||||
X116.93Y-90.98
|
X116.93Y-90.98
|
||||||
X116.93Y-94.23
|
|
||||||
X117.0Y-42.42
|
X117.0Y-42.42
|
||||||
X117.0Y-45.67
|
X117.0Y-46.0
|
||||||
X119.795Y-54.75
|
X123.6Y-108.75
|
||||||
X122.25Y-108.75
|
X123.6Y-111.25
|
||||||
X122.25Y-111.25
|
X130.723Y-100.478
|
||||||
X122.295Y-54.75
|
X130.748Y-97.938
|
||||||
X122.93Y-65.5
|
X130.748Y-108.846
|
||||||
X122.93Y-75.66
|
X130.748Y-111.386
|
||||||
X123.0Y-38.41
|
X131.8Y-50.8
|
||||||
X123.0Y-48.57
|
X133.0Y-35.15
|
||||||
X123.52Y-88.85
|
X133.0Y-45.31
|
||||||
X128.179Y-100.455
|
X133.0Y-62.3
|
||||||
X128.204Y-97.915
|
X133.0Y-72.46
|
||||||
X128.204Y-108.71
|
X133.0Y-83.84
|
||||||
X128.204Y-111.25
|
X133.0Y-94.0
|
||||||
X131.11Y-67.485
|
X136.32Y-32.6
|
||||||
X131.11Y-70.025
|
X136.325Y-39.6
|
||||||
X131.18Y-40.145
|
X139.9Y-53.32
|
||||||
X131.18Y-42.685
|
X139.9Y-63.48
|
||||||
X133.68Y-88.85
|
X139.92Y-66.5
|
||||||
X136.01Y-88.93
|
X144.2Y-74.3
|
||||||
X136.01Y-91.47
|
X144.2Y-84.46
|
||||||
X138.73Y-67.485
|
X146.48Y-32.6
|
||||||
X138.73Y-70.025
|
X146.485Y-39.6
|
||||||
X138.8Y-40.145
|
X149.544Y-108.86
|
||||||
X138.8Y-42.685
|
X149.544Y-111.4
|
||||||
X142.68Y-60.34
|
X149.646Y-100.478
|
||||||
X142.68Y-70.5
|
X149.671Y-97.938
|
||||||
X142.75Y-33.0
|
X150.08Y-66.5
|
||||||
X142.75Y-43.16
|
X153.1Y-67.85
|
||||||
X143.63Y-88.93
|
X153.1Y-78.01
|
||||||
X143.63Y-91.47
|
X156.5Y-67.86
|
||||||
X147.0Y-108.837
|
X156.6Y-108.75
|
||||||
X147.0Y-111.377
|
X156.6Y-111.25
|
||||||
X147.102Y-100.455
|
X169.75Y-50.8
|
||||||
X147.127Y-97.915
|
|
||||||
X147.43Y-81.89
|
|
||||||
X147.43Y-92.05
|
|
||||||
X153.5Y-108.75
|
|
||||||
X153.5Y-111.25
|
|
||||||
X177.75Y-92.25
|
X177.75Y-92.25
|
||||||
X181.83Y-85.75
|
X181.83Y-85.75
|
||||||
X181.83Y-88.25
|
X181.83Y-88.25
|
||||||
|
@ -90,13 +117,14 @@ X185.34Y-52.9
|
||||||
X187.67Y-84.25
|
X187.67Y-84.25
|
||||||
X187.67Y-88.25
|
X187.67Y-88.25
|
||||||
X187.91Y-92.25
|
X187.91Y-92.25
|
||||||
|
X188.0Y-67.9
|
||||||
X188.02Y-71.05
|
X188.02Y-71.05
|
||||||
X195.5Y-29.2
|
X195.5Y-29.2
|
||||||
X195.5Y-52.9
|
X195.5Y-52.9
|
||||||
X197.83Y-84.25
|
X197.83Y-84.25
|
||||||
X197.83Y-88.25
|
X197.83Y-88.25
|
||||||
X198.18Y-71.05
|
X198.18Y-71.05
|
||||||
T2
|
T3
|
||||||
X106.76Y-66.24
|
X106.76Y-66.24
|
||||||
X106.77Y-87.72
|
X106.77Y-87.72
|
||||||
X106.87Y-39.16
|
X106.87Y-39.16
|
||||||
|
@ -115,55 +143,55 @@ X170.83Y-82.25
|
||||||
X170.83Y-92.41
|
X170.83Y-92.41
|
||||||
X174.83Y-82.25
|
X174.83Y-82.25
|
||||||
X174.83Y-92.41
|
X174.83Y-92.41
|
||||||
T3
|
T4
|
||||||
X150.1Y-31.75
|
X150.1Y-27.46
|
||||||
X150.1Y-34.29
|
X150.1Y-30.0
|
||||||
X150.1Y-36.83
|
X150.1Y-32.54
|
||||||
X150.1Y-39.37
|
X150.1Y-35.08
|
||||||
X150.1Y-41.91
|
X150.1Y-37.62
|
||||||
X150.1Y-44.45
|
X150.1Y-40.16
|
||||||
X150.1Y-46.99
|
X150.1Y-42.7
|
||||||
X150.1Y-49.53
|
X150.1Y-45.24
|
||||||
X172.42Y-99.25
|
X172.96Y-27.46
|
||||||
X172.96Y-31.75
|
X172.96Y-30.0
|
||||||
X172.96Y-34.29
|
X172.96Y-32.54
|
||||||
X172.96Y-36.83
|
X172.96Y-35.08
|
||||||
X172.96Y-39.37
|
X172.96Y-37.62
|
||||||
X172.96Y-41.91
|
X172.96Y-40.16
|
||||||
X172.96Y-44.45
|
X172.96Y-42.7
|
||||||
X172.96Y-46.99
|
X172.96Y-45.24
|
||||||
X172.96Y-49.53
|
X177.25Y-40.25
|
||||||
X174.96Y-99.25
|
X177.25Y-42.79
|
||||||
X177.25Y-44.71
|
|
||||||
X177.25Y-47.25
|
|
||||||
X177.5Y-99.25
|
|
||||||
X187.865Y-33.98
|
X187.865Y-33.98
|
||||||
X187.865Y-38.63
|
X187.865Y-38.63
|
||||||
X187.865Y-43.25
|
X187.865Y-43.25
|
||||||
X187.87Y-47.89
|
X187.87Y-47.89
|
||||||
|
X190.32Y-77.0
|
||||||
X190.405Y-33.98
|
X190.405Y-33.98
|
||||||
X190.405Y-38.63
|
X190.405Y-38.63
|
||||||
X190.405Y-43.25
|
X190.405Y-43.25
|
||||||
X190.41Y-47.89
|
X190.41Y-47.89
|
||||||
X190.875Y-77.05
|
X190.52Y-99.25
|
||||||
|
X192.86Y-77.0
|
||||||
X192.945Y-33.98
|
X192.945Y-33.98
|
||||||
X192.945Y-38.63
|
X192.945Y-38.63
|
||||||
X192.945Y-43.25
|
X192.945Y-43.25
|
||||||
X192.945Y-60.1
|
X192.945Y-60.1
|
||||||
X192.95Y-47.89
|
X192.95Y-47.89
|
||||||
X193.415Y-77.05
|
X193.06Y-99.25
|
||||||
|
X195.4Y-77.0
|
||||||
X195.485Y-33.98
|
X195.485Y-33.98
|
||||||
X195.485Y-38.63
|
X195.485Y-38.63
|
||||||
X195.485Y-43.25
|
X195.485Y-43.25
|
||||||
X195.485Y-60.1
|
X195.485Y-60.1
|
||||||
X195.49Y-47.89
|
X195.49Y-47.89
|
||||||
X195.955Y-77.05
|
X195.6Y-99.25
|
||||||
T4
|
|
||||||
X103.83Y-50.7
|
|
||||||
X106.37Y-50.7
|
|
||||||
X108.91Y-50.7
|
|
||||||
X111.45Y-50.7
|
|
||||||
T5
|
T5
|
||||||
|
X103.82Y-50.78
|
||||||
|
X106.36Y-50.78
|
||||||
|
X108.9Y-50.78
|
||||||
|
X111.44Y-50.78
|
||||||
|
T6
|
||||||
X129.68Y-57.17
|
X129.68Y-57.17
|
||||||
X129.68Y-59.71
|
X129.68Y-59.71
|
||||||
X129.68Y-62.25
|
X129.68Y-62.25
|
||||||
|
@ -173,21 +201,15 @@ X129.68Y-83.75
|
||||||
X129.8Y-30.07
|
X129.8Y-30.07
|
||||||
X129.8Y-32.61
|
X129.8Y-32.61
|
||||||
X129.8Y-35.15
|
X129.8Y-35.15
|
||||||
X136.75Y-52.5
|
|
||||||
X138.43Y-78.67
|
X138.43Y-78.67
|
||||||
X138.43Y-81.21
|
X138.43Y-81.21
|
||||||
X138.43Y-83.75
|
X138.43Y-83.75
|
||||||
X153.75Y-68.0
|
|
||||||
X157.5Y-68.0
|
|
||||||
X158.5Y-111.25
|
|
||||||
X169.75Y-52.5
|
|
||||||
X193.0Y-65.0
|
|
||||||
T7
|
|
||||||
X87.0Y-26.5
|
|
||||||
X87.0Y-113.5
|
|
||||||
X203.0Y-26.5
|
|
||||||
X203.0Y-113.5
|
|
||||||
T8
|
T8
|
||||||
|
X87.0Y-22.75
|
||||||
|
X87.0Y-117.25
|
||||||
|
X203.0Y-22.75
|
||||||
|
X203.0Y-117.25
|
||||||
|
T9
|
||||||
X106.73Y-59.7
|
X106.73Y-59.7
|
||||||
X106.73Y-81.22
|
X106.73Y-81.22
|
||||||
X106.79Y-108.095
|
X106.79Y-108.095
|
||||||
|
@ -196,7 +218,7 @@ X113.93Y-59.7
|
||||||
X113.93Y-81.22
|
X113.93Y-81.22
|
||||||
X113.99Y-108.095
|
X113.99Y-108.095
|
||||||
X114.0Y-32.61
|
X114.0Y-32.61
|
||||||
T6
|
T7
|
||||||
X96.5Y-35.15G85X96.5Y-31.15
|
X96.5Y-35.15G85X96.5Y-31.15
|
||||||
G05
|
G05
|
||||||
X96.5Y-44.45G85X96.5Y-40.45
|
X96.5Y-44.45G85X96.5Y-40.45
|
||||||
|
|
BIN
Logo/CanGrow_favico_large.png
Normal file
After Width: | Height: | Size: 814 B |
BIN
Logo/CanGrow_favico_large.xcf
Normal file
67
README.md
|
@ -4,25 +4,63 @@
|
||||||
![CanGrowLogo](Logo/CanGrow_Logo.png)
|
![CanGrowLogo](Logo/CanGrow_Logo.png)
|
||||||
|
|
||||||
|
|
||||||
A simple DIY plant growing system (for cannabis).
|
An easy to use DIY grow controller firmware (for cannabis).
|
||||||
|
|
||||||
![CanGrow_PCB_Front.png](KiCad/CanGrow/CanGrow_PCB_Front_small.png)
|
|
||||||
![Screenshot_WebUI_root.png](Arduino/CanGrow/Screenshot_WebUI_root.png)
|
![Screenshot_WebUI_root.png](Arduino/CanGrow/Screenshot_WebUI_root.png)
|
||||||
|
![CanGrow_PCB_Front.png](KiCad/CanGrow/CanGrow_PCB_Front_small.png)
|
||||||
|
|
||||||
# WORK IN PROGRESS
|
# WORK IN PROGRESS
|
||||||
|
|
||||||
## Motivation
|
## Motivation
|
||||||
|
I havn't found an already existing grow controller project within the ESP / Arduino Core eco system which
|
||||||
|
met my personal requirements.
|
||||||
|
Those are an easy DIY, using low cost parts, Arduino Core sourcecode to hack own things together, having a WebUI, grab some Metrics for monitoring, standalone and my very special need that the Hardware should run completely with 12V.
|
||||||
|
|
||||||
I want to build a simple grow system, which I can power by my off-grid
|
### Update 14.09.2024 - Code Rewrite v0.2
|
||||||
12V solar system. So this project is limited to a small 40x40x120 tent
|
|
||||||
for one plant with a 50W 12V grow LED light.
|
|
||||||
|
|
||||||
As I did it for my solar system, the measurements of this project will be shown
|
I took some "summer break" from the project, and had the opportunity to talk to different people about it.
|
||||||
on my website. For that a REST API is planned.
|
My conclusion at this point is, that the focus of this project is not the Hardware, it came out that it should be the software.
|
||||||
|
So I decided to completely rewrite the code from 0 - with recycling some parts of it.
|
||||||
|
Goal of the Rewrite is that the Firmware becomes more independent of the hardware used. It has to support both ESP8266 and ESP32
|
||||||
|
and let the user decide at which pin which output, sensor or whatever will be connected to. Like done in the [Tasmota](https://github.com/arendst/Tasmota) Firmware, I also want to support "Hardware Templates" which come with presets for PCBs like the one I created.
|
||||||
|
|
||||||
I want to automate as much as possible which makes sense and is easy to build.
|
**Checklist for v0.2 Firmware**
|
||||||
|
- Support ESP8266 and ESP32
|
||||||
|
- AsyncWebserver instead ESP8266Webserver
|
||||||
|
- LittleFS instead of EEPROM()
|
||||||
|
- deliver static HTML, dynamic Stuff with Javascript
|
||||||
|
- (or is there a better way? please tell me!)
|
||||||
|
- Free configurable outputs
|
||||||
|
- Main outputs for Light, Air, Water
|
||||||
|
- Support for Tasmota Wifi Plugs (and others?)
|
||||||
|
- No Limitation for Amount of outputs
|
||||||
|
- Light
|
||||||
|
- support for I2C 0-10V Dimm control
|
||||||
|
- PWM dimm control
|
||||||
|
- Air
|
||||||
|
- support for I2C 0-10V Dimm control
|
||||||
|
- PWM dimm control
|
||||||
|
- Support for humidifier, heater (, CO2?)
|
||||||
|
- Read Fan RPM
|
||||||
|
- Water
|
||||||
|
- Usual watering
|
||||||
|
- Pump for fertilizer
|
||||||
|
- Free configurable Inputs
|
||||||
|
- Support for various I2C devices
|
||||||
|
- All kind of sensors for Temp, Humidity, Moisture, and so on
|
||||||
|
- Support for ADCs to connect multiple analoge sensors
|
||||||
|
- Support for Analog inputs
|
||||||
|
- onboard ones or I2C (ADC)
|
||||||
|
- Analog Multiplexer support (like CD4051)
|
||||||
|
- Calibrate sensors
|
||||||
|
- define 0% and 100% values
|
||||||
|
- Offsets
|
||||||
|
- MQTT support
|
||||||
|
- API
|
||||||
|
|
||||||
## Features / ToDo List
|
|
||||||
|
|
||||||
|
## Old v0.1 Features / ToDo List
|
||||||
|
|
||||||
- Measure values :white_check_mark:
|
- Measure values :white_check_mark:
|
||||||
- Humidity :white_check_mark:
|
- Humidity :white_check_mark:
|
||||||
|
@ -54,14 +92,3 @@ I want to automate as much as possible which makes sense and is easy to build.
|
||||||
- low cost as possible! :white_check_mark:
|
- low cost as possible! :white_check_mark:
|
||||||
|
|
||||||
:white_check_mark: Done - :large_blue_circle: In Progress - :red_circle: ToDo
|
:white_check_mark: Done - :large_blue_circle: In Progress - :red_circle: ToDo
|
||||||
|
|
||||||
## Parts used
|
|
||||||
|
|
||||||
- ESP8266 D1 mini
|
|
||||||
- BME280 humidity and temp sensor
|
|
||||||
- I2C soil moisture sensor: https://github.com/Miceuz/i2c-moisture-sensor / https://eu.robotshop.com/de/products/i2c-soil-moisture-sensor
|
|
||||||
- cheap capacitive soilmoisture sensor: https://www.az-delivery.de/products/bodenfeuchte-sensor-modul-v1-2
|
|
||||||
|
|
||||||
- 50W LED 12V full spectrum grow light: https://www.ebay.de/itm/354322466159
|
|
||||||
- MOSFETS (some i have fyling around, IRFZ44, IRF3205, IRF3710, BUZZ11...)
|
|
||||||
- 12V 4W water pump set https://www.ebay.de/itm/394413649692
|
|
||||||
|
|
3
arduino-cli.yml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
board_manager:
|
||||||
|
additional_urls:
|
||||||
|
- http://arduino.esp8266.com/stable/package_esp8266com_index.json
|
79
cangrow.sh
|
@ -4,39 +4,98 @@
|
||||||
test -z $TTY && TTY="/dev/ttyUSB0"
|
test -z $TTY && TTY="/dev/ttyUSB0"
|
||||||
test -z $IP && IP="192.168.30.212"
|
test -z $IP && IP="192.168.30.212"
|
||||||
test -z $VER && VER="0.1-dev"
|
test -z $VER && VER="0.1-dev"
|
||||||
BUILD="$(git rev-parse --short HEAD)"
|
BUILD="$(git rev-parse --short HEAD)-$(date '+%Y%m%d%H%M%S')"
|
||||||
|
|
||||||
|
ACLI="$HOME/.local/bin/arduino-cli"
|
||||||
|
ACLI_CMD="$ACLI --config-file arduino-cli.yml"
|
||||||
|
BOARD="esp8266:esp8266:d1_mini_clone"
|
||||||
|
|
||||||
function help() {
|
function help() {
|
||||||
echo "$0 [build|upload|webupload|monitor]"
|
echo "$0 [setup|build|upload|webupload|monitor]"
|
||||||
|
echo "setup: setup build environment, download arduino-cli, install all dependencies for arduino ide"
|
||||||
|
echo "build: build firmware binary. will be saved into build/"
|
||||||
|
echo "upload: upload firmware by serial connection $TTY"
|
||||||
|
echo "webupload: upload firmware with webupload to $IP"
|
||||||
|
echo "monitor: serial monitor $TTY"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function check_acli() {
|
||||||
|
if [ ! -x $ACLI ]
|
||||||
|
then
|
||||||
|
echo "$ACLI does not exist nor is executable. Please run '$0 setup' first"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
test -z $1 && help
|
test -z $1 && help
|
||||||
|
|
||||||
case $1 in
|
case $1 in
|
||||||
|
s|setup)
|
||||||
|
ACLI_DIR="$(dirname $ACLI)"
|
||||||
|
declare -a LIBS=( "Adafruit SSD1306" "Adafruit BME280 Library" "ArduinoJson" "NTPClient" "Time" )
|
||||||
|
echo ":: Setting up build environment for CanGrow Firmware."
|
||||||
|
echo " This will download the binary for arduino-cli and install"
|
||||||
|
echo " the packages for the arduino ide from the debian repository."
|
||||||
|
echo " !! This script is meant to be executed on a Debian stable (bookworm) system !!"
|
||||||
|
echo ""
|
||||||
|
echo ":: Press Enter to continue"
|
||||||
|
read
|
||||||
|
echo ""
|
||||||
|
echo ":: Installing Arduino IDE packages with apt, please enter sudo password:"
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install arduino python3 wget curl xxd
|
||||||
|
echo ":: Ensure directory ${ACLI_DIR} is present"
|
||||||
|
test -d ${ACLI_DIR} || mkdir -p ${ACLI_DIR}
|
||||||
|
echo ":: Please ensure ${ACLI_DIR} is in your \$PATH, I wont do it."
|
||||||
|
echo ""
|
||||||
|
echo ":: Downloading arduino-cli 1.0.0 into ${ACLI_DIR}/"
|
||||||
|
wget -O - "https://github.com/arduino/arduino-cli/releases/download/v1.0.0/arduino-cli_1.0.0_Linux_64bit.tar.gz" | tar -C ${ACLI_DIR} -zxvf - arduino-cli
|
||||||
|
chmod +x ${ACLI}
|
||||||
|
echo ""
|
||||||
|
echo ":: Installing ESP8266 core for Arduino"
|
||||||
|
${ACLI_CMD} core install esp8266:esp8266
|
||||||
|
echo ":: Installing Arduino libraries"
|
||||||
|
for lib in ${!LIBS[@]}
|
||||||
|
do
|
||||||
|
echo " - ${LIBS[$lib]}"
|
||||||
|
done
|
||||||
|
|
||||||
|
for lib in ${!LIBS[@]}
|
||||||
|
do
|
||||||
|
${ACLI_CMD} lib install "${LIBS[$lib]}"
|
||||||
|
done
|
||||||
|
echo ""
|
||||||
|
echo ":: Setup build environment done! You can now build the firmware"
|
||||||
|
echo " with: $0 build"
|
||||||
|
|
||||||
|
;;
|
||||||
b|build)
|
b|build)
|
||||||
echo "building firmware $VER $BUILD, target dir: $(pwd)/build/"
|
check_acli
|
||||||
|
echo ":: Building firmware $VER $BUILD, target dir: $(pwd)/build/"
|
||||||
test -d build || mkdir build
|
test -d build || mkdir build
|
||||||
echo "/* CanGrow_Version.h gets generated from cangrow.sh */
|
echo "/* CanGrow_Version.h gets generated from cangrow.sh */
|
||||||
|
|
||||||
const char* CanGrowVer = \"${VER}\";
|
const char* CanGrowVer = \"${VER}\";
|
||||||
const char* CanGrowBuild = \"${BUILD}\";
|
const char* CanGrowBuild = \"${BUILD}\";
|
||||||
" > Arduino/CanGrow/CanGrow_Version.h
|
" > Arduino/CanGrow/CanGrow_Version.h
|
||||||
~/.local/bin/arduino-cli --no-color compile -b esp8266:esp8266:d1_mini_clone "Arduino/CanGrow/CanGrow.ino" --output-dir build/ || exit 1
|
${ACLI_CMD} --no-color compile -b ${BOARD} "Arduino/CanGrow/CanGrow.ino" --output-dir build/ || exit 1
|
||||||
cp build/CanGrow.ino.bin build/CanGrow_v${VER}_${BUILD}.bin
|
cp build/CanGrow.ino.bin build/CanGrow_v${VER}_${BUILD}.bin
|
||||||
;;
|
;;
|
||||||
u|upload)
|
u|upload)
|
||||||
echo "uploading to $TTY"
|
check_acli
|
||||||
~/.local/bin/arduino-cli --no-color compile -v -b esp8266:esp8266:d1_mini_clone -u -p $TTY "Arduino/CanGrow/CanGrow.ino"
|
echo ":: Uploading to $TTY"
|
||||||
|
${ACLI_CMD} --no-color compile -v -b ${BOARD} -u -p $TTY "Arduino/CanGrow/CanGrow.ino"
|
||||||
;;
|
;;
|
||||||
w|webupload)
|
w|webupload)
|
||||||
echo "uploading to $IP"
|
echo ":: Uploading to $IP"
|
||||||
curl -v http://$IP/system/applyUpdate -X POST -H 'Content-Type: multipart/form-data' -F "image=@$(pwd)/build/CanGrow.ino.bin"
|
curl -v http://$IP/system/applyUpdate -X POST -H 'Content-Type: multipart/form-data' -F "firmware=@$(pwd)/build/CanGrow.ino.bin"
|
||||||
echo
|
echo
|
||||||
;;
|
;;
|
||||||
m|mon|monitor)
|
m|mon|monitor)
|
||||||
echo "open monitor $TTY"
|
check_acli
|
||||||
~/.local/bin/arduino-cli monitor -c baudrate=115200 -p $TTY
|
echo ":: Open serial monitor $TTY"
|
||||||
|
${ACLI_CMD} monitor -c baudrate=115200 -b ${BOARD} -p $TTY
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
help
|
help
|
||||||
|
|