Skip to content
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

IoT devices mega-panel, more mixin examples #266

Merged
merged 44 commits into from
Jul 7, 2023
Merged

IoT devices mega-panel, more mixin examples #266

merged 44 commits into from
Jul 7, 2023

Conversation

ducky64
Copy link
Collaborator

@ducky64 ducky64 commented Jul 5, 2023

Applications of mixins and 3 PCBs: an IoT knob, IoT CPU fan controller / driver, and IoT power LED driver (buck converter).

Bugfixes

  • Remove USB from ESP32C3 - it was debug only, not programmable (like ESP32S3)

Library changes

  • Refactor RotaryEncoderWithSwitch to use a RotaryEncoderSwitch mixin
  • Add parallel wrapper hierarchy for RotaryEncoder, which delegates mixins appropriately
  • Add Sunlord and TDK inductors - because we didn't really have power inductors before
    • In some older designs, peg their inductors to the prior selection
  • Power and CurrentSense resistors: propagate actual_resistance
  • OpenDrainDriver, which can be used for voltage translation with an external pullup
  • Add voltage and current ratings for PJ-102AH PTH barrel jack
  • PJ-036AH SMD barrel jack
  • VL53L0X: optional xshut, tied high by default
  • SHTC3 temperature/humidity sensor
  • CPU fan connector, both 3-pin and 4-pin variants, with abstract base type and PWM control mixin
  • AL8861 buck LED driver - in the future there might be a LedDriver with PwmControl mixin
  • ESP32C3: hard-tie strap pins to rails to eliminate resistors
    • Changes netlists on prior designs
  • JST PhK: add horiztonal version, add JLC parts
  • EC05E hollow-shaft rotary encoder with footprint
  • Refactor speaker drivers into their own file, add PAM8302A speaker driver (which is what we've been using)
  • Update netlists for above changes

Designs

  • SVG-PCB LED ring generators for all the IoT boards, they're mostly variations of each other

Core logic changes

  • Don't overwrite the default refinement for mixin types
  • When using mixins, take the last default refinement (instead of relying on only the default refinement in the base class)
  • Refactor Parameter compiler task to not keep HasParams which doesn't support equality and usage in a set. (implementation detail only)

@ducky64 ducky64 merged commit 48f5468 into master Jul 7, 2023
9 checks passed
@ducky64 ducky64 deleted the iot-mixins branch July 7, 2023 01:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant