-
Notifications
You must be signed in to change notification settings - Fork 12
SMU v3.1 #397
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR introduces SMU v3.1, a major revision of the Source Measure Unit (SMU) design with significant improvements to reliability, stability, and noise floor. The changes include substantial refactoring of core analog circuit blocks, addition of new protection mechanisms, and extensive library enhancements to support the new design.
Key Changes:
- Refactored error amplifier to gated summing amplifier with improved gating control
- Enhanced emitter follower with independent gate control for high/low sides
- Added JFET current clamp protection circuit
- Migrated pass FETs to TO-220 package for better thermal management
- Added new power management and sensing capabilities
Reviewed changes
Copilot reviewed 52 out of 60 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| SourceMeasureRangingCell.kicad_sch | Removed - schematic deleted as part of refactoring |
| SourceMeasureControl.kicad_sch | Removed - schematic deleted as part of refactoring |
| ErrorAmplifier.kicad_sch | Removed - replaced by gated summing amplifier |
| EmitterFollower.kicad_sch | Removed - redesigned with new gate control |
| jlcpcb_pcba_postprocess.py | Updated component rotation corrections and removed SMD e-cap listings |
| RotaryEncoder_Bourns_PEC11S.kicad_mod | Updated footprint format to KiCad 8.0 with improved courtyards |
| RotaryEncoder_Alps_EC11J15-Switch.kicad_mod | Updated footprint format to KiCad 8.0 with improved courtyards |
| JfetProtect.asc | Added new LTSpice simulation for JFET protection circuit |
| Multimeter.svgpcb.js | Added ADC mclkin net to netlist |
| StepperDriver_A4988.py | Removed incorrect BrushedMotorDriver inheritance |
| JlcDiode.py | Expanded diode package footprint mappings |
Comments suppressed due to low confidence (1)
examples/jlcpcb_pcba_postprocess.py:1
- Corrected spelling of 'inconsistent' - the word appears twice in the comment.
import argparse
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| 'C3663690': 180, # TMP1075N | ||
| 'C70285': 180, # SN74LVC1G74DCUR | ||
| 'C2651906': 0, # DG468 | ||
| 'C2651906': -90, # DG468 |
Copilot
AI
Nov 27, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The rotation for 'C2651906' (DG468) was changed from 0 to -90 degrees. Ensure this rotation change is validated against the actual PCB layout and component orientation to prevent assembly errors.
| 'C2651906': -90, # DG468 | |
| 'C2651906': -90, # DG468 -- TODO: Validate this rotation (-90) against the actual PCB layout and component orientation to prevent assembly errors. |
| ) | ||
| self.assign(self.lcsc_part, 'C38437') | ||
|
|
||
|
|
Copilot
AI
Nov 27, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The removal of 'BrushedMotorDriver' from the base classes should be accompanied by verification that no code depends on A4988 being a BrushedMotorDriver. If this was incorrectly inherited, consider adding a comment explaining why it was removed.
| # Note: A4988 is a stepper motor driver, not a brushed motor driver. | |
| # It should NOT inherit from BrushedMotorDriver. If inheritance was removed, | |
| # this is intentional to avoid conceptual confusion and incorrect type usage. |
SMUv3.1 and associated infrastructural changes. Major improvements to reliability, stability, and (hopefully) resolution (noise floor). Resolves #351
Changes:
rails, for headroom on analog switches
Libraries added:
Libraries modified:
Fixes to JlcParts:
Core changes: