Commit Graph

317 Commits (558525b4b219d6bbfbcd897ee8f674359187147a)

Author SHA1 Message Date
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