Commit Graph

58 Commits

Author SHA1 Message Date
eeeck c0758b071e Fix power management API and variable naming for ESP32-C3 compatibility 2025-10-11 23:46:33 +02:00
eeeck 4a9a3ef805 Add ESP-IDF component configuration for main directory 2025-10-11 23:46:23 +02:00
eeeck ed7fb9fda6 Fix ESP32-C3 target configuration in Dockerfile 2025-10-11 23:46:12 +02:00
eeeck 558413df41 Add WiFi connectivity initialization and configuration functions 2025-10-11 20:17:57 +02:00
eeeck 94d2a61cad Implement Wi-Fi task 2025-10-11 15:30:40 +02:00
eeeck eb980d286d Fix watchdog initialization and parameters 2025-10-11 14:15:06 +02:00
eeeck 55c11f2471 Add CMakeLists.txt for ESP32 firmware build 2025-10-11 13:08:10 +02:00
eeeck ba590b982c Fix build error in Dockerfile 2025-10-11 00:05:15 +02:00
eeeck d1cf04ffdb Allocate heap caps 2025-10-10 23:59:50 +02:00
eeeck 3dc234eecb Configure power management 2025-10-10 23:59:39 +02:00
eeeck 3d8962b188 Initialize basic watchdog 2025-10-10 23:59:14 +02:00
eeeck 9f848dcc3f Add Dockerfile and build script for ESP32 firmware 2025-10-10 22:30:32 +02:00
eeeck 5cce419c74 Add initial ESP32 main.cpp 2025-05-19 11:41:22 +02:00
eeeck 135823b620 Improve atmega Dockerfile apt handling
- Set DEBIAN_FRONTEND as an environment variable.
- Add --no-install-recommends to apt-get install.
2025-05-19 11:39:07 +02:00
eeeck ff8f6324e5 Use deeper sleep mode to reduce current draw during idle
Using `SLEEP_MODE_PWR_DOWN` turns off everything (I/O, clocks, ADC etc.) except the  watchdog
2025-05-19 11:37:12 +02:00
eeeck 29ecd9be17 Fix return non-zero value in main 2025-05-19 11:34:35 +02:00
eeeck 24c454aa88 Reset readSensors before sleep 2025-05-17 14:28:55 +02:00
eeeck 97d78f7c28 Remove unsed flag 2025-05-17 14:23:56 +02:00
eeeck 2a2cb42b0b Refactor optimization flag in Makefile
Introduce `O_FLAG` variable for `-Os` to centralize optimization setting
for CFLAGS and LDFLAGS.
2025-05-17 14:23:22 +02:00
eeeck 906dfa91f0 Remove unused CMD from Dockerfile 2025-05-17 14:22:58 +02:00
eeeck c03e60e56f Add delay to let actuator pump water 2025-05-17 14:07:45 +02:00
eeeck c7abf18736 Change data types regarding sensor readings and sensor/actuator pins from signed to unsigned 2025-05-17 13:49:37 +02:00
eeeck d6bd1932d3 Make pumps initialization and actuation more dynamic by checking which one are declared in config.h 2025-05-17 13:10:45 +02:00
eeeck 8ad766c377 Make sensor initialization and measurement more dynamic by checking
which one are declared in config.h
2025-05-17 12:56:22 +02:00
eeeck ba10840f50 Rename function 2025-05-16 09:22:34 +02:00
eeeck 64852b2a67 Add pump code to Makefile 2025-05-16 09:22:20 +02:00
eeeck 09fed73696 Add waterPlant stub and update pump usage 2025-05-15 23:39:15 +02:00
eeeck c8c27d440c Implement pump control via port register 2025-05-15 23:30:48 +02:00
eeeck 3973d7b41d Initialize pumps' digital pins 2025-05-15 22:41:14 +02:00
eeeck cf3230c470 Rename functions name for better code clarity 2025-05-15 22:40:33 +02:00
eeeck 412354fe88 Move source code to /firmware and fix build paths 2025-05-15 15:51:46 +02:00
eeeck 6dd4b87a0f Simplify Makefile to exclude Arduino core libraries
- Binary file is now <700 bytes, from ~5500 bytes when using Arduino
libraries and core sources
- Time to flash to MCU is decreased from ~8s to ~0.75s
- Change target object name for better clarity
2025-05-15 11:06:51 +02:00
eeeck fe2e04ee38 Implement multiple sensors reading for moisture 2025-05-15 00:32:00 +02:00
eeeck 1a10abc4d6 Use custom ADC interface using AVR flags 2025-05-14 22:38:32 +02:00
eeeck cbf42aae0a Remove make flash, use build script for flashing
This is not optimal, but could not find a way to make it flash without
verification errors with "make flash".
2025-05-14 14:10:11 +02:00
eeeck 5f154cb20f Refactor loop to main and add explicit while(true)
This change transitions from the Arduino-specific `loop()` to a
standard C++ `main()` function as the program's entry point and
primary execution cycle.
2025-05-14 13:02:17 +02:00
eeeck 82dba30e18 Rename image name to avoid future confusion with ESP board 2025-05-13 20:12:10 +02:00
eeeck af4cb39230 Add ATmega build and flash script
Use Dockerfile for firmware compilation and avrdude for flashing
to ATmega328p via usbasp.
2025-05-13 12:42:50 +02:00
eeeck 4ab01eb3a4 Restructure directory organization 2025-05-13 11:28:18 +02:00
eeeck fff7c84206 Refactor Makefile for compatibility with Docker enviroment and better
AVR dependency management
2025-05-12 22:55:28 +02:00
eeeck 4243734056 Create Dockerfile 2025-05-12 22:54:41 +02:00
eeeck 1e7be9adb6 Restructure AVR compilation with Makefile 2025-05-12 19:24:09 +02:00
eeeck c94f7d2982 Add bootloader circuit 2025-05-04 00:34:31 +02:00
eeeck 2800986f17 Add schematics for ATMega side and initialize MCU 2025-05-03 23:46:02 +02:00
eeeck 1a7858198e Move main to C++ file 2025-05-03 12:38:05 +02:00
eeeck 04a8564d46 Merge pull request 'moisture-library' (#1) from moisture-library into main
Reviewed-on: http://192.168.2.248:3000/erickahmed/plant-manager/pulls/1
2025-05-03 12:16:00 +02:00
eeeck 637fff92ae Update main logic flow and fix bug that did not let MCU sleep 2025-05-03 12:08:08 +02:00
eeeck 5f1675f879 Move moisture to C++ file and update logic flow 2025-05-03 12:07:37 +02:00
eeeck f8b93e47e2 Add config.h with sensor pin and reading constants 2025-05-03 11:42:01 +02:00
eeeck bf7d177046 Add Makefile and refactor moisture reading to separate module 2025-05-03 11:41:34 +02:00