feat(editor): the starter picker offers the Nano family and the ESP32-CAM

The Arduino section listed only Uno and Mega — Nano and Nano ESP32
existed as first-class boards (kinds, FQBNs, examples) but could only be
reached through the gallery or the board dropdown. Same for the
ESP32-CAM, which now sits in the ESP32 section next to its DevKit
sibling. The camera board's starter is the webcam demo rather than a
blink: the board exists to show the sensor, and a bare LED sketch would
be a misleading first run.
This commit is contained in:
David Montero 2026-08-10 21:33:55 +02:00
parent ce27ae3701
commit 2908726007
1 changed files with 17 additions and 1 deletions

View File

@ -49,7 +49,10 @@ interface NewProjectDialogProps {
const BOARD_BLURBS: Record<string, string> = {
'arduino-uno': '8-bit AVR, 32KB flash, 14 digital I/O',
'arduino-mega': '8-bit AVR, 256KB flash, 54 digital I/O',
'arduino-nano': '8-bit AVR, 32KB flash, breadboard-size Uno',
'arduino-nano-esp32': 'ESP32-S3 in the Nano footprint, WiFi+BT (QEMU)',
esp32: 'Xtensa LX6 dual-core, WiFi+BT, 38 GPIO (QEMU)',
'esp32-cam': 'ESP32 + OV2640 camera, streams to LCD (QEMU)',
'xiao-esp32-s3': 'Seeed XIAO tiny form, 8MB flash+PSRAM (QEMU)',
'xiao-esp32-c3': 'Seeed XIAO ESP32-C3 mini board (QEMU)',
'stm32-bluepill': 'STM32F103C8 Cortex-M3, 64KB flash, 37 GPIO (QEMU)',
@ -128,6 +131,10 @@ export function clearWorkspaceForStarter(): void {
const PREFERRED_BLINK_EXAMPLE: Record<string, string> = {
'arduino-uno': 'blink-led',
'arduino-mega': 'mega-blink',
'arduino-nano': 'nano-blink',
// Camera board: the webcam demo IS its "blink" — the board exists to
// show the sensor, a bare LED sketch would be a misleading first run.
'esp32-cam': 'esp32cam-webcam-demo',
esp32: 'esp32-blink-led',
'esp32-s3': 'esp32s3-blink-led',
'esp32-c3': 'c3-blink',
@ -227,13 +234,22 @@ export const NewProjectDialog: React.FC<NewProjectDialogProps> = ({ isOpen, onCl
return d ? [{ kind: d.kind, blurb: d.description }] : [];
};
return [
{ title: 'Arduino', entries: [oss('arduino-uno'), oss('arduino-mega')] },
{
title: 'Arduino',
entries: [
oss('arduino-uno'),
oss('arduino-mega'),
oss('arduino-nano'),
oss('arduino-nano-esp32'),
],
},
// One card per ESP32 chip generation, XIAO variant preferred where
// Seeed makes one: classic → DevKit V1, S3/C3 → XIAO, C6 → XIAO (overlay).
{
title: 'ESP32',
entries: [
oss('esp32'),
oss('esp32-cam'),
oss('xiao-esp32-s3'),
oss('xiao-esp32-c3'),
...pro('xiao-esp32c6'),