Compare commits

..

No commits in common. "main" and "firmware-0.1-dev" have entirely different histories.

36 changed files with 46711 additions and 51817 deletions

View file

@ -71,16 +71,16 @@ void setup() {
// set all OUTPUT to low
digitalWrite(PinFAN, HIGH);
digitalWrite(PinFAN, LOW);
digitalWrite(PINwaterlevel, LOW);
digitalWrite(PinLED, HIGH);
digitalWrite(PinPUMP, HIGH);
digitalWrite(PinLED, LOW);
digitalWrite(PinPUMP, LOW);
// except PINsoilmoisture
// PINsoilmoisture is always HIGH and gets LOW in moment of waterlevel measurement
digitalWrite(PINsoilmoisture, LOW);
// set PWM frequency to 13.37KHz
analogWriteFreq(13370);
// set PWM frequency to 2.2KHz
analogWriteFreq(2200);
// Start EEPROM
EEPROM.begin(512);
@ -100,7 +100,7 @@ void setup() {
Serial.println(":: initialise I2C ::");
// initialise Wire for I2C
Wire.begin();
Wire.setClockStretchLimit(2500);
Serial.println(":: initialise display ::");
// initialise I2C display
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // Address 0x3C for 128x64
@ -239,7 +239,7 @@ void loop() {
controlLED();
}
controlPUMP();
displayScreens();
@ -265,7 +265,7 @@ void loop() {
* - re-organize EEPROM saved values.
* - prevent GrowStart to be in the future
* - maybe let the user configure some screens to display.
* - put EEPROM adresses into DEFINEs
*
*/
@ -273,14 +273,6 @@ void loop() {
/*
* Fan control
*
* Vars:
* - FanVent (byte) Fan1 or Fan2
* - FanExhaust (byte) Fan1 or Fan2
* -
*/

View file

@ -74,9 +74,6 @@ a:active {
width: 42px;
}
.helpbox {
font-size: 0.8em;
}
.nav {
background: #333;
width: 100%;
@ -213,8 +210,8 @@ const char HTMLhelp[] PROGMEM = R"EOF(
<h2>&#x2753; Help</h2>
Here you will get some helpful help.
<h3>API</h3>
<a href='/api/sensors' target='_blank'>Sensor data</a>: <code>GET /api/sensors</code><br>
<a href='/api/debug' target='_blank'>Debug all data:</a> <code>GET /api/debug</code>
Sensor data: <code>GET /api/sensors</code>
Debug all data: <code>GET /api/debug</code>
)EOF";
@ -508,10 +505,10 @@ const char HTMLgauge[] 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>
<form method='POST' action='/system/applyUpdate' enctype='multipart/form-data' onsubmit="document.getElementById('divUploading').style.display = '';">
<form method='POST' action='/system/applyUpdate' enctype='multipart/form-data'>
<b>Select .bin file:</b><br>
<input type='file' accept='.bin,.bin.gz' name='firmware' required>
<input type='submit' value='Update Firmware'>
<input type='file' accept='.bin,.bin.gz' name='firmware'>
<input type='submit' value='Update Firmware' onclick="document.getElementById('divUploading').style.display = '';">
</form>
<div id='divUploading' style='display: none;' class='warnmsg'>&#x1F6DC; Uploading, please wait...<div>
)EOF";

View file

@ -19,7 +19,7 @@ const bool APhidden = false;
*/
// valSoilmoisture - contains the value of getSoilmoisture()
unsigned short valSoilmoisture;
byte valSoilmoisture;
// valTemperature - contains the value of getTemperature()
float valTemperature;
// valTemperature - contains the value of getHumidity()
@ -38,18 +38,6 @@ byte ScreenIterationPassed = 0;
bool MaintenanceMode = false;
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
*
@ -91,14 +79,12 @@ short NtpOffset;
// 2: I2C chirp sensor from catnip electronics
byte MoistureSensor_Type;
// SoilmoistureLow - contains the value , when soil moisture is assumed to be low,
byte SoilmoistureLow = 80;
byte SoilmoistureLow = 20;
// UsePump - is the pump used? bool
// PumpMode (short) 1: Pump on every n days, 2: Pump on when Soilmoisture <= SoilmoistureLow, 3: Both
byte UsePump;
bool UsePump;
// UseFan - is the fan used? bool
// PumpOnTime in seconds
byte PumpOnTime = 3;
byte UseFan;
bool UseFan;
// 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
bool UseLEDrelais;
@ -107,10 +93,6 @@ bool UseFANrelais;
byte TemperatureSensor_Type;
unsigned short MaintenanceDuration = 300;
char Esp32CamIP[16];
// PumpLastOn (long) timestamp
unsigned long PumpLastOn;
//
// Grow Stuff
@ -145,10 +127,6 @@ byte PinFANPWM = 255;
bool SunFade;
byte SunFadeDuration = 30;
// PumpIntervalVeg (int) in days
byte PumpIntervalVeg = 5;
byte PumpIntervalBloom = 3;
/*
*
* NTP

View file

@ -187,13 +187,7 @@ int getSoilmoisture(byte moistureSensor, bool returnRAW = false) {
if(returnRAW == true) {
return soilmoisture;
} else {
short soilmoistureP = map(soilmoisture, wet, dry, 100, 0);
// dont return negative percentage values
if(soilmoistureP < 0) {
return 0;
} else {
return soilmoistureP;
}
return map(soilmoisture, wet, dry, 100, 0);
}
}

View file

@ -104,10 +104,7 @@ bool loadEEPROM() {
* 218 SunFadeDuration
* 219 MaintenanceDuration (2 byte)
* 221 Esp32CamIP (16 byte)
* 237 PumpLastOn (4 byte)
* 241 PumpIntervalVeg (1 byte)
* 242 PumpIntervalBloom (1 byte)
* 243 ...
* 237 ...
*
*/
@ -171,9 +168,6 @@ bool loadEEPROM() {
EEPROM.get(219, MaintenanceDuration);
// size is 16 byte
EEPROM.get(221, Esp32CamIP);
// size is 4 byte
EEPROM.get(237, PumpLastOn);
}
// TODO auth does not work atm
// EEPROM.get(160, WebUiUsername);
@ -208,10 +202,6 @@ bool loadEEPROM() {
EEPROM.get(216, PinFANPWM);
EEPROM.get(217, SunFade);
EEPROM.get(218, SunFadeDuration);
// size is 1 byte
EEPROM.get(241, PumpIntervalVeg);
// size is 1 byte
EEPROM.get(242, PumpIntervalBloom);
}
@ -370,30 +360,6 @@ void wifiAp() {
//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) {
/*
* Pin assignments
@ -439,9 +405,9 @@ void setOutput(byte Output, byte OutputState) {
//~ Serial.println(UseRelais);
if( (UseRelais == true) || (OutputPin == PinPUMP) ) {
digitalWrite(OutputPin, 1 - OutputState);
digitalWrite(OutputPin, OutputState);
} else {
analogWrite(OutputPin, 255 - OutputState);
analogWrite(OutputPin, OutputState);
}
}
@ -452,22 +418,15 @@ void controlLED() {
unsigned int secondsSunrise = (SunriseHour * 60 * 60) + (SunriseMinute * 60);
unsigned int secondsToday = (timeClient.getHours() * 60 * 60) + (timeClient.getMinutes() * 60) + timeClient.getSeconds();
switch(growState()) {
case 1:
lightHours = LighthoursVeg;
break;
case 2:
lightHours = LighthoursBloom;
break;
default:
lightHours = 0;
break;
if(DayOfGrow > DaysVeg ) {
lightHours = LighthoursBloom;
} else {
lightHours = LighthoursVeg;
}
// check if secondsToday is larger then secondsSunrise time AND if
// secondsToday is smaller then the sum of secondsSunrise + seconds of lightHours
if( ((secondsToday >= secondsSunrise) && (secondsToday <= ( secondsSunrise + (lightHours * 60 * 60))) ) && (growState() < 3) ){
if( ((secondsToday >= secondsSunrise) && (secondsToday <= ( secondsSunrise + (lightHours * 60 * 60))) ) ){
//Serial.println("light on time");
// when SunFade is true, fade LED light. Otherwise just turn on or off
@ -501,25 +460,10 @@ void controlLED() {
}
void refreshSensors() {
byte soilmoistureAvgSampleCount = 5;
valSoilmoisture = getSoilmoisture(MoistureSensor_Type);
valHumidity = getHumidity();
valTemperature = getTemperature(TemperatureSensor_Type);
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() {
@ -555,8 +499,7 @@ void displayScreens() {
display.println("s");
} else {
// in this switch case the single screens gets defined
//switch(ScreenToDisplay) {
switch(0) {
switch(ScreenToDisplay) {
case 0:
display.print("Humidity: ");
display.print(valHumidity);
@ -568,10 +511,9 @@ void displayScreens() {
display.println("");
display.print("Moisture: ");
display.print(valSoilmoisture);
display.print(" % ");
display.println(valSoilmoistureAvg);
display.println(" %");
display.println("");
if(UsePump > 0) {
if(UsePump == true) {
display.print("Pump Waterlvl: ");
switch(valWaterlevel) {
case 0:
@ -625,128 +567,26 @@ void displayScreens() {
}
unsigned short growState() {
/*
* Pump control
* growState()
*
* 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
* returns growState as short
*
* - PumpIntervalVeg (byte) in days
* - PumpIntervalBloom (byte) in days
* 1 - vegetation
* 2 - bloom
* 3 - harvest
*
*/
unsigned short state;
void controlPUMP() {
byte PumpInterval;
// UsePump true and not in harvest state?
// dont water within the first 15 sec after startup
if ( (UsePump > 0) && (growState() < 3) && (millis() > 15000) ) {
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;
}
}
if(DayOfGrow > (DaysVeg + DaysBloom ) ) {
state = 3;
} else if(DayOfGrow > DaysVeg ) {
state = 2;
} else {
// ensure pump is off when it should be off
setOutput(3, 0);
//digitalWrite(PinPUMP, LOW);
state = 1;
}
return state;
}

View file

@ -1,5 +1,5 @@
/* CanGrow_Version.h gets generated from cangrow.sh */
const char* CanGrowVer = "0.1-dev";
const char* CanGrowBuild = "d2e264d-20240919022041";
const char* CanGrowBuild = "72bb58c";

View file

@ -180,17 +180,23 @@ void SysRestart() {
void SysWipe() {
String body = returnHTMLheader();
body += "<h1>&#10071;&#10071; Wiping EEPROM</h1>";
body += "<div class='warnmsg'>All settings will be removed!!<br>";
body += "<br>Please confirm wiping the EEPROM";
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>";
body += "</div>";
body += FPSTR(HTMLfooter);
webserver.send(200, "text/html", body);
// TODO only debug and development solution, remove this later
if(webserver.hasArg("confirmed")) {
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 {
body += "<h1>&#10071;&#10071; 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() {
String body = returnHTMLheader();
body += "<div class='warnmsg'><h1>&#10071; &#65039; 404 - not found</h1></div>";
@ -357,16 +363,16 @@ void WEBroot() {
switch(growState()) {
case 1:
body += "&#x1F331; vegetation<br>\n";
break;
break;
case 2:
body += "&#x1F33C; bloom<br>\n";
break;
break;
case 3:
body += "&#x1F342; harvest\n";
break;
body += "&#x1F342; harvest<br>\n";
break;
}
if(UsePump > 0) {
if(UsePump == true) {
body += "<b>Pump water level:</b> ";
switch(getWaterlevel()) {
case 0:
@ -466,19 +472,19 @@ void WEBgrowSettings() {
body += "Vegetation duration: <input class='inputShort' type='number' name='DaysVeg' min='0' max='255' value='";
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 += 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 += 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 += 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 += SunriseHour;
@ -509,20 +515,6 @@ void WEBgrowSettings() {
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='&#x1F4BE; Save settings'>\n";
body += "</form>\n";
body += FPSTR(JSconvertDateToEpoch);
@ -559,31 +551,18 @@ void WEBsystemSettings() {
body += "<form method='post' action='/systemSettings/save'>\n";
// UseFan bool
body += "Fan mode: <select id='UseFan' name='UseFan' required>\n";
body += "Use FAN: <select id='UseFan' name='UseFan' required>\n";
if(configured == false){body += "<option disabled value='' selected hidden>---</option>\n";}
body += "<option value='1'" + returnStrSelected(UseFan, 0) + ">Off</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 += "<option value='1'" + returnStrSelected(UseFan, 1) + ">Yes</option>\n";
body += "<option value='0'" + returnStrSelected(UseFan, 0) + ">No</option>\n";
body += "</select><br>\n";
/*
// UsePump bool
body += "Use PUMP: <select id='UsePump' name='UsePump' required>\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='0'" + returnStrSelected(UsePump, 0) + ">No</option>\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
body += "Use relais for LED: <select id='UseLEDrelais' name='UseLEDrelais' required>\n";
@ -601,11 +580,10 @@ void WEBsystemSettings() {
// TODO ugly. can this done be better?
// 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 += "' required> Seconds<br>\n";
// MoistureSensor_Type byte
body += "Soilmoisture sensor: <select id='MoistureSensor_Type' name='MoistureSensor_Type' required>\n";
if(configured == false) {
@ -763,8 +741,6 @@ void POSTgrowSettings() {
SunriseMinute = webserver.arg("SunriseMinute").toInt();
SunFade = webserver.arg("SunFade").toInt();
SunFadeDuration = webserver.arg("SunFadeDuration").toInt();
PumpIntervalVeg = webserver.arg("PumpIntervalVeg").toInt();
PumpIntervalBloom = webserver.arg("PumpIntervalBloom").toInt();
// size is 32 byte
EEPROM.put(170, GrowName);
@ -788,10 +764,6 @@ void POSTgrowSettings() {
EEPROM.put(216, PinFANPWM);
EEPROM.put(217, SunFade);
EEPROM.put(218, SunFadeDuration);
// size is 1 byte
EEPROM.put(241, PumpIntervalVeg);
// size is 1 byte
EEPROM.put(242, PumpIntervalBloom);
EEPROM.commit();
@ -1020,27 +992,6 @@ 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
@ -1053,7 +1004,6 @@ void APIgetSensors() {
JsonDocument jsonSensors;
jsonSensors["soilmoisture"] = valSoilmoisture;
jsonSensors["soilmoistureAvg"] = valSoilmoistureAvg;
jsonSensors["temperature"] = valTemperature;
jsonSensors["humidity"] = valHumidity;
jsonSensors["waterlevel"] = valWaterlevel;
@ -1068,13 +1018,6 @@ void APIgetDebug() {
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
JsonObject objWiFi = jsonDebug["wifi"].add<JsonObject>();
@ -1097,8 +1040,6 @@ void APIgetDebug() {
objSystem["TemperatureSensor_Type"] = TemperatureSensor_Type;
objSystem["NtpOffset"] = NtpOffset;
objSystem["MaintenanceDuration"] = MaintenanceDuration;
objSystem["PumpOnTime"] = PumpOnTime;
objSystem["PumpLastOn"] = PumpLastOn;
// Grow
JsonObject objGrow = jsonDebug["grow"].add<JsonObject>();
@ -1116,8 +1057,7 @@ void APIgetDebug() {
objGrow["PinLEDPWM"] = PinLEDPWM;
objGrow["PinFANPWM"] = PinFANPWM;
objGrow["DayOfGrow"] = DayOfGrow;
objGrow["PumpIntervalVeg"] = PumpIntervalVeg;
objGrow["PumpIntervalBloom"] = PumpIntervalBloom;
// Sensors
@ -1186,8 +1126,6 @@ void WebHandler() {
webserver.on("/system/restart", HTTP_GET, SysRestart);
// wipe eeprom triggered from WebGui
webserver.on("/system/wipe", HTTP_GET, SysWipe);
// confirm wiping the device
webserver.on("/system/wipeConfirm", HTTP_POST, POSTwipeConfirm);
// Maintenance mode
webserver.on("/system/maintenance", HTTP_GET, SysMaintenance);
// system update with binary
@ -1206,7 +1144,6 @@ void WebHandler() {
// switching MOSFETs
webserver.on("/switch", HTTP_POST, POSTsetOutput);
webserver.on("/pumpManual", HTTP_POST, POSTsetPumpManual);
// api stuff
webserver.on("/api/sensors", HTTP_GET, APIgetSensors);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 291 KiB

After

Width:  |  Height:  |  Size: 60 KiB

File diff suppressed because it is too large Load diff

View file

@ -37,9 +37,9 @@
"other_text_thickness": 0.15,
"other_text_upright": false,
"pads": {
"drill": 0.8,
"height": 1.6,
"width": 1.6
"drill": 1.1,
"height": 2.1,
"width": 2.1
},
"silk_line_width": 0.1,
"silk_text_italic": false,
@ -79,7 +79,6 @@
"footprint_type_mismatch": "ignore",
"hole_clearance": "error",
"hole_near_hole": "error",
"holes_co_located": "warning",
"invalid_outline": "error",
"isolated_copper": "warning",
"item_on_disabled_layer": "error",
@ -492,7 +491,6 @@
},
"schematic": {
"annotate_start_num": 0,
"bom_export_filename": "",
"bom_fmt_presets": [],
"bom_fmt_settings": {
"field_delimiter": ",",
@ -592,7 +590,7 @@
"sheets": [
[
"42428fce-ab8c-4a80-af19-dee4f0070d36",
"Root"
"Stammblatt"
]
],
"text_variables": {}

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 196 KiB

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

View file

@ -1,152 +0,0 @@
(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)
)
)
)

View file

@ -7,7 +7,6 @@
(property "Reference" "U3"
(at 0 7.3152 180)
(layer "F.SilkS")
(hide yes)
(uuid "5401f2b9-08c4-433b-a536-95365a9d5b27")
(effects
(font
@ -19,7 +18,6 @@
(property "Value" "SRT_Power_3A"
(at -0.3556 5.1816 0)
(layer "F.Fab")
(hide yes)
(uuid "3aca6114-af0d-478b-80ab-52d5719c58c0")
(effects
(font
@ -37,7 +35,6 @@
(effects
(font
(size 1.27 1.27)
(thickness 0.15)
)
)
)
@ -50,7 +47,6 @@
(effects
(font
(size 1.27 1.27)
(thickness 0.15)
)
)
)
@ -63,288 +59,287 @@
(effects
(font
(size 1.27 1.27)
(thickness 0.15)
)
)
)
(attr through_hole)
(fp_line
(start -10.2122 -6.0076)
(end -10.2122 10.1214)
(start -11.176 -7.493)
(end -11.176 8.636)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "6292f9f0-b20e-4f1e-990a-0b11f0bae5e2")
(uuid "c04c845e-4b76-4dc5-b3a1-2129724a526d")
)
(fp_line
(start -10.2122 10.1214)
(end 11.1238 10.1214)
(start -11.176 8.636)
(end 10.16 8.636)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "7b8db049-a75b-4c09-b1c9-de8a147005c4")
(uuid "b279bc16-0fa3-40ad-9a71-246db78cd5db")
)
(fp_line
(start -6.453 -0.3942)
(end -0.357 -0.3942)
(start -7.4168 -1.8796)
(end -1.3208 -1.8796)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "c4ed20b9-5f3d-4741-9180-be3de36b2638")
(uuid "1cc5b0bc-c494-4f7d-bca7-4c61a9317e88")
)
(fp_line
(start -6.453 4.0762)
(end -6.453 -0.3942)
(start -7.4168 2.5908)
(end -7.4168 -1.8796)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "d7e1ea82-a28a-4e4c-8051-86a68fea340c")
(uuid "cb93a75e-f00e-4ada-977c-4ebffb53a1ef")
)
(fp_line
(start -5.3354 -4.2804)
(end -1.9064 -4.2804)
(start -6.2992 -5.7658)
(end -2.8702 -5.7658)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "06328989-1b0f-46d7-883b-033109387c94")
(uuid "58d4cb4b-5a3f-4493-aa99-0deaf5683749")
)
(fp_line
(start -5.3354 -3.0104)
(end -5.3354 -4.2804)
(start -6.2992 -4.4958)
(end -6.2992 -5.7658)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "8d77e0eb-1044-47c3-83fb-eeb0a96fae5d")
(uuid "23c244a5-fbbf-43b9-8e18-3f2c2f80daac")
)
(fp_line
(start -1.9064 -4.2804)
(end -1.9064 -3.0104)
(start -2.8702 -5.7658)
(end -2.8702 -4.4958)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "aacf448e-591d-467e-9b05-308beed279bf")
(uuid "dc18e288-f18f-43b9-8bf9-a20134e8fe6b")
)
(fp_line
(start -1.9064 -3.0104)
(end -5.3354 -3.0104)
(start -2.8702 -4.4958)
(end -6.2992 -4.4958)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "1a4d146d-43a7-4082-9120-8896a6302895")
(uuid "0db4cf0f-ac7a-4c9b-ae10-55a36ddbd4e4")
)
(fp_line
(start -0.357 4.0762)
(end -6.453 4.0762)
(start -1.3208 2.5908)
(end -7.4168 2.5908)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "28f1cc66-eb55-47b0-8a8f-d7e1518711f4")
(uuid "bb094c9b-9d8c-4f38-83ed-01fc7944b9a1")
)
(fp_line
(start -0.357 4.0762)
(end -0.357 -0.3942)
(start -1.3208 2.5908)
(end -1.3208 -1.8796)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "6820cfba-dad3-4b8f-888f-85dbe2540377")
(uuid "15406a1c-aa60-4574-94bc-bc7b1c93f995")
)
(fp_line
(start 1.3194 -1.969)
(end 1.3194 4.6858)
(start 0.3556 -3.4544)
(end 0.3556 3.2004)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "6a862895-3bf4-4887-9dab-db5334a221bc")
(uuid "7f056460-3325-494e-89b7-e00faf35b853")
)
(fp_line
(start 1.3194 -1.969)
(end 7.9742 -1.969)
(start 0.3556 -3.4544)
(end 7.0104 -3.4544)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "79debc5c-9a35-496c-8f29-014030f144a4")
(uuid "fb81112c-7565-47b2-8682-db2abbd3ddf0")
)
(fp_line
(start 2.8942 0.8885)
(end 5.5231 0.8885)
(start 1.9304 -0.5969)
(end 4.5593 -0.5969)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "84cd7a4d-d683-4fbc-825f-665c5b0f0758")
(uuid "48533810-e56f-47c8-8bce-ce1c68dc9c75")
)
(fp_line
(start 2.8942 1.5235)
(end 2.8942 0.8885)
(start 1.9304 0.0381)
(end 1.9304 -0.5969)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "4e52b40e-83c8-4d07-95ff-b90fa1783618")
(uuid "03a589e3-a74e-4336-8cad-43118c287e8a")
)
(fp_line
(start 2.8942 1.5235)
(end 5.5231 1.5235)
(start 1.9304 0.0381)
(end 4.5593 0.0381)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "a399ee1e-f3f5-4636-9f46-aa9b47e0db94")
(uuid "ce0e1e31-1518-4423-8678-79c96482e137")
)
(fp_line
(start 5.5231 0.19)
(end 6.7931 1.206)
(start 4.5593 -1.2954)
(end 5.8293 -0.2794)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "974ab6af-0377-40af-977c-a13764cf3b42")
(uuid "60031373-aa96-4773-880b-c8200b9c8446")
)
(fp_line
(start 5.5231 0.8885)
(end 5.5231 0.19)
(start 4.5593 -0.5969)
(end 4.5593 -1.2954)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "a43ae26f-5b7d-4a6a-a076-714c678ef718")
(uuid "e8ee4f92-28ab-4a33-a9f9-a6abaf63c07f")
)
(fp_line
(start 5.5231 2.2855)
(end 5.5231 1.5235)
(start 4.5593 0.8001)
(end 4.5593 0.0381)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "cc8ed141-1479-47bc-b57c-ac3d7de64f29")
(uuid "08acbb33-d7a2-40ec-b9c7-e1637e3c6b50")
)
(fp_line
(start 6.7931 1.206)
(end 5.5231 2.2855)
(start 5.8293 -0.2794)
(end 4.5593 0.8001)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "59d9abe5-a32f-469b-9fd6-08593b95afde")
(uuid "93934ce2-e724-43a7-936d-d5b13ecab734")
)
(fp_line
(start 7.9742 -1.969)
(end 7.9742 4.6858)
(start 7.0104 -3.4544)
(end 7.0104 3.2004)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "73f5a41f-61af-42a7-bacf-c58d7968f53a")
(uuid "67302b70-b929-4d08-9b20-00ad993d7c48")
)
(fp_line
(start 7.9742 4.6858)
(end 1.3194 4.6858)
(start 7.0104 3.2004)
(end 0.3556 3.2004)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "9ec91a9f-ceda-4f7c-b422-f6a162037a63")
(uuid "0718d059-35cf-4406-ab64-7d7e6d83cf21")
)
(fp_line
(start 11.1238 -6.0076)
(end -10.2122 -6.0076)
(start 10.16 -7.493)
(end -11.176 -7.493)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "ed6fa262-c61a-4bb7-90b5-f3b3ee971658")
(uuid "3f15543c-c79e-44be-a583-62309e7f62ac")
)
(fp_line
(start 11.1238 10.1214)
(end 11.1238 -6.0076)
(start 10.16 8.636)
(end 10.16 -7.493)
(stroke
(width 0.12)
(type solid)
)
(layer "F.SilkS")
(uuid "0251e69d-8ab4-482d-b741-3238b0fef811")
(uuid "53974b4e-f4fd-4a51-b72c-09e66d707da7")
)
(fp_circle
(center -7.1896 -3.3787)
(end -6.6181 -2.8707)
(center -8.1534 -4.8641)
(end -7.5819 -4.3561)
(stroke
(width 0.12)
(type solid)
)
(fill none)
(layer "F.SilkS")
(uuid "55702fe3-b28e-4e80-86d3-f64c403681d1")
(uuid "c9f36fdc-7af5-40c1-b400-6db31e87c78d")
)
(fp_circle
(center -7.1388 7.302)
(end -6.5673 7.81)
(center -8.1026 5.8166)
(end -7.5311 6.3246)
(stroke
(width 0.12)
(type solid)
)
(fill none)
(layer "F.SilkS")
(uuid "0ffe4b1a-c314-4a3c-8456-b73925f03b28")
(uuid "4e0da6f8-ad5e-4cc1-95ba-014ff87aee07")
)
(fp_circle
(center 7.39 -3.3787)
(end 7.9615 -2.8707)
(center 6.4262 -4.8641)
(end 6.9977 -4.3561)
(stroke
(width 0.12)
(type solid)
)
(fill none)
(layer "F.SilkS")
(uuid "82347fd5-ab01-478d-bf06-2837edd3b9c5")
(uuid "1cb73701-38be-459b-a7c5-86d645c4cc0e")
)
(fp_circle
(center 7.4916 7.2766)
(end 8.0631 7.7846)
(center 6.5278 5.7912)
(end 7.0993 6.2992)
(stroke
(width 0.12)
(type solid)
)
(fill none)
(layer "F.SilkS")
(uuid "f74d6220-edbd-4a39-a810-7cf19016933f")
(uuid "079e6cb8-ca9e-47a7-9f22-9f08bcf4c5ee")
)
(fp_poly
(pts
(xy -5.7418 -1.0546) (xy -5.3354 -1.0546) (xy -5.3354 -0.445) (xy -5.7418 -0.445)
(xy -6.7056 -2.54) (xy -6.2992 -2.54) (xy -6.2992 -1.9304) (xy -6.7056 -1.9304)
)
(stroke
(width 0.1)
@ -352,11 +347,11 @@
)
(fill solid)
(layer "F.SilkS")
(uuid "80ff133a-8874-4f0a-8c9e-250633a8855a")
(uuid "9f932498-4dae-4e35-9fff-b4bb98c73816")
)
(fp_poly
(pts
(xy -5.7418 4.127) (xy -5.3354 4.127) (xy -5.3354 4.7366) (xy -5.7418 4.7366)
(xy -6.7056 2.6416) (xy -6.2992 2.6416) (xy -6.2992 3.2512) (xy -6.7056 3.2512)
)
(stroke
(width 0.1)
@ -364,11 +359,11 @@
)
(fill solid)
(layer "F.SilkS")
(uuid "6e08c3a4-3092-400f-9a55-4e8081226741")
(uuid "372c02f5-61f4-4301-aca3-d818a674272e")
)
(fp_poly
(pts
(xy -4.2686 -1.0546) (xy -3.8622 -1.0546) (xy -3.8622 -0.445) (xy -4.2686 -0.445)
(xy -5.2324 -2.54) (xy -4.826 -2.54) (xy -4.826 -1.9304) (xy -5.2324 -1.9304)
)
(stroke
(width 0.1)
@ -376,11 +371,11 @@
)
(fill solid)
(layer "F.SilkS")
(uuid "6a96c3fa-8827-498f-9c6c-ffb212b62a93")
(uuid "8b8d18d4-2701-4c72-966d-f580819a5bea")
)
(fp_poly
(pts
(xy -4.2686 4.127) (xy -3.8622 4.127) (xy -3.8622 4.7366) (xy -4.2686 4.7366)
(xy -5.2324 2.6416) (xy -4.826 2.6416) (xy -4.826 3.2512) (xy -5.2324 3.2512)
)
(stroke
(width 0.1)
@ -388,11 +383,11 @@
)
(fill solid)
(layer "F.SilkS")
(uuid "0886a33b-f340-44bf-9de5-f44938efcb54")
(uuid "d6255dee-580f-4b85-9e3c-df858fc7bc8d")
)
(fp_poly
(pts
(xy -2.7954 -1.0546) (xy -2.389 -1.0546) (xy -2.389 -0.445) (xy -2.7954 -0.445)
(xy -3.7592 -2.54) (xy -3.3528 -2.54) (xy -3.3528 -1.9304) (xy -3.7592 -1.9304)
)
(stroke
(width 0.1)
@ -400,11 +395,11 @@
)
(fill solid)
(layer "F.SilkS")
(uuid "51e3d89a-8455-4f58-ad05-c15d024e9c54")
(uuid "ebef6c64-7266-47b4-9a64-d9d611adc26d")
)
(fp_poly
(pts
(xy -2.7954 4.127) (xy -2.389 4.127) (xy -2.389 4.7366) (xy -2.7954 4.7366)
(xy -3.7592 2.6416) (xy -3.3528 2.6416) (xy -3.3528 3.2512) (xy -3.7592 3.2512)
)
(stroke
(width 0.1)
@ -412,11 +407,11 @@
)
(fill solid)
(layer "F.SilkS")
(uuid "5514ba93-c636-4e40-855a-d8123eaad1aa")
(uuid "59be5a8f-ac87-4541-97df-321cb1234c4f")
)
(fp_poly
(pts
(xy -1.2714 -1.0546) (xy -0.865 -1.0546) (xy -0.865 -0.445) (xy -1.2714 -0.445)
(xy -2.2352 -2.54) (xy -1.8288 -2.54) (xy -1.8288 -1.9304) (xy -2.2352 -1.9304)
)
(stroke
(width 0.1)
@ -424,11 +419,11 @@
)
(fill solid)
(layer "F.SilkS")
(uuid "d6b9bc27-cda7-4d8b-ad26-7b36a48ecfbd")
(uuid "b1663dd5-c63f-4034-b29b-537f9a6abd47")
)
(fp_poly
(pts
(xy -1.2714 4.127) (xy -0.865 4.127) (xy -0.865 4.7366) (xy -1.2714 4.7366)
(xy -2.2352 2.6416) (xy -1.8288 2.6416) (xy -1.8288 3.2512) (xy -2.2352 3.2512)
)
(stroke
(width 0.1)
@ -436,52 +431,52 @@
)
(fill solid)
(layer "F.SilkS")
(uuid "3fef23e2-4bcd-4924-97f4-7575ce7994b1")
(uuid "6e5990fc-9a52-480e-b640-cabfc2a6cd18")
)
(fp_line
(start -10.39 -6.16)
(end -10.39 10.2992)
(start -11.3538 -7.6454)
(end -11.3538 8.8138)
(stroke
(width 0.12)
(type solid)
)
(layer "F.Fab")
(uuid "bc1192d1-b770-4e65-bd6d-2beed31fb275")
(uuid "e21c3eb0-fdf3-4a2d-9d84-f366a7426b90")
)
(fp_line
(start -10.39 -6.16)
(end 11.3016 -6.1854)
(start -11.3538 -7.6454)
(end 10.3378 -7.6708)
(stroke
(width 0.12)
(type solid)
)
(layer "F.Fab")
(uuid "ac2ec45c-be62-4db0-88df-ef12d1f24714")
(uuid "f2231139-582f-43f7-a92f-646e424ad044")
)
(fp_line
(start -10.39 10.2992)
(end 11.3016 10.2992)
(start -11.3538 8.8138)
(end 10.3378 8.8138)
(stroke
(width 0.12)
(type solid)
)
(layer "F.Fab")
(uuid "90a38e33-4119-4758-ac3b-323f8c73139c")
(uuid "ff2d64a2-f244-4e27-a61c-b0184f18f038")
)
(fp_line
(start 11.3016 -6.1854)
(end 11.3016 10.2992)
(start 10.3378 -7.6708)
(end 10.3378 8.8138)
(stroke
(width 0.12)
(type solid)
)
(layer "F.Fab")
(uuid "22193204-ae0b-4462-95d6-f226e27ae968")
(uuid "e571d0ae-d587-45ad-9b62-7a686b2f0c60")
)
(fp_text user "-"
(at 7.39 -3.4422 0)
(at 6.4262 -4.9276 0)
(layer "F.SilkS")
(uuid "0bec24d9-5468-4c4b-96d3-ef96e25202cf")
(uuid "4f88e670-b848-4271-a5f8-bd548b64cadd")
(effects
(font
(size 1 1)
@ -490,9 +485,9 @@
)
)
(fp_text user "-"
(at -7.1896 -3.4422 0)
(at -8.1534 -4.9276 0)
(layer "F.SilkS")
(uuid "0c9a77a8-8422-401b-a5a1-b40da4e203c0")
(uuid "86dab817-ad16-4cdc-b19d-607ba0d990ab")
(effects
(font
(size 1 1)
@ -501,9 +496,9 @@
)
)
(fp_text user "VOUT"
(at 9.7776 1.5362 -90)
(at 8.8138 0.0508 -90)
(layer "F.SilkS")
(uuid "3c0d7914-45a5-4bbb-8f5b-40ede46c7d70")
(uuid "876b8e16-62cc-4ae3-9c78-14a6cc337309")
(effects
(font
(size 1 1)
@ -512,9 +507,9 @@
)
)
(fp_text user "+"
(at -7.1388 7.2385 0)
(at 6.5278 5.7277 0)
(layer "F.SilkS")
(uuid "4145e214-17c8-4e57-9147-ea318329ca66")
(uuid "935ff27f-9949-446d-a438-f14c3624acfc")
(effects
(font
(size 1 1)
@ -523,9 +518,9 @@
)
)
(fp_text user "4.5-28V"
(at -8.7898 1.7902 -90)
(at -9.7536 0.3048 -90)
(layer "F.SilkS")
(uuid "9e9858d1-9320-4297-aaee-1e9bd601ead9")
(uuid "d89e1384-2d5d-4d2d-bcf8-24657a3939a7")
(effects
(font
(size 1 1)
@ -534,9 +529,9 @@
)
)
(fp_text user "+"
(at 7.4916 7.2131 0)
(at -8.1026 5.7531 0)
(layer "F.SilkS")
(uuid "c1d9d6ad-e0e9-47c6-989c-71feb1923647")
(uuid "e3820af4-2c8f-4e79-b4d3-6c49dcea8bb5")
(effects
(font
(size 1 1)
@ -545,68 +540,68 @@
)
)
(pad "1" thru_hole rect
(at -9.1962 6.1704 90)
(at -10.16 4.572 90)
(size 1.6 1.6)
(drill 0.8)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "7be89935-c19e-4baa-904a-69452ec23d23")
(uuid "6550b245-c3c7-4898-8573-6476b3094631")
)
(pad "1" thru_hole rect
(at -9.1962 8.7104 90)
(at -10.16 7.112 90)
(size 1.6 1.6)
(drill 0.8)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "8f4284a4-3768-4b1e-9962-d551ccf57e63")
(uuid "2c55b3c8-f1e1-407a-8b02-310137232038")
)
(pad "2" thru_hole oval
(at -9.2216 -2.1976 90)
(at -10.1854 -3.683 90)
(size 1.6 1.6)
(drill 0.8)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "1f87148a-c7c2-483f-b799-2ff5e01ff488")
(uuid "6f8804ba-99ab-459b-84ff-3c356b03222a")
)
(pad "2" thru_hole oval
(at -9.1962 -4.7376 90)
(at -10.16 -6.223 90)
(size 1.6 1.6)
(drill 0.8)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "bf2458a2-a107-48c3-bb88-9e881f49434c")
(uuid "b8ed6aef-b96f-4eb3-a1a2-2deefde02bbb")
)
(pad "3" thru_hole rect
(at 9.5998 6.1844 90)
(at 8.636 4.699 90)
(size 1.6 1.6)
(drill 0.8)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "69cb71b1-224d-4fe7-8b14-ee9b1da593fb")
(uuid "5892046d-9427-451a-9d67-551089438a5d")
)
(pad "3" thru_hole rect
(at 9.5998 8.7244 90)
(at 8.636 7.239 90)
(size 1.6 1.6)
(drill 0.8)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "39b44515-755a-4a18-9e94-5d0b3431f548")
(uuid "519792c2-361a-4982-84bb-b0360a514c29")
)
(pad "4" thru_hole oval
(at 9.7014 -2.1976 90)
(at 8.7376 -3.683 90)
(size 1.6 1.6)
(drill 0.8)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "6af0a541-44c2-41dc-9c4e-37db310350d6")
(uuid "efe9e9b1-891f-4b33-a064-306161845044")
)
(pad "4" thru_hole oval
(at 9.7268 -4.7376 90)
(at 8.763 -6.223 90)
(size 1.6 1.6)
(drill 0.8)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "204e6602-d630-4983-8e4d-fb59a5c65572")
(uuid "16f7d0b3-7073-4c65-a466-c8a09376cdd7")
)
(model "${KISYS3DMOD}/Module.3dshapes/Arduino_UNO_R2.wrl"
(offset

File diff suppressed because it is too large Load diff

View file

@ -1,12 +1,12 @@
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.5*
G04 #@! TF.CreationDate,2024-09-25T02:09:32+02:00*
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.3*
G04 #@! TF.CreationDate,2024-06-05T14:32:50+02:00*
G04 #@! TF.ProjectId,CanGrow,43616e47-726f-4772-9e6b-696361645f70,rev?*
G04 #@! TF.SameCoordinates,Original*
G04 #@! TF.FileFunction,Soldermask,Bot*
G04 #@! TF.FilePolarity,Negative*
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 8.0.5) date 2024-09-25 02:09:32*
G04 Created by KiCad (PCBNEW 8.0.3) date 2024-06-05 14:32:50*
%MOMM*%
%LPD*%
G01*
@ -31,358 +31,321 @@ G04 Aperture macros list*
G04 Aperture macros list end*
%ADD10R,1.600000X1.600000*%
%ADD11C,1.600000*%
%ADD12R,1.800000X1.100000*%
%ADD13RoundRect,0.275000X-0.625000X0.275000X-0.625000X-0.275000X0.625000X-0.275000X0.625000X0.275000X0*%
%ADD14O,1.600000X1.600000*%
%ADD15R,2.000000X1.905000*%
%ADD16O,2.000000X1.905000*%
%ADD17R,1.800000X1.800000*%
%ADD18C,1.800000*%
%ADD19RoundRect,1.500000X1.500000X1.500000X-1.500000X1.500000X-1.500000X-1.500000X1.500000X-1.500000X0*%
%ADD20C,6.000000*%
%ADD21C,5.600000*%
%ADD22O,1.800000X1.800000*%
%ADD23O,3.800000X8.000000*%
%ADD24R,1.700000X1.700000*%
%ADD25O,1.700000X1.700000*%
%ADD26R,2.000000X2.000000*%
%ADD27O,2.000000X1.600000*%
%ADD28RoundRect,0.250000X-0.550000X-0.550000X0.550000X-0.550000X0.550000X0.550000X-0.550000X0.550000X0*%
%ADD29RoundRect,0.275000X0.625000X-0.275000X0.625000X0.275000X-0.625000X0.275000X-0.625000X-0.275000X0*%
%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*%
%ADD12O,1.600000X1.600000*%
%ADD13R,2.000000X1.905000*%
%ADD14O,2.000000X1.905000*%
%ADD15RoundRect,0.250001X-0.799999X-0.799999X0.799999X-0.799999X0.799999X0.799999X-0.799999X0.799999X0*%
%ADD16R,1.800000X1.800000*%
%ADD17C,1.800000*%
%ADD18RoundRect,1.500000X1.500000X1.500000X-1.500000X1.500000X-1.500000X-1.500000X1.500000X-1.500000X0*%
%ADD19C,6.000000*%
%ADD20C,5.600000*%
%ADD21O,1.800000X1.800000*%
%ADD22O,3.800000X8.000000*%
%ADD23R,1.700000X1.700000*%
%ADD24O,1.700000X1.700000*%
%ADD25R,2.000000X2.000000*%
%ADD26O,2.000000X1.600000*%
%ADD27C,1.100000*%
%ADD28R,1.730000X2.030000*%
%ADD29O,1.730000X2.030000*%
%ADD30RoundRect,0.250001X0.799999X0.799999X-0.799999X0.799999X-0.799999X-0.799999X0.799999X-0.799999X0*%
G04 APERTURE END LIST*
D10*
X156600000Y-108750000D03*
D11*
X156600000Y-111250000D03*
D12*
X127400000Y-42690000D03*
D13*
X129470000Y-43960000D03*
X127400000Y-45230000D03*
D11*
X117000000Y-42420000D03*
D14*
X106840000Y-42420000D03*
D15*
X138430000Y-83750000D03*
D16*
X138430000Y-81210000D03*
X138430000Y-78670000D03*
D15*
X129800000Y-35150000D03*
D16*
X129800000Y-32610000D03*
X129800000Y-30070000D03*
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*
D14*
X187910000Y-92250000D03*
D17*
X122231000Y-81220000D03*
D18*
X122231000Y-83760000D03*
D19*
X113930000Y-59700000D03*
D20*
X106730000Y-59700000D03*
D17*
X122250000Y-102750000D03*
D18*
X122250000Y-105290000D03*
D11*
X195500000Y-29200000D03*
D14*
X185340000Y-29200000D03*
D12*
X127430000Y-91400000D03*
D13*
X129500000Y-92670000D03*
X127430000Y-93940000D03*
D21*
X87000000Y-22750000D03*
D11*
X116855000Y-69500000D03*
D14*
X106695000Y-69500000D03*
D17*
X106770000Y-87720000D03*
D22*
X116930000Y-87720000D03*
D11*
X133000000Y-94000000D03*
D14*
X133000000Y-83840000D03*
D11*
X195500000Y-52900000D03*
D14*
X185340000Y-52900000D03*
D11*
X198180000Y-71050000D03*
D14*
X188020000Y-71050000D03*
D21*
X203000000Y-22750000D03*
D11*
X139920000Y-66500000D03*
D14*
X150080000Y-66500000D03*
D11*
X116910000Y-100250000D03*
D14*
X106750000Y-100250000D03*
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-106950000D03*
D24*
X195485000Y-60100000D03*
D25*
X192945000Y-60100000D03*
D19*
X113930000Y-81220000D03*
D20*
X106730000Y-81220000D03*
D26*
X150100000Y-27460000D03*
D27*
X150100000Y-30000000D03*
X150100000Y-32540000D03*
X150100000Y-35080000D03*
X150100000Y-37620000D03*
X150100000Y-40160000D03*
X150100000Y-42700000D03*
X150100000Y-45240000D03*
X172960000Y-45240000D03*
X172960000Y-42700000D03*
X172960000Y-40160000D03*
X172960000Y-37620000D03*
X172960000Y-35080000D03*
X172960000Y-32540000D03*
X172960000Y-30000000D03*
X172960000Y-27460000D03*
D24*
X195400000Y-77000000D03*
D25*
X192860000Y-77000000D03*
X190320000Y-77000000D03*
D24*
X195485000Y-38630000D03*
D25*
X192945000Y-38630000D03*
X190405000Y-38630000D03*
X187865000Y-38630000D03*
D28*
X131800000Y-50800000D03*
D17*
X174830000Y-82250000D03*
D22*
X174830000Y-92410000D03*
D17*
X122300000Y-32620000D03*
D18*
X122300000Y-35160000D03*
D24*
X195600000Y-99250000D03*
D25*
X193060000Y-99250000D03*
X190520000Y-99250000D03*
D11*
X101455112Y-94200000D03*
X103955112Y-94200000D03*
D24*
X195490000Y-47890000D03*
D25*
X192950000Y-47890000D03*
X190410000Y-47890000D03*
X187870000Y-47890000D03*
D11*
X133000000Y-45310000D03*
D14*
X133000000Y-35150000D03*
D12*
X138400000Y-45170000D03*
D29*
X136330000Y-43900000D03*
X138400000Y-42630000D03*
D24*
X195485000Y-33980000D03*
D25*
X192945000Y-33980000D03*
X190405000Y-33980000D03*
X187865000Y-33980000D03*
D28*
X156500000Y-67860000D03*
D23*
X96500000Y-42450000D03*
X96500000Y-33150000D03*
X96500000Y-64000000D03*
X96500000Y-54700000D03*
D15*
X129680000Y-62250000D03*
D16*
X129680000Y-59710000D03*
X129680000Y-57170000D03*
D28*
X188000000Y-67900000D03*
D11*
X187670000Y-88250000D03*
D14*
X197830000Y-88250000D03*
D11*
X102500000Y-66200000D03*
X102500000Y-68700000D03*
X116900000Y-95000000D03*
D14*
X106740000Y-95000000D03*
D10*
X101500000Y-90100000D03*
D11*
X104000000Y-90100000D03*
X133000000Y-72460000D03*
X103955112Y-94200000D03*
X101455112Y-94200000D03*
D10*
X153500000Y-111250000D03*
D11*
X153500000Y-108750000D03*
X123520000Y-88850000D03*
D12*
X133680000Y-88850000D03*
D11*
X117000000Y-42420000D03*
D12*
X106840000Y-42420000D03*
D13*
X138430000Y-83750000D03*
D14*
X133000000Y-62300000D03*
X138430000Y-81210000D03*
X138430000Y-78670000D03*
D13*
X129800000Y-35150000D03*
D14*
X129800000Y-32610000D03*
X129800000Y-30070000D03*
D11*
X177750000Y-92250000D03*
D12*
X187910000Y-92250000D03*
D15*
X129680000Y-83750000D03*
X153750000Y-68000000D03*
D11*
X106750000Y-72750000D03*
D12*
X116910000Y-72750000D03*
D11*
X142680000Y-60340000D03*
D12*
X142680000Y-70500000D03*
D16*
X122231000Y-81220000D03*
D17*
X122231000Y-83760000D03*
D18*
X113930000Y-59700000D03*
D19*
X106730000Y-59700000D03*
D16*
X122250000Y-102750000D03*
D17*
X122250000Y-105290000D03*
D11*
X195500000Y-29200000D03*
D12*
X185340000Y-29200000D03*
D20*
X87000000Y-26500000D03*
D11*
X116910000Y-69500000D03*
D12*
X106750000Y-69500000D03*
D16*
X106770000Y-87720000D03*
D21*
X116930000Y-87720000D03*
D11*
X195500000Y-52900000D03*
D12*
X185340000Y-52900000D03*
D11*
X198180000Y-71050000D03*
D12*
X188020000Y-71050000D03*
D20*
X203000000Y-26500000D03*
D11*
X116910000Y-100250000D03*
D12*
X106750000Y-100250000D03*
D22*
X96500000Y-97650000D03*
X96500000Y-106950000D03*
D23*
X195485000Y-60100000D03*
D24*
X192945000Y-60100000D03*
D18*
X113930000Y-81220000D03*
D19*
X106730000Y-81220000D03*
D25*
X150100000Y-31750000D03*
D26*
X150100000Y-34290000D03*
X150100000Y-36830000D03*
X150100000Y-39370000D03*
X150100000Y-41910000D03*
X150100000Y-44450000D03*
X150100000Y-46990000D03*
X150100000Y-49530000D03*
X172960000Y-49530000D03*
X172960000Y-46990000D03*
X172960000Y-44450000D03*
X172960000Y-41910000D03*
X172960000Y-39370000D03*
X172960000Y-36830000D03*
X172960000Y-34290000D03*
X172960000Y-31750000D03*
D23*
X195955000Y-77050000D03*
D24*
X193415000Y-77050000D03*
X190875000Y-77050000D03*
D23*
X195485000Y-38630000D03*
D24*
X192945000Y-38630000D03*
X190405000Y-38630000D03*
X187865000Y-38630000D03*
D15*
X136750000Y-52500000D03*
D16*
X174830000Y-82250000D03*
D21*
X174830000Y-92410000D03*
D16*
X122300000Y-32620000D03*
D17*
X122300000Y-35160000D03*
D23*
X172420000Y-99250000D03*
D24*
X174960000Y-99250000D03*
X177500000Y-99250000D03*
D10*
X138730000Y-70025000D03*
D12*
X138730000Y-67485000D03*
X131110000Y-67485000D03*
X131110000Y-70025000D03*
D23*
X195490000Y-47890000D03*
D24*
X192950000Y-47890000D03*
X190410000Y-47890000D03*
X187870000Y-47890000D03*
D23*
X195485000Y-33980000D03*
D24*
X192945000Y-33980000D03*
X190405000Y-33980000D03*
X187865000Y-33980000D03*
D11*
X142750000Y-33000000D03*
D12*
X142750000Y-43160000D03*
D15*
X157500000Y-68000000D03*
D10*
X138800000Y-42685000D03*
D12*
X138800000Y-40145000D03*
X131180000Y-40145000D03*
X131180000Y-42685000D03*
D22*
X96500000Y-42450000D03*
X96500000Y-33150000D03*
X96500000Y-64000000D03*
X96500000Y-54700000D03*
D13*
X129680000Y-62250000D03*
D14*
X129680000Y-59710000D03*
X129680000Y-57170000D03*
D10*
X143630000Y-91470000D03*
D12*
X143630000Y-88930000D03*
X136010000Y-88930000D03*
X136010000Y-91470000D03*
D15*
X193000000Y-65000000D03*
D11*
X187670000Y-88250000D03*
D12*
X197830000Y-88250000D03*
D10*
X119794888Y-54750000D03*
D11*
X122294888Y-54750000D03*
D13*
X129680000Y-83750000D03*
D14*
X129680000Y-81210000D03*
X129680000Y-78670000D03*
D10*
X128204000Y-108710000D03*
X128204000Y-111250000D03*
D12*
X138370000Y-72370000D03*
D29*
X136300000Y-71100000D03*
X138370000Y-69830000D03*
D17*
X128178600Y-100455000D03*
X128204000Y-97915000D03*
D10*
X147000000Y-108837000D03*
X147000000Y-111377000D03*
D12*
X147101600Y-100455000D03*
X147127000Y-97915000D03*
D16*
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*
X116920000Y-66240000D03*
D20*
X87000000Y-113500000D03*
D27*
X108910000Y-48540000D03*
D28*
X103830000Y-50700000D03*
D29*
X106370000Y-50700000D03*
X108910000Y-50700000D03*
X111450000Y-50700000D03*
D11*
X181830000Y-85750000D03*
X181830000Y-88250000D03*
D10*
X123600000Y-108750000D03*
X122250000Y-111250000D03*
D11*
X123600000Y-111250000D03*
D17*
X122250000Y-108750000D03*
D16*
X106870000Y-39160000D03*
D22*
D21*
X117030000Y-39160000D03*
D11*
X136325000Y-39600000D03*
D14*
X146485000Y-39600000D03*
D11*
X117000000Y-46000000D03*
D14*
X106840000Y-46000000D03*
D24*
D23*
X195485000Y-43250000D03*
D25*
D24*
X192945000Y-43250000D03*
X190405000Y-43250000D03*
X187865000Y-43250000D03*
D11*
X116860000Y-73500000D03*
D14*
X106700000Y-73500000D03*
D19*
D18*
X113990000Y-108095000D03*
D20*
D19*
X106790000Y-108095000D03*
D11*
X116930000Y-90980000D03*
D14*
D12*
X106770000Y-90980000D03*
D17*
D16*
X170830000Y-82250000D03*
D22*
D21*
X170830000Y-92410000D03*
D23*
D22*
X96500000Y-85450000D03*
X96500000Y-76150000D03*
D12*
X121500000Y-42690000D03*
D13*
X123570000Y-43960000D03*
X121500000Y-45230000D03*
D12*
X138400000Y-93900000D03*
D29*
X136330000Y-92630000D03*
X138400000Y-91360000D03*
D12*
X121490000Y-91400000D03*
D13*
X123560000Y-92670000D03*
X121490000Y-93940000D03*
D19*
X114000000Y-32610000D03*
D20*
X106800000Y-32610000D03*
D21*
X203000000Y-117250000D03*
D24*
X177250000Y-42790000D03*
D25*
X177250000Y-40250000D03*
D11*
X144200000Y-74300000D03*
D14*
X144200000Y-84460000D03*
D17*
X122230000Y-59710000D03*
X123000000Y-48570000D03*
D12*
X123000000Y-38410000D03*
D18*
X114000000Y-32610000D03*
D19*
X106800000Y-32610000D03*
D11*
X106840000Y-45670000D03*
D12*
X117000000Y-45670000D03*
D11*
X106770000Y-94230000D03*
D12*
X116930000Y-94230000D03*
D20*
X203000000Y-113500000D03*
D23*
X177250000Y-47250000D03*
D24*
X177250000Y-44710000D03*
D11*
X122930000Y-75660000D03*
D12*
X122930000Y-65500000D03*
D11*
X147430000Y-81890000D03*
D12*
X147430000Y-92050000D03*
D15*
X158500000Y-111250000D03*
D16*
X122230000Y-59710000D03*
D17*
X122230000Y-62250000D03*
D11*
X197830000Y-84250000D03*
D14*
D12*
X187670000Y-84250000D03*
D33*
X169750000Y-50800000D03*
D30*
X169750000Y-52500000D03*
M02*

View file

@ -1,12 +1,12 @@
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.5*
G04 #@! TF.CreationDate,2024-09-25T02:09:32+02:00*
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.3*
G04 #@! TF.CreationDate,2024-06-05T14:32:50+02:00*
G04 #@! TF.ProjectId,CanGrow,43616e47-726f-4772-9e6b-696361645f70,rev?*
G04 #@! TF.SameCoordinates,Original*
G04 #@! TF.FileFunction,Paste,Bot*
G04 #@! TF.FilePolarity,Positive*
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 8.0.5) date 2024-09-25 02:09:32*
G04 Created by KiCad (PCBNEW 8.0.3) date 2024-06-05 14:32:50*
%MOMM*%
%LPD*%
G01*

View file

@ -1,12 +1,12 @@
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.5*
G04 #@! TF.CreationDate,2024-09-25T02:09:32+02:00*
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.3*
G04 #@! TF.CreationDate,2024-06-05T14:32:50+02:00*
G04 #@! TF.ProjectId,CanGrow,43616e47-726f-4772-9e6b-696361645f70,rev?*
G04 #@! TF.SameCoordinates,Original*
G04 #@! TF.FileFunction,Legend,Bot*
G04 #@! TF.FilePolarity,Positive*
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 8.0.5) date 2024-09-25 02:09:32*
G04 Created by KiCad (PCBNEW 8.0.3) date 2024-06-05 14:32:50*
%MOMM*%
%LPD*%
G01*
@ -33,440 +33,403 @@ G04 Aperture macros list end*
%ADD11C,0.300000*%
%ADD12R,1.600000X1.600000*%
%ADD13C,1.600000*%
%ADD14R,1.800000X1.100000*%
%ADD15RoundRect,0.275000X-0.625000X0.275000X-0.625000X-0.275000X0.625000X-0.275000X0.625000X0.275000X0*%
%ADD16O,1.600000X1.600000*%
%ADD17R,2.000000X1.905000*%
%ADD18O,2.000000X1.905000*%
%ADD19R,1.800000X1.800000*%
%ADD20C,1.800000*%
%ADD21RoundRect,1.500000X1.500000X1.500000X-1.500000X1.500000X-1.500000X-1.500000X1.500000X-1.500000X0*%
%ADD22C,6.000000*%
%ADD23C,5.600000*%
%ADD24O,1.800000X1.800000*%
%ADD25O,3.800000X8.000000*%
%ADD26R,1.700000X1.700000*%
%ADD27O,1.700000X1.700000*%
%ADD28R,2.000000X2.000000*%
%ADD29O,2.000000X1.600000*%
%ADD30RoundRect,0.250000X-0.550000X-0.550000X0.550000X-0.550000X0.550000X0.550000X-0.550000X0.550000X0*%
%ADD31RoundRect,0.275000X0.625000X-0.275000X0.625000X0.275000X-0.625000X0.275000X-0.625000X-0.275000X0*%
%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*%
%ADD14O,1.600000X1.600000*%
%ADD15R,2.000000X1.905000*%
%ADD16O,2.000000X1.905000*%
%ADD17RoundRect,0.250001X-0.799999X-0.799999X0.799999X-0.799999X0.799999X0.799999X-0.799999X0.799999X0*%
%ADD18R,1.800000X1.800000*%
%ADD19C,1.800000*%
%ADD20RoundRect,1.500000X1.500000X1.500000X-1.500000X1.500000X-1.500000X-1.500000X1.500000X-1.500000X0*%
%ADD21C,6.000000*%
%ADD22C,5.600000*%
%ADD23O,1.800000X1.800000*%
%ADD24O,3.800000X8.000000*%
%ADD25R,1.700000X1.700000*%
%ADD26O,1.700000X1.700000*%
%ADD27R,2.000000X2.000000*%
%ADD28O,2.000000X1.600000*%
%ADD29C,1.100000*%
%ADD30R,1.730000X2.030000*%
%ADD31O,1.730000X2.030000*%
%ADD32RoundRect,0.250001X0.799999X0.799999X-0.799999X0.799999X-0.799999X-0.799999X0.799999X-0.799999X0*%
G04 APERTURE END LIST*
D10*
X161150000Y-68950000D02*
X161550000Y-69750000D01*
X152300000Y-65000000D02*
X153300000Y-66000000D01*
X147800000Y-62500000D01*
X152300000Y-65000000D01*
X161600000Y-68950000D02*
X162000000Y-69750000D01*
X152750000Y-65000000D02*
X153750000Y-66000000D01*
X148250000Y-62500000D01*
X152750000Y-65000000D01*
G36*
X152300000Y-65000000D02*
X152750000Y-65000000D02*
G01*
X153300000Y-66000000D01*
X147800000Y-62500000D01*
X152300000Y-65000000D01*
X153750000Y-66000000D01*
X148250000Y-62500000D01*
X152750000Y-65000000D01*
G37*
X161640000Y-68925000D02*
X161840000Y-69325000D01*
X155800000Y-64500000D02*
X154800000Y-66000000D01*
X156800000Y-60500000D01*
X155800000Y-64500000D01*
X162090000Y-68925000D02*
X162290000Y-69325000D01*
X156250000Y-64500000D02*
X155250000Y-66000000D01*
X157250000Y-60500000D01*
X156250000Y-64500000D01*
G36*
X155800000Y-64500000D02*
X156250000Y-64500000D02*
G01*
X154800000Y-66000000D01*
X156800000Y-60500000D01*
X155800000Y-64500000D01*
X155250000Y-66000000D01*
X157250000Y-60500000D01*
X156250000Y-64500000D01*
G37*
X156800000Y-65000000D02*
X155800000Y-66000000D01*
X157800000Y-62000000D01*
X156800000Y-65000000D01*
X157250000Y-65000000D02*
X156250000Y-66000000D01*
X158250000Y-62000000D01*
X157250000Y-65000000D01*
G36*
X156800000Y-65000000D02*
X157250000Y-65000000D02*
G01*
X155800000Y-66000000D01*
X157800000Y-62000000D01*
X156800000Y-65000000D01*
X156250000Y-66000000D01*
X158250000Y-62000000D01*
X157250000Y-65000000D01*
G37*
X161350000Y-68850000D02*
X161750000Y-69650000D01*
X161300000Y-70000000D02*
X155800000Y-71500000D01*
X160800000Y-69000000D01*
X161300000Y-70000000D01*
X161800000Y-68850000D02*
X162200000Y-69650000D01*
X161750000Y-70000000D02*
X156250000Y-71500000D01*
X161250000Y-69000000D01*
X161750000Y-70000000D01*
G36*
X161300000Y-70000000D02*
X161750000Y-70000000D02*
G01*
X155800000Y-71500000D01*
X160800000Y-69000000D01*
X161300000Y-70000000D01*
X156250000Y-71500000D01*
X161250000Y-69000000D01*
X161750000Y-70000000D01*
G37*
X154300000Y-63500000D02*
X154300000Y-66000000D01*
X152800000Y-59000000D01*
X154300000Y-63500000D01*
X154750000Y-63500000D02*
X154750000Y-66000000D01*
X153250000Y-59000000D01*
X154750000Y-63500000D01*
G36*
X154300000Y-63500000D02*
X154750000Y-63500000D02*
G01*
X154300000Y-66000000D01*
X152800000Y-59000000D01*
X154300000Y-63500000D01*
X154750000Y-66000000D01*
X153250000Y-59000000D01*
X154750000Y-63500000D01*
G37*
X152300000Y-63500000D02*
X153800000Y-66000000D01*
X148800000Y-60500000D01*
X152300000Y-63500000D01*
X152750000Y-63500000D02*
X154250000Y-66000000D01*
X149250000Y-60500000D01*
X152750000Y-63500000D01*
G36*
X152300000Y-63500000D02*
X152750000Y-63500000D02*
G01*
X153800000Y-66000000D01*
X148800000Y-60500000D01*
X152300000Y-63500000D01*
X154250000Y-66000000D01*
X149250000Y-60500000D01*
X152750000Y-63500000D01*
G37*
D11*
X156300000Y-72000000D02*
X154800000Y-73000000D01*
X152800000Y-72000000D01*
X152300000Y-70000000D01*
X156800000Y-70000000D01*
X156300000Y-72000000D01*
X156750000Y-72000000D02*
X155250000Y-73000000D01*
X153250000Y-72000000D01*
X152750000Y-70000000D01*
X157250000Y-70000000D01*
X156750000Y-72000000D01*
%LPC*%
D12*
X156600000Y-108750000D03*
D13*
X156600000Y-111250000D03*
D14*
X127400000Y-42690000D03*
D15*
X129470000Y-43960000D03*
X127400000Y-45230000D03*
D13*
X117000000Y-42420000D03*
D16*
X106840000Y-42420000D03*
D17*
X138430000Y-83750000D03*
D18*
X138430000Y-81210000D03*
X138430000Y-78670000D03*
D17*
X129800000Y-35150000D03*
D18*
X129800000Y-32610000D03*
X129800000Y-30070000D03*
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*
D16*
X187910000Y-92250000D03*
D19*
X122231000Y-81220000D03*
D20*
X122231000Y-83760000D03*
D21*
X113930000Y-59700000D03*
D22*
X106730000Y-59700000D03*
D19*
X122250000Y-102750000D03*
D20*
X122250000Y-105290000D03*
D13*
X195500000Y-29200000D03*
D16*
X185340000Y-29200000D03*
D14*
X127430000Y-91400000D03*
D15*
X129500000Y-92670000D03*
X127430000Y-93940000D03*
D23*
X87000000Y-22750000D03*
D13*
X116855000Y-69500000D03*
D16*
X106695000Y-69500000D03*
D19*
X106770000Y-87720000D03*
D24*
X116930000Y-87720000D03*
D13*
X133000000Y-94000000D03*
D16*
X133000000Y-83840000D03*
D13*
X195500000Y-52900000D03*
D16*
X185340000Y-52900000D03*
D13*
X198180000Y-71050000D03*
D16*
X188020000Y-71050000D03*
D23*
X203000000Y-22750000D03*
D13*
X139920000Y-66500000D03*
D16*
X150080000Y-66500000D03*
D13*
X116910000Y-100250000D03*
D16*
X106750000Y-100250000D03*
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-106950000D03*
D26*
X195485000Y-60100000D03*
D27*
X192945000Y-60100000D03*
D21*
X113930000Y-81220000D03*
D22*
X106730000Y-81220000D03*
D28*
X150100000Y-27460000D03*
D29*
X150100000Y-30000000D03*
X150100000Y-32540000D03*
X150100000Y-35080000D03*
X150100000Y-37620000D03*
X150100000Y-40160000D03*
X150100000Y-42700000D03*
X150100000Y-45240000D03*
X172960000Y-45240000D03*
X172960000Y-42700000D03*
X172960000Y-40160000D03*
X172960000Y-37620000D03*
X172960000Y-35080000D03*
X172960000Y-32540000D03*
X172960000Y-30000000D03*
X172960000Y-27460000D03*
D26*
X195400000Y-77000000D03*
D27*
X192860000Y-77000000D03*
X190320000Y-77000000D03*
D26*
X195485000Y-38630000D03*
D27*
X192945000Y-38630000D03*
X190405000Y-38630000D03*
X187865000Y-38630000D03*
D30*
X131800000Y-50800000D03*
D19*
X174830000Y-82250000D03*
D24*
X174830000Y-92410000D03*
D19*
X122300000Y-32620000D03*
D20*
X122300000Y-35160000D03*
D26*
X195600000Y-99250000D03*
D27*
X193060000Y-99250000D03*
X190520000Y-99250000D03*
D13*
X101455112Y-94200000D03*
X103955112Y-94200000D03*
D26*
X195490000Y-47890000D03*
D27*
X192950000Y-47890000D03*
X190410000Y-47890000D03*
X187870000Y-47890000D03*
D13*
X133000000Y-45310000D03*
D16*
X133000000Y-35150000D03*
D14*
X138400000Y-45170000D03*
D31*
X136330000Y-43900000D03*
X138400000Y-42630000D03*
D26*
X195485000Y-33980000D03*
D27*
X192945000Y-33980000D03*
X190405000Y-33980000D03*
X187865000Y-33980000D03*
D30*
X156500000Y-67860000D03*
D25*
X96500000Y-42450000D03*
X96500000Y-33150000D03*
X96500000Y-64000000D03*
X96500000Y-54700000D03*
D17*
X129680000Y-62250000D03*
D18*
X129680000Y-59710000D03*
X129680000Y-57170000D03*
D30*
X188000000Y-67900000D03*
D13*
X187670000Y-88250000D03*
D16*
X197830000Y-88250000D03*
D13*
X102500000Y-66200000D03*
X102500000Y-68700000D03*
X116900000Y-95000000D03*
D16*
X106740000Y-95000000D03*
D12*
X101500000Y-90100000D03*
D13*
X104000000Y-90100000D03*
X133000000Y-72460000D03*
X103955112Y-94200000D03*
X101455112Y-94200000D03*
D12*
X153500000Y-111250000D03*
D13*
X153500000Y-108750000D03*
X123520000Y-88850000D03*
D14*
X133680000Y-88850000D03*
D13*
X117000000Y-42420000D03*
D14*
X106840000Y-42420000D03*
D15*
X138430000Y-83750000D03*
D16*
X133000000Y-62300000D03*
X138430000Y-81210000D03*
X138430000Y-78670000D03*
D15*
X129800000Y-35150000D03*
D16*
X129800000Y-32610000D03*
X129800000Y-30070000D03*
D13*
X177750000Y-92250000D03*
D14*
X187910000Y-92250000D03*
D17*
X129680000Y-83750000D03*
X153750000Y-68000000D03*
D13*
X106750000Y-72750000D03*
D14*
X116910000Y-72750000D03*
D13*
X142680000Y-60340000D03*
D14*
X142680000Y-70500000D03*
D18*
X122231000Y-81220000D03*
D19*
X122231000Y-83760000D03*
D20*
X113930000Y-59700000D03*
D21*
X106730000Y-59700000D03*
D18*
X122250000Y-102750000D03*
D19*
X122250000Y-105290000D03*
D13*
X195500000Y-29200000D03*
D14*
X185340000Y-29200000D03*
D22*
X87000000Y-26500000D03*
D13*
X116910000Y-69500000D03*
D14*
X106750000Y-69500000D03*
D18*
X106770000Y-87720000D03*
D23*
X116930000Y-87720000D03*
D13*
X195500000Y-52900000D03*
D14*
X185340000Y-52900000D03*
D13*
X198180000Y-71050000D03*
D14*
X188020000Y-71050000D03*
D22*
X203000000Y-26500000D03*
D13*
X116910000Y-100250000D03*
D14*
X106750000Y-100250000D03*
D24*
X96500000Y-97650000D03*
X96500000Y-106950000D03*
D25*
X195485000Y-60100000D03*
D26*
X192945000Y-60100000D03*
D20*
X113930000Y-81220000D03*
D21*
X106730000Y-81220000D03*
D27*
X150100000Y-31750000D03*
D28*
X150100000Y-34290000D03*
X150100000Y-36830000D03*
X150100000Y-39370000D03*
X150100000Y-41910000D03*
X150100000Y-44450000D03*
X150100000Y-46990000D03*
X150100000Y-49530000D03*
X172960000Y-49530000D03*
X172960000Y-46990000D03*
X172960000Y-44450000D03*
X172960000Y-41910000D03*
X172960000Y-39370000D03*
X172960000Y-36830000D03*
X172960000Y-34290000D03*
X172960000Y-31750000D03*
D25*
X195955000Y-77050000D03*
D26*
X193415000Y-77050000D03*
X190875000Y-77050000D03*
D25*
X195485000Y-38630000D03*
D26*
X192945000Y-38630000D03*
X190405000Y-38630000D03*
X187865000Y-38630000D03*
D17*
X136750000Y-52500000D03*
D18*
X174830000Y-82250000D03*
D23*
X174830000Y-92410000D03*
D18*
X122300000Y-32620000D03*
D19*
X122300000Y-35160000D03*
D25*
X172420000Y-99250000D03*
D26*
X174960000Y-99250000D03*
X177500000Y-99250000D03*
D12*
X138730000Y-70025000D03*
D14*
X138730000Y-67485000D03*
X131110000Y-67485000D03*
X131110000Y-70025000D03*
D25*
X195490000Y-47890000D03*
D26*
X192950000Y-47890000D03*
X190410000Y-47890000D03*
X187870000Y-47890000D03*
D25*
X195485000Y-33980000D03*
D26*
X192945000Y-33980000D03*
X190405000Y-33980000D03*
X187865000Y-33980000D03*
D13*
X142750000Y-33000000D03*
D14*
X142750000Y-43160000D03*
D17*
X157500000Y-68000000D03*
D12*
X138800000Y-42685000D03*
D14*
X138800000Y-40145000D03*
X131180000Y-40145000D03*
X131180000Y-42685000D03*
D24*
X96500000Y-42450000D03*
X96500000Y-33150000D03*
X96500000Y-64000000D03*
X96500000Y-54700000D03*
D15*
X129680000Y-62250000D03*
D16*
X129680000Y-59710000D03*
X129680000Y-57170000D03*
D12*
X143630000Y-91470000D03*
D14*
X143630000Y-88930000D03*
X136010000Y-88930000D03*
X136010000Y-91470000D03*
D17*
X193000000Y-65000000D03*
D13*
X187670000Y-88250000D03*
D14*
X197830000Y-88250000D03*
D12*
X119794888Y-54750000D03*
D13*
X122294888Y-54750000D03*
D15*
X129680000Y-83750000D03*
D16*
X129680000Y-81210000D03*
X129680000Y-78670000D03*
D12*
X128204000Y-108710000D03*
X128204000Y-111250000D03*
D14*
X138370000Y-72370000D03*
D31*
X136300000Y-71100000D03*
X138370000Y-69830000D03*
D19*
X128178600Y-100455000D03*
X128204000Y-97915000D03*
D12*
X147000000Y-108837000D03*
X147000000Y-111377000D03*
D14*
X147101600Y-100455000D03*
X147127000Y-97915000D03*
D18*
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*
X116920000Y-66240000D03*
D22*
X87000000Y-113500000D03*
D29*
X108910000Y-48540000D03*
D30*
X103830000Y-50700000D03*
D31*
X106370000Y-50700000D03*
X108910000Y-50700000D03*
X111450000Y-50700000D03*
D13*
X181830000Y-85750000D03*
X181830000Y-88250000D03*
D12*
X123600000Y-108750000D03*
X122250000Y-111250000D03*
D13*
X123600000Y-111250000D03*
D19*
X122250000Y-108750000D03*
D18*
X106870000Y-39160000D03*
D24*
D23*
X117030000Y-39160000D03*
D13*
X136325000Y-39600000D03*
D16*
X146485000Y-39600000D03*
D13*
X117000000Y-46000000D03*
D16*
X106840000Y-46000000D03*
D26*
D25*
X195485000Y-43250000D03*
D27*
D26*
X192945000Y-43250000D03*
X190405000Y-43250000D03*
X187865000Y-43250000D03*
D13*
X116860000Y-73500000D03*
D16*
X106700000Y-73500000D03*
D21*
D20*
X113990000Y-108095000D03*
D22*
D21*
X106790000Y-108095000D03*
D13*
X116930000Y-90980000D03*
D16*
D14*
X106770000Y-90980000D03*
D19*
D18*
X170830000Y-82250000D03*
D24*
D23*
X170830000Y-92410000D03*
D25*
D24*
X96500000Y-85450000D03*
X96500000Y-76150000D03*
D14*
X121500000Y-42690000D03*
D15*
X123570000Y-43960000D03*
X121500000Y-45230000D03*
D14*
X138400000Y-93900000D03*
D31*
X136330000Y-92630000D03*
X138400000Y-91360000D03*
D14*
X121490000Y-91400000D03*
D15*
X123560000Y-92670000D03*
X121490000Y-93940000D03*
D21*
X114000000Y-32610000D03*
D22*
X106800000Y-32610000D03*
D23*
X203000000Y-117250000D03*
D26*
X177250000Y-42790000D03*
D27*
X177250000Y-40250000D03*
D13*
X144200000Y-74300000D03*
D16*
X144200000Y-84460000D03*
D19*
X122230000Y-59710000D03*
X123000000Y-48570000D03*
D14*
X123000000Y-38410000D03*
D20*
X114000000Y-32610000D03*
D21*
X106800000Y-32610000D03*
D13*
X106840000Y-45670000D03*
D14*
X117000000Y-45670000D03*
D13*
X106770000Y-94230000D03*
D14*
X116930000Y-94230000D03*
D22*
X203000000Y-113500000D03*
D25*
X177250000Y-47250000D03*
D26*
X177250000Y-44710000D03*
D13*
X122930000Y-75660000D03*
D14*
X122930000Y-65500000D03*
D13*
X147430000Y-81890000D03*
D14*
X147430000Y-92050000D03*
D17*
X158500000Y-111250000D03*
D18*
X122230000Y-59710000D03*
D19*
X122230000Y-62250000D03*
D13*
X197830000Y-84250000D03*
D16*
D14*
X187670000Y-84250000D03*
D35*
X169750000Y-50800000D03*
D32*
X169750000Y-52500000D03*
%LPD*%
M02*

View file

@ -1,11 +1,11 @@
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.5*
G04 #@! TF.CreationDate,2024-09-25T02:09:32+02:00*
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.3*
G04 #@! TF.CreationDate,2024-06-05T14:32:50+02:00*
G04 #@! TF.ProjectId,CanGrow,43616e47-726f-4772-9e6b-696361645f70,rev?*
G04 #@! TF.SameCoordinates,Original*
G04 #@! TF.FileFunction,Profile,NP*
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 8.0.5) date 2024-09-25 02:09:32*
G04 Created by KiCad (PCBNEW 8.0.3) date 2024-06-05 14:32:50*
%MOMM*%
%LPD*%
G01*
@ -15,9 +15,9 @@ G04 #@! TA.AperFunction,Profile*
G04 #@! TD*
G04 APERTURE END LIST*
D10*
X83000000Y-18750000D02*
X207000000Y-18750000D01*
X207000000Y-121250000D01*
X83000000Y-121250000D01*
X83000000Y-18750000D01*
X83000000Y-22500000D02*
X207000000Y-22500000D01*
X207000000Y-117500000D01*
X83000000Y-117500000D01*
X83000000Y-22500000D01*
M02*

File diff suppressed because it is too large Load diff

View file

@ -1,12 +1,12 @@
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.5*
G04 #@! TF.CreationDate,2024-09-25T02:09:32+02:00*
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.3*
G04 #@! TF.CreationDate,2024-06-05T14:32:50+02:00*
G04 #@! TF.ProjectId,CanGrow,43616e47-726f-4772-9e6b-696361645f70,rev?*
G04 #@! TF.SameCoordinates,Original*
G04 #@! TF.FileFunction,Soldermask,Top*
G04 #@! TF.FilePolarity,Negative*
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 8.0.5) date 2024-09-25 02:09:32*
G04 Created by KiCad (PCBNEW 8.0.3) date 2024-06-05 14:32:50*
%MOMM*%
%LPD*%
G01*
@ -31,358 +31,321 @@ G04 Aperture macros list*
G04 Aperture macros list end*
%ADD10R,1.600000X1.600000*%
%ADD11C,1.600000*%
%ADD12R,1.800000X1.100000*%
%ADD13RoundRect,0.275000X-0.625000X0.275000X-0.625000X-0.275000X0.625000X-0.275000X0.625000X0.275000X0*%
%ADD14O,1.600000X1.600000*%
%ADD15R,2.000000X1.905000*%
%ADD16O,2.000000X1.905000*%
%ADD17R,1.800000X1.800000*%
%ADD18C,1.800000*%
%ADD19RoundRect,1.500000X1.500000X1.500000X-1.500000X1.500000X-1.500000X-1.500000X1.500000X-1.500000X0*%
%ADD20C,6.000000*%
%ADD21C,5.600000*%
%ADD22O,1.800000X1.800000*%
%ADD23O,3.800000X8.000000*%
%ADD24R,1.700000X1.700000*%
%ADD25O,1.700000X1.700000*%
%ADD26R,2.000000X2.000000*%
%ADD27O,2.000000X1.600000*%
%ADD28RoundRect,0.250000X-0.550000X-0.550000X0.550000X-0.550000X0.550000X0.550000X-0.550000X0.550000X0*%
%ADD29RoundRect,0.275000X0.625000X-0.275000X0.625000X0.275000X-0.625000X0.275000X-0.625000X-0.275000X0*%
%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*%
%ADD12O,1.600000X1.600000*%
%ADD13R,2.000000X1.905000*%
%ADD14O,2.000000X1.905000*%
%ADD15RoundRect,0.250001X-0.799999X-0.799999X0.799999X-0.799999X0.799999X0.799999X-0.799999X0.799999X0*%
%ADD16R,1.800000X1.800000*%
%ADD17C,1.800000*%
%ADD18RoundRect,1.500000X1.500000X1.500000X-1.500000X1.500000X-1.500000X-1.500000X1.500000X-1.500000X0*%
%ADD19C,6.000000*%
%ADD20C,5.600000*%
%ADD21O,1.800000X1.800000*%
%ADD22O,3.800000X8.000000*%
%ADD23R,1.700000X1.700000*%
%ADD24O,1.700000X1.700000*%
%ADD25R,2.000000X2.000000*%
%ADD26O,2.000000X1.600000*%
%ADD27C,1.100000*%
%ADD28R,1.730000X2.030000*%
%ADD29O,1.730000X2.030000*%
%ADD30RoundRect,0.250001X0.799999X0.799999X-0.799999X0.799999X-0.799999X-0.799999X0.799999X-0.799999X0*%
G04 APERTURE END LIST*
D10*
X156600000Y-108750000D03*
D11*
X156600000Y-111250000D03*
D12*
X127400000Y-42690000D03*
D13*
X129470000Y-43960000D03*
X127400000Y-45230000D03*
D11*
X117000000Y-42420000D03*
D14*
X106840000Y-42420000D03*
D15*
X138430000Y-83750000D03*
D16*
X138430000Y-81210000D03*
X138430000Y-78670000D03*
D15*
X129800000Y-35150000D03*
D16*
X129800000Y-32610000D03*
X129800000Y-30070000D03*
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*
D14*
X187910000Y-92250000D03*
D17*
X122231000Y-81220000D03*
D18*
X122231000Y-83760000D03*
D19*
X113930000Y-59700000D03*
D20*
X106730000Y-59700000D03*
D17*
X122250000Y-102750000D03*
D18*
X122250000Y-105290000D03*
D11*
X195500000Y-29200000D03*
D14*
X185340000Y-29200000D03*
D12*
X127430000Y-91400000D03*
D13*
X129500000Y-92670000D03*
X127430000Y-93940000D03*
D21*
X87000000Y-22750000D03*
D11*
X116855000Y-69500000D03*
D14*
X106695000Y-69500000D03*
D17*
X106770000Y-87720000D03*
D22*
X116930000Y-87720000D03*
D11*
X133000000Y-94000000D03*
D14*
X133000000Y-83840000D03*
D11*
X195500000Y-52900000D03*
D14*
X185340000Y-52900000D03*
D11*
X198180000Y-71050000D03*
D14*
X188020000Y-71050000D03*
D21*
X203000000Y-22750000D03*
D11*
X139920000Y-66500000D03*
D14*
X150080000Y-66500000D03*
D11*
X116910000Y-100250000D03*
D14*
X106750000Y-100250000D03*
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-106950000D03*
D24*
X195485000Y-60100000D03*
D25*
X192945000Y-60100000D03*
D19*
X113930000Y-81220000D03*
D20*
X106730000Y-81220000D03*
D26*
X150100000Y-27460000D03*
D27*
X150100000Y-30000000D03*
X150100000Y-32540000D03*
X150100000Y-35080000D03*
X150100000Y-37620000D03*
X150100000Y-40160000D03*
X150100000Y-42700000D03*
X150100000Y-45240000D03*
X172960000Y-45240000D03*
X172960000Y-42700000D03*
X172960000Y-40160000D03*
X172960000Y-37620000D03*
X172960000Y-35080000D03*
X172960000Y-32540000D03*
X172960000Y-30000000D03*
X172960000Y-27460000D03*
D24*
X195400000Y-77000000D03*
D25*
X192860000Y-77000000D03*
X190320000Y-77000000D03*
D24*
X195485000Y-38630000D03*
D25*
X192945000Y-38630000D03*
X190405000Y-38630000D03*
X187865000Y-38630000D03*
D28*
X131800000Y-50800000D03*
D17*
X174830000Y-82250000D03*
D22*
X174830000Y-92410000D03*
D17*
X122300000Y-32620000D03*
D18*
X122300000Y-35160000D03*
D24*
X195600000Y-99250000D03*
D25*
X193060000Y-99250000D03*
X190520000Y-99250000D03*
D11*
X101455112Y-94200000D03*
X103955112Y-94200000D03*
D24*
X195490000Y-47890000D03*
D25*
X192950000Y-47890000D03*
X190410000Y-47890000D03*
X187870000Y-47890000D03*
D11*
X133000000Y-45310000D03*
D14*
X133000000Y-35150000D03*
D12*
X138400000Y-45170000D03*
D29*
X136330000Y-43900000D03*
X138400000Y-42630000D03*
D24*
X195485000Y-33980000D03*
D25*
X192945000Y-33980000D03*
X190405000Y-33980000D03*
X187865000Y-33980000D03*
D28*
X156500000Y-67860000D03*
D23*
X96500000Y-42450000D03*
X96500000Y-33150000D03*
X96500000Y-64000000D03*
X96500000Y-54700000D03*
D15*
X129680000Y-62250000D03*
D16*
X129680000Y-59710000D03*
X129680000Y-57170000D03*
D28*
X188000000Y-67900000D03*
D11*
X187670000Y-88250000D03*
D14*
X197830000Y-88250000D03*
D11*
X102500000Y-66200000D03*
X102500000Y-68700000D03*
X116900000Y-95000000D03*
D14*
X106740000Y-95000000D03*
D10*
X101500000Y-90100000D03*
D11*
X104000000Y-90100000D03*
X133000000Y-72460000D03*
X103955112Y-94200000D03*
X101455112Y-94200000D03*
D10*
X153500000Y-111250000D03*
D11*
X153500000Y-108750000D03*
X123520000Y-88850000D03*
D12*
X133680000Y-88850000D03*
D11*
X117000000Y-42420000D03*
D12*
X106840000Y-42420000D03*
D13*
X138430000Y-83750000D03*
D14*
X133000000Y-62300000D03*
X138430000Y-81210000D03*
X138430000Y-78670000D03*
D13*
X129800000Y-35150000D03*
D14*
X129800000Y-32610000D03*
X129800000Y-30070000D03*
D11*
X177750000Y-92250000D03*
D12*
X187910000Y-92250000D03*
D15*
X129680000Y-83750000D03*
X153750000Y-68000000D03*
D11*
X106750000Y-72750000D03*
D12*
X116910000Y-72750000D03*
D11*
X142680000Y-60340000D03*
D12*
X142680000Y-70500000D03*
D16*
X122231000Y-81220000D03*
D17*
X122231000Y-83760000D03*
D18*
X113930000Y-59700000D03*
D19*
X106730000Y-59700000D03*
D16*
X122250000Y-102750000D03*
D17*
X122250000Y-105290000D03*
D11*
X195500000Y-29200000D03*
D12*
X185340000Y-29200000D03*
D20*
X87000000Y-26500000D03*
D11*
X116910000Y-69500000D03*
D12*
X106750000Y-69500000D03*
D16*
X106770000Y-87720000D03*
D21*
X116930000Y-87720000D03*
D11*
X195500000Y-52900000D03*
D12*
X185340000Y-52900000D03*
D11*
X198180000Y-71050000D03*
D12*
X188020000Y-71050000D03*
D20*
X203000000Y-26500000D03*
D11*
X116910000Y-100250000D03*
D12*
X106750000Y-100250000D03*
D22*
X96500000Y-97650000D03*
X96500000Y-106950000D03*
D23*
X195485000Y-60100000D03*
D24*
X192945000Y-60100000D03*
D18*
X113930000Y-81220000D03*
D19*
X106730000Y-81220000D03*
D25*
X150100000Y-31750000D03*
D26*
X150100000Y-34290000D03*
X150100000Y-36830000D03*
X150100000Y-39370000D03*
X150100000Y-41910000D03*
X150100000Y-44450000D03*
X150100000Y-46990000D03*
X150100000Y-49530000D03*
X172960000Y-49530000D03*
X172960000Y-46990000D03*
X172960000Y-44450000D03*
X172960000Y-41910000D03*
X172960000Y-39370000D03*
X172960000Y-36830000D03*
X172960000Y-34290000D03*
X172960000Y-31750000D03*
D23*
X195955000Y-77050000D03*
D24*
X193415000Y-77050000D03*
X190875000Y-77050000D03*
D23*
X195485000Y-38630000D03*
D24*
X192945000Y-38630000D03*
X190405000Y-38630000D03*
X187865000Y-38630000D03*
D15*
X136750000Y-52500000D03*
D16*
X174830000Y-82250000D03*
D21*
X174830000Y-92410000D03*
D16*
X122300000Y-32620000D03*
D17*
X122300000Y-35160000D03*
D23*
X172420000Y-99250000D03*
D24*
X174960000Y-99250000D03*
X177500000Y-99250000D03*
D10*
X138730000Y-70025000D03*
D12*
X138730000Y-67485000D03*
X131110000Y-67485000D03*
X131110000Y-70025000D03*
D23*
X195490000Y-47890000D03*
D24*
X192950000Y-47890000D03*
X190410000Y-47890000D03*
X187870000Y-47890000D03*
D23*
X195485000Y-33980000D03*
D24*
X192945000Y-33980000D03*
X190405000Y-33980000D03*
X187865000Y-33980000D03*
D11*
X142750000Y-33000000D03*
D12*
X142750000Y-43160000D03*
D15*
X157500000Y-68000000D03*
D10*
X138800000Y-42685000D03*
D12*
X138800000Y-40145000D03*
X131180000Y-40145000D03*
X131180000Y-42685000D03*
D22*
X96500000Y-42450000D03*
X96500000Y-33150000D03*
X96500000Y-64000000D03*
X96500000Y-54700000D03*
D13*
X129680000Y-62250000D03*
D14*
X129680000Y-59710000D03*
X129680000Y-57170000D03*
D10*
X143630000Y-91470000D03*
D12*
X143630000Y-88930000D03*
X136010000Y-88930000D03*
X136010000Y-91470000D03*
D15*
X193000000Y-65000000D03*
D11*
X187670000Y-88250000D03*
D12*
X197830000Y-88250000D03*
D10*
X119794888Y-54750000D03*
D11*
X122294888Y-54750000D03*
D13*
X129680000Y-83750000D03*
D14*
X129680000Y-81210000D03*
X129680000Y-78670000D03*
D10*
X128204000Y-108710000D03*
X128204000Y-111250000D03*
D12*
X138370000Y-72370000D03*
D29*
X136300000Y-71100000D03*
X138370000Y-69830000D03*
D17*
X128178600Y-100455000D03*
X128204000Y-97915000D03*
D10*
X147000000Y-108837000D03*
X147000000Y-111377000D03*
D12*
X147101600Y-100455000D03*
X147127000Y-97915000D03*
D16*
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*
X116920000Y-66240000D03*
D20*
X87000000Y-113500000D03*
D27*
X108910000Y-48540000D03*
D28*
X103830000Y-50700000D03*
D29*
X106370000Y-50700000D03*
X108910000Y-50700000D03*
X111450000Y-50700000D03*
D11*
X181830000Y-85750000D03*
X181830000Y-88250000D03*
D10*
X123600000Y-108750000D03*
X122250000Y-111250000D03*
D11*
X123600000Y-111250000D03*
D17*
X122250000Y-108750000D03*
D16*
X106870000Y-39160000D03*
D22*
D21*
X117030000Y-39160000D03*
D11*
X136325000Y-39600000D03*
D14*
X146485000Y-39600000D03*
D11*
X117000000Y-46000000D03*
D14*
X106840000Y-46000000D03*
D24*
D23*
X195485000Y-43250000D03*
D25*
D24*
X192945000Y-43250000D03*
X190405000Y-43250000D03*
X187865000Y-43250000D03*
D11*
X116860000Y-73500000D03*
D14*
X106700000Y-73500000D03*
D19*
D18*
X113990000Y-108095000D03*
D20*
D19*
X106790000Y-108095000D03*
D11*
X116930000Y-90980000D03*
D14*
D12*
X106770000Y-90980000D03*
D17*
D16*
X170830000Y-82250000D03*
D22*
D21*
X170830000Y-92410000D03*
D23*
D22*
X96500000Y-85450000D03*
X96500000Y-76150000D03*
D12*
X121500000Y-42690000D03*
D13*
X123570000Y-43960000D03*
X121500000Y-45230000D03*
D12*
X138400000Y-93900000D03*
D29*
X136330000Y-92630000D03*
X138400000Y-91360000D03*
D12*
X121490000Y-91400000D03*
D13*
X123560000Y-92670000D03*
X121490000Y-93940000D03*
D19*
X114000000Y-32610000D03*
D20*
X106800000Y-32610000D03*
D21*
X203000000Y-117250000D03*
D24*
X177250000Y-42790000D03*
D25*
X177250000Y-40250000D03*
D11*
X144200000Y-74300000D03*
D14*
X144200000Y-84460000D03*
D17*
X122230000Y-59710000D03*
X123000000Y-48570000D03*
D12*
X123000000Y-38410000D03*
D18*
X114000000Y-32610000D03*
D19*
X106800000Y-32610000D03*
D11*
X106840000Y-45670000D03*
D12*
X117000000Y-45670000D03*
D11*
X106770000Y-94230000D03*
D12*
X116930000Y-94230000D03*
D20*
X203000000Y-113500000D03*
D23*
X177250000Y-47250000D03*
D24*
X177250000Y-44710000D03*
D11*
X122930000Y-75660000D03*
D12*
X122930000Y-65500000D03*
D11*
X147430000Y-81890000D03*
D12*
X147430000Y-92050000D03*
D15*
X158500000Y-111250000D03*
D16*
X122230000Y-59710000D03*
D17*
X122230000Y-62250000D03*
D11*
X197830000Y-84250000D03*
D14*
D12*
X187670000Y-84250000D03*
D33*
X169750000Y-50800000D03*
D30*
X169750000Y-52500000D03*
M02*

View file

@ -1,12 +1,12 @@
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.5*
G04 #@! TF.CreationDate,2024-09-25T02:09:32+02:00*
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.3*
G04 #@! TF.CreationDate,2024-06-05T14:32:50+02:00*
G04 #@! TF.ProjectId,CanGrow,43616e47-726f-4772-9e6b-696361645f70,rev?*
G04 #@! TF.SameCoordinates,Original*
G04 #@! TF.FileFunction,Paste,Top*
G04 #@! TF.FilePolarity,Positive*
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 8.0.5) date 2024-09-25 02:09:32*
G04 Created by KiCad (PCBNEW 8.0.3) date 2024-06-05 14:32:50*
%MOMM*%
%LPD*%
G01*

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,8 +1,8 @@
M48
; DRILL file {KiCad 8.0.5} date 2024-09-25T02:09:34+0200
; DRILL file {KiCad 8.0.3} date 2024-06-05T14:32:52+0200
; FORMAT={-:-/ absolute / metric / decimal}
; #@! TF.CreationDate,2024-09-25T02:09:34+02:00
; #@! TF.GenerationSoftware,Kicad,Pcbnew,8.0.5
; #@! TF.CreationDate,2024-06-05T14:32:52+02:00
; #@! TF.GenerationSoftware,Kicad,Pcbnew,8.0.3
; #@! TF.FileFunction,NonPlated,1,2,NPTH
FMAT,2
METRIC
@ -12,5 +12,5 @@ T1C1.100
G90
G05
T1
X108.9Y-48.62
X108.91Y-48.54
M30

File diff suppressed because it is too large Load diff

View file

@ -1,114 +1,87 @@
M48
; DRILL file {KiCad 8.0.5} date 2024-09-25T02:09:34+0200
; DRILL file {KiCad 8.0.3} date 2024-06-05T14:32:52+0200
; FORMAT={-:-/ absolute / metric / decimal}
; #@! TF.CreationDate,2024-09-25T02:09:34+02:00
; #@! TF.GenerationSoftware,Kicad,Pcbnew,8.0.5
; #@! TF.CreationDate,2024-06-05T14:32:52+02:00
; #@! TF.GenerationSoftware,Kicad,Pcbnew,8.0.3
; #@! TF.FileFunction,Plated,1,2,PTH
FMAT,2
METRIC
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
T1C0.750
T1C0.800
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
T2C0.800
T2C0.900
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
T3C0.900
T3C1.000
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
T4C1.000
T4C1.020
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
T5C1.020
T5C1.100
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
T6C1.100
T6C2.000
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
T7C2.000
T7C3.200
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
T8C3.200
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
T9C4.500
T8C4.500
%
G90
G05
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.5Y-90.1
X102.5Y-66.2
X102.5Y-68.7
X103.955Y-94.2
X104.0Y-90.1
X106.695Y-69.5
X106.7Y-73.5
X106.74Y-95.0
X106.75Y-69.5
X106.75Y-72.75
X106.75Y-100.25
X106.77Y-90.98
X106.77Y-94.23
X106.84Y-42.42
X106.84Y-46.0
X116.855Y-69.5
X116.86Y-73.5
X116.9Y-95.0
X106.84Y-45.67
X116.91Y-69.5
X116.91Y-72.75
X116.91Y-100.25
X116.93Y-90.98
X116.93Y-94.23
X117.0Y-42.42
X117.0Y-46.0
X123.6Y-108.75
X123.6Y-111.25
X130.723Y-100.478
X130.748Y-97.938
X130.748Y-108.846
X130.748Y-111.386
X131.8Y-50.8
X133.0Y-35.15
X133.0Y-45.31
X133.0Y-62.3
X133.0Y-72.46
X133.0Y-83.84
X133.0Y-94.0
X136.32Y-32.6
X136.325Y-39.6
X139.9Y-53.32
X139.9Y-63.48
X139.92Y-66.5
X144.2Y-74.3
X144.2Y-84.46
X146.48Y-32.6
X146.485Y-39.6
X149.544Y-108.86
X149.544Y-111.4
X149.646Y-100.478
X149.671Y-97.938
X150.08Y-66.5
X153.1Y-67.85
X153.1Y-78.01
X156.5Y-67.86
X156.6Y-108.75
X156.6Y-111.25
X169.75Y-50.8
X117.0Y-45.67
X119.795Y-54.75
X122.25Y-108.75
X122.25Y-111.25
X122.295Y-54.75
X122.93Y-65.5
X122.93Y-75.66
X123.0Y-38.41
X123.0Y-48.57
X123.52Y-88.85
X128.179Y-100.455
X128.204Y-97.915
X128.204Y-108.71
X128.204Y-111.25
X131.11Y-67.485
X131.11Y-70.025
X131.18Y-40.145
X131.18Y-42.685
X133.68Y-88.85
X136.01Y-88.93
X136.01Y-91.47
X138.73Y-67.485
X138.73Y-70.025
X138.8Y-40.145
X138.8Y-42.685
X142.68Y-60.34
X142.68Y-70.5
X142.75Y-33.0
X142.75Y-43.16
X143.63Y-88.93
X143.63Y-91.47
X147.0Y-108.837
X147.0Y-111.377
X147.102Y-100.455
X147.127Y-97.915
X147.43Y-81.89
X147.43Y-92.05
X153.5Y-108.75
X153.5Y-111.25
X177.75Y-92.25
X181.83Y-85.75
X181.83Y-88.25
@ -117,14 +90,13 @@ X185.34Y-52.9
X187.67Y-84.25
X187.67Y-88.25
X187.91Y-92.25
X188.0Y-67.9
X188.02Y-71.05
X195.5Y-29.2
X195.5Y-52.9
X197.83Y-84.25
X197.83Y-88.25
X198.18Y-71.05
T3
T2
X106.76Y-66.24
X106.77Y-87.72
X106.87Y-39.16
@ -143,55 +115,55 @@ X170.83Y-82.25
X170.83Y-92.41
X174.83Y-82.25
X174.83Y-92.41
T4
X150.1Y-27.46
X150.1Y-30.0
X150.1Y-32.54
X150.1Y-35.08
X150.1Y-37.62
X150.1Y-40.16
X150.1Y-42.7
X150.1Y-45.24
X172.96Y-27.46
X172.96Y-30.0
X172.96Y-32.54
X172.96Y-35.08
X172.96Y-37.62
X172.96Y-40.16
X172.96Y-42.7
X172.96Y-45.24
X177.25Y-40.25
X177.25Y-42.79
T3
X150.1Y-31.75
X150.1Y-34.29
X150.1Y-36.83
X150.1Y-39.37
X150.1Y-41.91
X150.1Y-44.45
X150.1Y-46.99
X150.1Y-49.53
X172.42Y-99.25
X172.96Y-31.75
X172.96Y-34.29
X172.96Y-36.83
X172.96Y-39.37
X172.96Y-41.91
X172.96Y-44.45
X172.96Y-46.99
X172.96Y-49.53
X174.96Y-99.25
X177.25Y-44.71
X177.25Y-47.25
X177.5Y-99.25
X187.865Y-33.98
X187.865Y-38.63
X187.865Y-43.25
X187.87Y-47.89
X190.32Y-77.0
X190.405Y-33.98
X190.405Y-38.63
X190.405Y-43.25
X190.41Y-47.89
X190.52Y-99.25
X192.86Y-77.0
X190.875Y-77.05
X192.945Y-33.98
X192.945Y-38.63
X192.945Y-43.25
X192.945Y-60.1
X192.95Y-47.89
X193.06Y-99.25
X195.4Y-77.0
X193.415Y-77.05
X195.485Y-33.98
X195.485Y-38.63
X195.485Y-43.25
X195.485Y-60.1
X195.49Y-47.89
X195.6Y-99.25
X195.955Y-77.05
T4
X103.83Y-50.7
X106.37Y-50.7
X108.91Y-50.7
X111.45Y-50.7
T5
X103.82Y-50.78
X106.36Y-50.78
X108.9Y-50.78
X111.44Y-50.78
T6
X129.68Y-57.17
X129.68Y-59.71
X129.68Y-62.25
@ -201,15 +173,21 @@ X129.68Y-83.75
X129.8Y-30.07
X129.8Y-32.61
X129.8Y-35.15
X136.75Y-52.5
X138.43Y-78.67
X138.43Y-81.21
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
X87.0Y-22.75
X87.0Y-117.25
X203.0Y-22.75
X203.0Y-117.25
T9
X106.73Y-59.7
X106.73Y-81.22
X106.79Y-108.095
@ -218,7 +196,7 @@ X113.93Y-59.7
X113.93Y-81.22
X113.99Y-108.095
X114.0Y-32.61
T7
T6
X96.5Y-35.15G85X96.5Y-31.15
G05
X96.5Y-44.45G85X96.5Y-40.45

Binary file not shown.

Before

Width:  |  Height:  |  Size: 814 B

Binary file not shown.

View file

@ -4,63 +4,25 @@
![CanGrowLogo](Logo/CanGrow_Logo.png)
An easy to use DIY grow controller firmware (for cannabis).
A simple DIY plant growing system (for cannabis).
![Screenshot_WebUI_root.png](Arduino/CanGrow/Screenshot_WebUI_root.png)
![CanGrow_PCB_Front.png](KiCad/CanGrow/CanGrow_PCB_Front_small.png)
![Screenshot_WebUI_root.png](Arduino/CanGrow/Screenshot_WebUI_root.png)
# WORK IN PROGRESS
## 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.
### Update 14.09.2024 - Code Rewrite v0.2
I want to build a simple grow system, which I can power by my off-grid
12V solar system. So this project is limited to a small 40x40x120 tent
for one plant with a 50W 12V grow LED light.
I took some "summer break" from the project, and had the opportunity to talk to different people about it.
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.
As I did it for my solar system, the measurements of this project will be shown
on my website. For that a REST API is planned.
**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
I want to automate as much as possible which makes sense and is easy to build.
## Old v0.1 Features / ToDo List
## Features / ToDo List
- Measure values :white_check_mark:
- Humidity :white_check_mark:
@ -92,3 +54,14 @@ and let the user decide at which pin which output, sensor or whatever will be co
- low cost as possible! :white_check_mark:
: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

View file

@ -1,3 +0,0 @@
board_manager:
additional_urls:
- http://arduino.esp8266.com/stable/package_esp8266com_index.json

View file

@ -4,98 +4,39 @@
test -z $TTY && TTY="/dev/ttyUSB0"
test -z $IP && IP="192.168.30.212"
test -z $VER && VER="0.1-dev"
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"
BUILD="$(git rev-parse --short HEAD)"
function help() {
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"
echo "$0 [build|upload|webupload|monitor]"
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
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)
check_acli
echo ":: Building firmware $VER $BUILD, target dir: $(pwd)/build/"
echo "building firmware $VER $BUILD, target dir: $(pwd)/build/"
test -d build || mkdir build
echo "/* CanGrow_Version.h gets generated from cangrow.sh */
const char* CanGrowVer = \"${VER}\";
const char* CanGrowBuild = \"${BUILD}\";
" > Arduino/CanGrow/CanGrow_Version.h
${ACLI_CMD} --no-color compile -b ${BOARD} "Arduino/CanGrow/CanGrow.ino" --output-dir build/ || exit 1
~/.local/bin/arduino-cli --no-color compile -b esp8266:esp8266:d1_mini_clone "Arduino/CanGrow/CanGrow.ino" --output-dir build/ || exit 1
cp build/CanGrow.ino.bin build/CanGrow_v${VER}_${BUILD}.bin
;;
u|upload)
check_acli
echo ":: Uploading to $TTY"
${ACLI_CMD} --no-color compile -v -b ${BOARD} -u -p $TTY "Arduino/CanGrow/CanGrow.ino"
echo "uploading to $TTY"
~/.local/bin/arduino-cli --no-color compile -v -b esp8266:esp8266:d1_mini_clone -u -p $TTY "Arduino/CanGrow/CanGrow.ino"
;;
w|webupload)
echo ":: Uploading to $IP"
curl -v http://$IP/system/applyUpdate -X POST -H 'Content-Type: multipart/form-data' -F "firmware=@$(pwd)/build/CanGrow.ino.bin"
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"
echo
;;
m|mon|monitor)
check_acli
echo ":: Open serial monitor $TTY"
${ACLI_CMD} monitor -c baudrate=115200 -b ${BOARD} -p $TTY
echo "open monitor $TTY"
~/.local/bin/arduino-cli monitor -c baudrate=115200 -p $TTY
;;
*)
help