Commit Graph

228 Commits

Author SHA1 Message Date
David Montero Crespo e488bed0df fix: remove clamping on board and component position updates for smoother dragging 2026-03-08 16:35:37 -03:00
David Montero Crespo 1206a34e64 feat: implement auto-pan feature for board visibility after project load and normalize pin names for component connections 2026-03-08 16:30:49 -03:00
David Montero Crespo 41dfd20583 feat: Add Arduino Nano support to simulator and update related components 2026-03-07 23:14:33 -03:00
David Montero Crespo f2b275c03d feat: Enhance board positioning by integrating boardPosition state in export/import functions and updating component dragging logic 2026-03-07 19:29:23 -03:00
David Montero Crespo fef33cc9be feat: Implement interactive wire rendering with segment-based dragging and selection using new `WireRenderer` component and `wireSegments` utilities. 2026-03-07 13:34:42 -03:00
David Montero Crespo 10a1547060 feat: set fixed dimensions for canvas world to enhance layout stability 2026-03-07 02:17:22 -03:00
David Montero Crespo 6316d14c55 feat: set html and body to full height and hide overflow; remove min size from simulator canvas 2026-03-07 02:09:14 -03:00
David Montero Crespo 2744b398e3 feat: add zoom and pan functionality with wheel listener in SimulatorCanvas 2026-03-07 02:08:20 -03:00
David Montero Crespo 3ace72d0f8 feat: implement pan and zoom functionality in simulator canvas 2026-03-07 02:00:56 -03:00
David Montero Crespo c1fc653de2 feat: update component styles and add serial monitor functionality 2026-03-06 10:24:03 -03:00
David Montero Crespo 96131e7451 feat: add wrapper offset props to PinOverlay component for customizable positioning 2026-03-05 21:19:23 -03:00
David Montero Crespo 9b8747349f feat: enhance RP2040 and AVR simulators with serial baud rate handling; update editor toolbar and library manager modal for improved state management and UI 2026-03-05 21:07:10 -03:00
David Montero Crespo 4ba2ccb877 Refactor simulator store to unify serial data handling and add board pin mapping utility
- Simplified serial data handling in `useSimulatorStore` for both AVR and RP2040 simulators.
- Introduced `boardPinMapping.ts` to map wokwi-element pin names to simulator GPIO/pin numbers for Arduino Uno and Nano RP2040.
- Added `compilationLogger.ts` to parse compile results into structured log entries for better console output.
2026-03-05 21:07:03 -03:00
David Montero Crespo 5d175abdcf feat: add Serial Monitor component and integrate with AVR simulator
- Implemented SerialMonitor component to display serial output and allow user input.
- Enhanced AVRSimulator to handle USART communication and transmit serial data.
- Updated useSimulatorStore to manage serial output state and toggle visibility of the Serial Monitor.
- Added example Arduino sketches for serial communication, including Serial Echo and Serial LED Control.
- Introduced I2CBusManager to manage virtual I2C devices and integrated with AVRSimulator.
2026-03-05 06:56:14 -03:00
David Montero Crespo efd4c11e03 feat: add ILI9341 TFT display simulation and enhance component registry loading 2026-03-05 01:52:15 -03:00
David Montero Crespo da47f69cb2 feat: enhance LibraryManagerModal to fetch and display installed libraries dynamically 2026-03-05 01:23:59 -03:00
David Montero Crespo f9dfc2b012 fix: adjust z-index values for DynamicComponent and PinOverlay for improved layering 2026-03-04 23:40:17 -03:00
David Montero Crespo 426c7ab35f feat: establish initial simulator and editor environment with component rendering, wiring, library management, and backend services. 2026-03-04 22:05:23 -03:00
David Montero Crespo 0a8b4fb912 feat: enhance board selector styles for improved usability and appearance 2026-03-04 19:32:19 -03:00
David Montero Crespo 7944ce2de3 feat: add support for RP2040 board, including simulator and compilation enhancements 2026-03-04 19:28:33 -03:00
David Montero Crespo c2f07665b4 feat: add react-router-dom for routing and enhance wire rendering with automatic offsets 2026-03-04 18:03:54 -03:00
David Montero Crespo ef7e86bc1e feat: Enhance simulator with new components and event handling
- Updated components-metadata.json with new generation timestamp.
- Added event handling for button presses and releases in DynamicComponent.
- Improved ExamplesGallery with new styles for placeholders and previews.
- Introduced LCD 20x4 display example with corresponding code and wiring.
- Enhanced SimulatorCanvas to subscribe components to pin changes.
- Implemented PartSimulationRegistry for managing component simulation logic.
- Added basic and complex parts simulation including pushbuttons, LEDs, and LCDs.
- Created utility functions for capturing canvas previews and generating SVG previews for example projects.
2026-03-04 13:36:33 -03:00
David Montero Crespo 85cb535804 feat: enhance wire editing features with dynamic component system and improved rendering 2026-03-03 21:37:19 -03:00
David Montero Crespo a8bb0b6ad9 feat: add interactive wire segment editing and utility functions 2026-03-03 21:14:01 -03:00
David Montero Crespo 217736c7cd feat: update architecture documentation and improve component property dialog 2026-03-03 20:42:17 -03:00
David Montero Crespo 8b1a402caf feat: add component metadata types and generator
- Created a new TypeScript file for component metadata types defining structure for dynamically loaded components.
- Implemented a metadata generator script that scans the wokwi-elements repository to extract component information, including properties and categories.
- Added package.json and package-lock.json for dependency management, including TypeScript and related tools.
- Introduced a new file to log ping statistics for testing purposes.
2026-03-03 19:30:25 -03:00
David Montero Crespo 46bccde953 Add backend and frontend test suites for Arduino compilation and simulation
- Implemented a comprehensive backend test suite in `test_compilation.py` to validate the Arduino CLI installation, AVR core presence, compilation service, and API endpoint functionality.
- Created a frontend test suite in `simulation.test.ts` to test the `PinManager` and `AVRSimulator` components, ensuring proper functionality and integration.
- Introduced new components for wire management in the simulator, including `PinOverlay`, `WireInProgressRenderer`, `WireLayer`, and `WireRenderer`, enhancing the visual wiring system.
- Developed utility functions for pin position calculations and wire color management, ensuring accurate connections and visual representation.
- Added types for wire management in `wire.ts`, defining structures for wire endpoints, control points, and signal types.
2026-03-03 16:44:07 -03:00
David Montero Crespo a8c4f143af feat: Implement Arduino Simulator with component management and simulation features
- Added SimulatorCanvas component for rendering the simulator interface.
- Integrated Wokwi components (Arduino, LED, Resistor, Pushbutton, Potentiometer) into the simulator.
- Created PinManager to handle pin state changes and notifications.
- Developed AVRSimulator class for emulating Arduino Uno functionality.
- Implemented hex file loading and compilation service.
- Added CSS styles for the simulator interface.
- Established Zustand stores for managing editor and simulator states.
- Created utility functions for parsing Intel HEX format.
- Set up Vite configuration for the frontend project.
- Added batch scripts for starting backend and frontend servers, and updating Wokwi libraries.
2026-03-03 00:20:49 -03:00