Bringing conversation with @sbhaskaran to the forum.
System
1x PM, 1x PG4, custom multi-contact electrode cuff, chronically implanted in sheep (2 weeks recovery, 2 weeks active use) Using Smart Charger for radio communication. Tim Bruns Lab at the University of Michigan was provided this implantable system through the NIH HORNET supplemental grant U41NS129436-02S3 to investigate selective stimulation of lower urinary tract function in ovine model. Certain components of the system are cleaned and reused from a previously explanted device used in a hand grasp study.
Symptom
Stimulation with this system delivered reliably at 14 Hz and 20 Hz but failed to produce a muscle twitch at 33 Hz. Failure was considered as a lack of observed muscle twitch onset; any physiological cause for lack of muscle twitch at 33 Hz was ruled out. The same protocol on a benchtop kit reproduced stimulation correctly at all tested frequencies, isolating the fault to the implanted unit. Review indicated the fault had likely been present since implantation but had not been noticed until 33 Hz was specifically evaluated. At 33 Hz, successful stim output occurred in roughly 1 of 20 attempts. Amplitude and pulse width changes did not resolve the issue.
Hypotheses Evaluated
1. Thermal shutdown. The system is specified to halt stimulation at an internal temperature limit. Sheep core/implant-adjacent temperature runs consistently above 40°C, which is the human temperature limit, but this system is using forks with the temperature limit adjusted at the Power Module and Smart Charger. Ruled out: 43°C was not being reached, and a thermal cutoff would not explain a fault specific to one stimulation frequency. Not investigated further.
2. Communication failure. Checked whether radio/network commands were reliably reaching the PG4. Ruled out: commands for stimulation at other frequencies were being received and executed correctly, confirming the RF link was functional. Not investigated further.
3. Stim scheduling / channel timing. Flagged for investigation — see Diagnostics.
4. Compliance / impedance. Flagged for investigation — see Diagnostics. Contact impedances were separately measured at ~1 kΩ per contact (within normal operable range); electrode palpation and a frequency sweep were also planned as checks.
5. Residual clinical configuration. The PG4 had previously run a clinical parameter set before being repurposed for this study. Flagged as a possible source of unintended Object Dictionary (OD) state.
Diagnostic Readback (pre-reset)
Pulled directly from the PG4 OD prior to any reset:
| Parameter | OD index | Value read | Expected default |
|---|---|---|---|
| Channel scheduling delay (ms, post-SYNC, per channel) | 2800.1 | [36, 37, 38, 39] |
[20, 21, 22, 23] |
| Discharge timing (ms) | 2800.6 | 5 | 5 |
| Compliance voltage, ch. group 1 (VOC1) | 3210.3 | 2040 (max) | — |
| Compliance voltage, ch. group 2 (VOC2) | 3210.4 | 2040 (max) | — |
| Network voltage (VNET) | — (getVNET) |
7.5 V | 7.5 V |
| Compliance flags (3210.5), low-frequency stim | 3210.5 | [1,1 ,1 ,1] | 1’s |
| Compliance flags (3210.5), 33 Hz stim | 3210.5 | [2, 2, 2, 2] | 0’s, 2’s, or 3’s |
Compliance flag values: 1 = in regulation, stim delivered; 0 = not in regulation, current path insufficient for compliance voltage; 2 = invalid; 3 = default/no stim attempt.
Analysis
All parameters except for the channel scheduling readback were at default. The compliance flags showed all 2s for 33 Hz.
The scheduling readback (2800.1) was at [36, 37, 38, 39] ms instead of the default [20, 21, 22, 23] ms. This parameter sets the per-channel delay after each network SYNC pulse used to time-multiplex the four stim outputs and allow output-stage recharge between channels.
At 33 Hz, the stim period is ~30.3 ms — shorter than the 36–39 ms scheduling delay present on the device. With the delay exceeding the period, the per-channel timing windows used for multiplexing overran the cycle and collided, which is consistent with all four channels reading compliance flag = 2 (invalid) at 33 Hz.
Conclusion: The underlying cause was a timing/scheduling conflict, not an electrode or power-supply compliance limitation. The stale scheduling values trace to the lack of an OD reset when the PG4 was repurposed from its prior clinical configuration — only certain memory sections had been changed, not the full OD.
Fix
Full OD restore via rmbootloader(nnp) → “Restore OD Defaults” (not a partial/section reset). Restores the channel scheduling delay to its default [20, 21, 22, 23] ms, giving each channel adequate margin within the shorter 33 Hz cycle.
Result
Post-reset, 33 Hz stimulation and above succeeded. When repurposing a device, completing a reset of the object dictionary is necessary for expecting default functioning. This PG4 was determined to have been in a system with 5 PG4 devices and each of the 20 channels separated by 1 ms in the output schedule.
Relevant Script Excerpt
%% CHECK SETTINGS
nnp.networkOn; %power up remote modules
% Check stim channel scheduling
scheduling = nnp.read(pg4node,'2800',1) % expect [20 21 22 23] ms
% Check stim discharge scheduling
discharge = nnp.read(pg4node, '2800', 6); % expect 5 ms
% Check compliance voltage
VOC1 = nnp.read(pg4node, '3210', 3, 'uint16');
VOC2 = nnp.read(pg4node, '3210', 4, 'uint16');
% Check network voltage
VNET = nnp.getVNET;
%% CHECK STIM COMPLIANCE
% setup stim mode
nnp.enterWaiting;
nnp.setSync(50);
nnp.enterTestStim;
% turn stimulation on 3212.ch
nnp.write(pg4node,'3212', pg4ch, [50,200]);
% device is now trying to stimulate every period.
% read if stimulation was in compliance 3210.5
compliance = nnp.read(pg4node, '3210', 5); % returns array of flags in order [ch1, ch2, ch3, ch4]
%% RESET SETTINGS
% Reset to full defaults, then restore intended non-default settings
rmbootloader(nnp) % scan, select node, "Restore OD Defaults"