Skip to the content
PCBKitNew board
2 layers52 × 74.5 mmBeta, the printed circuit board in 3D

Micro-Grow repo.

Size
52 × 74.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
30
Nets
38
Pads
105
Tracks, vias
324, 23
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
13 Oct 2025
Updated
28 Apr 2026

Overview

Beta is an open-source printed circuit board by JakeWesta, from the JakeWesta/microgrow repository on GitHub. It is a 2-layer board of 52 × 74.5 mm with 30 parts on 38 nets, routed with 324 tracks and 23 vias.

It is built around the AO3400 and SS14. Its parts include 8 resistors, 4 transistors, 1 capacitor, 1 IC and 1 diode. It belongs with the ESP32 boards of this library.

Main components

2

README

README.md

Micro-Grow

Implemented Features:

Pre-Alpha Build:

  • MQTT Connection - Set up two-way communication between the ESP32 and the mobile app by using the MQTT protocol and EMQX broker.
  • Data Management - Handle the storing of data by using a Hive database, which stores the watering cycle for each microgreen type.
  • Real-Time Sensor Data - Configured ESP32 to poll readings from DHT11 temperature sensor and publishes the data every 5 seconds to the MQTT topic microgrow/<habitatID>/sensor.
  • User Interface - Developed a Flutter app using Dart to allow the user to initialize and manage their MicroGrow habitat. Clicking on the habitat will display the real-time sensor data from the DHT11 on the app interface.

Design Prototype:

  • Expanded Sensor Data - Updated ESP32 code to publish sensor data for temperature/humidity, water level, and light intensity to MQTT topics microgrow/<habitatID>/temp, humidity, water, light. Sensor data is visible on the LCD screen to allow the user to easily monitor environmental conditions without their mobile device.
  • Expanded User Interface - Updated dashboard to displays multiple created habitats and implemented the option to add and remove them. Selecting a habitat will display the real-time sensor data readings sent from the ESP32 for temperature, humidity, water level, and light intensity. Implemented the 'fun area' for the user to interact with their plant character
  • Schedule-Based Automation - ESP32 pumps water from the water reservoir to the watering tray based on the watering schedule information sent during microgrow/init.
  • Manual Override - Added a method for the user to control the water pump, fans, and light intensity manually from within the app. This feature does not interfere with the schedule timing.
  • Hardware - Determined pin assignments for each electrical component. Connected ESP32, sensors, pump, lights, and LCD screen on a breadboard to test the functionality of each system. Designed CAD models to 3D-print the chassis and parts for the MicroGrow unit.

Future Improvements:

  • Include misting pump to regulate humidity within the habitat
  • Create pixelated character sprites to display on the LCD screen
  • Expand the 'fun area' in the mobile app to include customization features and scripted interaction between characters

How to Use:

Requirements:

  • Flutter SDK
  • Dart
  • VS Code
  • Arduino IDE
  • Hive (for database)
  • EMQX MQTT broker

To setup the mobile application:

  1. Ensure the required software is installed and install the necessary dependencies
  2. Launch the mobile application:
    • Open VS Code and clone the repository
    • If prompted on VS Code, install the Flutter SDK and add to path if missing.
    • Install Flutter and Dart VS Code exstentions
    • Navigate to the app directory with cd microgrow/app
    • Fetch packages with flutter pub get
    • Connect to a 2.4 GHz WiFi network, such as a mobile hotspot
    • Start the application with flutter run -d windows
  3. Flash the ESP32 firmware:
  4. You may need to install the following packages. Easiest way is to go to the library manager tab on the left and search:
    • PubSubClient by Nick O'Leary
    • DHT20 by Rob Tilaart
    • ArduinoJson by Benoit Blanchon
    • Adafruit GFX Library by Adafruit
    • Adafruit ST7735 and ST7789 Library by Adafruit
    • FastLED by Daniel Garcia
  5. At the top of the code, assign the corresponding network information to the variables ssid and password
  6. Press Upload and wait for flashing to complete

Known Bugs:

  • If sensor is unplugged, it displays garbage values. We don't handle that issue, as it displays more than 7 digits when disconnected from ESP32.
  • If there is a disconnect from MQTT, we don't test for reconnection.
  • Sometimes the ESP32 flashing will fail if its GPIO pins are connected to external peripherals/sensors. Remove the ESP32 from the breadboard before flashing to resolve this.
  • Pump and fan will sometimes stop working during regular use.
  • The current setup for the init sequence sends a JSON that is too large for the ESP32 to parse. This means that light scheduling is currently not being sent, as it had to be trimmed for the JSON to fit.

Parts

30
QtyValueFootprintReferences
4100Resistor_SMD:R_0402_1005MetricR1, R3, R5, R7
4100kResistor_SMD:R_0402_1005MetricR2, R4, R6, R8
4AO3400Package_TO_SOT_SMD:SOT-23Q1, Q2, Q3, Q4
3SW_PushConnector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalMISC1, PWR_BUTTON1, WIFI1
3~Connector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalMISTER_1, PUMP_1, PUMP_2
2Conn_01x02Connector_JST:JST_VH_B2P-VH_1x02_P3.96mm_VerticalPWR_DAISY1, PWR1
2~Connector_JST:JST_PH_B3B-PH-K_1x03_P2.00mm_VerticalLED_STRIP1, WATER_1
1100nFCapacitor_SMD:C_0402_1005MetricC1_0402_100nF1
1Conn_01x03Connector_PinHeader_1.00mm:PinHeader_1x03_P1.00mm_VerticalBUS_A1
1Conn_01x04Connector_PinHeader_1.00mm:PinHeader_1x04_P1.00mm_VerticalBUS_B1
1ESP32-DEVKIT-V1RF_Module:ESP32-C3-DevKitM-1U1
1FanConnector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalFAN1
1SS14Diode_SMD:D_SOD-123D1
1~Connector_JST:JST_PH_B4B-PH-K_1x04_P2.00mm_VerticalDHT_1
1~JST_1x2&1x6:1x08(2 and 6) vertical JST PHLCD_1

Questions

How big is the Beta PCB?

It measures 52 × 74.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Beta use?

30 parts, built around the AO3400 and SS14. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Beta KiCad files?

From the JakeWesta/microgrow repository on GitHub, at the commit this page was made from: the board is Documentation/PCB 3.0 (beta/Beta/Beta.kicad_pcb and its schematic Documentation/PCB 1.0/prototype.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Beta design in my own project?

Its repository states no licence, so its author keeps all rights: ask JakeWesta before reusing the design.

Similar boards

  • 2 layers97.1 × 97.1 mmESP32 IMU Module V1.1, the printed circuit board in 3D

    ESP32 IMU Module V1.1

    shaun-lloyd/dev-ardupilot-obal

    ArduPi is an open hardware Raspberry Pi hat to run Ardupilot.

    87 parts2CC0-1.0
  • 2 layers38.2 × 128 mmDI Lambda UNO bottom, the printed circuit board in 3D

    DI Lambda UNO bottom

    koi-science/DI-Lambda-schematics-avr

    Schematics for AVR-based DI-Lambda DITOS and UNO v1

    39 partsCC-BY-SA-4.0
  • 2 layers55 × 80 mmBoard esp32 v2, the printed circuit board in 3D

    Board esp32 v2

    sudomesh/disaster-radio

    A (paused) work-in-progress long-range, low-bandwidth wireless disaster recovery mesh network powered by the sun.

    101 parts1.1k
  • 2 layers59.2 × 52.9 mmMagic epaper, the printed circuit board in 3D

    Magic epaper

    fossasia/magic-epaper-hardware

    Magic ePaper Hardware

    57 parts1kApache-2.0
  • 2 layers155.5 × 130 mmEinkpicframe, the printed circuit board in 3D

    Einkpicframe

    Spritetm/picframe_colepd

    A WiFi picture frame allowing for remote photo uploads, using an ESP32-C3 and a 5.6" color E-ink display

    60 parts97
  • 2 layers100 × 93 mmSpeeduino base, the printed circuit board in 3D

    Speeduino base

    Tjeerdie/SPECTRE

    Speeduino compatible engine control unit (ECU) based around black STM32F407VET6 board.

    213 parts59GPL-3.0
  • 2 layers128 × 77 mmScale, the printed circuit board in 3D

    Scale

    Jana-Marie/lab-balance

    https://twitter.com/_Jana_Marie/status/1270040286710968321

    59 parts34
  • 2 layers36 × 100 mmEleph, the printed circuit board in 3D

    Eleph

    FeruzTopalov/eleph

    GPS-based local relative navigation system for group of up to 6 members

    56 parts24GPL-3.0