velxio/frontend/src/components/simulator
David Montero Crespo b42f815b49 feat(components): swap BMP280 + ATtiny85 to fritzing art
The hand-drawn SVGs in Bmp280Element.ts and Attiny85Element.ts were
functional but obviously amateur next to a real Fritzing-drawn part.
Both components now mount the equivalent Fritzing breadboard SVG as a
public static asset (`<image href>` in the shadow DOM SVG), with pin
coordinates remapped to the new artwork and pin-name labels overlaid
on top so the user can still read each connector at a glance.

frontend/public/component-svgs/bmp280.svg (new)
  Verbatim copy of third-party/fritzing-parts/svg/core/breadboard/
  bmp180_breadboard.svg. The Adafruit BMP180 breakout is the
  mechanically identical Bosch predecessor — same I2C interface,
  same 4-pin pinout. Pin labels lifted from the matching .fzp.

frontend/public/component-svgs/attiny85.svg (new)
  Verbatim copy of the Fritzing ATtiny85 DIP-8 breadboard art.

Bmp280Element.ts
  Width 80×100 px (Fritzing aspect 28.35:35.43 ≈ 0.8:1, exact uniform
  scale of 2.822 px/mm). Pin coords for SDA / SCL / GND / VCC matched
  to the connector centres in the source SVG. Pin labels overlaid on
  top. Existing wired example (esp32-bmp280) re-routes automatically
  because the wire system reads coords by pin name from pinInfo.

Attiny85Element.ts
  Width 160×132 px (Fritzing aspect 28.801:23.768 ≈ 1.21:1, exact
  uniform scale of 5.555 px/mm). The Fritzing layout puts pins on the
  TOP and BOTTOM edges (4 each), not LEFT and RIGHT like the older
  hand-drawn version. Pin coords land on clean numbers
  (x ∈ {20, 60, 100, 140}, y ∈ {6, 126}). Built-in LED on PB1 stays
  as an overlaid circle outside the chip body.
  Wires in the existing attiny85-* examples re-route automatically by
  pin name; external components positioned to the right of the chip
  may need a manual nudge for clean routing — but they work.

frontend/src/components/simulator/BoardOnCanvas.tsx
  attiny85: { w: 160, h: 100 } → { w: 160, h: 132 } to match the new
  aspect ratio. Same width as before so the chip occupies the same
  horizontal slot in existing example layouts.

scripts/component-overrides.json
  BMP280 thumbnail updated to mirror the Fritzing colour scheme
  (dark blue PCB, BMP180 silkscreen, four gold connector circles)
  so picker and canvas feel consistent.

frontend/public/components-metadata.json
  Regenerated.

docs/THIRD_PARTY.md
  New "Fritzing parts library" section. Both new assets are listed
  with their upstream paths plus the CC-BY-SA licence and link to
  the parts repo. Future Fritzing copies must be added there too.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 23:06:44 -03:00
..
BoardOnCanvas.tsx feat(components): swap BMP280 + ATtiny85 to fritzing art 2026-05-08 23:06:44 -03:00
BoardPickerModal.tsx refactor: rename components and update prefixes to 'velxio-' for consistency 2026-04-21 16:45:45 -03:00
CameraToggle.tsx feat(webcam): universal compatibility — any webcam on any PC 2026-05-03 00:48:24 -03:00
ComponentPalette.css feat: Implement Arduino Simulator with component management and simulation features 2026-03-03 00:20:49 -03:00
ComponentPalette.tsx feat: update architecture documentation and improve component property dialog 2026-03-03 20:42:17 -03:00
ComponentPropertyDialog.css feat(canvas): inline two-step delete confirm in ComponentPropertyDialog 2026-05-08 12:25:13 -03:00
ComponentPropertyDialog.tsx feat(canvas): inline two-step delete confirm in ComponentPropertyDialog 2026-05-08 12:25:13 -03:00
InstallLibrariesModal.css refactor: rename components and update prefixes to 'velxio-' for consistency 2026-04-21 16:45:45 -03:00
InstallLibrariesModal.tsx feat: Add library version management and uninstall functionality 2026-05-02 12:54:09 +05:30
LibraryManagerModal.css refactor: rename components and update prefixes to 'velxio-' for consistency 2026-04-21 16:45:45 -03:00
LibraryManagerModal.tsx feat: Add library version management and uninstall functionality 2026-05-02 12:54:09 +05:30
Oscilloscope.css refactor: rename components and update prefixes to 'velxio-' for consistency 2026-04-21 16:45:45 -03:00
Oscilloscope.tsx style: update ESLint rules and clean up code formatting across multiple files 2026-04-21 17:14:27 -03:00
PinOverlay.tsx feat: add touch-friendly components for improved mobile usability 2026-05-08 11:12:26 -03:00
PinPickerDialog.tsx feat: add touch-friendly components for improved mobile usability 2026-05-08 11:12:26 -03:00
SelectionActionBar.tsx feat: add touch-friendly components for improved mobile usability 2026-05-08 11:12:26 -03:00
SensorControlPanel.css refactor: rename components and update prefixes to 'velxio-' for consistency 2026-04-21 16:45:45 -03:00
SensorControlPanel.tsx refactor: rename components and update prefixes to 'velxio-' for consistency 2026-04-21 16:45:45 -03:00
SerialMonitor.tsx fix(serial-monitor): strip ANSI escape sequences from board output 2026-05-08 16:32:59 -03:00
SimulatorCanvas.css feat(canvas): keyboard shortcuts + toolbar undo/redo buttons 2026-05-08 12:11:53 -03:00
SimulatorCanvas.tsx fix(canvas): use lucide-react Undo2/Redo2 for the toolbar icons 2026-05-08 12:19:50 -03:00
WireInProgressRenderer.tsx refactor: rename components and update prefixes to 'velxio-' for consistency 2026-04-21 16:45:45 -03:00
WireLayer.tsx feat: add touch-friendly components for improved mobile usability 2026-05-08 11:12:26 -03:00
WireModeBanner.tsx feat: add touch-friendly components for improved mobile usability 2026-05-08 11:12:26 -03:00
WireRenderer.tsx refactor: rename components and update prefixes to 'velxio-' for consistency 2026-04-21 16:45:45 -03:00