mirror of
https://github.com/openglow-org/forgefirm.git
synced 2026-09-27 16:51:12 -07:00
Commission the laser duty floor; record how the factory sets power
The pthresh ladder on scrap puts the tube's two thresholds far apart: the discharge strikes between 2 and 3 percent duty, but nothing lases usefully below 16 percent (PWMSAR 20), and the rungs between show only a spot at each line start. $35 ships at 16 (grblhal-glowforge 9466f76, pinned here). The drill said current lift-off and first mark share a rung; this run falsifies that, so its docstring and read-the-material text now name both thresholds and warn that a start-of-line spot is below the threshold, not at it. A start-of-line spot is also what a full-power leak at a kernel run start would look like, so laser_stream_test gains a ladder session (rule 10): every FIRE tick must ride a commanded duty, and the fire ticks must divide evenly across rungs. Both hold exactly - six commanded duties, no others, and 28296 fire ticks on every rung - so the spots are the tube, not the stream. The harness now derives its expectations from the floor, which moves the M4 session's S500 plateau from 63 to 73. laser.power-floor is a new auto acceptance test, the suite's only non-firing one: a machine must actually carry the commissioned floor, since stored settings beat freshly baked defaults. Three cloud cuts of one square at Precision Power 1, 100 and Full Power show what the analog path is competing with: the power byte is pinned at 127 in all three, dose is FIRE-bit density on a fixed 7-tick period with the on-count dithered between adjacent integers, and the power setting never reaches the machine at all. Facts bank and item 17 carry the numbers; CAMPAIGN-LOG carries both sessions.
This commit is contained in:
@@ -35,12 +35,17 @@ Drills (pass a name):
|
||||
ircut [S] [F] e.g. ircut 1000 300
|
||||
pthresh Laser power-threshold ladder: one line per power level on
|
||||
scrap, climbing from 2 % to 30 % of full, at constant power
|
||||
(M3) so nothing scales the duty with velocity. The lowest
|
||||
rung that leaves a mark is the tube's striking threshold,
|
||||
and because $35 is a percent of full duty and the rungs are
|
||||
percents of $30 with $31 = 0, that rung's percent IS the
|
||||
$35 value. Requires $35 = 0 for the run: a floor already in
|
||||
place lifts every rung and hides the threshold.
|
||||
(M3) so nothing scales the duty with velocity. The ladder
|
||||
separates two thresholds that are far apart: the discharge
|
||||
strikes at a duty well below the one the tube lases at, and
|
||||
the rungs between them show only a spot at the line start
|
||||
(the strike transient) with a dark line after it. The
|
||||
lowest rung that leaves a CONTINUOUS mark is the lasing
|
||||
threshold, and because $35 is a percent of full duty and
|
||||
the rungs are percents of $30 with $31 = 0, that rung's
|
||||
percent IS the $35 value. Requires $35 = 0 for the run: a
|
||||
floor already in place lifts every rung and hides both
|
||||
thresholds.
|
||||
pthresh [Smax] [F] e.g. pthresh 1000 300
|
||||
expstop Armed kill on the EXPECTED-stop path: start a mark job,
|
||||
then mid-burn POST /controller/stop (the supervisor stops
|
||||
@@ -467,8 +472,10 @@ def drill_pthresh(g):
|
||||
if samples:
|
||||
t0 = samples[0]['t']
|
||||
print('hv_current trace (t s : raw) - the discharge current is the')
|
||||
print('electrical witness of striking; it lifts off baseline at the')
|
||||
print('same rung the material starts marking:')
|
||||
print('electrical witness of striking, and it lifts off baseline')
|
||||
print('well below the rung that marks. Read it for the rung')
|
||||
print('boundaries: the laser-off G0 between rungs reads 0, so the')
|
||||
print('runs of nonzero current count the rungs that struck at all.')
|
||||
line = []
|
||||
for s in samples:
|
||||
if s['hv'] is None:
|
||||
@@ -480,11 +487,12 @@ def drill_pthresh(g):
|
||||
if line:
|
||||
print(' ' + ' '.join(line))
|
||||
print('\nRead the material: count rungs from the FIRST one drawn. The')
|
||||
print('lowest rung that leaves any mark is the striking threshold; set')
|
||||
print('$35 to that rung\'s percent (round up to the next rung for')
|
||||
print('margin). Note the emission counter proves the safety chain')
|
||||
print('asserted LASER_ON, not that the tube lased - only the mark and')
|
||||
print('the discharge current say that.')
|
||||
print('lowest rung carrying a CONTINUOUS mark is the lasing threshold;')
|
||||
print('set $35 to that rung\'s percent. A rung showing only a spot at')
|
||||
print('the start of its line struck but did not sustain - it is below')
|
||||
print('the threshold, not at it. Note the emission counter proves the')
|
||||
print('safety chain asserted LASER_ON, not that the tube lased - only')
|
||||
print('the mark and the discharge current say that.')
|
||||
return samples
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user