Commit Graph

139 Commits (d170b4f7ea0a88e18d502965bcb44ed9e964bfa1)

Author SHA1 Message Date
David Montero Crespo d170b4f7ea Add generate_examples.py script and update subproject commits
- Introduced a new script `generate_examples.py` to catalog board and sensor combinations, generating TypeScript example stubs for the frontend.
- Updated subproject commit references for `qemu-lcgamboa`, `rp2040js`, and `wokwi-elements` to indicate they are in a dirty state.
2026-03-19 01:12:29 -03:00
David Montero Crespo 765a3ff711 feat: remove RiscVBoard references and related code from various components 2026-03-18 23:33:20 -03:00
David Montero Crespo 7053b6f2c8 feat: update ESP32-C3 simulator and add emulation tests
- Updated components-metadata.json with new generated timestamp.
- Refactored Esp32C3Simulator.ts to remove unnecessary debug variables and logging, and added support for additional ROM functions.
- Modified useSimulatorStore.ts to clarify bridge usage for ESP32 boards.
- Updated submodules for QEMU and other libraries to indicate dirty state.
- Added test_esp32c3_emulation.py for end-to-end testing of ESP32-C3 emulation, including compilation, flash image merging, and GPIO event checking.
2026-03-18 23:30:45 -03:00
David Montero Crespo 372e0f1d00 feat: update ESP32-C3 wiring and enhance ROM function emulation with detailed logging 2026-03-17 23:06:36 -03:00
David Montero Crespo 0e7ef38104 chore: clean up empty code change sections in the changes log 2026-03-17 22:12:01 -03:00
David Montero Crespo dcea546e45 feat: add SPI flash and EXTMEM controller stubs, implement echo-back for peripheral register writes 2026-03-17 22:11:52 -03:00
David Montero Crespo 507fa0671c feat: enhance ESP32-C3 simulator with ROM stubs, timer group handling, and diagnostic logging 2026-03-17 16:46:44 -03:00
David Montero Crespo 220346f220 feat: enhance ESP32 emulation with SYSTIMER and interrupt handling, update GPIO pin mapping for power/GND 2026-03-17 10:08:06 -03:00
David Montero Crespo fdbc37b69b feat: enhance WebSocket error handling and cleanup logic in simulation and ESP32 libraries 2026-03-17 02:28:08 -03:00
David Montero Crespo f5323aa557 feat: enhance AVRSimulator for ATmega2560 support with updated interrupt configurations 2026-03-16 23:08:51 -03:00
David Montero Crespo c19a6cb848 feat: update PWM handling in SimulatorCanvas and enhance I2C Scanner example with SSD1306 OLED integration 2026-03-16 22:15:52 -03:00
David Montero Crespo d35ad2d2f7 Refactor code structure for improved readability and maintainability 2026-03-16 18:31:46 -03:00
David Montero Crespo 16164372cf feat: replace code snippets with CodeBlock component for improved formatting in documentation 2026-03-16 14:44:06 -03:00
David Montero Crespo e8006594d3 feat: import CodeBlock component in DocsPage for enhanced documentation 2026-03-16 14:39:54 -03:00
David Montero Crespo 975d004821 feat: add CodeBlock component with syntax highlighting and update dependencies 2026-03-16 14:39:49 -03:00
David Montero Crespo e24ab79ffe feat: add board gallery and supported boards sections to documentation 2026-03-16 14:39:18 -03:00
David Montero Crespo eb4b691f2d feat: add RP2040 and Raspberry Pi 3 emulation sections to documentation 2026-03-16 14:37:08 -03:00
David Montero Crespo 8c1c0e105d Refactor code structure for improved readability and maintainability 2026-03-16 14:28:16 -03:00
David Montero Crespo 2b19181c2b Refactor code structure for improved readability and maintainability 2026-03-16 14:22:23 -03:00
David Montero Crespo 20ccd87d1b feat: enhance ESP32 emulation with GPIO mapping and ADC support 2026-03-16 13:11:59 -03:00
David Montero Crespo bc31ee76c1 feat: enhance oscilloscope and simulator functionality
- Added `onPinStateChange` method to `ChipParts` for handling pin state changes in 7-segment displays.
- Updated `useOscilloscopeStore` to allow independent monitoring of multiple boards by adding `boardId` to channels and modifying `addChannel` method.
- Modified `getOscilloscopeCallback` in `useSimulatorStore` to filter channels based on `boardId` and pin number.
- Adjusted component and board position calculations in `useSimulatorStore` to account for wrapper offsets.
- Updated submodule references for `qemu-lcgamboa`, `rp2040js`, and `wokwi-elements` to indicate dirty states.
2026-03-16 10:31:02 -03:00
David Montero Crespo 5e6c5d451b feat: enhance oscilloscope dropdown and multi-board picker styles 2026-03-16 10:30:51 -03:00
David Montero Crespo b98bf715f0 Add UserProfilePage styles for layout and design 2026-03-16 00:12:33 -03:00
David Montero Crespo 5311a01103 Refactor code structure for improved readability and maintainability 2026-03-15 23:15:38 -03:00
David Montero Crespo 5439dcf65f feat: add RISC-V emulation documentation and update ESP32 emulation section 2026-03-15 23:15:31 -03:00
David Montero Crespo 74e7ec58c1 Add bare-metal ESP32-C3 blink example with simulator support
- Implemented a simple LED blink program in C for the ESP32-C3, targeting RV32IMC architecture.
- Created a linker script to define memory layout for the ESP32-C3.
- Added build script to compile the blink program using the riscv32-esp-elf-gcc toolchain.
- Developed Esp32C3Simulator to emulate ESP32-C3 behavior in the browser, including GPIO and UART functionality.
- Implemented utility functions to parse ESP32 flash images and handle loading of binary data.
- Included disassembly output for debugging purposes.
- Added necessary test fixtures for the blink example.
2026-03-15 18:40:08 -03:00
David Montero Crespo 7ab0f132a3 feat: add visual components for ATtiny85, Raspberry Pi Pico W, and RISC-V Board
- Implemented ATtiny85 visual component with DIP-8 layout and built-in LED.
- Added Raspberry Pi Pico W web component using official SVG and pin mapping.
- Created RISC-V Board visual component with SOP-20 style and built-in LED.
- Introduced RiscVCore class for minimal RV32I ISA interpreter with memory model.
- Developed RiscVSimulator class for CH32V003-compatible simulator with UART and GPIO support.
- Updated subproject commits for qemu-lcgamboa, rp2040js, and wokwi-elements to dirty state.
2026-03-15 15:39:26 -03:00
David Montero Crespo c69094e7d7 feat: Implement Virtual File System for Raspberry Pi 3 with context menu and upload functionality
- Add VirtualFileSystem component for managing files and directories.
- Integrate useVfsStore for state management of the virtual file system.
- Implement context menu for file operations: New File, New Folder, Rename, Delete.
- Add upload functionality to send files to Raspberry Pi.
- Create default file structure for new Raspberry Pi boards.
- Enhance editor with board-aware features and compile/run orchestration.
- Introduce CompileAllProgress component for tracking compilation status across boards.
- Redesign SerialMonitor to support multiple boards with tabbed interface.
- Establish Raspberry Pi specific workspace with terminal and file system integration.
2026-03-15 14:04:01 -03:00
David Montero Crespo de60d339c9 feat: increase zIndex for WireLayer to improve overlay visibility 2026-03-14 23:13:52 -03:00
David Montero Crespo 00b0893186 feat: update zIndex for PinOverlay and mark subproject commits as dirty 2026-03-14 23:09:36 -03:00
David Montero Crespo fe89d06787 feat: implement segment dragging functionality in simulator canvas 2026-03-14 23:09:32 -03:00
David Montero Crespo 405ff1f017 Refactor wire management and rendering logic
- Updated wire structure to replace control points with waypoints for better handling of wire paths.
- Introduced new utility functions for wire hit detection and rendering segments.
- Enhanced wire creation process to support dynamic waypoints and color assignment.
- Implemented a new ESP32 worker for improved simulation handling.
- Added utility functions for generating orthogonal paths and auto-coloring wires based on pin names.
- Improved compatibility with existing projects by ensuring backward compatibility with wire data structures.
2026-03-14 22:55:13 -03:00
David Montero Crespo b0b3a8763d V1 feat: Enhance ESP32 emulation support and logging
- Added detailed logging for GPIO changes, system events, and errors in simulation websocket.
- Improved ESP32 firmware handling by merging individual binaries into a single 4MB flash image.
- Updated ESP32 bridge to handle serial output and GPIO changes with appropriate logging.
- Introduced integration test for ESP32 emulation, covering compilation, WebSocket connection, and event handling.
- Enhanced examples to include ESP32 projects and updated the examples gallery to reflect new board types.
- Refactored simulator store to manage ESP32 bridge and simulator instances more effectively.
- Updated requirements to include esptool for ESP32 firmware management.
2026-03-14 16:57:22 -03:00
David Montero Crespo 67256e7b18 chore: remove one-off build troubleshooting scripts
Keep only build_qemu_step4.sh (the DLL relink step used in production).
Deleted: build_qemu_dll.sh, build_qemu_step3.sh, check_tools.sh,
fix_distlib.sh, fix_distlib2.sh, install_git.sh, install_meson.sh
(all were used once during initial DLL compilation setup)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-14 12:34:07 -03:00
David Montero Crespo 4a7c9e2e55 feat: enhance ESP32 emulation with GPIO pinmap and improved QEMU initialization handling 2026-03-14 12:05:35 -03:00
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