Files
ESP32_Serial_Swiss_Army_Knife/hardware/PCB/button-notes.md
T
Commander1024 60c1e279d6 Add KiCad module carrier PCB draft
Introduce an editable KiCad 10 schematic and routed two-layer 82 × 80 mm
layout with local provisional footprints, validation tooling, and
component
research. Keep the RS-232 male-module mapping and mechanical clearances
explicitly provisional pending hardware verification.
2026-09-20 23:14:01 +02:00

8.4 KiB
Raw Blame History

Button selection: Omron B3F-1000

Verified 2026-09-20 against the Omron datasheet and installed KiCad libraries. This research covers three active-low GPIO-to-GND buttons.

Integration decision: the A0 schematic now implements B3F-1000 switches with one 2.2 kΩ, 1%, at least 0.125 W external pull-up per input. The lower-current/internal-pull-up-only discussion below records the selection rationale, not an unselected schematic option. Firmware is unchanged. Exact resistor MPN, supply tolerance/budget and stock remain release checks.

Schematic-ready recommendation

B3F-1000 fits the installed footprint mechanically and its normally-open contact topology matches the circuit. Low-current operation with internal pull-ups needs the qualification below.

For each of the three buttons:

  • Value / manufacturer part number: B3F-1000, Omron; standard silver-plated contacts, ivory flat plunger, no separate ground terminal.
  • Symbol: Switch:SW_Push (normally open, two passive pins).
  • Explicitly assign footprint: Button_Switch_THT:SW_TH_Tactile_Omron_B3F-100x. The installed symbol's default footprint field is empty.
  • Symbol pin 1 → GPIO, symbol pin 2 → GND. The switch is nonpolar; swapping these two nets is electrically equivalent.
Function Pin 1 net Pin 2 net
Previous/back GPIO10 GND
Select/confirm GPIO13 GND
Next GPIO14 GND

GPIO assignments verified in src/board_pins.h. The PCB README specifies normally-open buttons to GND with internal pull-ups. Released = high; pressed = low. No voltage source connects directly through the switch: any external pull-up goes through a resistor to 3.3 V.

Exact terminal and pad mapping

The installed footprint has four physical holes but only two distinct electrical pad numbers: 1,1,2,2, not four uniquely numbered pads. The installed SW_Push symbol has pin 1 at the left and pin 2 at the right in its default orientation; pin numbers are hidden by the symbol.

Unrotated footprint, front/top view; local coordinates in mm, positive Y downward:

                  6.5 mm
KiCad pad 1 (0,0) ----------- KiCad pad 1 (6.5,0)
Omron terminal 4             Omron terminal 3
                       NO
                    contact                 4.5 mm
Omron terminal 2             Omron terminal 1
KiCad pad 2 (0,4.5) --------- KiCad pad 2 (6.5,4.5)

The horizontal connections above are permanent internal connections; pressing joins the two rows. Omron datasheet page 4, upper-left “Terminal Arrangement/Internal Connections (Top View)”, explicitly shows terminals 43 common and 21 common. This maps to KiCad's upper pair numbered 1 and lower pair numbered 2 when aligned as shown. Omron terminal 1 is not KiCad pad 1 in this orientation. The manufacturer's separate bottom-view numbering sketch must not be mistaken for a top view. Omron states terminal numbers are not marked on the switches. A 180° insertion swaps the two electrical sides without affecting this nonpolar circuit.

Both pads numbered 1 receive the symbol pin-1 net; both pads numbered 2 receive pin-2's net. Do not attach a four-unique-pin symbol to this footprint without an explicit remapping. Connecting GPIO and GND to two terminals within the same common pair would permanently ground the GPIO.

The footprint sets duplicate_pad_numbers_are_jumpers no; do not assume PCB routing software will treat the internal metal as a routing jumper. Route/check the duplicate-pad nets normally.

Manufacturer dimensions and ratings

Source: Omron B3F datasheet, ordering table p. 1, ratings/operating characteristics p. 3, B3F-1000 drawing p. 4. Dimensions below are mm.

Item Datasheet specification
Body 6 ±0.2 × 6 ±0.2
Overall height above seating plane 4.3 ±0.2
Plunger diameter 3.5
Terminal row spacing 4.5 ±0.2
Formed terminal span at hole-entry region 6.5 ±0.5
Maximum-width dimension shown across formed leads 7.7 ±0.5
Lead projection below seating plane 3.5
Lead thickness / width callouts 0.3 / 0.7
Recommended PCB hole-centre grid 6.5 ±0.1 × 4.5 ±0.1
Recommended PCB holes Four, diameter 1 ±0.1; reference drawing for PCB thickness 1.6
General dimensional tolerance ±0.4 unless otherwise specified
Contact form SPST-NO
Rated resistive load, standard silver version 150 mA at 324 VDC
Minimum applicable load 10 µA at 1 VDC, reference value
Initial contact resistance 100 mΩ maximum
Bounce 5 ms maximum
Operating force 0.98 ±0.29 N (100 ±30 gf)
Release force 0.2 N minimum
Pretravel 0.25 +0.2/0.1
Durability for B3F-1000, 0.98 N 1,000,000 operations minimum
Protection / washing IP00 / washing not possible

Installed footprint comparison

Inspected /usr/share/kicad/footprints/Button_Switch_THT.pretty/SW_TH_Tactile_Omron_B3F-100x.kicad_mod (file format version 20260206, generator version 10.0) and /usr/share/kicad/symbols/Switch.kicad_sym.

  • Hole centres: (0,0), (6.5,0), (0,4.5), (6.5,4.5) — match Omron's nominal PCB grid.
  • All four plated through-hole pads: circular copper diameter 1.7, drill 1.0, front/back copper and mask — nominal drill matches Omron's reference hole diameter. Confirm the fabricator's finished-hole tolerance when ordering.
  • Fab body: (0.25,-0.75) to (6.25,5.25), 6 × 6, matching nominal body dimensions.
  • Courtyard: (-1.1,-1.1) to (7.6,5.6), 8.7 × 6.7. This is a library placement boundary, not an enclosure or finger-access clearance specification.
  • Footprint description specifies H4.3 mm. No physical sample fit, enclosure-height check, or independent 3D-model measurement was performed.

Low-current qualification / selection decision

Do not claim internal-pull-up operation meets the standard part's full rated-load range. At 3.3 V, pull-up resistance greater than 3.3 kΩ gives less than 1 mA contact current. For illustration only, 45 kΩ would give about 73 µA; that is not a verified resistance specification for this board's GPIOs.

Omron's 10 µA / 1 V minimum is explicitly a reference value, not an unconditional low-current reliability guarantee. B3F-1000 is a reasonable prototype choice, but internal-pull-up-only contact reliability should be qualified in the intended environment and over life.

For a conservative silver-contact design within the stated rated load, consider one external 2.2 kΩ pull-up to 3.3 V per button (about 1.5 mA while pressed); verify supply/resistor tolerances and GPIO limits before adopting. This recommendation was subsequently adopted in the A0 carrier schematic; see the integration decision above. If low current is important, the datasheet also lists B3F-1002-G with gold contacts in the same p. 4 dimensional group, rated 100 µA50 mA at 324 VDC, but with a different operating force (1.76 ±0.49 N); weak internal pull-ups are not automatically within that rated range either. It has not been selected or stock-checked here.

Retain firmware debouncing; a mechanical switch is not bounce-free. The device is unsealed (IP00), and the datasheet prohibits washing.

Supply evidence

Live stock not verified; no supply assurance. On 2026-09-20 a request to the DigiKey B3F-1000 product URL returned HTTP 403 / an anti-bot challenge. No quantity, price, lead time, or lifecycle status could be established from that response. Confirm the exact MPN and available quantity with a distributor before BOM release; datasheet availability is not stock evidence.

Evidence and remaining checks

Before manufacturing: validate the selected pull-up strategy against supply tolerances/budget; check ERC/net assignment and PCB DRC in the actual design; confirm finished holes, enclosure/actuator access and a sample's fit/continuity; confirm procurement. This review verifies datasheet-to-library compatibility, not a completed-board electrical or mechanical test.