Add resistor/capacitor/SMD value calculator with component image generation#1435
Open
Sebbeben wants to merge 1 commit into
Open
Add resistor/capacitor/SMD value calculator with component image generation#1435Sebbeben wants to merge 1 commit into
Sebbeben wants to merge 1 commit into
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #1435 +/- ##
============================================
+ Coverage 58.50% 59.11% +0.61%
- Complexity 8713 8946 +233
============================================
Files 640 642 +2
Lines 28197 28762 +565
============================================
+ Hits 16496 17003 +507
- Misses 11701 11759 +58 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Sebbeben
force-pushed
the
claude/partdb-resistor-capacitor-icons
branch
4 times, most recently
from
July 5, 2026 04:07
27e99c8 to
9ebf399
Compare
Sebbeben
force-pushed
the
claude/partdb-resistor-capacitor-icons
branch
from
July 20, 2026 20:16
9ebf399 to
af9c923
Compare
Adds a "Value calculator" tool (Tools menu) that decodes/encodes the value of common components and generates a clean SVG picture you can attach to a part — handy for assortments imported with blank thumbnails and sparse data. Calculator tabs (bidirectional decode <-> encode), each drawing the part to the selected package with a collapsible appearance panel and an "attach to part" action (optionally as the master picture): - Resistor: 4/5/6-band colour code - Capacitor: value <-> 3-digit code <-> tolerance - SMD resistor: value <-> 3-digit / 4-digit / EIA-96 code - Inductor: colour-band code - SMD inductor: value <-> uH code Bulk "Generate component images" parts-table action: - Classifies each selected part (resistor / capacitor / inductor / diode / LED, THT or SMD) with ComponentValueGuesser and detects value, voltage, tolerance, power, ppm, pitch, diameter, colour, SMD package and marking from the name, description and parameters. - Renders a preview per part, lets you tweak appearance, and attaches the images in one go; can also write matching KiCad symbol/footprint/reference-prefix EDA fields. Backend: ComponentValueGuesser (classification + detection + EDA suggestion), GeneratedImageAttachmentHelper (stores the SVG through the existing attachment pipeline, so it is sanitised on save), two POST endpoints on PartController (generate_image, set_eda) guarded by `edit` + CSRF, a new `@tools.value_calculator` permission, a Tools-tree entry and docs. All drawing is client-side in a Stimulus controller; the un-sanitised live preview escapes part-derived text and validates colours as defence-in-depth. Tests: unit tests for ComponentValueGuesser and functional tests for the endpoints, including permission and CSRF enforcement and the persisted side effects.
Sebbeben
force-pushed
the
claude/partdb-resistor-capacitor-icons
branch
from
July 21, 2026 05:26
af9c923 to
0ec45ac
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Component value calculator & image generator
Adds a Value calculator tool (Tools menu) that decodes/encodes the value of common components and generates a clean SVG picture you can attach to a part — handy for assortments (e.g. AliExpress kits) imported with blank thumbnails and sparse data.
Calculator tabs
Each tab is a bidirectional decoder/encoder, draws the part to the selected package with a collapsible "appearance" panel, and can attach the rendered image (optionally as the master picture):
Bulk "Generate component images" (parts-table action)
ComponentValueGuesserand detects value, voltage, tolerance, power, ppm, pitch, diameter, colour, SMD package and marking from the name, description and parameters.Implementation
ComponentValueGuesser— classification + detection + EDA suggestion.GeneratedImageAttachmentHelper— stores the SVG through the existing attachment pipeline, so every generated image is run through the SVG sanitizer on save.POSTendpoints onPartController(generate_image,set_eda) guarded byedit+ CSRF.@tools.value_calculatorpermission, a Tools-tree entry, and docs.Tests
Unit tests for
ComponentValueGuesserand functional tests for the endpoints, including permission/CSRF enforcement and the persisted side effects.Open question for review
The tool is currently called a "calculator", but roughly half its value is image generation for real parts, and some tabs are really decoders/converters. Happy to rename or restructure (e.g. "Component value & image tool", or split "Decoder" vs "Image generator") — whatever fits Part-DB best.
Screenshots to follow.