← AXS-044

Circuit review & bench-test guide

AXS-044 — PMS5003 particulate-matter carrier PMOD module

Design-stage — board not yet fabricated

Document purpose#

This document explains the axs-044-particulate carrier at component level and turns the design evidence into a manual-review and bench-test plan. It is based on generate_design.py, the generated schematic, the README, and the Plantower PMS5003 data manual.

The board is an unfabricated prototype: schematic generated, ERC clean (0/0), netlist reviewed, no PCB layout, no fabricated board, no BOM export, no bench results. Two connector MPNs are TBD:. The J2 pad-to-pin mapping is explicitly flagged by the design itself as unverified against hardware.

1. What the board does#

The carrier adapts a Plantower PMS5003 laser-scattering particulate sensor (PM1.0/PM2.5/PM10) to a PMOD Type 3 (UART) socket with two control extras: SET (sleep) on PMOD pin 1 and RESET on PMOD pin 7. The PMS5003 is 5 V powered — its fan needs 5 V — with 3.3 V logic, so external 5 V enters on screw terminal J3 and the PMOD stays strictly 3.3 V. The sensor streams fixed 32-byte frames (start 0x42 0x4D) at 9600 baud in active mode.

Functional block diagram#

EXT 5 V bench supply ──> J3 ──┬──> J2 pins 1/2 (VCC) ──> PMS5003
                              ├── C1 100 nF
                              └── C2 10 µF
PMOD host (ECP5) J1                                PMS5003 (via its supplied cable, J2 2x5 1.27 mm)
  pin 1 PM_SET ────┬───────────────────────────────> SET   (R2 10 k pull-up to 3V3)
  pin 7 PM_RESET_N ┬───────────────────────────────> RESET (R3 10 k pull-up to 3V3)
  pin 2 TXD ───────────────────────────────────────> RX
  pin 3 RXD <── R1 100 Ω ──────────────────────────  TX (PM_TX)
  pins 5/11 GND ── common ground ── J2 pins 3/4 ── J3 GND
  pins 6/12 3V3 ── pull-up rail + decoupling reference only (never powers the sensor)

2. Safety and scope boundaries#

3. Supply sequencing, common ground, and no-host behavior#

  1. Common ground first. J3 GND, J2 pins 3/4, and PMOD GND are one net. Buzz continuity before power; never feed J3 from a supply with a separate ground path.
  2. Recommended order: PMOD host on first, then external 5 V. The sensor's SET/RESET idle states are guaranteed by R2/R3 pulling to the host 3V3, so the 3V3 rail should exist before the sensor boots. Power down in reverse (5 V off first).
  3. 5 V with no PMOD host attached: the sensor runs (its SET/RESET are also pulled up internally, per the datasheet's circuit attentions) and drives UART frames into R1 toward an open pin — harmless. R2/R3 then tie SET/RESET to a dead 3V3 net; the sensor's internal pull-ups leak µA-level current through 10 k into that net — benign.
  4. 5 V with the host attached but unpowered is prohibited: PM_TX drives ≈3.3 V through R1 (100 Ω) into the unpowered FPGA input and back-powers the 3V3 rail through its protection diode at up to tens of mA; SET/RESET internal pull-ups add a smaller path through R2/R3.

4. Plug-in module verification (read before first power)#

Mandatory section. The PMS5003's connector is the single most error-prone part of this design, and the design itself flags it.

4.1 Connector and pin-order check#

Two facts must be reconciled on real hardware:

Resolution procedure, sensor in hand and carrier unpowered:

  1. Identify the connector on the purchased PMS5003 (count positions: 2×5, 1.27 mm) and locate its pin-1 marking (Plantower's drawing shows PIN1 at one end of the recessed header; the supplied cable is keyed).
  2. With a DMM in continuity mode from the sensor end of the supplied cable, map each cable position to a sensor pin. The shell is GND — use it to identify the GND positions confidently.
  3. Buzz each cable position through to the carrier J2 pads and confirm: VCC positions land on the EXT_5V net (to J3 pin 1), GND positions on GND, TX on the R1 side, RX on the TXD net, SET on PM_SET, RESET on PM_RESET_N.
  4. Verify the mated orientation cannot be reversed (shrouded/keyed header chosen for J2 — the MPN is still TBD:, so this property must be part of the part selection).
  5. Only then apply power. Record the mapping with photos.

4.2 Plug-in key specifications (Plantower PMS5003 manual V2.3, 2016-06-01)#

ItemManufacturer valueBench relevance
Supply5.0 V typ (4.5–5.5 V)J3 setting; fan is the reason 3.3 V cannot work
Active current≤100 mASupply sizing; expect a fan spin-up surge at power-on
Standby current≤200 µASleep-mode verification target (SET low)
Logic3.3 V TTL: L < 0.8 V, H > 2.7 VDirect PMOD wiring is legitimate; a 5 V host would need level conversion (not our case)
SET pinHigh or floating = run; low = sleep; internally pulled upR2 duplicates the pull-up on-carrier; host drives low to sleep
RESET pinActive-low reset; internally pulled upR3 duplicates; host drives low to reset
Wake-up timeStable data ≥30 s after wake from sleep (fan performance)Do not grade data in the first 30 s
UART9600 baud, 8N1HDL UART setting
Frame32 bytes: 0x42 0x4D, length (=28), 13 data words, 16-bit checksum = sum of all preceding bytesParser and bench decode
DataPM1.0/2.5/10 in CF=1 and atmospheric calibrations; particle counts >0.3/0.5/1.0/2.5/5/10 µm per 0.1 LTwo calibrations differ by design — not a fault
ModesActive (default; 2.3 s stable / 200–800 ms fast interval) and passive (0xE2 read, 0xE1 mode, 0xE4 sleep/wake)Active mode expected at first power
Response<1 s single, ≤10 s totalSmoke-test timing
LifetimeMTTF ≥ 3 years (fan-limited)Soak expectations

5. Component-by-component review#

#FLG01#FLG03 are ERC power flags, not physical parts.

Ref.Part / valueFunction and why neededIf absent/openIf shorted, wrong, or misassembled
J12×6 right-angle PMOD plug (MPN TBD:)Host interface; SET on pin 1, RESET_N on pin 7, UART on 2/3No host linkMirrored assembly puts rails on signals — verify pin-1 orientation
J21.27 mm 2×5 shrouded header (MPN TBD:)Mates the PMS5003 cable, pad N = sensor pin NNo sensorWrong pad-to-pin mapping or unkeyed part allows reversed mating: 5 V onto GND/SET — see 4.1
J3Phoenix MKDS 1,5/2-5,08 screw terminal (MPN TBD:)External 5 V entrySensor never powersReversed polarity risks the sensor; loose contact browns out the fan
R1100 Ω 0603, Yageo RC0603FR-07100RLSeries protection on sensor-driven TXLoses fault-current limitingOpen: no data at PMOD pin 3
R210 kΩ 0603, Yageo RC0603FR-0710KLSET pull-up to 3V3: sensor runs if host leaves pin 1 aloneSensor still runs on its internal pull-up, but the idle level then depends on the sensor aloneShort to 3V3 prevents the host from ever sleeping the sensor
R310 kΩ 0603, Yageo RC0603FR-0710KLRESET pull-up to 3V3: sensor out of reset by defaultSame fallback as R2Short to 3V3 prevents host reset; solder bridge to GND holds the sensor in permanent reset
C1100 nF 16 V X7R, Murata GRM188R71C104KA01DHigh-frequency decoupling at the headerNoise on the sensor supplyShort kills EXT_5V
C210 µF 10 V X5R, Murata GRM21BR61A106KE19LBulk for fan start-up surgeSupply droop at spin-up; possible boot loopsShort kills EXT_5V

Note: Plantower says SET and RESET "should not be connected if without usage" because they are internally pulled up. The carrier connects them through its own 10 k pull-ups plus host pins — functionally equivalent to "unused" when the host tri-states, and controllable when the host drives. This is a deliberate, defensible deviation; verify on the bench that the idle levels read high.

6. Datasheet summary and design interpretation#

DeviceKey manufacturer factsBoard-specific interpretation
PMS50035 V fan, ≤100 mA active, ≤200 µA standby, 3.3 V logic, 9600 8N1, 32-byte 0x42 0x4D frames, ≥30 s stabilization after wake, internal SET/RESET pull-ups, GND-bonded shellThe split-domain architecture is exactly what the datasheet's own typical circuit shows (10 k pull-ups to 3.3 V on SET/RESET included)
Yageo RC0603Thick film 1 %Uncritical
Murata GRM188/GRM21BX7R/X5R ceramicsC2's 10 V rating adequate at 5 V; do not downgrade to 6.3 V

Official references: Plantower PMS5003 product page, PMS5003 data manual V2.3 (Adafruit mirror). Later manual revisions exist; obtain the revision matching the purchased unit (this matters for the connector table — see section 4.1).

7. Expected values before bench testing#

QuantityDesign target / manufacturer valueWhat to measure
EXT_5V4.5–5.5 V, 5.0 V nominalDMM at J2 pins 1/2
Active current≤100 mA, plus fan spin-up surge at t=0Supply readout + scope on a shunt
Sleep current≤200 µA with PM_SET held lowµA-range DMM in the J3 feed
Idle levelsPM_SET and PM_RESET_N ≈ 3.3 V, host tri-statedDMM at PMOD pins 1/7
UART9600 8N1; a frame every ~2.3 s (stable) to 200–800 ms (fast)Logic analyzer on PM_TX
Frame0x42 0x4D, length word 28, checksum = 16-bit sum of first 30 bytesParser over ≥100 frames
Wake-to-stable≥30 s after SET returns highTimestamped decode after sleep test
ResetSensor reboots and resumes frames after PM_RESET_N pulsed lowScope + decode

8. Manual schematic and assembly review checklist#

9. Ordered bench-test procedure#

Stop at the first abnormal result.

A. Unpowered checks#

  1. Complete section 4.1 mapping. Do not skip it.
  2. Resistance EXT_5V-to-GND and 3V3-to-GND; investigate hard shorts.
  3. Continuity J3 GND ↔ PMOD GND ↔ sensor shell (shell is GND-bonded).

B. First power, active mode#

  1. Host on first, then J3 at 5.00 V with a 300 mA limit.
  2. Confirm fan audibly spins; record current (spin-up surge, then ≤100 mA).
  3. Capture PM_TX at 9600 8N1: frames start 0x42 0x4D, length 28, checksum valid. Log the frame interval (2.3 s stable mode is normal in clean air).
  4. Read PM2.5 in room air: a plausible low value with both calibrations present in the frame. Values are not being graded against a reference — Plantower only promises consistency against their own sensors.

C. SET/RESET line tests#

  1. Sleep: drive PM_SET low from the host. Fan stops; frames stop; current falls to the µA range (target ≤200 µA — measure in the J3 feed with the host still powered).
  2. Wake: release/drive PM_SET high. Fan restarts; frames resume; mark the first frame time and discard 30 s of data before judging values; compare a reading at t+35 s against pre-sleep values.
  3. Reset: pulse PM_RESET_N low ≥1 ms. Sensor reboots; frames stop and resume; confirm idle level returns to 3.3 V.
  4. With the host tri-stating both lines, confirm the sensor free-runs (pull-up sanity — R2/R3 doing their job).
  1. Send 0xE1 (change mode → passive), then 0xE2 read requests; verify one 32-byte answer per request.
  2. Send 0xE4 sleep/wake commands and compare behavior with the SET-pin test.
  3. Return to active mode and power-cycle to confirm the default state.

E. Aerosol response and soak#

  1. Briefly present a controlled particle source near the inlet (e.g., an extinguished match at a distance); PM2.5 should rise within ≤10 s (total response time) and decay afterward. Keep it brief — high concentration exposure is a documented stressor.
  2. 2-hour soak in room air: frame-loss/checksum-error count (target 0), current stability, and value drift.

10. Troubleshooting map#

SymptomFirst measurementsLikely areas
No current, no fanJ3 polarity, J2 VCC padsConnector mapping (4.1), J3 wiring
Fan runs, no framesPM_TX at J2 pin 9, R1 both sidesTX/RX swapped in mapping, R1 open, analyzer baud
Frames with checksum errorsGround bounce, baud accuracyCommon ground, cable quality, 9600 timing
Cannot sleepPMOD pin 1 level while driven lowR2 short, host pin not actually driving, SET not at expected pad
Never leaves resetPM_RESET_N levelBridge to GND, host pin stuck low
Values nonsense right after wakeTime since wake<30 s stabilization — expected, not a fault
Sleep current far above 200 µAWhich rail the current is inFan still on (SET level), leakage through mis-mapped pins

11. Bench record template#

FieldRecord
Board serial / assembly variant
PMS5003 serial, purchase source, connector mapping photos
Manual revision matched to the unit
Supply, current limit, equipment IDs
Active / sleep current
Frame decode statistics
Sleep/wake/reset test results (with 30 s discard noted)
Passive-mode results
Aerosol response and soak results
Deviations, raw-file paths
Reviewer / date / disposition

12. Review conclusion#

The design mirrors Plantower's own typical application circuit: external 5 V for the fan, 3.3 V logic straight to the host, and 10 k pull-ups to 3.3 V on SET and RESET. The decoupling and series-resistor conventions match the rest of the board family. The principal risks are (1) the J2 pad-to-pin mapping against the real connector and cable — made sharper by the fact that Plantower's own V2.3 manual prints a different (8-entry) pin table than the 10-pin layout the carrier assumes, with RESET/SET in different places; (2) the unkeyed-header hazard until the TBD: J2 part is pinned as a shrouded, keyed component; (3) back-powering an unpowered host through R1; and (4) the absence of layout, fabrication, and bench evidence.