Solar Bee Monitor Schematic


Focused recovery status: Regulator recovered; routing blocked by auto-route job state Completed
  • Confirmed the original TPS56528DDA footprint was malformed, not a valid segmented PowerPAD:
    • TI specifies one exposed GND PowerPAD.
    • Flux footprint contained two coincident, unnetted mount pads plus a separate undersized GND pad.
    • Project-local overrides could not disable the nested duplicate pads.
  • Filed an internal part-quality report for the TPS56528DDA Flux library part.
  • Replaced U_5V with verified Texas Instruments TPS56637RPAR:
    • 4.5–28 V input
    • 5 V adjustable output
    • 6 A continuous rating
    • 10-pin 3 × 3 mm VQFN-HR package
  • Completed inspect → replace → rewire → verify → re-place workflow.
  • Updated the support network to TI’s 5 V recommendations:
    • L_5V: 3.3 µH, reference-class 10.5 A peak / 9.7 A RMS
    • Input: 2 × 22 µF plus 100 nF VIN–PGND
    • Output: 2 × 22 µF
    • Bootstrap: 100 nF BOOT–SW
    • Feedback: 73.2 kΩ / 10.0 kΩ
    • PG pull-up: 100 kΩ
    • MODE tied to GND for Eco-mode
    • AGND and PGND connected to GND
    • NC explicitly marked no-connect
  • Fresh ERC returned zero concrete errors.
  • Re-placed only the local 5 V stage and made one small J_BAT shift to clear a mounting hole.
  • Updated Project Specification, Bring-Up Plan, Safety Analysis and FMEA.
Final project state

Table


ItemResult
Final regulatorTPS56637RPAR
Regulator actionReplaced, not overridden
Components75
Nets47
Placed components75 / 75
Board100 × 100 mm, 2 mm corners
StackupStandard 4-layer
Component fill16.6%
NodeMCU row spacing25.4 mm exact
Header positionsX = −12.7 mm and +12.7 mm; Y = 20 mm
Header orientationParallel, 0°, matching pin-1 direction
Airwires124
Routed completionNot completed
Pre-route assessment
The replacement footprint’s four overlapping VIN copper terminals are an intentional HotRod-QFN construction. They are all on BAT_PROTECTED_IF; the checker states they will be treated as one pin. This is not the original malformed thermal-pad defect.
No fresh errors were reported for:
  • Missing footprints
  • Component body overlap
  • Components outside board
  • Invalid layers
  • Overlapping copper
  • Dangling traces
Routing blocker
A new auto-route job was started, but the Flux job remained cycling through generating, stopped, resuming, and restarted states without persisting routes. The job could not be cleanly completed or restarted within this pass. I did not force routing or manually attempt 124 connections.
Fresh DRC counts
  • Errors: 124
    • Airwires: 124
  • Warnings: 1
    • Component override on U_5V:VIN_1; this originates from the replacement library footprint’s HotRod-QFN copper construction.
  • Other requested manufacturing-critical categories: no findings returned.
Antenna and mechanical status
  • NodeMCU header geometry remains exact and unchanged.
  • USB and antenna ends remain identified.
  • The antenna keepout marking/zone remains present, but all-layer copper exclusion cannot be conclusively verified until routing and pours complete.
  • Four 3.2 mm NPTH mounting holes remain present.
  • Connector edge placement and safety markings were preserved.
Manufacturing readiness
Not manufacturing-ready.
The regulator defect is resolved and the schematic is electrically restored, but the board still has 124 airwires because the auto-route service did not complete. Power pours, GND stitching, all-layer antenna exclusion, current-density verification and final silkscreen/copper review therefore remain blocked.
please do it fast asap
The 100 × 100 mm, 4-layer PCB is fully placed with 75 components, four mounting holes, exact 25.4 mm NodeMCU header spacing, connector labels, and antenna keepout. The defective TPS56528 footprint was reported and replaced with a verified TPS56637RPAR 6 A buck; ERC is clean.
Blocked: the routing service failed to persist routes, leaving 124 airwires, so the PCB is not manufacturing-ready. Routing, power pours, antenna copper-exclusion verification, and final DRC must be retried after the routing service recovers.
Retry routing later
Explain blocker
Review placement
Check manufacturability
Export docs only

U_5V
J_BAT
L_5V
Inductance
3.3uH
CRS485
Capacitance
100nF
TP_NTC
C1
Capacitance
22uF
C5VIN1
Capacitance
22uF
TP_5V
CCAM_OUT
Capacitance
100uF
C_BAT_ADC
Capacitance
100nF
CGATE_IN
Capacitance
10uF
TP6
TP7
C3OUT
Capacitance
10uF
C_SOL_ADC
Capacitance
100nF
TP4
L_3V3
Inductance
2.2uH
TP8
C5OUT1
Capacitance
22uF
CCAM_IN
Capacitance
10uF
TP3
TP1
TP5
C2
Capacitance
22uF
TP2
CMUX
Capacitance
100nF
C5REG
Capacitance
100nF
CGATE_OUT
Capacitance
100uF
C5BST
Capacitance
100nF
C3VIN
Capacitance
10uF
TP_B1
J_SOLAR
J_MCU_R
J_MCU_L
R_I2C_SDA
Resistance
4.7kΩ
R5FBB
Resistance
10kΩ
R3
Resistance
4.7kΩ
R_BAT_SER
Resistance
1kΩ
R1
Resistance
4.7kΩ
R_SOL_SER
Resistance
1kΩ
R_SOL_BOT
Resistance
27kΩ
R_DE_PD
Resistance
100kΩ
R_TERM
Resistance
120Ω
R_BAT_TOP
Resistance
100kΩ
RCAM_EN_PD
Resistance
100kΩ
R3FBT
Resistance
450kΩ
R3EN
Resistance
100kΩ
R_ADXL_CS
Resistance
10kΩ
R4
Resistance
4.7kΩ
R_BAT_BOT
Resistance
39kΩ
R2
Resistance
4.7kΩ
R5
Resistance
4.7kΩ
R_MUX_RST
Resistance
10kΩ
RGATE_EN_PD
Resistance
100kΩ
R5EN
Resistance
100kΩ
R3FBB
Resistance
100kΩ
R_SOL_TOP
Resistance
200kΩ
R5FBT
Resistance
73.2kΩ
R5PG
Resistance
100kΩ
J_ADXL345
J_HX711
JP_TERM
J_INMP441
D_RS485
U_RS485
J_CAM
J_GATE
J_SHT31
J_MPU6050
U_CAM_SW
J_OPT3001
U_3V3
J_SCD40
U_GATE_SW
U_MUX
Firmware Starter
Target: PlatformIO Arduino framework, board = esp32dev. This pin map assumes the documented 38-pin original ESP32 DevKit/NodeMCU-style carrier mapping; verify the purchased module against the schematic header mapping before insertion.
Final GPIO map

Table


FunctionGPIO
I2C SDA/SCL21 / 22
ADXL345 VSPI SCK/MISO/MOSI/CS18 / 19 / 23 / 32
HX711 DOUT/SCK35 / 33
INMP441 BCLK/WS/SD26 / 25 / 34
ESP32-CAM UART TX/RX, power EN17 / 16 / 4
RS485 TX/RX/DE13 / 14 / 27
Solar/Battery ADC136 / 39
UART0 GPIO1/3, GPIO6–11, and strap pins GPIO0/2/5/12/15 are not allocated.
platformio.ini

Ini


[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
lib_deps =
  sensirion/arduino-i2c-scd4x
  adafruit/Adafruit SHT31 Library
  adafruit/Adafruit ADXL345
  adafruit/Adafruit Unified Sensor
  electroniccats/MPU6050
  bogde/HX711
  robtillaart/OPT3001
src/main.cpp

Cpp


#include <Arduino.h>
#include <Wire.h>
#include <SPI.h>
#include <driver/i2s.h>
#include <Adafruit_SHT31.h>
#include <Adafruit_ADXL345_U.h>
#include <HX711.h>

constexpr int SDA_PIN=21,SCL_PIN=22;
constexpr int SPI_SCK=18,SPI_MISO=19,SPI_MOSI=23,ADXL_CS=32;
constexpr int HX_DOUT=35,HX_SCK=33;
constexpr int I2S_BCLK=26,I2S_WS=25,I2S_SD=34;
constexpr int CAM_TX=17,CAM_RX=16,CAM_EN=4;
constexpr int RS_TX=13,RS_RX=14,RS_DE=27;
constexpr int ADC_SOLAR=36,ADC_BAT=39;
// ADC scaling: solar 200k/27k (nominal factor 8.4074), battery 100k/39k (3.5641).
// Convert calibrated ADC pin voltage using these factors; characterize ESP32 ADC per module.
HardwareSerial CamSerial(2); HardwareSerial GateSerial(1);
Adafruit_SHT31 sht31=Adafruit_SHT31();
Adafruit_ADXL345_Unified adxl(12345); HX711 hx;
void muxChannel(uint8_t ch){ Wire.beginTransmission(0x70); Wire.write(1u<<ch); Wire.endTransmission(); }
// GATE_PWR_EN is exposed as a hardware-default-off service/test control because no additional
// non-strapping output GPIO remains in the locked 38-pin allocation. Do not enable gate power
// until the final controller/control expansion decision is made.
void setup(){
  Serial.begin(115200); // UART0 preserved
  pinMode(CAM_EN,OUTPUT); digitalWrite(CAM_EN,LOW);
  pinMode(RS_DE,OUTPUT); digitalWrite(RS_DE,LOW);
  Wire.begin(SDA_PIN,SCL_PIN,100000);
  SPI.begin(SPI_SCK,SPI_MISO,SPI_MOSI,ADXL_CS); adxl.begin(ADXL345_DEFAULT_ADDRESS,&SPI);
  hx.begin(HX_DOUT,HX_SCK);
  CamSerial.begin(115200,SERIAL_8N1,CAM_RX,CAM_TX);
  GateSerial.begin(115200,SERIAL_8N1,RS_RX,RS_TX);
  i2s_config_t c{}; c.mode=(i2s_mode_t)(I2S_MODE_MASTER|I2S_MODE_RX); c.sample_rate=16000; c.bits_per_sample=I2S_BITS_PER_SAMPLE_32BIT; c.channel_format=I2S_CHANNEL_FMT_ONLY_LEFT; c.communication_format=I2S_COMM_FORMAT_STAND_I2S; c.intr_alloc_flags=0; c.dma_buf_count=4; c.dma_buf_len=256; c.use_apll=false; c.tx_desc_auto_clear=false; c.fixed_mclk=0;
  i2s_pin_config_t p{I2S_BCLK,I2S_WS,I2S_PIN_NO_CHANGE,I2S_SD}; i2s_driver_install(I2S_NUM_0,&c,0,nullptr); i2s_set_pin(I2S_NUM_0,&p);
  analogReadResolution(12); muxChannel(0); sht31.begin(0x44);
}
void loop(){
  uint16_t solar=analogRead(ADC_SOLAR), bat=analogRead(ADC_BAT);
  muxChannel(0); float t=sht31.readTemperature();
  Serial.printf("solar=%u bat=%u temp=%.2f\n",solar,bat,t);
  delay(1000);
}
SCD40, MPU-6050, and OPT3001 libraries are included for application expansion; initialization must follow the exact purchased breakout variants. Gate TX sequence: set RS_DE HIGH, write/flush GateSerial, then LOW. Camera/gate power must only be enabled after 5 V validation.
  • Final GPIO map

  • platformio.ini

  • src/main.cpp