Commit Graph

49 Commits

Author SHA1 Message Date
eeeck 05aae91d12 Mark internal helpers as static and remove from headers 2025-10-01 01:25:59 +02:00
eeeck 6e845c65da Write configuration values to EEPROM at boot 2025-10-01 01:06:20 +02:00
eeeck 2e6fe9ba6b Implement AVR328 EEPROM handling 2025-10-01 00:08:25 +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
eeeck 4486febccf Extract moisture reading logic into separate function 2025-05-02 14:24:43 +02:00
eeeck 5634ead406 Add moisture sensor reading averaging 2025-05-02 14:13:08 +02:00
eeeck 7684470315 Fix watchdog timer setup and power management
- Add missing watchdog header include
- Improve watchdog timer configuration with proper registers
- Switch to SLEEP_MODE_IDLE to maintain USB/Serial functionality
2025-05-02 00:59:57 +02:00
eeeck 9b20f33498 Directory restructure 2025-05-01 23:59:38 +02:00
eeeck 02a6541647 Add sleep function to enable power down mode 2025-05-01 22:31:30 +02:00
eeeck 577499cccc Implement 8 seconds watchdog 2025-05-01 22:18:51 +02:00
eeeck d58e41c444 Create .gitignore 2025-05-01 21:50:34 +02:00
eeeck a3a59a9a5e Implement basic sensor reading 2025-05-01 21:49:34 +02:00