← AXS-002

Circuit review & bench-test guide

AXS-002 — Hall-effect + reed switch PMOD module

Design-stage — board not yet fabricated

Document purpose#

This document explains the axs-002-hall-reed PMOD module at component level and turns the design evidence into a practical manual-review and bench-test plan. It is based on the implemented schematic generator (generate_design.py), the module README, the sensor-line conventions in ../README.md, and the verified Pmod-spec notes in ../../pmod-common/PMOD-SPEC-NOTES.md.

This board is a schematic-complete prototype. It has NOT been laid out, fabricated, assembled, or bench-verified. Repository status: schematic generated, ERC clean (0 errors / 0 warnings), netlist reviewed; PCB layout not started. Every voltage, current, distance, and timing figure below is a design target to verify on a first article, not proof that a board works.

1. What the board does#

Two magnetic detectors sit side by side on one 3.3 V PMOD Type 1 (GPIO) module: a Diodes AH1806 solid-state omnipolar hall-effect switch and a Coto CT10 mechanical reed switch. The same hand-held magnet exercises both. Each detector pulls its line low while a magnet is present; both lines idle high through 10 kΩ pull-ups. The teaching point is the contrast: the hall switch gives a bounce-free (but sampled) edge, while the reed contact bounces and motivates the FPGA debounce exercise.

The module has no other function: no ADC, no configuration, no interrupts beyond the two level-type lines themselves.

Functional block diagram#

                     3V3 (PMOD pins 6/12)
                      │
        ┌─────────────┼───────────────┬────────────┐
        │             │               │            │
       R1 10k        C1 100nF        R3 10k        │
        │             │ (U1 bypass)   │            │
        │            GND              │            │
        v                             v
   HALL_OUT ── R2 100R ── HALL     REED_SENSE ── R4 100R ── REED
        ^  (PMOD pin 1)               ^        (PMOD pin 2)
        │ open-drain                  │ contact to GND
   U1 AH1806-W                    SW1 CT10 reed switch
   omnipolar hall switch              │
        │                            GND
       GND

   Magnet present  → HALL low (clean, sampled ~every 75 ms)
   Magnet present  → REED low (immediate, but bouncy)

2. Safety and scope boundaries#

3. Theory of operation and signal sequence#

  1. At power-up, C1 stabilizes U1's supply. Per the fetched datasheet, U1's output state is valid after its second internal operating cycle, typically ~150 ms after power-on; ignore both lines for the first 250 ms.
  2. With no magnet, U1's open-drain output is off and SW1 is open, so R1 and R3 hold HALL_OUT and REED_SENSE at 3.3 V. HALL and REED read high at the host through the 100 Ω series resistors R2/R4.
  3. U1 is a micropower duty-cycled part: it wakes for ~75 µs every ~75 ms (max 125 ms), samples the field, and latches the result. When the magnitude of the flux through the package exceeds the operate point (Bop, either pole — omnipolar), the output MOSFET turns on and HALL_OUT is pulled low. It releases only when the field falls below the release point (Brp): built-in magnetic hysteresis, so the edge cannot chatter.
  4. SW1's ferromagnetic reeds close directly under the applied field — response is immediate (sub-millisecond) but the contact physically bounces on closure, producing a burst of edges before settling low.
  5. Consequence for the lesson: the hall line changes state cleanly but only at sample instants (a magnet transit faster than one ~75–125 ms period can be missed entirely); the reed line responds instantly but dirtily.

4. Interfaces#

PMOD Type 1 (GPIO) per Digilent Pmod Interface Specification 1.2.0. Pin 1 is the rightmost pin of the upper row viewed from the module top with the connector toward you (verified in ../../pmod-common/PMOD-SPEC-NOTES.md).

PMOD pin123456789101112
NetHALLREEDNCNCGND3V3NCNCNCNCGND3V3

Both signals are module-driven inputs to the host, active low, idle high. On an AruviX ECP5 rev-A standard socket they additionally pass the host's 200 Ω series resistors and ESD diodes (per the adopted Pmod spec practice).

There are no dedicated test points in the schematic. Useful probe nodes: HALL_OUT (R1/R2 junction, before the series resistor), REED_SENSE (R3/R4 junction), 3V3 and GND at C1's pads.

5. Component-by-component review#

5.1 Detectors and connector#

Ref.Part / datasheet summaryFunction and why neededIf absent/openIf shorted, wrong, or misassembled
J112-pin right-angle PMOD plug, 2×6, 2.54 mmSole power and signal interface; carries 3V3/GND on pins 5/6/11/12 and the two sensor lines on pins 1/2No function at allMisaligned mating can short 3V3 to a signal; swapped pin-1 orientation reverses power onto the module
U1Diodes AH1806-W (SC-59), micropower omnipolar hall switch, open-drain outputSolid-state magnet detector; either pole exceeding Bop pulls HALL_OUT low, releasing below Brp — the "clean edge" half of the lessonHALL never asserts; line sits high foreverWrong orientation swaps VDD/OUTPUT/GND and can destroy the part; a damaged output stage can hold HALL low permanently; VDD above 3.6 V is out of the fetched revision's operating range
SW1Coto CT10-1540-G4, molded SPST-NO reed switch, SMD gull-wingMechanical magnet detector; contact closes to GND under field — the "bouncy contact" half of the lessonREED never assertsA cracked glass capsule (overheating in reflow beyond 226 °C/1 min, board flex) can weld or open the contact; solder bridging pulls REED_SENSE hard low permanently

5.2 Pull-ups, series protection, decoupling#

Ref.Value / partPurposeWhat is lost if omittedImportant failure/review point
R110 kΩ (Yageo RC0603FR-0710KL)Pull-up for U1's open-drain output; sets the ~0.33 mA sink current when activeHALL_OUT floats; the host reads noise or a stuck levelWithin the datasheet's recommended 10–100 kΩ RL window; short to 3V3 would fight U1's output at 330 µA — survivable (2.5 mA abs max) but wrong
R2100 Ω (Yageo RC0603FR-07100RL)Series protection on the module-driven HALL line per the sensor-line design rule; limits fault current if the host drives against the moduleMiswiring the host pin as an output can source unlimited contention currentOpen makes HALL float at the host while HALL_OUT looks fine — probe both sides
R310 kΩ (Yageo RC0603FR-0710KL)Pull-up for the reed contact; sets ~0.33 mA through SW1 when closedREED_SENSE floats when the contact is openContact wetting current is tiny (0.33 mA) and well under the 500 mA rating; dry-circuit reliability of ruthenium contacts at microamp scale is acceptable but worth noting for long-life use
R4100 Ω (Yageo RC0603FR-07100RL)Series protection on the module-driven REED lineSame contention exposure as R2Open shows bounce on REED_SENSE but a dead line at the host
C1100 nF 16 V X7R (Murata GRM188R71C104KA01D)U1 supply decoupling and noise immunity; the datasheet recommends 10–100 nF at CIN specifically to strengthen noise immunity of the duty-cycled samplerU1 may false-trigger or mis-sample on supply noiseMust sit close to U1's VDD/GND pins at layout time — a layout review item, since no layout exists yet
#FLG01, #FLG02Power flags (3V3, GND)ERC bookkeeping symbols only; declare the PMOD pins as the power sourceERC errorsNo physical part; nothing to assemble

6. Datasheet summary and design interpretation#

DeviceKey manufacturer facts (from the fetched documents)Board-specific interpretation
AH1806 (DS36104 Rev 2-2, July 2013, fetched via RS mirror; the generator's diodes.com PDF link returned HTTP 403 at review time)Operating 2.5–3.6 V; abs max VDD 5 V (transient only); open-drain, IOUT abs max 2.5 mA, VOL 0.1 V typ / 0.3 V max at 1 mA; duty-cycled: awake 75 µs typ / 125 µs max, period 75 ms typ / 125 ms max, IDD(avg) 8 µA typ / 16 µA max at 3 V; output valid after 2nd cycle (~150 ms typ); Bops +15/+30/+45 G (min/typ/max), Bopn −45/−30/−15 G, Brps +10/+20/+40 G, Brpn −40/−20/−10 G, hysteresis Bhy 5 G min / 10 G typ; −40 to +85 °C; SC59 pinout 1=VDD, 2=GND, 3=OUTPUT3.3 V operation sits inside the verified range. The wide Bop tolerance (15–45 G) means operate DISTANCE varies strongly between units and magnets — measure, don't predict. The ~75–125 ms sampling period bounds response latency and can miss fast transits: state this in the HDL exercise. Open item: the schematic's "2.5-5.5 V" description matches newer-revision marketing text (a Rev 8 exists on distributor sites) but was not verified here — pull the current diodes.com revision before release
CT10 series (Coto datasheet pages 92–93, fetched via Octopart mirror; the generator's cotorelay.com link returned HTTP 403 at review time)Molded SPST-NO dry reed, ruthenium contacts, SMD; part numbering: CT10-XXXX-YY where XXXX is the pull-in AT band (datasheet example: 1030 = 10–30 AT) and G4 = gull-wing version 2; G4 column: operate range 10–30 AT, release range 3–25 AT; 10 W max switched, 200 V DC / 500 mA max switched, 0.5 A carry; contact resistance 100 mΩ typ / 150 mΩ initial max; breakdown 230 V min; −40 to +125 °C; G4 soldering limit 226 °C max, 1 min dwellThe contact's job here is trivial (0.33 mA resistive), so all electrical ratings have huge margin. Two open items found: (a) the schematic describes SW1 as "10-15 AT sensitivity", but per Coto numbering CT10-1540 reads as a 15–40 AT pull-in band — the description and MPN disagree; (b) the G4 lead form's listed operate range tops out at 30 AT, so confirm CT10-1540-G4 is actually orderable, or pick e.g. CT10-1530-G4. Operate/release TIMES and bounce duration are not specified in this datasheet — the ~0.1–1 ms bounce class used below is an industry-typical, UNVERIFIED figure to be measured, not assumed

7. Expected values before bench testing#

All values are design targets on an unbuilt board.

QuantityDesign target / calculated rangeWhat to measure
Idle level, both lines3.3 V (high)DMM on HALL/REED at the host socket
Asserted level, HALL≤0.3 V max, ~0.1 V typ at the 0.33 mA pull-up load (datasheet VOL at 1 mA)DMM on HALL_OUT with magnet held
Asserted level, REEDNear 0 V; contact drop ≈ 0.33 mA × ≤150 mΩ ≈ 50 µV — unmeasurably smallDMM on REED_SENSE with magnet held
Module supply current, idle~10–20 µA (U1 IDD(avg) 8 µA typ/16 µA max, plus leakage)µA-range DMM in series with 3V3
Module supply current, both asserted~0.7 mA (two 0.33 mA pull-up paths + U1)Same
U1 power-on valid time~150 ms typ (second sample cycle)Scope HALL from power-up
U1 response latencyOne sample period: 75 ms typ, 125 ms maxScope: field step (fast magnet approach) to HALL edge
Hall hysteresisBop 30 G typ vs Brp 20 G typ (Bhy ≥5 G): release distance measurably LARGER than operate distanceRuler jig, section 9.C
Omnipolar behaviorBoth magnet poles trip HALL at similar (not identical) distancesFlip the magnet, repeat 9.C
Reed operate/releasePull-in inside the part's AT band; release at lower AT → release distance larger than operate distanceRuler jig, section 9.C
Reed bounce duration~0.1–1 ms class, several edges — UNVERIFIED, not in the CT10 datasheet; measure itScope single-shot, section 9.D
Hall bounceNone (latched, hysteretic) — but edges quantized to sample instantsScope single-shot

8. Manual schematic and assembly review checklist#

9. Ordered bench-test procedure#

Test context: either an AruviX ECP5 rev-A / Digilent-compatible 3.3 V PMOD socket (host FPGA pins configured as inputs, or simply unconfigured), or a bench 3.3 V current-limited supply (≤20 mA limit) on pins 6/12 (3V3) and 5/11 (GND) with a DMM, an oscilloscope, and optionally a logic analyzer. You also need: one small neodymium or alnico test magnet (pole faces identifiable), a non-magnetic ruler or caliper jig, and non-magnetic tweezers. Stop at the first abnormal result. Record board serial, magnet identity, equipment, ambient, and operator with every capture.

A. Unpowered inspection and resistance tests#

  1. Visual inspection under magnification: U1 orientation, SW1 body intact (no molding cracks), R1–R4/C1 values and fillets, J1 pin-1 marking.
  2. With no magnet near the board, measure resistance: 3V3-to-GND (expect high, ≥100 kΩ class), HALL-to-3V3 (≈10.1 kΩ via R2+R1), REED-to-3V3 (≈10.1 kΩ via R4+R3), REED-to-GND (open).
  3. Hold the magnet on SW1 and re-measure REED-to-GND: ≈100 Ω (R4 plus ≤0.15 Ω contact). Confirms the reed closes before any power is applied.

B. First power-up, static levels#

  1. Apply 3.3 V with the current limit set. Confirm supply current is in the tens-of-µA range at idle. Investigate anything above ~1 mA.
  2. After ≥250 ms, confirm HALL and REED both read ~3.3 V.
  3. Bring the magnet to U1: HALL drops low (≤0.3 V at HALL_OUT). Remove it: HALL returns high. Repeat on SW1 for REED.
  4. If on a PMOD host, run a trivial FPGA design that mirrors pins 1/2 onto LEDs and confirm both channels end-to-end.

C. Magnet approach/release hysteresis test (both detectors)#

This is the core characterization. Fix the board flat; slide the magnet toward each sensor along a ruler at a constant height and orientation.

  1. Hall operate/release distance. Approach U1 slowly (well under 1 cm/s, so the ~75–125 ms sampling adds <1 mm of error). Record the distance at which HALL asserts (operate). Withdraw slowly; record where it releases. Because Brp (20 G typ) < Bop (30 G typ), the release distance must be larger than the operate distance — that gap is the built-in hysteresis. Repeat 5 times; distances should repeat tightly (solid-state, no wear).
  2. Omnipolar check. Flip the magnet to present the opposite pole and repeat step 1. Both poles must trip the output (Bops/Bopn are symmetric ±15–45 G bands). Operate distances for the two poles will be similar but not identical — the min/typ/max bands are wide; record both.
  3. Reed operate/release distance. Repeat the slow approach along SW1's long axis (reeds respond to axial field). Record operate and release distances; release distance should again exceed operate distance (release AT band is lower than pull-in). Note the reed is NOT omnipolar in the hall sense — either pole closes it, but sensitivity depends strongly on magnet orientation relative to the reed axis; record the orientation used.
  4. Compare: expect the hall's trip distances to repeat more cleanly than the reed's (mechanical parts show more spread), and expect BOTH devices to show operate < release distance.
  5. Fast-transit contrast (optional but instructive). Sweep the magnet past both sensors quickly (<50 ms transit). The reed will emit a pulse burst; the hall may miss the event entirely if the transit falls between ~75–125 ms samples. Capture both lines simultaneously.

D. Bounce capture and edge-quality contrast#

  1. Scope REED_SENSE (or REED), single-shot, falling-edge trigger, 1 ms/div then zoom. Snap the magnet onto SW1. Capture the closure: expect a burst of make/break edges settling low. Measure total bounce duration over 10 closures; the ~0.1–1 ms class expectation is UNVERIFIED (the CT10 datasheet publishes no operate/release times) — whatever you measure is the number the HDL debouncer must beat. Also capture release (opening); reed opening typically bounces less — verify.
  2. Scope HALL the same way. Expect exactly one clean falling edge per assert event (fall time limited by R1×line capacitance, order of µs on a bench setup), with NO bounce, but with up to ~125 ms latency from the field crossing. This side-by-side pair of captures is the module's teaching artifact — save both.
  3. With a logic analyzer at ≥1 MHz sample rate, count bounce edges per closure across 20 closures for the debounce-exercise dataset.

E. Supply-margin and idle-current sweep (bench supply only)#

  1. Sweep 3V3 from 3.0 to 3.6 V; confirm both channels still operate and idle current stays in range. Do NOT sweep above 3.6 V (fetched-revision operating limit).
  2. At 3.3 V, log idle current for 10 minutes; a slow upward drift may indicate a stressed U1 or contaminated flux residue leaking across R1/R3.

10. Troubleshooting map#

SymptomFirst measurementsLikely areas
Both lines dead low3V3 at pins 6/12, GND continuityNo power, J1 misalignment, 3V3-GND short
Both lines dead high, no responseMagnet strength/approach faceToo-weak magnet, wrong board face, U1/SW1 unpopulated
HALL never assertsHALL_OUT vs HALL, U1 pinout, VDD at U1U1 orientation/damage, R1 open (floating line may read high via scope loading), magnet under Bop min (45 G worst)
HALL stuck lowRemove magnet, measure HALL_OUTU1 output damaged, solder short to GND, residual magnetized fixture nearby
HALL asserts late/randomlyScope with slow approachNormal sampling latency (75–125 ms); if worse, check C1 presence/placement
REED never assertsResistance test 9.A.3, magnet axisCracked capsule (open), wrong magnet orientation vs reed axis, R3 open
REED stuck lowREED_SENSE resistance to GND unpoweredWelded/stuck contact, solder bridge at SW1
Line high at sensor node but dead at hostBoth sides of R2/R4R2 or R4 open
Excess idle currentCurrent at 3.3 V, thermal checkU1 damage, flux contamination, wrong R values
Bounce lasts ≫1 ms or contact chatters at restRepeat capture, mechanical inspectionMarginal magnet distance (hovering at the AT threshold), damaged reed

11. Bench record template#

FieldRecord
Board revision / serial
Assembly audit (U1/SW1 orientation, R/C values)
Host or supply used; current-limit setting
Magnet identity (type, size, pole marking)
DMM/scope/logic-analyzer IDs and calibration
Ambient temperature
Idle levels and idle current
Hall operate / release distances (pole A), ×5
Hall operate / release distances (pole B), ×5
Reed operate / release distances, orientation, ×5
Reed bounce duration stats (10 closures) + capture files
Hall edge capture (clean, latency) + capture files
Fast-transit contrast result
Supply sweep 3.0–3.6 V result
Deviations, photos, raw-file paths
Reviewer / date / disposition

12. Review conclusion#

The circuit is minimal and coherent: two independent active-low channels, each with the line rules the sensor family mandates (10 kΩ pull-up, 100 Ω series element, local decoupling), on a correctly-typed PMOD Type 1 pin map. The AH1806's open-drain output, recommended pull-up range, and bypass capacitor usage all match the fetched datasheet. The principal open items before release are: (1) the CT10 sensitivity discrepancy — the MPN CT10-1540-G4 decodes as a 15–40 AT band while the schematic claims 10–15 AT, and the G4 lead form's published operate range ends at 30 AT, so the exact orderable part must be re-selected or the description corrected; (2) the AH1806 supply-range note (2.5–5.5 V) disagrees with the fetched Rev 2-2 datasheet (2.5–3.6 V) and must be checked against the current revision; (3) reed bounce timing is unpublished and must be measured, not assumed; and (4) everything here remains a paper design — no layout, fabrication, or first-article evidence exists yet.