forked from tinylabs/openfixture
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathfixture_config.toml
More file actions
254 lines (225 loc) · 9.66 KB
/
fixture_config.toml
File metadata and controls
254 lines (225 loc) · 9.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
# OpenFixture Configuration File
# TOML format for fixture generation parameters
#
# This file allows you to define project-specific fixture parameters
# Command-line arguments will override these settings
#
# Last Updated: February 15, 2026
# ============================================================================
# BOARD PARAMETERS
# ============================================================================
[board]
# PCB thickness in millimeters
# Standard values: 0.8, 1.0, 1.6, 2.0, 2.4
thickness_mm = 1.6
# Test point layer selection
# Options: "F.Cu" (front/top), "B.Cu" (back/bottom), "both" (both sides)
test_layer = "F.Cu"
# Override board revision (optional)
# If not set, reads from PCB file title block
# revision = "rev_01"
# ============================================================================
# TEST POINT DETECTION
# ============================================================================
[test_points]
# Pad types to include as test points
# SMD: Surface mount pads (designed test points)
# PTH: Plated through-hole pads (connector pins, component leads)
# Note: PTH pads are only detected from components on the OPPOSITE side
# Example: Testing from bottom → Only uses PTH from top-side components
# Reason: Component body blocks access, pins accessible from other side
include_smd_pads = true
include_pth_pads = true
# Pad filtering
# - Pads with solder paste mask are excluded (unless on force_layer)
# - Pads on ignore_layer (Eco1.User) are excluded
# - Pads on force_layer (Eco2.User) are always included
# - Test Point symbols (TP*) from schematic are automatically included
# ============================================================================
# MATERIAL PARAMETERS
# ============================================================================
[material]
# Material thickness in millimeters
# Common acrylic: 2.45, 3.0, 4.0
# Common plywood: 3.0, 5.0
thickness_mm = 3.0
# Laser kerf compensation (handled in OpenSCAD)
# Typical: 0.1-0.2mm for acrylic
# kerf_mm = 0.125
# ============================================================================
# HARDWARE PARAMETERS
# ============================================================================
[hardware]
# Screw specifications (M3 recommended)
screw_diameter_mm = 3.0
screw_length_mm = 16.0
# Hex nut dimensions (M3 typical values)
nut_thickness_mm = 2.4
nut_flat_to_flat_mm = 5.45
nut_corner_to_corner_mm = 6.10
# Washer thickness (optional, for smoother hinge operation)
washer_thickness_mm = 1.0
# Pivot hole diameter (tight fit for alignment)
# Default: screw_diameter - 0.1
# For bushing: 5.12
pivot_diameter_mm = 2.9
# PCB support border width
# Ledge that holds PCB in place
border_mm = 0.8
# Pogo pin specifications
# Uncompressed length: Measured from receptacle base to pin tip (fully extended)
#
# Common pogo pin series:
# - P75-A2/B1: 16.5mm (budget-friendly, $0.16-0.22/pin, 10k-50k cycles)
# - P75-E2: 24.0mm (crown tip, general purpose, good for 0402-0805 pads)
# - Fixtest 100: 29.6mm (professional grade, ~$3.50/point, 100k+ cycles)
#
# Select based on your application:
# - Prototype/low-volume: P75 series (16-24mm)
# - Production/high-volume: Fixtest 100 (29.6mm)
#
pogo_uncompressed_length_mm = 16.0 # Default for P75-A2/B1
# Examples for other pogo pin models:
# pogo_uncompressed_length_mm = 24.0 # For P75-E2 (crown tip, 24mm)
# pogo_uncompressed_length_mm = 29.6 # For Fixtest S 100.00-L receptacle
# pogo_uncompressed_length_mm = 20.0 # For P75-D2 (flat tip, 20mm)
# Advanced pogo pin parameters (handled automatically by OpenSCAD)
# pogo_compression_mm = 1.0-1.5 # Target compression (optimal contact force)
# pogo_diameter_mm = 1.02 # Pin barrel diameter (P75 series standard)
# pogo_receptacle_diameter_mm = 1.5 # Receptacle hole diameter
# ============================================================================
# LAYER CONFIGURATION
# ============================================================================
[layers]
# Force include layer - pads on this layer are always test points
# Default: Eco2.User
force_layer = "Eco2.User"
# Ignore layer - pads on this layer are never test points
# Default: Eco1.User
ignore_layer = "Eco1.User"
# ============================================================================
# BRANDING / LOGO
# ============================================================================
[logo]
# Enable logo on fixture top plate
enable = true
# Logo file path (DXF format recommended for laser cutting)
# Absolute path or relative to OpenFixture support directory
# Default: "./osh_logo.dxf" (Open Source Hardware logo)
file = "./osh_logo.dxf"
# Logo scale factors (X, Y, Z)
# Adjust to fit your logo size
# Default OSH logo uses: 0.15, 0.15, 1.0
scale_x = 0.15
scale_y = 0.15
scale_z = 1.0
# Logo position offset (X, Y, Z)
# Translation applied after scaling
# Default OSH logo uses: -72, -66, 0 (centers the logo)
offset_x = -72.0
offset_y = -66.0
offset_z = 0.0
# Examples:
# Company logo (larger): scale_x=0.25, scale_y=0.25, offset_x=-100, offset_y=-80
# Project badge (small): scale_x=0.1, scale_y=0.1, offset_x=-50, offset_y=-50
# Disable logo: enable = false
# ============================================================================
# OUTPUT SETTINGS
# ============================================================================
[output]
# Output directory (relative to project)
directory = "fixture"
# Generate additional files
export_test_cut = true # Small test piece for material verification
export_3d_preview = true # PNG rendering of assembled fixture
export_validation = true # Track overlay for test point verification
# ============================================================================
# ADVANCED SETTINGS
# ============================================================================
[advanced]
# Enable verbose logging (creates detailed log file)
verbose_logging = false
# Coordinate correction offsets (fine-tune alignment)
# Usually not needed, but can compensate for systematic errors
tp_correction_offset_x = 0.0
tp_correction_offset_y = 0.0
# Minimum angle for pogo pin contact (degrees)
# Closer to 90° is better for reliable contact
min_pogo_contact_angle = 89.5
# ============================================================================
# EXAMPLE CONFIGURATIONS
# ============================================================================
# Copy and modify these values in the active sections above to match your needs
#
# Standard: 1.6mm PCB + 3mm acrylic + M3x16 screws
# Thin PCB: 0.8mm PCB + 2.45mm acrylic + M3x14 screws
# Heavy-duty: 2.0mm PCB + 5mm plywood + M3x20 screws + 1.5mm border
# ============================================================================
# NOTES
# ============================================================================
#
# Material Thickness:
# - Measure actual material with calipers
# - Laser-cut materials can vary ±0.1mm
# - Use test cut to verify fit
#
# Screw Length:
# - Measure threaded length only (not head)
# - Must be: screw_length >= material_thickness + pcb_thickness + nut_thickness + 3mm
# - Excess length improves clamping but requires more clearance
#
# Nut Dimensions:
# - Measure with calipers (varies by manufacturer)
# - Flat-to-flat: Across parallel sides
# - Corner-to-corner: Across diagonal
# - Undersized holes can be carefully drilled out
#
# Pogo Pins:
# - Uncompressed length: From receptacle top to pin tip (fully extended)
# - Target compression: 1.0-1.5mm typical for good contact force
# - Spring force: 50-100g per pin recommended (too many = hard to close fixture)
#
# P75 Series (Budget-Friendly):
# • Barrel diameter: 1.02mm (0.040")
# • Length options: 16.5-33.3mm (A2/B1/D2/D3/E2/F1/G2 variants)
# • Price: $0.16-0.22 per pin
# • Cycle life: 10,000-50,000 cycles
# • Best for: Prototypes, low-volume testing
# • Tip styles:
# - P75-A2 (16.5mm, sharp point): Very small pads <0.5mm
# - P75-B1 (16.5mm, rounded): Through-hole connector pins
# - P75-E2 (24mm, crown): General purpose, 0402-0805 pads
# - P75-D2/D3 (20-22mm, flat): Large pads, high current >1A
# • Source: https://www.digole.com/index.php?categoryID=115
#
# Fixtest Series 100 (Professional Grade):
# • Receptacle length: 29.6mm (S 100.00-L)
# • Material: Beryllium copper, gold plated contacts
# • Price: ~$3.50 per test point (receptacle + probe)
# • Cycle life: 100,000+ cycles
# • Current rating: 3A continuous
# • Operating temp: -40°C to +125°C
# • Best for: Production testing, high-volume, automated test
# • Source: https://www.tme.eu/ (TME.eu - Fixtest series 100)
#
# Two-Part System:
# 1. Receptacle (holder): Press-fit or solder into fixture plate
# 2. Probe pin (plunger): Spring-loaded, replaceable wear component
# Keep spare probe pins - tips wear from repeated contact and arcing
#
# Test Points:
# Selection algorithm (in order of precedence):
# 1. Force layer (Eco2.User): ALWAYS included, overrides all rules
# 2. Ignore layer (Eco1.User): ALWAYS excluded
# 3. Paste mask: Pads with paste mask are excluded
# 4. Pad type filtering (configurable):
# • SMD pads: Include if include_smd_pads=true
# • PTH pads: Include if include_pth_pads=true
# - PTH Opposite Side Rule: Only PTH from opposite side components
# - Example: Test from bottom → Only PTH from top components
# - Reason: Component body blocks same-side access
# 5. Layer: Must be on selected test layer (F.Cu or B.Cu)
#
# Minimum pad size: 0.5mm diameter for reliable probing
# Verify with track.dxf overlay: Import into KiCAD to check alignment
# Design tip: Remove solder mask AND paste mask from test pads