David Montero Crespo
558525b4b2
test: add firmware loader tests with real compiled binaries
...
Tests for firmwareLoader.ts utility covering:
Unit tests (44 tests):
- Format detection (.hex, .bin, .elf by magic bytes and extension)
- ELF architecture detection (AVR, ARM, RISC-V, Xtensa, big/little endian)
- binaryToIntelHex round-trip through hexParser
- ELF PT_LOAD segment extraction with synthetic and real ELF files
- readFirmwareFile for all formats and board types
Integration tests with arduino-cli compiled firmware:
- AVR: .hex and .elf loaded into AVRSimulator, start/stop verified
- RP2040: .bin and .elf loaded, base64 encoding verified
- ESP32-C3: existing fixture .bin and .elf, RISC-V detection verified
Cross-format compatibility:
- .hex → AVR, .bin → RP2040, architecture mismatch warnings
- File size limit enforcement (16MB max)
All 663 tests pass (25 test files).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 13:01:34 -03:00
David Montero Crespo
4e9bf09e65
feat: load precompiled firmware files (.hex, .bin, .elf) directly
...
Closes #1
Add the ability to upload precompiled firmware files directly into the
emulator, bypassing the built-in compilation step. This enables users
with custom toolchains (ESP-IDF, PlatformIO, ASM workflows) to use
Velxio purely as an emulation/debugging environment.
New features:
- "Upload firmware" option in the overflow menu (accepts .hex, .bin, .elf)
- Automatic format detection from file extension and magic bytes
- ELF parser extracts PT_LOAD segments and detects target architecture
(AVR, ARM, RISC-V, Xtensa) from ELF e_machine header
- Architecture mismatch warnings logged when ELF target differs from
current board (non-blocking — upload proceeds anyway)
- Firmware routed to the correct simulator loader via existing
compileBoardProgram() — no simulator changes needed
Supported formats per board:
- AVR (Uno/Nano/Mega/ATtiny85): .hex (direct), .elf (parsed → HEX)
- RP2040 (Pico): .bin (direct), .elf (parsed → binary)
- ESP32-C3: .bin (direct), .hex, .elf (parsed → binary)
- ESP32/S3 (QEMU): .bin (direct), .elf (parsed → binary)
New file: frontend/src/utils/firmwareLoader.ts
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 02:08:11 -03:00
David Montero Crespo
e99ded70b5
feat: update AboutPage with new external links and improve press section
2026-03-28 23:11:57 -03:00
David Montero Crespo
922d0dd682
feat: add About link to navigation in index.html and Velxio2Page
2026-03-28 22:43:53 -03:00
David Montero Crespo
28ba7cb589
feat: add About link to AppHeader component
2026-03-28 22:05:30 -03:00
David Montero Crespo
051d90374c
Merge remote-tracking branch 'origin/master' into copilot/add-google-analytics-key-events-tracking
2026-03-28 22:00:49 -03:00
David Montero Crespo
a346190086
fix: update Discord invite links across the application
2026-03-28 21:58:17 -03:00
David Montero
dac948e7da
perf: optimize hero image for faster load times
...
- Resize image.png from 2816x1536 to 1400x764 (7.3MB → 1.9MB, -74%)
- Add image.webp version (201KB, -97% vs original)
- Update nginx.conf to auto-serve WebP via Accept header negotiation
- Update LandingPage.tsx to use <picture> with WebP source + lazy loading
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-28 20:33:40 +01:00
David Montero Crespo
6eedd45b81
feat: add About page with content and styling; update routing and SEO metadata
2026-03-28 16:26:29 -03:00
David Montero Crespo
4e3d5090e2
feat: add zoom support for touch interactions and enhance pin hit targets
2026-03-28 00:31:00 -03:00
David Montero Crespo
f127ef6cbe
Enhance analytics tracking across the application
...
- Added tracking for simulation events: start, stop, and reset.
- Implemented tracking for library manager interactions, including library installations.
- Enhanced project management tracking with save and create project events.
- Integrated tracking for user authentication events: sign-up and login.
- Added tracking for CTA clicks on landing and SEO pages.
- Updated analytics utility functions to support new tracking events.
- Improved GitHub and Discord link tracking in the app header.
- Refactored existing components to utilize new tracking functions for better user engagement insights.
2026-03-25 03:06:38 -03:00
David Montero Crespo
084ad5cfb9
fix: remove redundant console log in handleLoadExample function
2026-03-25 03:05:38 -03:00
David Montero Crespo
5d741bfb5e
Merge branch 'website' into copilot/add-google-analytics-key-events-tracking
...
# Conflicts:
# frontend/src/components/layout/AppHeader.tsx
# frontend/src/pages/ExamplesPage.tsx
# frontend/src/pages/LandingPage.tsx
2026-03-25 02:18:52 -03:00
David Montero Crespo
005f50262f
feat: enhance build scripts and add SEO prerendering; improve touch interactions for wire creation
2026-03-25 00:08:46 -03:00
David Montero Crespo
c7eeab5891
feat: initialize arduino-cli config and install missing cores; mark subproject commits as dirty
2026-03-24 18:33:21 -03:00
David Montero Crespo
d12a2ad7e4
feat: enhance ExamplesPage to auto-install required libraries; update example projects with library dependencies
2026-03-24 18:19:43 -03:00
David Montero Crespo
dc335c666e
feat: add WebSocket support for ESP32 simulation in nginx configuration; clean up example code by removing unused WDT functions
2026-03-24 17:02:23 -03:00
David Montero Crespo
9d45484fce
feat: enhance EditorToolbar with always-visible Libraries button and missing library hint; remove overflow collapse logic
2026-03-24 16:52:01 -03:00
David Montero Crespo
09118fcdef
feat: update .gitignore to include marketing directory; modify example texts to reflect Velxio branding; mark subproject commits as dirty
2026-03-24 16:47:19 -03:00
David Montero Crespo
0290b24a47
feat: remove unnecessary logging and diagnostic dumps in ESP32 worker; update WS2812 event handling in simulator store
2026-03-24 14:38:08 -03:00
David Montero Crespo
01f75cf313
feat: implement eager scan for LEDC GPIO mapping and add tests for race condition fix
2026-03-24 13:54:44 -03:00
David Montero Crespo
b95230f53e
feat: update sitemap generation script to use Node.js and mark subprojects as dirty
2026-03-23 19:04:23 -03:00
David Montero Crespo
1c1775c327
feat: add multi-board support section to Velxio 2.0 landing page and update sitemap generation script
2026-03-23 19:01:11 -03:00
David Montero Crespo
3e77c1a546
feat: add open-source library showcase to Velxio 2.0 landing page and mark subprojects as dirty
2026-03-23 18:56:00 -03:00
David Montero Crespo
5fdeb7fc64
feat: update Velxio 2.0 landing page descriptions for clarity and SEO optimization; mark subprojects as dirty
2026-03-23 18:54:02 -03:00
David Montero Crespo
b4365ec877
feat: implement sitemap generation and search engine pinging in build process
2026-03-23 18:52:35 -03:00
David Montero Crespo
61b08e7cf2
feat: add Velxio 2.0 release landing page with new features, boards showcase, and community CTAs
2026-03-23 18:47:12 -03:00
David Montero Crespo
fb8d437d58
Add SEO landing pages for ESP32-S3, ESP32, Raspberry Pi Pico, and Raspberry Pi 3 simulators
...
- Created Esp32S3SimulatorPage.tsx with SEO content and FAQ section.
- Created Esp32SimulatorPage.tsx with SEO content and FAQ section.
- Created RaspberryPiPicoSimulatorPage.tsx with SEO content and FAQ section.
- Created RaspberryPiSimulatorPage.tsx with SEO content and FAQ section.
- Each page includes structured data for better search engine visibility.
2026-03-23 18:30:42 -03:00
David Montero Crespo
a183818721
feat: update SEO handling across various pages, enhance mobile tab navigation, and improve .gitignore for sensitive files
2026-03-23 17:15:29 -03:00
David Montero Crespo
1c22902c88
feat: add FAQ schema to landing page and update subproject statuses to dirty
2026-03-23 15:12:33 -03:00
David Montero Crespo
d61f2b7ab0
feat: update SEO handling by dynamically setting canonical links and exclude auth pages from sitemap
2026-03-23 15:06:49 -03:00
David Montero Crespo
22a9681cc4
feat: enhance ESP32 integration tests and update landing page content for clarity
...
fix: improve session ID handling in Esp32Bridge and update WebSocket close logging
chore: mark subprojects as dirty in QEMU, RP2040, and Wokwi elements libraries
2026-03-23 14:10:39 -03:00
David Montero Crespo
67a7154e87
feat: add GitHub star banner to encourage users to star the project and update landing page content for clarity
2026-03-23 14:02:35 -03:00
David Montero Crespo
2eb6a452a7
feat: update SEO and descriptions for multi-board emulator support across Arduino, ESP32, RP2040, and RISC-V
2026-03-23 13:38:56 -03:00
David Montero Crespo
24cce1174f
feat: add Arduino Mega 2560, Arduino, and ATmega328P simulator pages with SEO optimization
...
- Implemented ArduinoMegaSimulatorPage with detailed specifications, FAQs, and JSON-LD for SEO.
- Created ArduinoSimulatorPage featuring interactive components and a comprehensive FAQ section.
- Developed AtmegaSimulatorPage to simulate ATmega328P with full AVR8 emulation and included relevant FAQs.
- Introduced shared SEOPage.css for consistent styling across all simulator pages.
- Added useSEO utility for managing SEO metadata dynamically across pages.
2026-03-23 13:32:15 -03:00
David Montero Crespo
0e6157f7bc
feat: Mark subprojects as dirty in QEMU, RP2040, and Wokwi elements libraries
2026-03-23 12:51:25 -03:00
David Montero Crespo
3b367f747a
Add SVG files for Arduino Nano and Arduino Uno boards
...
- Created arduino-nano.svg with detailed PCB, MCU, pins, and components.
- Created arduino-uno.svg with comprehensive design including USB connector, power jack, and pin headers.
2026-03-23 12:19:25 -03:00
David Montero Crespo
d14a9359c9
feat: Fix LEDC channel extraction and enhance GPIO mapping for ESP32 simulation
2026-03-23 11:23:37 -03:00
David Montero Crespo
aa6522fd60
feat: Enhance DHT22 sync handling, improve ADC support for ESP32, and update component metadata
2026-03-23 10:37:06 -03:00
David Montero Crespo
a473cbe74f
feat: Implement synchronous DHT22 response handling and add diagnostic tests
2026-03-23 01:03:01 -03:00
David Montero Crespo
0414a04999
feat: Enhance DHT22 response handling and add logging for GPIO direction changes
2026-03-22 22:17:51 -03:00
David Montero Crespo
9c8e98cad2
feat: Enhance RP2040 simulator GPIO handling to support InputPullUp state
2026-03-22 18:46:52 -03:00
David Montero Crespo
083d8d69a8
feat: Add HC-SR04 sensor support and enhance DHT22 response timing in simulation
2026-03-22 18:39:09 -03:00
David Montero Crespo
6a55f58e46
feat: Implement generic sensor registration for ESP32 and RP2040
...
- Added board-agnostic sensor registration methods in RP2040Simulator.
- Enhanced ComplexParts to handle LEDC PWM duty updates for ESP32.
- Updated ProtocolParts to check if the simulator handles sensor protocols natively, delegating to backend if applicable.
- Introduced pre-registration of sensors in useSimulatorStore for ESP32 to prevent race conditions.
- Added tests for ESP32 DHT22 sensor registration flow, ensuring proper delegation and fallback mechanisms.
- Created tests for ESP32 Servo and Potentiometer interactions, verifying PWM subscriptions and ADC handling.
2026-03-22 18:03:17 -03:00
David Montero Crespo
f5257009cd
feat: implement DHT22 sensor support with attach, update, and detach functionality in ESP32 simulation
2026-03-22 15:17:44 -03:00
David Montero Crespo
84370e6f8d
feat: enhance simulator interfaces and add ESP32 bridge shim for improved component interaction
2026-03-22 02:25:58 -03:00
David Montero Crespo
ee7281383c
feat: remove unnecessary logging and streamline potentiometer and servo simulations
2026-03-21 17:20:48 -03:00
David Montero Crespo
aac3465d49
feat: update component metadata timestamp and enhance RP2040 simulator for accurate PIO stepping and servo calibration
2026-03-21 17:12:06 -03:00
David Montero Crespo
43f13e1bc2
feat: implement synchronous PIO stepping and enhance servo pulse width measurement
2026-03-21 16:41:20 -03:00
David Montero Crespo
b900f960ad
feat: update pin mappings and descriptions for Raspberry Pi Pico examples
2026-03-21 14:02:46 -03:00