Commit Graph

104 Commits (c9571900617de806bc2d9fa80f9e181395d0134e)

Author SHA1 Message Date
David Montero Crespo dc03c28fff feat: Enhance ESP32 support in simulator and QEMU management 2026-03-13 22:55:37 -03:00
David Montero Crespo c3df484b4f feat: Implement ESP32 emulation via QEMU and multi-board support for Raspberry Pi and Arduino
- Added ESP32 emulation plan and architecture documentation.
- Created `esp_qemu_manager.py` for managing ESP32 QEMU instances.
- Modified backend API routes to support ESP32 firmware loading and GPIO handling.
- Introduced `Esp32Bridge.ts` for frontend communication with ESP32 instances.
- Refactored simulator store to support multiple boards, including Raspberry Pi and Arduino.
- Created `RaspberryPi3Bridge.ts` for WebSocket communication between frontend and backend for Raspberry Pi.
- Updated QEMU manager to handle multiple serial ports for Raspberry Pi GPIO communication.
- Enhanced SimulatorCanvas to render multiple boards and manage wire routing between them.
- Implemented board picker modal for selecting and adding boards to the canvas.
- Updated editor to support multiple file groups per board.
- Added migration logic for loading old project formats into the new multi-board structure.
- Ensured backward compatibility with existing components and functionality.
2026-03-13 20:35:48 -03:00
David Montero Crespo cc3030200c feat: add multi-board integration tests for Raspberry Pi 3B and backend functionality 2026-03-13 00:15:14 -03:00
David Montero Crespo 17b1a0f058 feat: add board types and mappings for Raspberry Pi 3B
- Introduced new BoardKind types for Raspberry Pi 3B and updated BoardInstance interface.
- Added BOARD_KIND_LABELS and BOARD_KIND_FQBN mappings for new board types.
- Implemented physical to BCM GPIO mapping for Raspberry Pi 3B in boardPinMapping utility.
- Updated BOARD_COMPONENT_IDS to include Raspberry Pi 3B.
- Enhanced isBoardComponent function to support new board type.
- Modified boardPinToNumber function to handle pin mapping for Raspberry Pi 3B.
2026-03-12 23:39:04 -03:00
David Montero Crespo b89f85e5f7 Merge branch 'feat/raspberryPi_emuation' of https://github.com/davidmonterocrespo24/wokwi_clon into feat/raspberryPi_emuation 2026-03-12 08:26:56 -03:00
David Montero Crespo 13997ff491 feat: add documentation page and Arduino serial integration test
- Created a new DocsPage component for project documentation with links to GitHub and Discord.
- Added Arduino sketch for serial communication test between Raspberry Pi and Arduino.
- Implemented avr_runner.js to emulate ATmega328P and bridge serial communication over TCP.
- Developed a Python test script to validate the serial integration between the emulated Raspberry Pi and Arduino.
2026-03-12 08:17:29 -03:00
David Montero Crespo b63a068307 feat: integrate Wokwi elements for Arduino boards in LandingPage 2026-03-12 02:34:56 -03:00
David Montero Crespo 05e3c54f18
Merge branch 'master' into feat/raspberryPi_emuation 2026-03-12 02:14:15 -03:00
David Montero Crespo f678c19318 feat: add Discord community link to README and navigation 2026-03-12 02:12:36 -03:00
copilot-swe-agent[bot] 2a92888a0c fix: add missing const SECTION_MAP declaration in DocsPage.tsx
Co-authored-by: davidmonterocrespo24 <47928504+davidmonterocrespo24@users.noreply.github.com>
2026-03-11 19:15:05 +00:00
copilot-swe-agent[bot] 71a5bf1ae2 Add ARCHITECTURE, MCP, SETUP, WOKWI_LIBS as in-app documentation sections with SEO metadata
Co-authored-by: davidmonterocrespo24 <47928504+davidmonterocrespo24@users.noreply.github.com>
2026-03-11 19:05:01 +00:00
copilot-swe-agent[bot] c00f094d6b Fix nginx /docs routing conflict, move FastAPI Swagger to /api/docs, complete SEO meta tags
Co-authored-by: davidmonterocrespo24 <47928504+davidmonterocrespo24@users.noreply.github.com>
2026-03-11 18:55:18 +00:00
copilot-swe-agent[bot] b8bdaf4c65 Translate Spanish docs to English and add SEO-optimised URL routing for documentation
Co-authored-by: davidmonterocrespo24 <47928504+davidmonterocrespo24@users.noreply.github.com>
2026-03-11 18:46:42 +00:00
copilot-swe-agent[bot] d5e981bcf1 Add system pages (Editor, Home, Examples) to documentation menu
Co-authored-by: davidmonterocrespo24 <47928504+davidmonterocrespo24@users.noreply.github.com>
2026-03-11 18:26:14 +00:00
copilot-swe-agent[bot] 4de28c25a2 Merge doc/ into docs/ — eliminate duplicate documentation folders
- Move ARCHITECTURE.md, MCP.md, SETUP_COMPLETE.md, WOKWI_LIBS.md, examples/, img1-4.png from doc/ to docs/
- Delete doc/ directory
- Update README.md: doc/img*.png -> docs/img*.png
- Update CLAUDE.md: doc/ARCHITECTURE.md -> docs/ARCHITECTURE.md
- Update frontend/README.md: ../doc/ -> ../docs/
- Update scripts/generate-example-screenshots.md: doc/examples/ -> docs/examples/
- Update docs/SETUP_COMPLETE.md internal self-references

Co-authored-by: davidmonterocrespo24 <47928504+davidmonterocrespo24@users.noreply.github.com>
2026-03-11 17:03:51 +00:00
copilot-swe-agent[bot] d711fe49b1 Create documentation page accessible at /docs
- Add docs/ folder with intro, getting-started, emulator, components, roadmap markdown files
- Add DocsPage.tsx with sidebar navigation, section content, pagination
- Add DocsPage.css matching existing dark theme
- Register /docs route in App.tsx
- Add /docs to sitemap.xml

Co-authored-by: davidmonterocrespo24 <47928504+davidmonterocrespo24@users.noreply.github.com>
2026-03-11 15:56:06 +00:00
copilot-swe-agent[bot] d549338ffd Fix PWM test failures and skip arduino-cli e2e tests when not available
Co-authored-by: davidmonterocrespo24 <47928504+davidmonterocrespo24@users.noreply.github.com>
2026-03-11 15:34:46 +00:00
David Montero Crespo d0d792df4a
Merge pull request #15 from davidmonterocrespo24/copilot/add-oscilloscope-logic-analyzer
feat: Built-in oscilloscope / logic analyzer for pin waveform visualization
2026-03-11 12:22:49 -03:00
copilot-swe-agent[bot] 4de45ecb0a feat: add VirtualBMP280, VirtualDS3231, VirtualPCF8574 I2C devices with 60 tests
Co-authored-by: davidmonterocrespo24 <47928504+davidmonterocrespo24@users.noreply.github.com>
2026-03-11 15:14:18 +00:00
copilot-swe-agent[bot] a06ea17f99 refactor: address code review feedback on oscilloscope
- Improve ring buffer efficiency: one array copy instead of two (slice+shift+push vs slice+spread)
- Fix extra whitespace in canvas dimension assignments
- Add explanatory comments for eslint-disable-next-line react-hooks/exhaustive-deps

Co-authored-by: davidmonterocrespo24 <47928504+davidmonterocrespo24@users.noreply.github.com>
2026-03-11 15:13:17 +00:00
copilot-swe-agent[bot] ad0656b1cc feat: add built-in oscilloscope / logic analyzer panel
- Add useOscilloscopeStore with ring-buffer sample storage and channel management
- Add onPinChangeWithTime callback to AVRSimulator (fires on every bit transition with cycle-derived timestamp)
- Add onPinChangeWithTime callback to RP2040Simulator (fires on GPIO state change)
- Wire oscilloscope callbacks in useSimulatorStore (initSimulator + setBoardType)
- Create Oscilloscope React component with canvas-based waveform rendering
- Add oscilloscope panel to EditorPage (resizable bottom panel, same as SerialMonitor)
- Add 'Scope' toggle button to SimulatorCanvas toolbar

Co-authored-by: davidmonterocrespo24 <47928504+davidmonterocrespo24@users.noreply.github.com>
2026-03-11 15:09:24 +00:00
copilot-swe-agent[bot] ad67e88320 feat: add mobile touch support to simulator canvas
- Single-finger pan on empty canvas background
- Single-finger drag for components and board
- Two-finger pinch-to-zoom centered on pinch midpoint
- Tap to open property dialog / deselect on mobile
- Add touch-action: none CSS to prevent browser scroll conflicts
- Add data-board-overlay attribute for touch target detection

Co-authored-by: davidmonterocrespo24 <47928504+davidmonterocrespo24@users.noreply.github.com>
2026-03-11 02:38:15 +00:00
David Montero Crespo 8b582f966b
Merge pull request #10 from davidmonterocrespo24/copilot/fix-mobile-layout-issues
feat: mobile-responsive editor layout with Code/Circuit panel switcher
2026-03-10 18:03:50 -03:00
David Montero Crespo 02c69c23f6 feat: add ESP32 emulator with QEMU WebAssembly integration and basic GPIO functionality tests 2026-03-10 18:01:05 -03:00
copilot-swe-agent[bot] 34ee9f8e0e Add mobile responsive layout with Code/Circuit tab switcher
Co-authored-by: davidmonterocrespo24 <47928504+davidmonterocrespo24@users.noreply.github.com>
2026-03-10 16:09:32 +00:00
David Montero Crespo 3fe71b57af feat: enhance library installation to support Wokwi-hosted libraries and update tests accordingly 2026-03-10 01:25:49 -03:00
David Montero Crespo 6bd2f39b8e feat: add unit and integration tests for automatic library installation feature 2026-03-09 13:32:17 -03:00
David Montero Crespo 3afdc0de9e feat: add library list parser to handle libraries.txt content 2026-03-09 13:32:04 -03:00
David Montero Crespo 02774b383f feat: add Install Libraries modal for managing library installations 2026-03-09 12:53:24 -03:00
David Montero Crespo ccab31d301 feat: add Arduino Mega 2560 support with GPIO test sketch and emulator tests 2026-03-09 10:56:08 -03:00
David Montero Crespo 1018609ed4 feat: add Arduino Mega support to simulator
- Introduced ArduinoMega component for rendering in the simulator.
- Updated SimulatorCanvas to handle Arduino Mega board type.
- Enhanced AVRSimulator to support ATmega2560 architecture, including PWM pin mapping and port management.
- Modified PinManager to accommodate Mega's non-linear pin mapping.
- Updated boardPinMapping utility to include Mega analog pins.
- Adjusted Wokwi import/export functionality to recognize and handle Arduino Mega.
- Updated useSimulatorStore to initialize AVRSimulator with the correct board variant.
2026-03-09 10:08:14 -03:00
David Montero Crespo faa6f6b7b3 feat: add ILI9341 Cap Touch display and related components; implement home screen and example sketches 2026-03-09 02:31:04 -03:00
David Montero Crespo c22a8aff14 feat: add end-to-end test for pong emulation with AVRSimulator 2026-03-09 00:44:21 -03:00
David Montero Crespo 6a10675a5a feat: implement syncElement method for rendering GDDRAM to RGBA ImageData in VirtualSSD1306
test: add tests for SSD1306 rendering path and syncElement functionality
2026-03-08 23:20:33 -03:00
David Montero Crespo a07d219a7d fix: allow wires to render outside the SVG viewport for better visibility 2026-03-08 18:48:48 -03:00
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 7f27f239dc feat: add GitHub link with icon to AppHeader component 2026-03-08 16:31:53 -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 66b4fa6030 feat: add new components and simulations for logic gates, protocols, and sensors
- Added LogicGateParts.ts for simulating various logic gates (AND, NAND, OR, NOR, XOR, NOT).
- Introduced ProtocolParts.ts for simulating I2C and SPI components including SSD1306 OLED, DS1307 RTC, MPU6050 IMU, DHT22 sensor, HX711 load cell, IR receiver, IR remote, and MicroSD card.
- Implemented BasicParts.ts with a membrane keypad and rotary dialer simulations.
- Enhanced SensorParts.ts with a single NeoPixel and PIR motion sensor.
- Updated index.ts to include new parts for logic gates and protocols.
- Modified vite-env.d.ts to declare new custom elements for the added components.
2026-03-08 16:14:03 -03:00
David Montero Crespo c0164b704b feat: format default values for consistency and remove unused sensor components 2026-03-08 02:21:54 -03:00
David Montero Crespo 2aa7607428 feat: add sensor parts and utilities for simulation
- Introduced new SensorParts.ts to handle various sensors including tilt switch, temperature sensor, gas sensor, flame sensor, heart beat sensor, and sound sensors.
- Implemented stepper motor simulation with full-step decoding.
- Added utility functions for ADC voltage injection in partUtils.ts, supporting both AVR and RP2040.
- Updated BasicParts.ts to avoid re-registering the 7-segment display.
- Enhanced ComplexParts.ts by removing unused ADC helper functions.
- Updated index.ts to include the new SensorParts module.
- Updated Vite environment definitions to include new custom elements for sensors and stepper motors.
2026-03-08 02:20:21 -03:00
David Montero Crespo 318305bac4 feat: Add 74HC595 Shift Register component and simulation logic 2026-03-07 23:24:23 -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 b72846c969 feat: Update .gitignore to include data directory and remove example sketch.ino 2026-03-07 19:31:16 -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 5f2c176648 Merge branch 'master' of https://github.com/davidmonterocrespo24/wokwi_clon 2026-03-07 18:27:03 -03:00
David Montero Crespo eb3ba0c60b feat: Adjust component positioning by applying ARDUINO_POSITION offset during export and import of Wokwi zip files 2026-03-07 18:26:47 -03:00
davidmonterocrespo24 9da181a454 Merge branch 'master' of https://github.com/davidmonterocrespo24/velxio 2026-03-07 21:57:54 +01:00
David Montero Crespo 47e6d2b804 feat: Prevent body scroll on the editor page to enhance user experience 2026-03-07 17:54:51 -03:00
root 60e737c2d4 fix: add trailing slash to compile endpoint to avoid HTTP redirect 2026-03-07 18:18:19 +01:00