switch-pico/tools/switch2_wake_beacon/btstack_config.h
Joey Yakimowich-Payne bed71f77f1 feat(wake): add controller-free USB serial wake beacon
Add a standalone Pico2W image reusing the configured nonconnectable wake
burst without Bluepad32, controller-host profiles, Classic/LE-central
roles, connection pools, pairing or writable TLV storage. Explicitly
disable and verify Classic inquiry/page scan before declaring readiness.
Keep the original controller firmware and captured wake identity unchanged.

Expose bounded SPWB1 CDC commands with exactly-once request IDs, explicit
failures and radio progress independent of serial backpressure. Add the
cross-platform switch-pico-wake script with strict preflight, bounded I/O,
no automatic rebroadcast, status-only mode and preserved uncertain-outcome
metadata. Standard USB serial requires no WinUSB/Zadig binding.

Add isolated --wake-only build/publication selection and document setup,
backup and physical-BOOTSEL recovery. Validate776 tests, focused framing
and lifecycle cases, ELF isolation and actual CDC operation on only the
new board. One burst completed in2.095s; malformed/status/reconnect input
and same-ID replay caused no additional broadcast. Original Pico untouched.
Private firmware images, console configuration and backups are excluded.
2026-09-19 22:03:17 -06:00

24 lines
908 B
C

#ifndef SWITCH2_WAKE_BEACON_BTSTACK_CONFIG_H
#define SWITCH2_WAKE_BEACON_BTSTACK_CONFIG_H
// BTstack requires its peripheral/advertiser fields for BLE advertising.
// There is no central/Classic role, connection pool, GATT/SM/HID stack or scan.
#if defined(ENABLE_CLASSIC) || defined(ENABLE_LE_CENTRAL)
#error "Wake-only firmware must not enable controller discovery/hosting roles"
#endif
#define ENABLE_LE_PERIPHERAL
#define HAVE_EMBEDDED_TIME_MS
// Required by the SDK's compiled dump helper; no logger/dump is initialized.
#define ENABLE_PRINTF_HEXDUMP
#define HAVE_ASSERT
#define HCI_OUTGOING_PRE_BUFFER_SIZE 4
#define HCI_INCOMING_PRE_BUFFER_SIZE 4
#define HCI_ACL_PAYLOAD_SIZE 251
#define HCI_ACL_CHUNK_SIZE_ALIGNMENT 4
#define MAX_NR_HCI_CONNECTIONS 0
#define MAX_NR_L2CAP_CHANNELS 0
#define MAX_NR_L2CAP_SERVICES 0
#define MAX_NR_WHITELIST_ENTRIES 0
#define HCI_RESET_RESEND_TIMEOUT_MS 1000
#endif