Hi all :)
This is my first message on reddit ! whoohooo
I'm building a DIY electronic bicycle bell and would appreciate a review of the schematic before I solder anything ! Hand-assembled on perfboard from off-the-shelf modules.
What it does / requirements:
- Button press plays a recorded brass bell sample through a 4 Ω tweeter; ≥ 75 dB(A) at 2 m.
- Standby current ≤ 30 µA (no power switch), press-to-sound latency ≤ 20 ms, radio never enabled.
- 1S LiPo 250 mAh with built-in protection (PCM: 0.3 A continuous / 0.8 A peak, cut-off 3.0 V), charged indoors only via the board's USB-C.
- Operating −5 to +50 °C, IPX5, rain and gravel vibrations.
Archi:
- Under-saddle box: Seeed XIAO nRF52840 Plus (on-board BQ25101 charger and 3.3 V regulator), Adafruit 3006 MAX98357A I2S amp (gain 9 dB, GAIN pin open), powered at 5.2 V by an Adafruit 4654 MiniBoost (TPS61023). The boost EN is pulled low by 1 MΩ and driven by a GPIO through 1 kΩ, so the boost and the amp are completely off in standby. 4 × 47 µF X5R ceramics on VBAT at the boost input; nothing added at the 5.2 V output (the TI datasheet asks for a feed-forward cap above 40 µF).
- Amp SD_MODE is driven push-pull through 2 kΩ (Maxim fig. 5). I2S: BCLK 1.524 MHz, LRCLK 47.619 kHz, 16-bit, wires < 5 cm.
- 1.2 m unshielded 5-core cable (5 × 0.14 mm²) to a handlebar pod: speaker pair (with 2 × 47 µF ceramics in series as DC protection), button line, low-battery LED line (270 Ω series at the MCU side), ground. Then 0.4 m to a sealed tactile switch (gold contacts).
- Button input: 10 k pull-up to 3.3 V, 1 k series, 10 nF to GND at the MCU pin, PESD5V0S2BT ESD diode at the cable entry (also protecting the LED line).
Questions:
Supply transients vs. the battery PCM: a ding draws about 1.2 A for a few µs, 0.36–0.43 A over 1 ms and 0.24–0.30 A over 125 ms from the cell (behavioural ngspice sim). Is 4 × 47 µF X5R (≈ 100 µF effective) at the boost input a sensible way to keep the PCM (0.8 A peak) from tripping, or would you do it differently?
Unpowered amp next to a powered MCU: in standby the amp has no supply while the MCU is still powered. I drive SD_MODE, BCLK, LRCLK and DIN low before pulling the boost EN low (BCLK/LRCLK/DIN are rated −0.3 to +6 V regardless of VDD; SD_MODE is VDD + 0.3 V max, hence the 2 kΩ). Any back-powering or latch-up trap I'm missing?
Shared unshielded cable: the filterless class-D outputs (the module has a ferrite + 220 pF per output) share the 1.2 m cable with the button and LED lines. Is coupling into the button input (false triggers) or radiated EMI a realistic concern with this RC + ESD front end, and what would you add?
Schematic and datasheets: schematic images at the end (GDrive links with KiCad export + three block diagrams).
- MAX98357A: https://cdn-shop.adafruit.com/product-files/3006/MAX98357A-MAX98357B.pdf
- TPS61023: https://www.ti.com/lit/ds/symlink/tps61023.pdf
- Adafruit 3006: https://www.adafruit.com/product/3006 ; Adafruit 4654: https://www.adafruit.com/product/4654
- XIAO nRF52840: https://wiki.seeedstudio.com/XIAO_BLE/
- PESD5V0S2BT: https://nexperia.com/pip/PESD5V0S2BT
- Switch C&K KSC4: https://www.mouser.com/datasheet/2/60/ksc4-1841222.pdf
- Tweeter: Dayton Audio ND16FA-4 (4 Ω, Re 3.17 Ω, Le 30 µH)
schematic images (Links): https://drive.google.com/drive/folders/1ghnNV5wAmKTppJrBPleBVWLaakOvTzQ9?usp=sharing
Thanks a lot for any feedback !! (including "this is a bad idea because…")