← AXS-024

Circuit review & bench-test guide

AXS-024 — TFmini-S lidar carrier PMOD module

Design-stage — board not yet fabricated

Document purpose#

This document explains the axs-024-lidar carrier at component level and turns the design evidence into a practical manual-review and bench-test plan. It is based on generate_design.py, the generated schematic, the README, and the manufacturer documentation for the carrier parts and the intended plug-in module (Benewake TFmini-S).

The board is an unfabricated prototype: schematic generated, ERC clean (0/0), netlist reviewed, no PCB layout, no fabricated board, no BOM export, and no bench results exist. Two connector MPNs are still TBD: in the schematic fields. Everything below is design intent to be verified, not proof that an assembled board works or is safe.

1. What the board does#

The carrier adapts a Benewake TFmini-S single-point ToF lidar to a Digilent PMOD Type 3 (UART) socket. The TFmini-S is a 5 V-powered sensor with 3.3 V LVTTL UART logic, so the carrier splits the domains: external 5 V enters on screw terminal J3 and goes only to the J2 supply pin; all signals and the PMOD stay strictly 3.3 V. The sensor streams 9-byte binary frames (header 0x59 0x59, distance, signal strength, chip temperature, checksum) at 115200 baud, 100 Hz by default.

Functional block diagram#

EXT 5 V bench supply ──> J3 (screw terminal) ──┬──> J2 pin "+5V" ──> TFmini-S VCC
                                               ├── C1 100 nF
                                               └── C2 10 µF
PMOD host (ECP5) J1                                    TFmini-S (plug-in, JST GH pigtail)
  pin 2 TXD  ──────────────────────────────────> J2 "RXD" (lidar receive)
  pin 3 RXD  <───────── R1 100 Ω ──────────────  J2 "TXD" (lidar transmit, LIDAR_TX)
  pins 5/11 GND ─────────── common ground ────── J2 GND ── J3 GND
  pins 6/12 3V3 ── (decoupling reference only; does NOT power the lidar)

2. Safety and scope boundaries#

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

This is an external-5 V carrier; the order in which rails appear matters.

  1. Ground first, always common. J3 pin 2, J2 pin 4, and PMOD pins 5/11 are one ground net. Before any power, buzz continuity from the bench-supply return through J3 to the PMOD ground pins. Never feed J3 from a supply whose return is not tied to this net (no "floating 5 V" with a separate earth path through the scope).
  2. Recommended order: PMOD host on first, then external 5 V. Power the FPGA host (3V3 present, host TXD idle high or tri-stated), then enable the J3 supply. Power down in reverse: 5 V off first, then the host.
  3. What happens if 5 V is applied with no PMOD host attached: the lidar runs normally and drives 3.3 V UART frames into R1 toward an open pin — harmless. The riskier case is 5 V applied while the host board is attached but unpowered: LIDAR_TX then drives ≈3.3 V through R1 into the unpowered FPGA input, forward-biasing its protection diode and back-powering the dead 3V3 rail. R1 (100 Ω) limits this to roughly (3.3 − 0.3 − V_rail)/100 Ω ≤ ~30 mA worst case, which exceeds typical per-pin injection ratings. Treat "5 V on, host attached but unpowered" as a prohibited state.
  4. There is no reverse-blocking or inrush element on EXT_5V; C2 charges directly at connection. With only 10 µF this is benign, but do not add large external capacitance at J2 without rechecking.

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

This section is mandatory. TFmini-S pigtails and clone cables vary, and a swapped supply/signal wire can destroy the sensor or the FPGA.

4.1 The pin-order question — a real, unresolved discrepancy#

The carrier schematic and README assume J2 order 1 +5V, 2 RXD (into lidar), 3 TXD (out of lidar), 4 GND. The Benewake product manual (SJ-PM-TFmini-S A01, Table 5) numbers the module connector ① GND (black), ② +5V (red), ③ RXD/SDA (white), ④ TXD/SCL (green) on a GH1.25-4P connector with a Molex 51021-0400 terminal on the far end. That manual ordering matches the carrier's assumed order in neither direction (forward: GND/5V/RXD/TXD; reversed: TXD/RXD/5V/GND). The numbering convention of the physical JST GH housing versus the manual's ①–④ may reconcile this, or the schematic may simply be wrong — this must be resolved against a physical unit before the PCB is laid out, and re-verified on every assembled cable before first power.

Verification procedure, with the sensor not connected to the carrier:

  1. Identify the wire colors at the sensor end: black = GND, red = +5 V, white = RXD (into lidar), green = TXD (out of lidar), per the manual.
  2. Follow each wire through the pigtail (and any extension) to the plug that mates with carrier J2. Extensions can swap pairs; buzz end-to-end.
  3. With the carrier unpowered, buzz J2 pad 1 to J3 pin 1 (+5 V net) and J2 pad 4 to J3 pin 2 (GND net). Confirm the red wire will land on the +5 V pad and the black wire on the GND pad in the actual mated orientation.
  4. Confirm the white wire lands on the net driven by PMOD pin 2 (host TXD) and the green wire on the R1 side (LIDAR_TX).
  5. Only then connect the sensor.

4.2 Plug-in key specifications (Benewake TFmini-S, manual A01)#

ItemManufacturer valueBench relevance
Supply5 V ± 0.1 VJ3 must be a regulated 5 V; ±0.1 V fluctuation allowed
Average current≤140 mA (long-distance mode; ~50 mA short-distance mode)Supply and wiring sizing; current-limit setting
Peak current200 mAC2 covers transmit-pulse peaks; watch supply droop
Average power700 mWSensor runs warm; normal
UART logicLVTTL 3.3 VDirect PMOD connection is legitimate
Default UART115200 baud, 8N1HDL UART setting
Frame9 bytes: 0x59 0x59, Dist_L/H, Strength_L/H, Temp_L/H, checksumChecksum = low 8 bits of the sum of the first 8 bytes
Distance0.1–12 m (90 % target), 0.1–7 m (10 % target); unit cmBlind zone 0–10 cm: data unreliable there
Abnormal codesDist 65535 when Strength < 100; 65534 on strength saturation; 65532 on ambient-light saturationParser must handle these, and the bench test should provoke them
Frame rate1–1000 Hz, default 100 HzExpect a frame every ~10 ms
Temperature word°C = Temp/8 − 256Sanity check ≈ warm room temperature
ProtectionNone (no polarity or overvoltage protection)Carrier and operator are the only protection

5. Component-by-component review#

Every physical reference designator on the schematic is covered. #FLG01#FLG03 are ERC power flags only; they place no physical part.

Ref.Part / valueFunction and why neededIf absent/openIf shorted, wrong, or misassembled
J12×6 right-angle PMOD plug (MPN TBD:)Host interface, Pmod spec 1.2; carries TXD/RXD, GND, 3V3No host linkMirrored assembly swaps rows: 3V3/GND onto signal pins — verify pin 1 orientation against the Pmod spec before soldering
J2JST SM04B-GHS-TB, GH 4-pin horizontalMates the TFmini-S pigtail; carries 5 V, GND, both UART linesNo sensor connectionWrong wire order can put 5 V on a UART line or reverse the sensor supply — see section 4.1
J3Phoenix MKDS 1,5/2-5,08 screw terminal (MPN TBD:)External 5 V entry; only source of lidar powerSensor never powersReversed wiring destroys the unprotected sensor; loose screw contact causes brownouts at 140–200 mA
R1100 Ω 0603, Yageo RC0603FR-07100RLSeries protection on the lidar-driven TX line; damps the stub, limits fault/injection currentSignal still works but no current limiting during power-sequencing faultsOpen: host receives nothing (RXD floats); grossly wrong value slows edges — at 115200 baud even 1 kΩ would still work, so a value error hides functionally
C1100 nF 16 V X7R, Murata GRM188R71C104KA01DHigh-frequency decoupling at the J2 supply pinMore noise coupled into the sensor supply during transmit pulsesShort kills EXT_5V; 16 V rating is adequate for 5 V
C210 µF 10 V X5R, Murata GRM21BR61A106KE19LBulk reservoir for 200 mA transmit-pulse peaks over lead inductanceSupply droop at each pulse; possible sensor resets with long J3 leadsShort kills EXT_5V; polarity is not a concern (ceramic)

Note: the host-driven TXD line has no series resistor — it is host output to sensor input, consistent with the other carriers in this line. The sensor-driven direction has R1.

6. Datasheet summary and design interpretation#

DeviceKey manufacturer factsBoard-specific interpretation
TFmini-S5 V ± 0.1 V, ≤140 mA avg / 200 mA peak, LVTTL 3.3 V UART, 115200 8N1, 9-byte 0x59 0x59 frames, no input protection, GH1.25-4P pigtail (black/red/white/green = GND/5V/RXD/TXD)The external-5 V architecture is correct; the J2 pin-order assumption does not match the manual's numbering and is the top open risk
Yageo RC0603 resistorsGeneral-purpose thick film, 1 %Values uncritical at 115200 baud
Murata GRM188/GRM21B capacitorsX7R 16 V / X5R 10 V ceramics10 V rating on C2 gives limited headroom over 5 V; acceptable but do not substitute a 6.3 V part

Official references: Benewake TFmini-S product page, TFmini-S Product Manual SJ-PM-TFmini-S A01 (SparkFun mirror), TFmini-S datasheet SJ-PM-TFmini-S-01 A01 (Mouser mirror), JST GH connector family. Check the current revision before procurement.

7. Expected values before bench testing#

QuantityDesign target / manufacturer valueWhat to measure
EXT_5V at J25.0 V ± 0.1 V under loadDMM at the J2 supply pad, sensor running
Supply current, long-distance mode≤140 mA averageBench-supply readout / series DMM
Supply current, peaks≤200 mACurrent probe or shunt + scope
UART idle level at PMOD pin 33.3 V (idle high)DMM/scope
Frame header0x59 0x59 every ~10 ms (100 Hz default)Scope/logic analyzer on LIDAR_TX
First distance readingPlausible cm value for a target ≥10 cm away; Dist = 65535 with Strength < 100Decoded frames
ChecksumLow 8 bits of sum of first 8 bytes, every frameParser statistics over ≥1000 frames
Temp wordTemp/8 − 256 ≈ 25–50 °CDecoded frames after warm-up

8. Manual schematic and assembly review checklist#

9. Ordered bench-test procedure#

Stop at the first abnormal result. Record board serial, sensor serial, supply, equipment, and operator.

A. Unpowered checks#

  1. Complete section 4.1 (pigtail buzz-out). Do not skip it.
  2. Measure resistance EXT_5V-to-GND (expect high, capacitive charging) and 3V3-to-GND at the PMOD plug. Investigate any hard short.
  3. Verify J3 GND to PMOD GND continuity (<1 Ω).

B. Sensor alone, no host#

  1. Leave the PMOD unplugged. Set the bench supply to 5.00 V, 300 mA limit.
  2. Power J3. Expect ≤140 mA average; a red glow is visible in the transmit lens viewed from the front (per the Benewake manual's no-data checklist).
  3. Scope LIDAR_TX (sensor side of R1): 3.3 V UART bursts every ~10 ms.
  4. Power off.

C. Host attach and first frames#

  1. Power the FPGA host first, then J3 (section 3 order).
  2. Capture PMOD pin 3 with a logic analyzer at 115200 8N1: verify 0x59 0x59 sync, decode distance/strength/temp, verify checksum on every frame.
  3. Point the sensor at a wall ≈1 m away: distance within ±6 cm (manufacturer accuracy for 0.1–6 m). Move to 3 m and re-check.
  4. Provoke abnormal codes: cover the lens (expect Dist 65535 / Strength <100); aim at a mirror or through glass and note the documented malfunction modes.
  5. Blind-zone check: a target at <10 cm should be treated as unreliable.

D. Robustness#

  1. Sweep the J3 supply 4.9–5.1 V (the allowed ±0.1 V): frames must stay valid.
  2. One-hour soak at 100 Hz: log frame-loss and checksum-error counts (target 0), supply current, and connector temperature.
  3. Hot-unplug/replug of J3 with the host running; verify the sensor recovers and the host UART resynchronizes on the next 0x59 0x59.

10. Troubleshooting map#

SymptomFirst measurementsLikely areas
No current draw on J3J3 voltage/polarity, J2 supply padJ3 wiring, pigtail order, GH solder
Draws current, no UART burstsLIDAR_TX at J2, red glow checkWrong pigtail order (TX not where expected), damaged sensor
Bursts at J2, nothing at PMOD pin 3Both sides of R1R1 open, PCB trace, PMOD contact
Garbage bytesBaud/format on analyzer, ground bounce115200 8N1 mismatch, missing common ground
Frames but Dist always 65535Strength fieldTarget too weak/far, dirty lens, strength < 100
Sensor resets under loadEXT_5V droop on scope during pulsesLong/thin J3 leads, missing C2, weak supply

11. Bench record template#

FieldRecord
Board serial / assembly variant
TFmini-S serial and firmware
Pigtail order verification result (section 4.1)
Supply, current limit, equipment IDs
Idle current / average / peak
Frame decode statistics (frames, checksum errors)
Distance accuracy spot checks (1 m / 3 m)
Abnormal-code and blind-zone behavior
1-hour soak result
Deviations, raw-file paths
Reviewer / date / disposition

12. Review conclusion#

The architecture is honest and simple: external 5 V for a 5 V sensor, common ground, 3.3 V-only signaling to the PMOD, one series resistor on the only sensor-driven line, and local decoupling sized for the documented 200 mA transmit peaks. The principal risks are (1) the unresolved J2 pin-order assumption versus the Benewake manual's connector numbering — the sensor has no input protection, so this is a destroy-the-part class error; (2) the back-powering path into an attached-but-unpowered host; (3) two TBD: connector MPNs; and (4) the total absence of layout, fabrication, and bench evidence at this revision.