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
c0b658e6d6
fix: update npm ci to npm install for building libraries and mark submodules as dirty
2026-03-28 22:50:18 -03:00
David Montero Crespo
7da1b2261d
Merge pull request #80 from davidmonterocrespo24/copilot/add-google-analytics-key-events-tracking
...
feat: add About link to navigation in index.html and Velxio2Page
2026-03-28 22:44:33 -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
4d05b6ea7e
Merge pull request #79 from davidmonterocrespo24/copilot/add-google-analytics-key-events-tracking
...
feat: add About link to AppHeader component
2026-03-28 22:06:01 -03:00
David Montero Crespo
28ba7cb589
feat: add About link to AppHeader component
2026-03-28 22:05:30 -03:00
David Montero Crespo
2b239a8700
Merge pull request #78 from davidmonterocrespo24/copilot/add-google-analytics-key-events-tracking
...
fix: update Discord invite links across the application
2026-03-28 22:00:59 -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
7095717dc6
Merge pull request #77 from davidmonterocrespo24/copilot/add-google-analytics-key-events-tracking
...
Copilot/add google analytics key events tracking
2026-03-28 16:27:28 -03: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
7c9efe15ce
Update README.md
2026-03-28 15:55:43 -03:00
David Montero Crespo
4f4f226940
Actualizar README.md
2026-03-28 14:37:23 -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
91e9c2d5f6
Merge pull request #73 from davidmonterocrespo24/copilot/add-google-analytics-key-events-tracking
...
Copilot/add google analytics key events tracking
2026-03-25 03:07:11 -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
2782282d26
Merge pull request #37 from davidmonterocrespo24/copilot/add-google-analytics-key-events-tracking
...
Add GA4 key events tracking for core user actions
2026-03-25 02:19:41 -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
003482b708
Merge pull request #72 from davidmonterocrespo24/website
...
Website
2026-03-25 00:09:15 -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
effd1ee765
feat: update entrypoint.sh to ensure ESP32 core version is 2.0.17; mark subproject commits as dirty
2026-03-24 20:39:56 -03:00
David Montero Crespo
9b911202fc
Merge pull request #71 from davidmonterocrespo24/website
...
feat: initialize arduino-cli config and install missing cores; mark s…
2026-03-24 18:33:47 -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
5cac073757
Merge pull request #70 from davidmonterocrespo24/website
...
Website
2026-03-24 18:21:12 -03:00
David Montero Crespo
8f0c23c857
feat: optimize Dockerfile by deferring arduino-cli core installations to entrypoint.sh for a smaller image size
2026-03-24 18:20:38 -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
bf092acd34
Merge pull request #69 from davidmonterocrespo24/website
...
feat: update entrypoint.sh to install arduino-cli base cores; mark su…
2026-03-24 18:06:56 -03:00
David Montero Crespo
dbf6bd986f
feat: update entrypoint.sh to install arduino-cli base cores; mark subproject commits as dirty
2026-03-24 18:06:19 -03:00
David Montero Crespo
01b792b02a
Merge pull request #68 from davidmonterocrespo24/website
...
feat: simplify Dockerfile by removing redundant cp command; mark subp…
2026-03-24 17:59:43 -03:00
David Montero Crespo
f4e4f863a9
feat: simplify Dockerfile by removing redundant cp command; mark subproject commits as dirty
2026-03-24 17:59:04 -03:00
David Montero Crespo
c1da5c8989
Merge pull request #67 from davidmonterocrespo24/website
...
feat: update docker-compose to include arduino-libs volume; mark subp…
2026-03-24 17:31:36 -03:00
David Montero Crespo
8ed0438abf
feat: update docker-compose to include arduino-libs volume; mark subproject commits as dirty
2026-03-24 17:30:56 -03:00
David Montero Crespo
894f385df4
Merge pull request #66 from davidmonterocrespo24/website
...
feat: add libfdt1 dependency in Dockerfile; mark subproject commits a…
2026-03-24 17:29:26 -03:00
David Montero Crespo
528287db95
feat: add libfdt1 dependency in Dockerfile; mark subproject commits as dirty
2026-03-24 17:28:56 -03:00
David Montero Crespo
483e181873
Merge pull request #65 from davidmonterocrespo24/website
...
feat: add WebSocket support for ESP32 simulation in nginx configurati…
2026-03-24 17:03:30 -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
2fcaeca5c7
Merge pull request #64 from davidmonterocrespo24/website
...
Website
2026-03-24 16:52:22 -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
5e32e238fc
Merge pull request #63 from davidmonterocrespo24/website
...
feat: implement eager scan for LEDC GPIO mapping and add tests for ra…
2026-03-24 13:55:28 -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
44dc7ef289
Add visitor badge and various shields to README
2026-03-24 02:15:11 -03:00
David Montero Crespo
4357c67a8c
Merge pull request #62 from davidmonterocrespo24/website
...
Refactor code structure for improved readability and maintainability
2026-03-23 23:24:39 -03:00
David Montero Crespo
cf54fa90a3
Refactor code structure for improved readability and maintainability
2026-03-23 23:24:14 -03:00
David Montero Crespo
1f12290a78
Merge pull request #61 from davidmonterocrespo24/website
...
feat: update sitemap generation script to use Node.js and mark subpro…
2026-03-23 19:04:53 -03:00