Compare commits

..

19 commits

Author SHA1 Message Date
Marcus
461b816115 set Wire.setClockStretchLimit(2500) because aliexpress chirp clone does not work correctly 2024-11-22 01:51:03 +01:00
1c0beb58aa pcb wip v0.6.1 - minor silkscreen tweak. 2024-09-25 02:11:13 +02:00
bcfd9d74ee pcb - v0.6.1 gerber files 2024-09-24 23:41:43 +02:00
58dc9f4ff0 renew schematics pdf v0.6.1 2024-09-24 23:16:03 +02:00
42432a3de3 pcb wip - v0.6.1 , kicad proj dependency fix, minor adjustments 2024-09-24 23:13:21 +02:00
368ec7a8b3 schematics v0.6.1 - 100k instead of 10k 3.3V pullup for mosfet drivers 2024-09-24 22:43:45 +02:00
a690758476 firmware wip - didnt broke watering, just forgot a semicolone and was dumb 2024-09-19 02:22:46 +02:00
d2e264db56 firmware wip - quick hack inverted outputs for pcb v0.6 together. but watering now broke a bit 2024-09-19 02:11:57 +02:00
56d9756744 README.md aktualisiert 2024-09-14 21:04:14 +02:00
562d46a2e2 README.md aktualisiert 2024-09-14 21:01:52 +02:00
14f752413f README.md aktualisiert 2024-09-14 16:43:48 +02:00
df69103dff README.md aktualisiert 2024-09-14 16:36:48 +02:00
c78dc3368f README.md aktualisiert 2024-09-14 16:34:14 +02:00
b74d0c88ca README WIP 2024-09-14 16:33:05 +02:00
c59f790c15 arduino-cli now wants to have board specified in monitor mode 2024-09-14 15:57:14 +02:00
1a1fd39ffa add large favico png 2024-09-11 00:33:06 +02:00
9687cfe00d replace Arduino/Screenshot_WebUI_root.png 2024-07-30 19:44:50 +02:00
3a5c0cbfa8 replace Arduino/Screenshot_WebUI_root.png 2024-07-30 19:43:02 +02:00
7a5baf009b firmware wip - change pwm freq to 13.37KHz, add xxd to ./cangrow setup 2024-07-30 19:40:36 +02:00
30 changed files with 9731 additions and 9467 deletions

View file

@ -71,16 +71,16 @@ void setup() {
// set all OUTPUT to low // set all OUTPUT to low
digitalWrite(PinFAN, LOW); digitalWrite(PinFAN, HIGH);
digitalWrite(PINwaterlevel, LOW); digitalWrite(PINwaterlevel, LOW);
digitalWrite(PinLED, LOW); digitalWrite(PinLED, HIGH);
digitalWrite(PinPUMP, LOW); digitalWrite(PinPUMP, HIGH);
// except PINsoilmoisture // except PINsoilmoisture
// PINsoilmoisture is always HIGH and gets LOW in moment of waterlevel measurement // PINsoilmoisture is always HIGH and gets LOW in moment of waterlevel measurement
digitalWrite(PINsoilmoisture, LOW); digitalWrite(PINsoilmoisture, LOW);
// set PWM frequency to 2.2KHz // set PWM frequency to 13.37KHz
analogWriteFreq(2200); analogWriteFreq(13370);
// Start EEPROM // Start EEPROM
EEPROM.begin(512); EEPROM.begin(512);
@ -100,7 +100,7 @@ void setup() {
Serial.println(":: initialise I2C ::"); Serial.println(":: initialise I2C ::");
// initialise Wire for I2C // initialise Wire for I2C
Wire.begin(); Wire.begin();
Wire.setClockStretchLimit(2500);
Serial.println(":: initialise display ::"); Serial.println(":: initialise display ::");
// initialise I2C display // initialise I2C display
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // Address 0x3C for 128x64 display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // Address 0x3C for 128x64

View file

@ -439,9 +439,9 @@ void setOutput(byte Output, byte OutputState) {
//~ Serial.println(UseRelais); //~ Serial.println(UseRelais);
if( (UseRelais == true) || (OutputPin == PinPUMP) ) { if( (UseRelais == true) || (OutputPin == PinPUMP) ) {
digitalWrite(OutputPin, OutputState); digitalWrite(OutputPin, 1 - OutputState);
} else { } else {
analogWrite(OutputPin, OutputState); analogWrite(OutputPin, 255 - OutputState);
} }
} }
@ -661,11 +661,13 @@ void controlPUMP() {
// when PumpOnManuel is true, turn pump on for PumpOnTime seconds // when PumpOnManuel is true, turn pump on for PumpOnTime seconds
if(PumpOnManual == true) { if(PumpOnManual == true) {
if(PumpOnTimePassed < PumpOnTime) { if(PumpOnTimePassed < PumpOnTime) {
digitalWrite(PinPUMP, HIGH); setOutput(3, 1);
//digitalWrite(PinPUMP, HIGH);
PumpOnTimePassed++; PumpOnTimePassed++;
} else { } else {
PumpOnManual = false; PumpOnManual = false;
digitalWrite(PinPUMP, LOW); setOutput(3, 0);
//digitalWrite(PinPUMP, LOW);
EEPROM.put(237, PumpLastOn); EEPROM.put(237, PumpLastOn);
PumpOnTimePassed = 0; PumpOnTimePassed = 0;
} }
@ -677,17 +679,20 @@ void controlPUMP() {
if( (timeClient.getEpochTime() - PumpLastOn) >= (PumpInterval) ) { // TODO: * 24 * 60 * 60 PumpInterval if( (timeClient.getEpochTime() - PumpLastOn) >= (PumpInterval) ) { // TODO: * 24 * 60 * 60 PumpInterval
// only water as long PumpOnTime // only water as long PumpOnTime
if(PumpOnTimePassed < PumpOnTime) { if(PumpOnTimePassed < PumpOnTime) {
digitalWrite(PinPUMP, HIGH); setOutput(3, 1);
//digitalWrite(PinPUMP, HIGH);
PumpOnTimePassed++; PumpOnTimePassed++;
} else { } else {
digitalWrite(PinPUMP, LOW); setOutput(3, 0);
//digitalWrite(PinPUMP, LOW);
PumpLastOn = timeClient.getEpochTime(); PumpLastOn = timeClient.getEpochTime();
// write the value to EEPROM for the case ESP gets restarted // write the value to EEPROM for the case ESP gets restarted
EEPROM.put(237, PumpLastOn); EEPROM.put(237, PumpLastOn);
PumpOnTimePassed = 0; PumpOnTimePassed = 0;
} }
} else { } else {
digitalWrite(PinPUMP, LOW); setOutput(3, 0);
//digitalWrite(PinPUMP, LOW);
} }
break; break;
@ -696,16 +701,19 @@ void controlPUMP() {
if( (valSoilmoistureAvg < SoilmoistureLow) || ( (valSoilmoistureAvg >= SoilmoistureLow) && ( (PumpOnTimePassed > 0) && (PumpOnTimePassed <= PumpOnTime) ) ) ) { if( (valSoilmoistureAvg < SoilmoistureLow) || ( (valSoilmoistureAvg >= SoilmoistureLow) && ( (PumpOnTimePassed > 0) && (PumpOnTimePassed <= PumpOnTime) ) ) ) {
// check if we alerady exceeded max PumpOnTime // check if we alerady exceeded max PumpOnTime
if(PumpOnTimePassed < PumpOnTime) { if(PumpOnTimePassed < PumpOnTime) {
digitalWrite(PinPUMP, HIGH); setOutput(3, 1);
//digitalWrite(PinPUMP, HIGH);
PumpOnTimePassed++; PumpOnTimePassed++;
} else { } else {
digitalWrite(PinPUMP, LOW); setOutput(3, 0);
//digitalWrite(PinPUMP, LOW);
PumpLastOn = timeClient.getEpochTime(); PumpLastOn = timeClient.getEpochTime();
PumpOnTimePassed = 0; PumpOnTimePassed = 0;
} }
// when valSoilmoistureAvg is greater then the Low value, // when valSoilmoistureAvg is greater then the Low value,
} else { } else {
digitalWrite(PinPUMP, LOW); setOutput(3, 0);
//digitalWrite(PinPUMP, LOW);
} }
break; break;
@ -717,17 +725,20 @@ void controlPUMP() {
) ) { ) ) {
// check if we alerady exceeded max PumpOnTime // check if we alerady exceeded max PumpOnTime
if(PumpOnTimePassed < PumpOnTime) { if(PumpOnTimePassed < PumpOnTime) {
digitalWrite(PinPUMP, HIGH); setOutput(3, 1);
//digitalWrite(PinPUMP, HIGH);
PumpOnTimePassed++; PumpOnTimePassed++;
} else { } else {
digitalWrite(PinPUMP, LOW); setOutput(3, 0);
//digitalWrite(PinPUMP, LOW);
PumpLastOn = timeClient.getEpochTime(); PumpLastOn = timeClient.getEpochTime();
EEPROM.put(237, PumpLastOn); EEPROM.put(237, PumpLastOn);
PumpOnTimePassed = 0; PumpOnTimePassed = 0;
} }
// when valSoilmoistureAvg is greater then the Low value, // when valSoilmoistureAvg is greater then the Low value,
} else { } else {
digitalWrite(PinPUMP, LOW); setOutput(3, 0);
//digitalWrite(PinPUMP, LOW);
} }
break; break;
@ -735,6 +746,7 @@ void controlPUMP() {
} }
} else { } else {
// ensure pump is off when it should be off // ensure pump is off when it should be off
digitalWrite(PinPUMP, LOW); setOutput(3, 0);
//digitalWrite(PinPUMP, LOW);
} }
} }

View file

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 291 KiB

File diff suppressed because it is too large Load diff

View file

@ -492,6 +492,7 @@
}, },
"schematic": { "schematic": {
"annotate_start_num": 0, "annotate_start_num": 0,
"bom_export_filename": "",
"bom_fmt_presets": [], "bom_fmt_presets": [],
"bom_fmt_settings": { "bom_fmt_settings": {
"field_delimiter": ",", "field_delimiter": ",",
@ -591,7 +592,7 @@
"sheets": [ "sheets": [
[ [
"42428fce-ab8c-4a80-af19-dee4f0070d36", "42428fce-ab8c-4a80-af19-dee4f0070d36",
"Stammblatt" "Root"
] ]
], ],
"text_variables": {} "text_variables": {}

View file

@ -7,7 +7,7 @@
(title_block (title_block
(title "CanGrow") (title "CanGrow")
(date "2024-04-12") (date "2024-04-12")
(rev "0.6") (rev "0.6.1")
(company "DeltaLima") (company "DeltaLima")
) )
(lib_symbols (lib_symbols
@ -6497,7 +6497,7 @@
(justify left) (justify left)
) )
) )
(property "Value" "100µF" (property "Value" "47µF"
(at 251.206 141.986 0) (at 251.206 141.986 0)
(effects (effects
(font (font
@ -7103,7 +7103,7 @@
) )
) )
) )
(property "Value" "10k" (property "Value" "100k"
(at 162.56 145.034 90) (at 162.56 145.034 90)
(effects (effects
(font (font
@ -8857,7 +8857,7 @@
) )
) )
) )
(property "Footprint" "MP1584EN:MP1584EN_Module" (property "Footprint" "MP1584EN_CanGrow:MP1584EN_Module"
(at 54.864 43.688 0) (at 54.864 43.688 0)
(effects (effects
(font (font
@ -9734,7 +9734,7 @@
(justify left) (justify left)
) )
) )
(property "Value" "10µF" (property "Value" "100µF"
(at 20.32 30.48 0) (at 20.32 30.48 0)
(effects (effects
(font (font
@ -9743,7 +9743,7 @@
(justify left) (justify left)
) )
) )
(property "Footprint" "Capacitor_THT:CP_Radial_D5.0mm_P2.50mm" (property "Footprint" "Capacitor_THT:CP_Radial_D6.3mm_P2.50mm"
(at 28.9052 34.29 0) (at 28.9052 34.29 0)
(effects (effects
(font (font
@ -10518,7 +10518,7 @@
) )
) )
) )
(property "Value" "10k" (property "Value" "100k"
(at 165.1 112.014 90) (at 165.1 112.014 90)
(effects (effects
(font (font
@ -11148,7 +11148,7 @@
) )
) )
) )
(property "Value" "10k" (property "Value" "100k"
(at 167.64 78.994 90) (at 167.64 78.994 90)
(effects (effects
(font (font

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 195 KiB

After

Width:  |  Height:  |  Size: 196 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

View file

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

File diff suppressed because it is too large Load diff

View file

@ -1,12 +1,12 @@
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.4* G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.5*
G04 #@! TF.CreationDate,2024-07-25T21:16:30+02:00* G04 #@! TF.CreationDate,2024-09-25T02:09:32+02:00*
G04 #@! TF.ProjectId,CanGrow,43616e47-726f-4772-9e6b-696361645f70,rev?* G04 #@! TF.ProjectId,CanGrow,43616e47-726f-4772-9e6b-696361645f70,rev?*
G04 #@! TF.SameCoordinates,Original* G04 #@! TF.SameCoordinates,Original*
G04 #@! TF.FileFunction,Soldermask,Bot* G04 #@! TF.FileFunction,Soldermask,Bot*
G04 #@! TF.FilePolarity,Negative* G04 #@! TF.FilePolarity,Negative*
%FSLAX46Y46*% %FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 8.0.4) date 2024-07-25 21:16:30* G04 Created by KiCad (PCBNEW 8.0.5) date 2024-09-25 02:09:32*
%MOMM*% %MOMM*%
%LPD*% %LPD*%
G01* G01*
@ -55,9 +55,9 @@ G04 Aperture macros list end*
%ADD33RoundRect,0.250000X0.550000X0.550000X-0.550000X0.550000X-0.550000X-0.550000X0.550000X-0.550000X0*% %ADD33RoundRect,0.250000X0.550000X0.550000X-0.550000X0.550000X-0.550000X-0.550000X0.550000X-0.550000X0*%
G04 APERTURE END LIST* G04 APERTURE END LIST*
D10* D10*
X153500000Y-108750000D03* X156600000Y-108750000D03*
D11* D11*
X153500000Y-111250000D03* X156600000Y-111250000D03*
D12* D12*
X127400000Y-42690000D03* X127400000Y-42690000D03*
D13* D13*
@ -81,6 +81,18 @@ D11*
X139900000Y-53320000D03* X139900000Y-53320000D03*
D14* D14*
X139900000Y-63480000D03* X139900000Y-63480000D03*
D10*
X130748000Y-108846000D03*
X130748000Y-111386000D03*
D14*
X130722600Y-100478000D03*
X130748000Y-97938000D03*
D10*
X149544000Y-108860000D03*
X149544000Y-111400000D03*
D14*
X149645600Y-100478000D03*
X149671000Y-97938000D03*
D11* D11*
X177750000Y-92250000D03* X177750000Y-92250000D03*
D14* D14*
@ -272,18 +284,6 @@ X138370000Y-72370000D03*
D29* D29*
X136300000Y-71100000D03* X136300000Y-71100000D03*
X138370000Y-69830000D03* X138370000Y-69830000D03*
D10*
X128204000Y-108823000D03*
X128204000Y-111363000D03*
D14*
X128178600Y-100455000D03*
X128204000Y-97915000D03*
D10*
X147000000Y-108837000D03*
X147000000Y-111377000D03*
D14*
X147101600Y-100455000D03*
X147127000Y-97915000D03*
D17* D17*
X106760000Y-66240000D03* X106760000Y-66240000D03*
D22* D22*
@ -306,9 +306,9 @@ D11*
X181830000Y-85750000D03* X181830000Y-85750000D03*
X181830000Y-88250000D03* X181830000Y-88250000D03*
D10* D10*
X122250000Y-108750000D03* X123600000Y-108750000D03*
D11* D11*
X122250000Y-111250000D03* X123600000Y-111250000D03*
D17* D17*
X106870000Y-39160000D03* X106870000Y-39160000D03*
D22* D22*

View file

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

View file

@ -1,12 +1,12 @@
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.4* G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.5*
G04 #@! TF.CreationDate,2024-07-25T21:16:30+02:00* G04 #@! TF.CreationDate,2024-09-25T02:09:32+02:00*
G04 #@! TF.ProjectId,CanGrow,43616e47-726f-4772-9e6b-696361645f70,rev?* G04 #@! TF.ProjectId,CanGrow,43616e47-726f-4772-9e6b-696361645f70,rev?*
G04 #@! TF.SameCoordinates,Original* G04 #@! TF.SameCoordinates,Original*
G04 #@! TF.FileFunction,Legend,Bot* G04 #@! TF.FileFunction,Legend,Bot*
G04 #@! TF.FilePolarity,Positive* G04 #@! TF.FilePolarity,Positive*
%FSLAX46Y46*% %FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 8.0.4) date 2024-07-25 21:16:30* G04 Created by KiCad (PCBNEW 8.0.5) date 2024-09-25 02:09:32*
%MOMM*% %MOMM*%
%LPD*% %LPD*%
G01* G01*
@ -138,9 +138,9 @@ X156800000Y-70000000D01*
X156300000Y-72000000D01* X156300000Y-72000000D01*
%LPC*% %LPC*%
D12* D12*
X153500000Y-108750000D03* X156600000Y-108750000D03*
D13* D13*
X153500000Y-111250000D03* X156600000Y-111250000D03*
D14* D14*
X127400000Y-42690000D03* X127400000Y-42690000D03*
D15* D15*
@ -164,6 +164,18 @@ D13*
X139900000Y-53320000D03* X139900000Y-53320000D03*
D16* D16*
X139900000Y-63480000D03* X139900000Y-63480000D03*
D12*
X130748000Y-108846000D03*
X130748000Y-111386000D03*
D16*
X130722600Y-100478000D03*
X130748000Y-97938000D03*
D12*
X149544000Y-108860000D03*
X149544000Y-111400000D03*
D16*
X149645600Y-100478000D03*
X149671000Y-97938000D03*
D13* D13*
X177750000Y-92250000D03* X177750000Y-92250000D03*
D16* D16*
@ -355,18 +367,6 @@ X138370000Y-72370000D03*
D31* D31*
X136300000Y-71100000D03* X136300000Y-71100000D03*
X138370000Y-69830000D03* X138370000Y-69830000D03*
D12*
X128204000Y-108823000D03*
X128204000Y-111363000D03*
D16*
X128178600Y-100455000D03*
X128204000Y-97915000D03*
D12*
X147000000Y-108837000D03*
X147000000Y-111377000D03*
D16*
X147101600Y-100455000D03*
X147127000Y-97915000D03*
D19* D19*
X106760000Y-66240000D03* X106760000Y-66240000D03*
D24* D24*
@ -389,9 +389,9 @@ D13*
X181830000Y-85750000D03* X181830000Y-85750000D03*
X181830000Y-88250000D03* X181830000Y-88250000D03*
D12* D12*
X122250000Y-108750000D03* X123600000Y-108750000D03*
D13* D13*
X122250000Y-111250000D03* X123600000Y-111250000D03*
D19* D19*
X106870000Y-39160000D03* X106870000Y-39160000D03*
D24* D24*

View file

@ -1,11 +1,11 @@
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.4* G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.5*
G04 #@! TF.CreationDate,2024-07-25T21:16:30+02:00* G04 #@! TF.CreationDate,2024-09-25T02:09:32+02:00*
G04 #@! TF.ProjectId,CanGrow,43616e47-726f-4772-9e6b-696361645f70,rev?* G04 #@! TF.ProjectId,CanGrow,43616e47-726f-4772-9e6b-696361645f70,rev?*
G04 #@! TF.SameCoordinates,Original* G04 #@! TF.SameCoordinates,Original*
G04 #@! TF.FileFunction,Profile,NP* G04 #@! TF.FileFunction,Profile,NP*
%FSLAX46Y46*% %FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 8.0.4) date 2024-07-25 21:16:30* G04 Created by KiCad (PCBNEW 8.0.5) date 2024-09-25 02:09:32*
%MOMM*% %MOMM*%
%LPD*% %LPD*%
G01* G01*

File diff suppressed because it is too large Load diff

View file

@ -1,12 +1,12 @@
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.4* G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,8.0.5*
G04 #@! TF.CreationDate,2024-07-25T21:16:30+02:00* G04 #@! TF.CreationDate,2024-09-25T02:09:32+02:00*
G04 #@! TF.ProjectId,CanGrow,43616e47-726f-4772-9e6b-696361645f70,rev?* G04 #@! TF.ProjectId,CanGrow,43616e47-726f-4772-9e6b-696361645f70,rev?*
G04 #@! TF.SameCoordinates,Original* G04 #@! TF.SameCoordinates,Original*
G04 #@! TF.FileFunction,Soldermask,Top* G04 #@! TF.FileFunction,Soldermask,Top*
G04 #@! TF.FilePolarity,Negative* G04 #@! TF.FilePolarity,Negative*
%FSLAX46Y46*% %FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 8.0.4) date 2024-07-25 21:16:30* G04 Created by KiCad (PCBNEW 8.0.5) date 2024-09-25 02:09:32*
%MOMM*% %MOMM*%
%LPD*% %LPD*%
G01* G01*
@ -55,9 +55,9 @@ G04 Aperture macros list end*
%ADD33RoundRect,0.250000X0.550000X0.550000X-0.550000X0.550000X-0.550000X-0.550000X0.550000X-0.550000X0*% %ADD33RoundRect,0.250000X0.550000X0.550000X-0.550000X0.550000X-0.550000X-0.550000X0.550000X-0.550000X0*%
G04 APERTURE END LIST* G04 APERTURE END LIST*
D10* D10*
X153500000Y-108750000D03* X156600000Y-108750000D03*
D11* D11*
X153500000Y-111250000D03* X156600000Y-111250000D03*
D12* D12*
X127400000Y-42690000D03* X127400000Y-42690000D03*
D13* D13*
@ -81,6 +81,18 @@ D11*
X139900000Y-53320000D03* X139900000Y-53320000D03*
D14* D14*
X139900000Y-63480000D03* X139900000Y-63480000D03*
D10*
X130748000Y-108846000D03*
X130748000Y-111386000D03*
D14*
X130722600Y-100478000D03*
X130748000Y-97938000D03*
D10*
X149544000Y-108860000D03*
X149544000Y-111400000D03*
D14*
X149645600Y-100478000D03*
X149671000Y-97938000D03*
D11* D11*
X177750000Y-92250000D03* X177750000Y-92250000D03*
D14* D14*
@ -272,18 +284,6 @@ X138370000Y-72370000D03*
D29* D29*
X136300000Y-71100000D03* X136300000Y-71100000D03*
X138370000Y-69830000D03* X138370000Y-69830000D03*
D10*
X128204000Y-108823000D03*
X128204000Y-111363000D03*
D14*
X128178600Y-100455000D03*
X128204000Y-97915000D03*
D10*
X147000000Y-108837000D03*
X147000000Y-111377000D03*
D14*
X147101600Y-100455000D03*
X147127000Y-97915000D03*
D17* D17*
X106760000Y-66240000D03* X106760000Y-66240000D03*
D22* D22*
@ -306,9 +306,9 @@ D11*
X181830000Y-85750000D03* X181830000Y-85750000D03*
X181830000Y-88250000D03* X181830000Y-88250000D03*
D10* D10*
X122250000Y-108750000D03* X123600000Y-108750000D03*
D11* D11*
X122250000Y-111250000D03* X123600000Y-111250000D03*
D17* D17*
X106870000Y-39160000D03* X106870000Y-39160000D03*
D22* D22*

View file

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

File diff suppressed because it is too large Load diff

View file

@ -1,12 +1,12 @@
%TF.GenerationSoftware,KiCad,Pcbnew,8.0.4*% %TF.GenerationSoftware,KiCad,Pcbnew,8.0.5*%
%TF.CreationDate,2024-07-25T21:16:32+02:00*% %TF.CreationDate,2024-09-25T02:09:35+02:00*%
%TF.ProjectId,CanGrow,43616e47-726f-4772-9e6b-696361645f70,rev?*% %TF.ProjectId,CanGrow,43616e47-726f-4772-9e6b-696361645f70,rev?*%
%TF.SameCoordinates,Original*% %TF.SameCoordinates,Original*%
%TF.FileFunction,Drillmap*% %TF.FileFunction,Drillmap*%
%TF.FilePolarity,Positive*% %TF.FilePolarity,Positive*%
%FSLAX45Y45*% %FSLAX45Y45*%
G04 Gerber Fmt 4.5, Leading zero omitted, Abs format (unit mm)* G04 Gerber Fmt 4.5, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 8.0.4) date 2024-07-25 21:16:32* G04 Created by KiCad (PCBNEW 8.0.5) date 2024-09-25 02:09:35*
%MOMM*% %MOMM*%
%LPD*% %LPD*%
G01* G01*

View file

@ -1,8 +1,8 @@
M48 M48
; DRILL file {KiCad 8.0.4} date 2024-07-25T21:16:31+0200 ; DRILL file {KiCad 8.0.5} date 2024-09-25T02:09:34+0200
; FORMAT={-:-/ absolute / metric / decimal} ; FORMAT={-:-/ absolute / metric / decimal}
; #@! TF.CreationDate,2024-07-25T21:16:31+02:00 ; #@! TF.CreationDate,2024-09-25T02:09:34+02:00
; #@! TF.GenerationSoftware,Kicad,Pcbnew,8.0.4 ; #@! TF.GenerationSoftware,Kicad,Pcbnew,8.0.5
; #@! TF.FileFunction,NonPlated,1,2,NPTH ; #@! TF.FileFunction,NonPlated,1,2,NPTH
FMAT,2 FMAT,2
METRIC METRIC

View file

@ -1,12 +1,12 @@
%TF.GenerationSoftware,KiCad,Pcbnew,8.0.4*% %TF.GenerationSoftware,KiCad,Pcbnew,8.0.5*%
%TF.CreationDate,2024-07-25T21:16:32+02:00*% %TF.CreationDate,2024-09-25T02:09:35+02:00*%
%TF.ProjectId,CanGrow,43616e47-726f-4772-9e6b-696361645f70,rev?*% %TF.ProjectId,CanGrow,43616e47-726f-4772-9e6b-696361645f70,rev?*%
%TF.SameCoordinates,Original*% %TF.SameCoordinates,Original*%
%TF.FileFunction,Drillmap*% %TF.FileFunction,Drillmap*%
%TF.FilePolarity,Positive*% %TF.FilePolarity,Positive*%
%FSLAX45Y45*% %FSLAX45Y45*%
G04 Gerber Fmt 4.5, Leading zero omitted, Abs format (unit mm)* G04 Gerber Fmt 4.5, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 8.0.4) date 2024-07-25 21:16:32* G04 Created by KiCad (PCBNEW 8.0.5) date 2024-09-25 02:09:35*
%MOMM*% %MOMM*%
%LPD*% %LPD*%
G01* G01*
@ -335,65 +335,65 @@ G75*
G02* G02*
X11740000Y-4600000I40000J0D01* X11740000Y-4600000I40000J0D01*
G01* G01*
X12265000Y-10875000D02* X12400000Y-10875000D02*
G75* G75*
G02* G02*
X12185000Y-10875000I-40000J0D01* X12320000Y-10875000I-40000J0D01*
G01* G01*
X12185000Y-10875000D02* X12320000Y-10875000D02*
G75* G75*
G02* G02*
X12265000Y-10875000I40000J0D01* X12400000Y-10875000I40000J0D01*
G01* G01*
X12265000Y-11125000D02* X12400000Y-11125000D02*
G75* G75*
G02* G02*
X12185000Y-11125000I-40000J0D01* X12320000Y-11125000I-40000J0D01*
G01* G01*
X12185000Y-11125000D02* X12320000Y-11125000D02*
G75* G75*
G02* G02*
X12265000Y-11125000I40000J0D01* X12400000Y-11125000I40000J0D01*
G01* G01*
X12857860Y-10045500D02* X13112260Y-10047800D02*
G75* G75*
G02* G02*
X12777860Y-10045500I-40000J0D01* X13032260Y-10047800I-40000J0D01*
G01* G01*
X12777860Y-10045500D02* X13032260Y-10047800D02*
G75* G75*
G02* G02*
X12857860Y-10045500I40000J0D01* X13112260Y-10047800I40000J0D01*
G01* G01*
X12860400Y-9791500D02* X13114800Y-9793800D02*
G75* G75*
G02* G02*
X12780400Y-9791500I-40000J0D01* X13034800Y-9793800I-40000J0D01*
G01* G01*
X12780400Y-9791500D02* X13034800Y-9793800D02*
G75* G75*
G02* G02*
X12860400Y-9791500I40000J0D01* X13114800Y-9793800I40000J0D01*
G01* G01*
X12860400Y-10882300D02* X13114800Y-10884600D02*
G75* G75*
G02* G02*
X12780400Y-10882300I-40000J0D01* X13034800Y-10884600I-40000J0D01*
G01* G01*
X12780400Y-10882300D02* X13034800Y-10884600D02*
G75* G75*
G02* G02*
X12860400Y-10882300I40000J0D01* X13114800Y-10884600I40000J0D01*
G01* G01*
X12860400Y-11136300D02* X13114800Y-11138600D02*
G75* G75*
G02* G02*
X12780400Y-11136300I-40000J0D01* X13034800Y-11138600I-40000J0D01*
G01* G01*
X12780400Y-11136300D02* X13034800Y-11138600D02*
G75* G75*
G02* G02*
X12860400Y-11136300I40000J0D01* X13114800Y-11138600I40000J0D01*
G01* G01*
X13220000Y-5080000D02* X13220000Y-5080000D02*
G75* G75*
@ -555,45 +555,45 @@ G75*
G02* G02*
X14688500Y-3960000I40000J0D01* X14688500Y-3960000I40000J0D01*
G01* G01*
X14740000Y-10883700D02* X14994400Y-10886000D02*
G75* G75*
G02* G02*
X14660000Y-10883700I-40000J0D01* X14914400Y-10886000I-40000J0D01*
G01* G01*
X14660000Y-10883700D02* X14914400Y-10886000D02*
G75* G75*
G02* G02*
X14740000Y-10883700I40000J0D01* X14994400Y-10886000I40000J0D01*
G01* G01*
X14740000Y-11137700D02* X14994400Y-11140000D02*
G75* G75*
G02* G02*
X14660000Y-11137700I-40000J0D01* X14914400Y-11140000I-40000J0D01*
G01* G01*
X14660000Y-11137700D02* X14914400Y-11140000D02*
G75* G75*
G02* G02*
X14740000Y-11137700I40000J0D01* X14994400Y-11140000I40000J0D01*
G01* G01*
X14750160Y-10045500D02* X15004560Y-10047800D02*
G75* G75*
G02* G02*
X14670160Y-10045500I-40000J0D01* X14924560Y-10047800I-40000J0D01*
G01* G01*
X14670160Y-10045500D02* X14924560Y-10047800D02*
G75* G75*
G02* G02*
X14750160Y-10045500I40000J0D01* X15004560Y-10047800I40000J0D01*
G01* G01*
X14752700Y-9791500D02* X15007100Y-9793800D02*
G75* G75*
G02* G02*
X14672700Y-9791500I-40000J0D01* X14927100Y-9793800I-40000J0D01*
G01* G01*
X14672700Y-9791500D02* X14927100Y-9793800D02*
G75* G75*
G02* G02*
X14752700Y-9791500I40000J0D01* X15007100Y-9793800I40000J0D01*
G01* G01*
X15048000Y-6650000D02* X15048000Y-6650000D02*
G75* G75*
@ -625,26 +625,6 @@ G75*
G02* G02*
X15350000Y-7801000I40000J0D01* X15350000Y-7801000I40000J0D01*
G01* G01*
X15390000Y-10875000D02*
G75*
G02*
X15310000Y-10875000I-40000J0D01*
G01*
X15310000Y-10875000D02*
G75*
G02*
X15390000Y-10875000I40000J0D01*
G01*
X15390000Y-11125000D02*
G75*
G02*
X15310000Y-11125000I-40000J0D01*
G01*
X15310000Y-11125000D02*
G75*
G02*
X15390000Y-11125000I40000J0D01*
G01*
X15690000Y-6786000D02* X15690000Y-6786000D02*
G75* G75*
G02* G02*
@ -655,6 +635,26 @@ G75*
G02* G02*
X15690000Y-6786000I40000J0D01* X15690000Y-6786000I40000J0D01*
G01* G01*
X15700000Y-10875000D02*
G75*
G02*
X15620000Y-10875000I-40000J0D01*
G01*
X15620000Y-10875000D02*
G75*
G02*
X15700000Y-10875000I40000J0D01*
G01*
X15700000Y-11125000D02*
G75*
G02*
X15620000Y-11125000I-40000J0D01*
G01*
X15620000Y-11125000D02*
G75*
G02*
X15700000Y-11125000I40000J0D01*
G01*
X17015000Y-5080000D02* X17015000Y-5080000D02*
G75* G75*
G02* G02*

View file

@ -1,8 +1,8 @@
M48 M48
; DRILL file {KiCad 8.0.4} date 2024-07-25T21:16:31+0200 ; DRILL file {KiCad 8.0.5} date 2024-09-25T02:09:34+0200
; FORMAT={-:-/ absolute / metric / decimal} ; FORMAT={-:-/ absolute / metric / decimal}
; #@! TF.CreationDate,2024-07-25T21:16:31+02:00 ; #@! TF.CreationDate,2024-09-25T02:09:34+02:00
; #@! TF.GenerationSoftware,Kicad,Pcbnew,8.0.4 ; #@! TF.GenerationSoftware,Kicad,Pcbnew,8.0.5
; #@! TF.FileFunction,Plated,1,2,PTH ; #@! TF.FileFunction,Plated,1,2,PTH
FMAT,2 FMAT,2
METRIC METRIC
@ -76,12 +76,12 @@ X116.91Y-100.25
X116.93Y-90.98 X116.93Y-90.98
X117.0Y-42.42 X117.0Y-42.42
X117.0Y-46.0 X117.0Y-46.0
X122.25Y-108.75 X123.6Y-108.75
X122.25Y-111.25 X123.6Y-111.25
X128.179Y-100.455 X130.723Y-100.478
X128.204Y-97.915 X130.748Y-97.938
X128.204Y-108.823 X130.748Y-108.846
X128.204Y-111.363 X130.748Y-111.386
X131.8Y-50.8 X131.8Y-50.8
X133.0Y-35.15 X133.0Y-35.15
X133.0Y-45.31 X133.0Y-45.31
@ -98,16 +98,16 @@ X144.2Y-74.3
X144.2Y-84.46 X144.2Y-84.46
X146.48Y-32.6 X146.48Y-32.6
X146.485Y-39.6 X146.485Y-39.6
X147.0Y-108.837 X149.544Y-108.86
X147.0Y-111.377 X149.544Y-111.4
X147.102Y-100.455 X149.646Y-100.478
X147.127Y-97.915 X149.671Y-97.938
X150.08Y-66.5 X150.08Y-66.5
X153.1Y-67.85 X153.1Y-67.85
X153.1Y-78.01 X153.1Y-78.01
X153.5Y-108.75
X153.5Y-111.25
X156.5Y-67.86 X156.5Y-67.86
X156.6Y-108.75
X156.6Y-111.25
X169.75Y-50.8 X169.75Y-50.8
X177.75Y-92.25 X177.75Y-92.25
X181.83Y-85.75 X181.83Y-85.75

Binary file not shown.

After

Width:  |  Height:  |  Size: 814 B

Binary file not shown.

View file

@ -4,25 +4,63 @@
![CanGrowLogo](Logo/CanGrow_Logo.png) ![CanGrowLogo](Logo/CanGrow_Logo.png)
A simple DIY plant growing system (for cannabis). An easy to use DIY grow controller firmware (for cannabis).
![CanGrow_PCB_Front.png](KiCad/CanGrow/CanGrow_PCB_Front_small.png)
![Screenshot_WebUI_root.png](Arduino/CanGrow/Screenshot_WebUI_root.png) ![Screenshot_WebUI_root.png](Arduino/CanGrow/Screenshot_WebUI_root.png)
![CanGrow_PCB_Front.png](KiCad/CanGrow/CanGrow_PCB_Front_small.png)
# WORK IN PROGRESS # WORK IN PROGRESS
## Motivation ## Motivation
I havn't found an already existing grow controller project within the ESP / Arduino Core eco system which
met my personal requirements.
Those are an easy DIY, using low cost parts, Arduino Core sourcecode to hack own things together, having a WebUI, grab some Metrics for monitoring, standalone and my very special need that the Hardware should run completely with 12V.
I want to build a simple grow system, which I can power by my off-grid ### Update 14.09.2024 - Code Rewrite v0.2
12V solar system. So this project is limited to a small 40x40x120 tent
for one plant with a 50W 12V grow LED light.
As I did it for my solar system, the measurements of this project will be shown I took some "summer break" from the project, and had the opportunity to talk to different people about it.
on my website. For that a REST API is planned. My conclusion at this point is, that the focus of this project is not the Hardware, it came out that it should be the software.
So I decided to completely rewrite the code from 0 - with recycling some parts of it.
Goal of the Rewrite is that the Firmware becomes more independent of the hardware used. It has to support both ESP8266 and ESP32
and let the user decide at which pin which output, sensor or whatever will be connected to. Like done in the [Tasmota](https://github.com/arendst/Tasmota) Firmware, I also want to support "Hardware Templates" which come with presets for PCBs like the one I created.
I want to automate as much as possible which makes sense and is easy to build. **Checklist for v0.2 Firmware**
- Support ESP8266 and ESP32
- AsyncWebserver instead ESP8266Webserver
- LittleFS instead of EEPROM()
- deliver static HTML, dynamic Stuff with Javascript
- (or is there a better way? please tell me!)
- Free configurable outputs
- Main outputs for Light, Air, Water
- Support for Tasmota Wifi Plugs (and others?)
- No Limitation for Amount of outputs
- Light
- support for I2C 0-10V Dimm control
- PWM dimm control
- Air
- support for I2C 0-10V Dimm control
- PWM dimm control
- Support for humidifier, heater (, CO2?)
- Read Fan RPM
- Water
- Usual watering
- Pump for fertilizer
- Free configurable Inputs
- Support for various I2C devices
- All kind of sensors for Temp, Humidity, Moisture, and so on
- Support for ADCs to connect multiple analoge sensors
- Support for Analog inputs
- onboard ones or I2C (ADC)
- Analog Multiplexer support (like CD4051)
- Calibrate sensors
- define 0% and 100% values
- Offsets
- MQTT support
- API
## Features / ToDo List
## Old v0.1 Features / ToDo List
- Measure values :white_check_mark: - Measure values :white_check_mark:
- Humidity :white_check_mark: - Humidity :white_check_mark:
@ -54,14 +92,3 @@ I want to automate as much as possible which makes sense and is easy to build.
- low cost as possible! :white_check_mark: - low cost as possible! :white_check_mark:
:white_check_mark: Done - :large_blue_circle: In Progress - :red_circle: ToDo :white_check_mark: Done - :large_blue_circle: In Progress - :red_circle: ToDo
## Parts used
- ESP8266 D1 mini
- BME280 humidity and temp sensor
- I2C soil moisture sensor: https://github.com/Miceuz/i2c-moisture-sensor / https://eu.robotshop.com/de/products/i2c-soil-moisture-sensor
- cheap capacitive soilmoisture sensor: https://www.az-delivery.de/products/bodenfeuchte-sensor-modul-v1-2
- 50W LED 12V full spectrum grow light: https://www.ebay.de/itm/354322466159
- MOSFETS (some i have fyling around, IRFZ44, IRF3205, IRF3710, BUZZ11...)
- 12V 4W water pump set https://www.ebay.de/itm/394413649692

View file

@ -8,7 +8,7 @@ BUILD="$(git rev-parse --short HEAD)-$(date '+%Y%m%d%H%M%S')"
ACLI="$HOME/.local/bin/arduino-cli" ACLI="$HOME/.local/bin/arduino-cli"
ACLI_CMD="$ACLI --config-file arduino-cli.yml" ACLI_CMD="$ACLI --config-file arduino-cli.yml"
BOARD="esp8266:esp8266:d1_mini_clone"
function help() { function help() {
echo "$0 [setup|build|upload|webupload|monitor]" echo "$0 [setup|build|upload|webupload|monitor]"
@ -44,7 +44,7 @@ case $1 in
echo "" echo ""
echo ":: Installing Arduino IDE packages with apt, please enter sudo password:" echo ":: Installing Arduino IDE packages with apt, please enter sudo password:"
sudo apt update sudo apt update
sudo apt install arduino python3 wget curl sudo apt install arduino python3 wget curl xxd
echo ":: Ensure directory ${ACLI_DIR} is present" echo ":: Ensure directory ${ACLI_DIR} is present"
test -d ${ACLI_DIR} || mkdir -p ${ACLI_DIR} test -d ${ACLI_DIR} || mkdir -p ${ACLI_DIR}
echo ":: Please ensure ${ACLI_DIR} is in your \$PATH, I wont do it." echo ":: Please ensure ${ACLI_DIR} is in your \$PATH, I wont do it."
@ -79,13 +79,13 @@ case $1 in
const char* CanGrowVer = \"${VER}\"; const char* CanGrowVer = \"${VER}\";
const char* CanGrowBuild = \"${BUILD}\"; const char* CanGrowBuild = \"${BUILD}\";
" > Arduino/CanGrow/CanGrow_Version.h " > Arduino/CanGrow/CanGrow_Version.h
${ACLI_CMD} --no-color compile -b esp8266:esp8266:d1_mini_clone "Arduino/CanGrow/CanGrow.ino" --output-dir build/ || exit 1 ${ACLI_CMD} --no-color compile -b ${BOARD} "Arduino/CanGrow/CanGrow.ino" --output-dir build/ || exit 1
cp build/CanGrow.ino.bin build/CanGrow_v${VER}_${BUILD}.bin cp build/CanGrow.ino.bin build/CanGrow_v${VER}_${BUILD}.bin
;; ;;
u|upload) u|upload)
check_acli check_acli
echo ":: Uploading to $TTY" echo ":: Uploading to $TTY"
${ACLI_CMD} --no-color compile -v -b esp8266:esp8266:d1_mini_clone -u -p $TTY "Arduino/CanGrow/CanGrow.ino" ${ACLI_CMD} --no-color compile -v -b ${BOARD} -u -p $TTY "Arduino/CanGrow/CanGrow.ino"
;; ;;
w|webupload) w|webupload)
echo ":: Uploading to $IP" echo ":: Uploading to $IP"
@ -95,7 +95,7 @@ const char* CanGrowBuild = \"${BUILD}\";
m|mon|monitor) m|mon|monitor)
check_acli check_acli
echo ":: Open serial monitor $TTY" echo ":: Open serial monitor $TTY"
${ACLI_CMD} monitor -c baudrate=115200 -p $TTY ${ACLI_CMD} monitor -c baudrate=115200 -b ${BOARD} -p $TTY
;; ;;
*) *)
help help