Key components to include: ESP32-C3-MINI-1 (WiFi/BLE), TP4056 LiPo charger, DW01A +
FS8205A battery protection, MT3608 boost converter (3.7V → 6V for pump), TB6612FNG motor
driver, ME6211C33M5G-N 3.3V LDO, CH340C USB-UART bridge, USB-C charging input, two
capacitive soil moisture sensor connectors, I2C connector for daughter board (BH1750 light
sensor + SHT31 temp/humidity), JST connectors for battery and pump
Power Management & Battery
TP4056: LiPo battery charger.
DW01A + FS8205A: Battery protection circuit.
MT3608: Boost converter (3.7V to 6V for pump).
ME6211C33M5G-N: 3.3V LDO voltage regulator.
USB-C: Charging input port.
JST Connector: Dedicated battery input. [1, 2, 3, 4]
Processing & Communication
ESP32-C3-MINI-1: Main microcontroller (WiFi/BLE).
CH340C: USB-to-UART bridge for programming. [1, 2, 3, 4, 5]
Actuators & Drivers
TB6612FNG: Dual motor driver.
JST Connector: Dedicated pump output. [1]
Sensors & Expansion
Two Capacitive Connectors: Soil moisture sensor inputs.
I2C Connector: Daughter board interface (BH1750 light + SHT31 temp/humidity). [1, 2]
Faizan Hasan10:02 PM
Hi
ME6211C33M5G might not be suitable for this application. Its output current capabilities are
marginal with ESP32 requirements. 3.3V bus will also carry sensor loads.
It will be better if you switch to ME6118A33PG, it has 800mA output.
I have most of this circuit built for other clients so I can quickly adapt it for you.
I can do this in EasyEDA and KiCAD. Which ever you prefer.
My profile speaks for me.
Lets discuss.
View details
Abhimanyu Chaudhary10:02 PM
Hello
Thanks for your message
Can you give me a timeline estimate for the schematic and the PCB design?
Faizan Hasan10:04 PM
3-4 days.
Complete package ready for order.
Abhimanyu Chaudhary10:05 PM
Sounds good. Is there any way we can test if the PCB is working accurately before I order
samples from JLCPCB?
Faizan Hasan10:06 PM
That is not possible. But this is fairly simple project and once schematic is laid out clearly and all
ERC and DRC errors are cleared it is suppose to work correctly.
Abhimanyu Chaudhary10:07 PM
Okay will you be able to do any revisions if the PCB doesnt work once it arrives?
Faizan Hasan10:08 PM
Yes. And it is included in quote. You will not have to pay anything extra.
Abhimanyu Chaudhary10:11 PM
Okay. What all will you need from me?
Faizan Hasan10:13 PM
50% milestone created and funded.
That will be released when I provide you manufacturing package.
Next 50% after you have successfully tested the boards.
Abhimanyu Chaudhary10:14 PM
Okay and in terms of documentation? Do you usually get on a call to understand the
requirements in details?
Faizan Hasan10:14 PM
If you could provide IO mapping that will be great
No I think you have listed everything you need. If during design I need some consult I will
message you
I believe you have tested these sensors/pumps on devkit?
is the motor driver for pump?
do you have pump datasheet?
for BH1750 & SHT31 you just need connector?
Abhimanyu Chaudhary10:19 PM
I think its better if we got on a call and discussed this in detail. I am accepting your offer
Abhimanyu Chaudhary sent an offer
10:21 PM
I'm building a smart self-watering planter pod - an ESP32-C3 based IoT device that monitors soil
moisture and automatically controls a 6V water pump. I need an experienced hardware
engineer to design the full schematic and PCB layout from scratch, ready for JLCPCB SMT
assembly.
Key components to include:
ESP32-C3-MINI-1 (WiFi/BLE), TP4056 LiPo charger, DW01A + FS8205A battery protection,
MT3608 boost converter (3.7V → 6V for pump), TB6612FNG motor driver, ME6211C33M5G-N
3.3V LDO, CH340C USB-UART bridge, USB-C charging input, two capacitive soil moisture sensor
connectors, I2C connector for daughter board (BH1750 light sensor + SHT31 temp/humidity),
JST connectors for battery and pump
Board constraints:
Circular PCB, ~50mm diameter
2-layer board
Deliverables:
Complete schematic with all nets labeled and ERC passing
PCB layout with:
GND copper pour on both layers with stitching vias
Correct power trace widths for battery and pump paths
Tight boost converter switching loop
USB D+/D− differential pair routing
Decoupling caps placed close to IC power pins
All polarized components verified for correct orientation
JLCPCB-ready Gerber files, BOM, and CPL
Brief design notes
Skills required:
Power electronics (battery management, boost converters)
ESP32 hardware design
EasyEDA (preferred) or KiCad
JLCPCB assembly requirements and CPL rotation conventions
Est. Budget: $300.00
Milestone 1: Schematic
Project funds: $150.00
View offer
Faizan Hasan10:22 PM
sure. Zoom?
Abhimanyu Chaudhary10:22 PM
Sure, what time works for you?
Faizan Hasan accepted an offer
10:22 PM
View contract
in an hour.
Abhimanyu Chaudhary10:23 PM
Okay perfect, can you set-it up please
Faizan Hasan10:23 PM
I will send you a link
Abhimanyu Chaudhary10:41 PM
I created a prototype PCB earlier and these are the components that I used. Feel free to
change/modify them as needed, the only requirement from me is that the pcb should be under
50mm in radius.
Main PCB Components
Microcontroller
ESP32-C3-MINI-1 — WiFi/BLE, all GPIO control
Power Management
TP4056 (U2) — LiPo battery charger, USB-C input
DW01A (U3) — battery protection IC
FS8205A × 2 (Q1, Q2) — dual N-channel MOSFETs for battery protection
ME6211C33M5G-N → being replaced with ME6118A33PG (LDO1) — 3.3V regulator
MT3608 (U5) — boost converter, 3.7V → 6V for pump
SS34-SMA (D1) — Schottky diode, boost converter output rectifier
SMNR4020-10UH (L1) — 10µH inductor for boost converter
Motor Control
TB6612FNG (U6) — dual H-bridge motor driver for N20 peristaltic pump
USB Interface
CH340C (U4) — USB-UART bridge for flashing ESP32
TYPE-C-31-M-12 (USBC1) — USB-C connector
Passives
R1 (1.2kΩ) — TP4056 charge current set
R2 (5.1kΩ) — USB-C CC1 pull-down
R3 (5.1kΩ) — USB-C CC2 pull-down
R4 (10kΩ) — ESP32 EN pull-up
R5 (10kΩ) — ESP32 BOOT pull-up
R6 (10kΩ) — BOOST_FB voltage divider lower leg
R7 (10kΩ) — STAT net pull-up for IO10
R8 (10kΩ) — STAT net pull-up (charge complete)
R9 (39kΩ) — BOOST_FB voltage divider upper leg
R10 (130Ω) — red LED current limit
R11 (180Ω) — blue LED current limit
C1 (100µF 10V) — VUSB bulk cap
C2-C5 (100nF 16V) — 3V3 decoupling
C6 (22µF 16V) — 6V_PUMP output filter
C7 (22µF 10V) — VBAT_PROT bulk cap
C8-C9 (1µF 25V) — 3V3 decoupling
C10 (4.7µF 10V) — VBAT_PROT bulk
C11 (4.7µF 10V) — 3V3 bulk
Indicators
NCD0805R1 (LED1) — red LED, charge complete indicator
SZYY0402B (LED2) — blue LED, charging indicator
Switches
TS-1187A-BAB × 2 (SW1, SW2) — BOOT and RESET tactile buttons
Connectors
CN1 (B2B-PH-K-S) — 2-pin JST, battery
CN2 (B2B-PH-K-S) — 2-pin JST, pump motor
CN3 (B4B-PH-K-S) — 4-pin JST, daughter board (3V3, GND, SDA, SCL)
CN4 (B3B-PH-K-S) — 3-pin JST, soil moisture sensor 1
CN5 (B3B-PH-K-S) — 3-pin JST, soil moisture sensor 2
Daughter Board
The daughter board is a small separate PCB that sits outside the enclosure so it can take
accurate ambient readings without being affected by heat from the main board electronics. It
connects to the main PCB via a 4-pin JST cable (CN3).
It contains:
BH1750 (U1) — ambient light sensor over I2C (address 0x23). Measures lux — used to
understand the plant's light exposure which affects watering needs.
SHT31 (U2) — temperature and humidity sensor over I2C (address 0x44). Measures ambient
temperature and relative humidity — both affect how quickly soil dries out and how much
water a plant needs.
Supporting passives:
2× 100nF decoupling caps (C1, C2) — one per IC
2× 10kΩ resistors (R1, R2) — I2C pull-ups for SDA and SCL (these are the ones we removed from
the main board)
4-pin JST connector (CN1) — connects back to main board
I am using an N20 micro gear motor with a peristaltic pump head attached. These are typically
sold as assemblies from Chinese suppliers without a formal datasheet. But this might be helpful
for you:
Motor: N20 6V 30RPM DC gear motor
Configuration: peristaltic pump head attached to N20 output shaft
Estimated specs: no-load ~30mA, running ~100-150mA, stall ~500mA at 6V
Control: PWM via TB6612FNG, single channel (A-channel), direction controlled by AIN1/AIN2
Faizan Hasan11:19 PM
You removed this message
[Link]
I am available
Abhimanyu Chaudhary11:20 PM
Okay joining in 2 minutes
Friday, Jul 03
Abhimanyu Chaudhary12:06 AM
N20 motor link - [Link]
spm=a2g0o.order_list.order_list_main.25.5bfc1802UhATd5
Soil sensor link - [Link]
spm=a2g0o.order_list.order_list_main.20.5bfc1802UhATd5
Battery link - [Link]
spm=a2g0o.order_list.order_list_main.65.5bfc1802UhATd5
Abhimanyu Chaudhary8:01 PM
I Faizan, hope you are doing well. I was just wondering if its possible to use the boot and reset
buttons as Turn device on and off buttons at a later stage with a backend code change? Or do
we need different components for that?
Faizan Hasan8:02 PM
A device can not turn itself off.
We can have additional on/off button.
You can use boot button as sleep/wakeup button I think. You will have to confirm with Claude
Abhimanyu Chaudhary8:12 PM
If we add an additional on/off button will that take up too much space? Or will it still fit in the
50 mm radius?
Faizan HasanJul 3, 2026 | 8:02 PM
We can have additional on/off button.
Faizan Hasan8:14 PM
I think we can fit it. I will add it as last item. Normally such switch would cutoff battery. This is
how you want it? Device would still work if USB is connected.
Or we can connect it between battery and load that way battery would still be charged but
board will not work on USB and battery
Abhimanyu Chaudhary8:15 PM
Which one do you recommend? What is the best practice?
Faizan Hasan8:16 PM
I think later option is better.
Abhimanyu Chaudhary8:16 PM
Okay lets go for that
This is what Claude says about this, in case it is helpful for you:
SW1 can be fully repurposed in firmware. GPIO9 is just a regular GPIO during normal operation.
You can write firmware that reads it and treats a press as power toggle, long press as factory
reset, double press as BLE pairing mode — whatever you want. No hardware change.
SW2 cannot be repurposed — it's wired directly to the EN pin which is hardware reset. Pressing
it will always reset the chip regardless of firmware. You can't override this in code.
So for a power on/off experience:
True hardware power off (cutting power to the ESP32) would require an additional circuit — a
latching power switch controlling the LDO enable pin. With your current hardware you can only
do a software sleep — the ESP32 goes into deep sleep drawing ~5µA, which looks like "off" to
the user but the circuit is still technically powered.
Recommendation for v0.3:
Keep SW1 as a user button (long press = sleep/wake)
Keep SW2 as reset (hardware requirement)
Add a latching power circuit tied to LDO CE pin if you want true hardware power off — one
additional small MOSFET and a momentary button
Is this what you were thinking? - Add a latching power circuit tied to LDO CE pin if you want true
hardware power off — one additional small MOSFET and a momentary button
Faizan Hasan8:23 PM
I am more towards a slider on/off switch that cut all power to LDO and boost circuit. Best
energy saving strategy
Abhimanyu Chaudhary8:23 PM
Okay whatever you recommend 🙂
As long as it works 🙂
Tuesday, Jul 07
Faizan Hasan1:06 AM
Just a glimpse of how it is going
[Link]
Abhimanyu Chaudhary1:21 AM
Hi Faizan, thanks for sharing
Just a couple of questions from this
Don't we need a MT3608 boost converter? The pump is 6v
What's the diameter of the circle?
Faizan Hasan1:23 AM
I used a different IC. I trust TI over other brands.
Abhimanyu ChaudharyJul 7, 2026 | 1:22 AM
Don't we need a MT3608 boost converter? The pump is 6v
50mm
Abhimanyu ChaudharyJul 7, 2026 | 1:22 AM
What's the diameter of the circle?
Abhimanyu Chaudhary1:27 AM
Okay, thank you. Also just to confirm that will there be two 3-pin JST connectors for the
capacitive soil moisture sensors (SOIL1 on IO1, SOIL2 on IO2), wired directly to the ESP32-C3
ADC pins?
Faizan Hasan1:28 AM
Yeah it is not finished. I went ahead to shape the board first.
Abhimanyu Chaudhary1:28 AM
Okay no worries, let me know when its done 🙂