Complete assembly and connection instructions for your GrowMax plant watering system.
- Small screwdriver set
- Wire strippers (if making custom connections)
- Multimeter (for troubleshooting)
- Computer with USB port
- Disconnect power before making connections
- Check voltage levels - use 5V for pumps, 3.3V for sensors
- Avoid water near electronics - keep connections dry
- Test connections before final assembly
- Unpack your GrowMax board from opensensor.io
- Inspect for damage - check for bent pins or loose components
- Identify connection points:
- 8x pump ports (labeled P1-P8)
- 8x moisture sensor ports (labeled M1-M8)
- 2x water level sensor ports (GPIO 21, 22)
- 2x QWIIC I2C connectors
- Power input (5V USB)
-
Choose your MCU:
- Raspberry Pi Pico: Basic functionality
- Raspberry Pi Pico W: WiFi capabilities
- ESP32S3 BananaPi: Advanced features (see ESP32S3 guide)
-
Install firmware (see Quick Start Guide)
-
Mount MCU on GrowMax board:
- Align pins carefully
- Press firmly until seated
- Ensure no bent pins
-
Select appropriate pumps:
- Voltage: 5V DC only
- Current: <200mA per pump
- Type: Submersible or inline pumps work well
-
Connect pumps to board:
- Red wire: Positive terminal
- Black wire: Negative terminal
- Secure connections to prevent loosening
-
Test pump operation:
from growmax.pump import Pump pump = Pump(channel=1) pump.dose(1, 5) # Run pump 1 for 5 seconds
-
Use Optomax sensors (recommended):
- Designed for GPIO 21/22 voltage levels
- Built-in voltage dividers on board
-
Connection:
- GPIO 22: Low water level sensor (primary)
- GPIO 21: High water level sensor (future use)
-
Placement:
- Low sensor: Near bottom of reservoir
- Secure mounting to prevent movement
- Test in water to verify operation
-
Select tubing:
- Size: Match pump outlet (typically 4-6mm)
- Material: Food-safe silicone or vinyl
- Length: Minimize to reduce pump load
-
Route tubing:
- Avoid kinks and sharp bends
- Secure with clips to prevent movement
- Test water flow before final installation
-
Drip points:
- Position near plant roots
- Use drip stakes for targeted watering
- Avoid leaves to prevent fungal issues
-
Sensor placement:
- Depth: 2-3 inches into soil
- Location: Near plant roots, not touching pot edges
- Angle: Slight angle prevents water pooling
-
Connection to board:
- Channels 1-8: Correspond to pump channels
- Firm connection: Ensure sensors are fully seated
- Test readings: Verify sensors respond to moisture changes
-
Calibration:
- Dry soil: Note reading (typically 20-28)
- Wet soil: Note reading (typically 0-10)
- Set thresholds based on plant needs
-
Connection:
- I2C Bus: Connect to QWIIC_I2C0 or QWIIC_I2C1
- Power: 3.3V (provided by QWIIC connector)
-
Placement:
- Plant level: Near plant canopy
- Good airflow: Avoid dead air spaces
- Away from direct sunlight
-
Configuration:
ADAFRUIT_SCD4X_ENABLED = True ADAFRUIT_SCD4X_I2C_CHANNEL = 0
-
Components needed:
- EZO-pH circuit board
- pH probe with BNC connector
- Calibration solutions (pH 4.0, 7.0, 10.0)
-
Connection:
- I2C Bus: Connect to QWIIC connector
- Probe: Connect to BNC port on EZO-pH board
-
Calibration required:
from growmax.atlas_ph.calibration import calibrate_ph calibrate_ph()
- SSD1327: 128x128 grayscale OLED
- SH1107: 128x64 monochrome OLED
-
I2C Connection:
- Recommended: Use QWIIC_I2C1 (separate from sensors)
- Power: 3.3V from QWIIC connector
-
Configuration:
DISPLAY = "SSD1327_I2C" # or "SH1107_I2C" DISPLAY_I2C_CHANNEL = 1 DISPLAY_I2C_ADDRESS = None # Auto-detect
-
PIR Sensor Setup:
- Connection: Any available GPIO pin
- Power: 3.3V and GND
- Sensitivity: Adjust potentiometer as needed
-
Configuration:
DISPLAY_SWITCH = 15 # GPIO pin number DISPLAY_SWITCH_CLASS = "MotionSensor" DISPLAY_SWITCH_DURATION_MS = 10000 # 10 seconds
- High-power pumps (>200mA)
- Solenoid valves for irrigation
- External equipment (fans, heaters, lights)
- Auto-refill systems
-
I2C Connection:
- QWIIC Connector: Use available I2C bus
- Address: Check board documentation (typically 0x27)
-
Power Requirements:
- Logic: 3.3V from QWIIC
- Relay power: May need external 5V supply
- Load power: Separate supply for controlled equipment
-
Configuration:
RELAY_BOARD_ENABLED = True RELAY_BOARD_I2C_CHANNEL = 0 RELAY_BOARD_NUM_RELAYS = 4 # or 8 RELAY_BOARD_I2C_ADDRESS = 0x27
- Pico: ~50mA base consumption
- Pumps: Up to 200mA each (8 pumps = 1.6A max)
- Sensors: ~10-50mA each
- Display: ~20-100mA
- Total: Plan for 2-3A capacity
-
USB Power:
- 5V 2A minimum for basic setups
- 5V 3A recommended for full 8-pump systems
- Quality matters: Use reputable brands
-
Power Distribution:
- USB input: Powers entire system
- 5V rail: Pumps and some sensors
- 3.3V rail: Logic and most sensors
- Overcurrent protection: Built into GrowMax board
- Water level checking: Prevents dry pump operation
- Conservative defaults: Safe pump durations
- Connect USB power (no pumps connected yet)
- Check LED indicators on board
- Connect to Thonny and verify communication
- Install GrowMax library
-
Moisture sensors:
from growmax.moisture import Moisture for i in range(1, 9): sensor = Moisture(channel=i) print(f"Channel {i}: {sensor.moisture}")
-
Water level sensor:
from machine import Pin sensor = Pin(22, Pin.IN, Pin.PULL_DOWN) print(f"Water detected: {sensor.value()}")
-
Individual pump test:
from growmax.pump import Pump pump = Pump(channel=1) pump.dose(1, 3) # 3-second test
-
Check water flow and verify no leaks
- Load complete configuration
- Run main program in test mode
- Monitor all readings for several cycles
- Verify pump activation when thresholds are met
| Function | GPIO Pin | Notes |
|---|---|---|
| Moisture 1-8 | ADC Channels | Built-in on board |
| Pump 1-8 | PWM Channels | Built-in MOSFET drivers |
| Water Low | 22 | Voltage divider included |
| Water High | 21 | Voltage divider included |
| I2C0 SDA | 4 | QWIIC_I2C0 |
| I2C0 SCL | 5 | QWIIC_I2C0 |
| I2C1 SDA | 6 | QWIIC_I2C1 |
| I2C1 SCL | 7 | QWIIC_I2C1 |
- GPIO 15: Motion sensor, buttons
- GPIO 16-20: Available for custom sensors
- GPIO 26-28: ADC capable pins
- Check USB cable - use data cable, not charging-only
- Try different USB port on computer
- Verify firmware installation
- Check for short circuits
- No pumping: Check connections, verify pump specs
- Weak flow: Check tubing for kinks, prime pump
- Continuous running: Check water sensor, verify thresholds
- No readings: Check connections, clean sensor probes
- Erratic readings: Check for interference, loose connections
- Wrong readings: Calibrate sensors, check placement
- Device not found: Check connections, verify address
- Communication errors: Check for bus conflicts, power issues
- Intermittent operation: Check cable quality, connection security
Once your hardware is assembled and tested:
- Follow Quick Start Guide for software setup
- Choose an example configuration that matches your needs
- Customize settings in Configuration Reference
- Deploy and monitor your automated system
If you encounter hardware issues:
- Check Troubleshooting Guide for common solutions
- Visit opensensor.io for support
- Post on GitHub Issues with detailed hardware information
Your hardware is now ready for automated plant care! 🌱⚡
Proceed to software configuration to complete your GrowMax system setup.