From 4d17dfd832206eb81a74f06ee1e9b61668e07221 Mon Sep 17 00:00:00 2001 From: davidmonterocrespo24 Date: Fri, 24 Apr 2026 16:42:47 +0200 Subject: [PATCH] feat: add /v2-5 release landing page for Velxio 2.5 (SPICE) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mirrors the /v2 page structure but targets the 2.5 launch: ngspice-WASM analog simulation, hybrid digital + analog co-simulation with Arduino / ESP32 / RP2040, expanded component catalog, live instruments, 40 new analog/hybrid examples. - Reuses Velxio2Page.css + SEOPage.css — no new stylesheet to maintain - Adds SoftwareApplication, BreadcrumbList, and FAQPage JSON-LD for rich-results eligibility - Registers the route in App, entry-server (SSR prerender), and seoRoutes (sitemap, priority 0.95 / changefreq weekly) --- frontend/src/App.tsx | 2 + frontend/src/entry-server.tsx | 2 + frontend/src/pages/Velxio25Page.tsx | 611 ++++++++++++++++++++++++++++ frontend/src/seoRoutes.ts | 12 + 4 files changed, 627 insertions(+) create mode 100644 frontend/src/pages/Velxio25Page.tsx diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 7a4d5837..b23a8c0f 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -21,6 +21,7 @@ import { Esp32C3SimulatorPage } from './pages/Esp32C3SimulatorPage'; import { RaspberryPiPicoSimulatorPage } from './pages/RaspberryPiPicoSimulatorPage'; import { RaspberryPiSimulatorPage } from './pages/RaspberryPiSimulatorPage'; import { Velxio2Page } from './pages/Velxio2Page'; +import { Velxio25Page } from './pages/Velxio25Page'; import { AboutPage } from './pages/AboutPage'; import { useAuthStore } from './store/useAuthStore'; import './App.css'; @@ -55,6 +56,7 @@ function App() { } /> } /> } /> + } /> } /> {/* Canonical project URL by ID */} } /> diff --git a/frontend/src/entry-server.tsx b/frontend/src/entry-server.tsx index cca868fe..1b0fd460 100644 --- a/frontend/src/entry-server.tsx +++ b/frontend/src/entry-server.tsx @@ -25,6 +25,7 @@ import { Esp32C3SimulatorPage } from './pages/Esp32C3SimulatorPage'; import { RaspberryPiPicoSimulatorPage } from './pages/RaspberryPiPicoSimulatorPage'; import { RaspberryPiSimulatorPage } from './pages/RaspberryPiSimulatorPage'; import { Velxio2Page } from './pages/Velxio2Page'; +import { Velxio25Page } from './pages/Velxio25Page'; import { DocsPage } from './pages/DocsPage'; import { ExampleDetailPage } from './pages/ExampleDetailPage'; @@ -42,6 +43,7 @@ const ROUTE_COMPONENTS: Record = { '/raspberry-pi-pico-simulator': RaspberryPiPicoSimulatorPage, '/raspberry-pi-simulator': RaspberryPiSimulatorPage, '/v2': Velxio2Page, + '/v2-5': Velxio25Page, // Docs sections — all use DocsPage with different URL params '/docs': DocsPage, '/docs/intro': DocsPage, diff --git a/frontend/src/pages/Velxio25Page.tsx b/frontend/src/pages/Velxio25Page.tsx new file mode 100644 index 00000000..292b26fe --- /dev/null +++ b/frontend/src/pages/Velxio25Page.tsx @@ -0,0 +1,611 @@ +/** + * /v2-5 — Velxio 2.5 Release Landing Page + * Highlights ngspice-WASM analog co-simulation, expanded SPICE catalog, + * real-time instruments (ammeter, voltmeter, oscilloscope), and the new + * hybrid digital+analog workflow. + */ + +import React from 'react'; +import { Link } from 'react-router-dom'; +import { AppHeader } from '../components/layout/AppHeader'; +import { useSEO } from '../utils/useSEO'; +import { getSeoMeta } from '../seoRoutes'; +import { trackClickCTA } from '../utils/analytics'; +import './SEOPage.css'; +import './Velxio2Page.css'; + +const GITHUB_URL = 'https://github.com/davidmonterocrespo24/velxio'; +const DISCORD_URL = 'https://discord.gg/3mARjJrh4E'; + +/* ── SVG Icons (no emojis) ─────────────────────────────── */ +const IcoRocket = () => ( + + + + + + +); + +const IcoWave = () => ( + + + +); + +const IcoResistor = () => ( + + + +); + +const IcoTransistor = () => ( + + + + +); + +const IcoMeter = () => ( + + + + + +); + +const IcoChip = () => ( + + + + + +); + +const IcoSensor = () => ( + + + + +); + +const IcoLightning = () => ( + + + +); + +const IcoBook = () => ( + + + + +); + +const IcoTestTube = () => ( + + + + + +); + +const IcoGitHub = () => ( + + + +); + +const IcoDiscord = () => ( + + + +); + +const IcoStar = () => ( + + + +); + +const JSON_LD: object[] = [ + { + '@context': 'https://schema.org', + '@type': 'SoftwareApplication', + name: 'Velxio 2.5 — Arduino + SPICE Analog Circuit Simulator', + applicationCategory: 'DeveloperApplication', + operatingSystem: 'Any (browser-based)', + softwareVersion: '2.5.0', + description: + 'Velxio 2.5 brings real-time ngspice-WASM analog simulation to the browser. Hybrid digital+analog co-simulation: resistors, capacitors, inductors, op-amps, transistors, voltmeters, ammeters — wired to Arduino, ESP32, RP2040 GPIO/ADC. 40+ circuit examples. Free and open-source.', + url: 'https://velxio.dev/v2-5', + offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' }, + author: { '@type': 'Person', name: 'David Montero Crespo' }, + license: 'https://www.gnu.org/licenses/agpl-3.0.html', + }, + { + '@context': 'https://schema.org', + '@type': 'BreadcrumbList', + itemListElement: [ + { '@type': 'ListItem', position: 1, name: 'Velxio', item: 'https://velxio.dev/' }, + { '@type': 'ListItem', position: 2, name: 'Velxio 2.5', item: 'https://velxio.dev/v2-5' }, + ], + }, + { + '@context': 'https://schema.org', + '@type': 'FAQPage', + mainEntity: [ + { + '@type': 'Question', + name: 'What is new in Velxio 2.5?', + acceptedAnswer: { + '@type': 'Answer', + text: 'Velxio 2.5 adds real-time analog circuit simulation via ngspice-WASM. You can now mix SPICE-accurate analog parts — resistors, capacitors, inductors, diodes, transistors, op-amps, voltage regulators — with Arduino, ESP32, and RP2040 boards on the same canvas. Includes live ammeters, voltmeters, an oscilloscope, and 40+ new circuit examples.', + }, + }, + { + '@type': 'Question', + name: 'Is this a SPICE simulator in the browser?', + acceptedAnswer: { + '@type': 'Answer', + text: 'Yes. Velxio 2.5 runs ngspice compiled to WebAssembly (via eecircuit-engine) entirely in the browser. No server, no install, no account. Works offline after first load.', + }, + }, + { + '@type': 'Question', + name: 'Can I connect an Arduino to analog components?', + acceptedAnswer: { + '@type': 'Answer', + text: 'Yes. GPIO pins drive SPICE nets as voltage sources, and ADC inputs read analog node voltages back into the firmware. analogRead() returns the real SPICE-solved value at that net.', + }, + }, + ], + }, +]; + +const CHANGE_SECTIONS = [ + { + icon: , + title: 'ngspice-WASM Engine', + color: '#007acc', + items: [ + 'ngspice compiled to WebAssembly via eecircuit-engine (lazy-loaded)', + 'Real-time transient analysis at ~60 Hz solve rate', + 'Full Modified Nodal Analysis — not a linear approximation', + 'Always-on mode: every circuit is SPICE-solved, no toggle needed', + 'Browser-native — no server, no install, no account', + 'Works offline after first load', + ], + }, + { + icon: , + title: 'Passive Components', + color: '#4a9e6b', + items: [ + 'Resistor — custom value + common presets (220Ω, 1k, 10k, 100k)', + 'Capacitor — electrolytic, ceramic, polarity-aware (10nF–1mF)', + 'Inductor — custom value + presets (100µH–10mH)', + 'Potentiometer — live slider updates SPICE resistance', + 'Photoresistor (LDR) and Photodiode — lux-driven', + 'NTC thermistor — temperature-driven resistance', + ], + }, + { + icon: , + title: 'Active Semiconductors', + color: '#c8701a', + items: [ + '5 BJTs: 2N2222, 2N3055, 2N3906, BC547, BC557', + '4 MOSFETs: 2N7000, IRF540, IRF9540, FQP27P06 (P/N-channel)', + '5 op-amps: LM358, LM741, TL072, LM324, ideal — with saturation rails', + '4 linear regulators: 7805, 7812, 7905, LM317 with dropout', + 'Diodes: 1N4148, 1N4007, 1N5817, 1N5819, Zener 1N4733', + 'Optocouplers 4N25 and PC817 with CTR modelling', + ], + }, + { + icon: , + title: 'Logic & Integrated Circuits', + color: '#8957e5', + items: [ + '7 basic logic gates: AND, OR, NAND, NOR, XOR, XNOR, NOT', + '8 multi-input gates (3 and 4 inputs)', + '7 74HC-series ICs as DIP-14 packages', + '3 flip-flops: D, T, JK (edge-triggered digital)', + 'Relay (SPDT) with coil inductance, hysteresis, flyback diode', + 'L293D dual H-bridge motor driver', + ], + }, + { + icon: , + title: 'Live Instruments', + color: '#a8304d', + items: [ + 'Ammeter — live current reading wired between any two nodes', + 'Voltmeter — live node voltage with probe leads', + 'Oscilloscope with multi-channel capture', + 'Signal generator — sine, square, DC (configurable frequency, amplitude, offset)', + 'Batteries: 9V, AA, coin-cell with realistic ESR', + 'LED brightness scales with actual current', + ], + }, + { + icon: , + title: 'Board Co-Simulation', + color: '#b08800', + items: [ + 'Digital GPIO pins drive SPICE nets as voltage sources in real time', + 'ADC inputs read solved analog node voltages back into firmware', + 'analogRead() returns real SPICE-solved node values', + 'Arduino + transistor + motor — wired and solved together', + 'ESP32 + op-amp + sensor — co-simulated end-to-end', + 'Board-less circuits — pure analog workbenches are now a first-class mode', + ], + }, + { + icon: , + title: 'Sensor Sliders', + color: '#4a9e6b', + items: [ + 'Photodiode illumination slider (0–1000 lux)', + 'Photoresistor illumination slider with LDR curve', + 'NTC temperature slider (-40–125 °C)', + 'Gas sensor, flame sensor, tilt switch — live panels', + 'Property changes invalidate the netlist memo → next tick re-solves', + 'Live sliders while running, number inputs while stopped', + ], + }, + { + icon: , + title: 'Examples & Testing', + color: '#1a7f37', + items: [ + '40 new analog/hybrid circuit examples added', + 'Voltage dividers, RC filters, op-amp amplifiers, rectifiers', + 'Transistor switches, relay drivers, H-bridge circuits', + 'Full-wave rectifier, Wheatstone bridge, Schmitt trigger', + 'End-to-end SPICE behaviour tests (capacitor charging, rectification)', + '164+ sandbox tests passing against ngspice reference results', + ], + }, + { + icon: , + title: 'Docs & DX', + color: '#6e7681', + items: [ + 'New circuit-emulation.md — implementation deep-dive', + 'Electrical simulation user guide in the docs site', + 'ngspice gotchas documented (unicode in titles, MOSFET Level=3)', + 'Separated useElectricalStore for clean state boundaries', + 'Reference sandbox in test/test_circuit/ for fast iteration', + 'VITE_ELECTRICAL_SIM build flag to disable if needed', + ], + }, +]; + +export const Velxio25Page: React.FC = () => { + useSEO({ ...getSeoMeta('/v2-5')!, jsonLd: JSON_LD }); + + return ( +
+ +
+ {/* ── Hero ── */} +
+
+ Version 2.5 +
+

+ Velxio 2.5 +
+ Arduino meets SPICE in your browser +

+

+ Real-time analog circuit simulation via ngspice-WASM, wired to Arduino, ESP32, and + Raspberry Pi Pico. Resistors, capacitors, op-amps, transistors, live ammeters and + voltmeters — co-simulated with your firmware. Free, open-source, no install. +

+
+ trackClickCTA('velxio-v2-5', '/editor')} + > + + Try Velxio 2.5 + + + View on GitHub + +
+ + +
+ + {/* ── Why SPICE matters ── */} +
+

From digital-only to full circuit emulation

+

+ Velxio 2.0 simulated your firmware perfectly. Velxio 2.5 simulates the circuit around + it — with the same ngspice engine used by professional EDA tools, running entirely in + your browser tab. +

+ +
+
+

Not a linear approximation

+

+ Velxio solves the full Modified Nodal Analysis every tick. Non-linear devices — + diodes, BJTs, MOSFETs, op-amps with saturation — behave like the real thing, not + like textbook idealisations. +

+
+
+

Real firmware. Real circuit. Same canvas.

+

+ GPIO pins drive SPICE nets as voltage sources. ADC inputs read solved node + voltages. analogRead() returns what the circuit actually produces — + not a simulated shortcut. +

+
+
+

100% browser, 100% offline

+

+ ngspice compiled to WebAssembly via the open-source eecircuit-engine. No server, no + cloud, no account. Works offline after the first load. Your circuits never leave + your machine. +

+
+
+
+ + {/* ── Component catalog ── */} +
+

100+ SPICE-accurate components

+

+ A complete electronics catalogue — passives, semiconductors, logic, instruments — + every one of them modelled with real ngspice device cards, not behavioural stand-ins. +

+ +
+ {CHANGE_SECTIONS.map((section) => ( +
+
+ {section.icon} +

{section.title}

+
+
    + {section.items.map((item) => ( +
  • {item}
  • + ))} +
+
+ ))} +
+
+ + {/* ── Co-simulation highlight ── */} +
+

Hybrid digital + analog co-simulation

+

+ Most browser simulators run either your firmware OR a circuit — never both together. + Velxio 2.5 solves them on the same clock. +

+
+
+

Drive a motor from an Arduino pin

+

+ Pin HIGH → MOSFET gate → drain current through a real inductive load → back-EMF + through a flyback diode. All SPICE-solved. Scope the gate and drain voltages side + by side. +

+
+
+

Read a sensor through a real op-amp

+

+ Photodiode → transimpedance op-amp → ADC. Adjust the lux slider and watch + analogRead() respond through the actual amplifier stage — saturation, + slew rate, and all. +

+
+
+

Debug with live instruments

+

+ Drop an ammeter between any two nodes, a voltmeter on any net. The oscilloscope + captures digital pins and analog nodes together. No "what if" — just + measurements. +

+
+
+
+ + {/* ── Examples ── */} +
+

40 new analog & hybrid examples

+

+ Pre-wired circuits you can open in one click — from textbook fundamentals to realistic + Arduino+analog systems. +

+
+
+

Fundamentals

+

+ Voltage divider, RC low-pass filter, RC high-pass filter, LR circuit, capacitor + charging, RLC resonance, Wheatstone bridge. +

+
+
+

Diodes & rectifiers

+

+ Half-wave rectifier, full-wave bridge rectifier, Zener regulator, clamper, + clipper, voltage doubler. +

+
+
+

Op-amp circuits

+

+ Inverting amplifier, non-inverting amplifier, summing amp, differential amp, + integrator, differentiator, Schmitt trigger, comparator. +

+
+
+

Transistor circuits

+

+ Common-emitter amplifier, transistor switch, Darlington pair, MOSFET driver, H-bridge, + current mirror. +

+
+
+

Arduino + analog

+

+ PWM-driven LED with RC smoothing, Arduino-controlled MOSFET motor driver, opto-isolated + relay, photodiode + op-amp + ADC pipeline. +

+
+
+

Sensors

+

+ NTC thermistor bridge, photoresistor light meter, photodiode transimpedance, + potentiometer dimmer, flame detector. +

+
+
+
+ + Browse All Examples + +
+
+ + {/* ── Outcome ── */} +
+

The outcome

+

+ Velxio 2.5 closes the loop between firmware and hardware: the same tool that runs your + sketch now solves the circuit around it. +

+
+
+

Teach & learn electronics

+

+ A free, browser-based SPICE playground for students — with the added benefit of + driving real microcontroller firmware. No license, no install, no lab booking. +

+
+
+

Prototype before soldering

+

+ Validate analog front-ends, power stages, and sensor pipelines end-to-end before + you order a single part. The scope and DMM are already on the bench. +

+
+
+

Still 100% open source

+

+ AGPL-3.0 on GitHub. Built on ngspice, eecircuit-engine, avr8js, rp2040js, QEMU, + and wokwi-elements. Fork it, host it, extend it. +

+
+
+
+ + {/* ── Built on ── */} +
+

Built on open-source

+

+ Velxio 2.5 stands on the shoulders of decades of electronics tooling. Huge thanks to + the maintainers of every project below. +

+ +
+ + {/* ── Bottom CTA ── */} +
+

Try Velxio 2.5 now

+

Open the editor and start simulating — firmware and analog circuit, same canvas, zero setup.

+ trackClickCTA('velxio-v2-5', '/editor')} + > + Launch Simulator + + + + +
+ Home + Velxio 2.0 + Examples + Documentation + Arduino Simulator + ESP32 Simulator + RP2040 Simulator + About +
+
+
+
+ ); +}; diff --git a/frontend/src/seoRoutes.ts b/frontend/src/seoRoutes.ts index d1bab980..e130ff1f 100644 --- a/frontend/src/seoRoutes.ts +++ b/frontend/src/seoRoutes.ts @@ -329,6 +329,18 @@ export const SEO_ROUTES: SeoRoute[] = [ url: `${DOMAIN}/v2`, }, }, + { + path: '/v2-5', + priority: 0.95, + changefreq: 'weekly', + seoMeta: { + title: + 'Velxio 2.5 — Arduino + SPICE Analog Circuit Simulator in Your Browser | ngspice-WASM', + description: + 'Velxio 2.5 brings real-time analog circuit simulation via ngspice-WASM. Hybrid digital + analog co-simulation: resistors, capacitors, inductors, op-amps, transistors, voltmeters, ammeters — wired to Arduino, ESP32, RP2040 GPIO/ADC. 40+ circuit examples. Free and open-source.', + url: `${DOMAIN}/v2-5`, + }, + }, // ── About {