Audio Notification Zigbee Device
Obliczymy ostateczną cenę na podstawie wybranego pliku. Sprawdzisz ją i zaakceptujesz przed płatnością.
Zapisane na tym urządzeniu.
The Audio Notification is a Zigbee device for audible notifications.
- Ocena
- 0 / 5
- Polubienia
- 0
- Pobrania
- 0
- Wydruki
- 0
- Wyświetlenia
- 8
- Oceny
- 0
Aktualizacja u źródła:
Informacje o modelu
- Źródło
- Printables
- Kategoria
- Electronics
- Licencja
- Creative Commons — Attribution — Noncommercial
The Audio Notification is a Zigbee device for audible notifications. It plays one of a fixed list of melodies, or a sampled sound clip, at an adjustable volume and a selectable number of repeats.
Bill of Materials
The Audio Notification Zigbee Device consists of the following parts:
1x: Seeed Studio XIAO ESP32-C6
1x: MAX98357A I2S Amplifier Module (Adafruit 3006 or an equivalent breakout with the same 7-pin header and 3.5 mm speaker terminal block)
1x: Speaker 40 x 28.5 mm (4 Ohm, 3 W, 82 dB, four Ø3 mm mounting holes)
1x: Resettable Fuse (PTC, 0.75A Hold, 1812)
1x: Capacitor (10µF, 10V, X5R, 0805)
1x: Capacitor (100nF, 0805)
1x: Resistor (33 kOhm, 0805)
1x: USB Charging Cable
1x: 26AWG Cable (2-Wire, 80mm)
1x: Closed-Cell Foam Tape (1.5mm, Self-Adhesive, Speaker Gasket)
1x: Felt Pad (4mm, about 69 x 49 mm, Speaker Chamber Damping)
4x: Flathead Screw M2x12mm
4x: Flathead Screw M2x6mm
3x: 3D Printed Parts
Controller_Base.3mf
Controller_Divider.3mf
Controller_Cover.3mf / Controller_Cover_Handles.3mf (wall mount version)
1x: Custom PCB
Audio_Notification_Gerbers.zip
4x: Silicone Pads 6mm (Optional)
Before assembling the device, make sure you have all the required parts, including the 3D-printed parts and the custom PCB.
The 3D-printed parts do not require any special print configuration (Print Settings: 0.20mm Balanced, Infill: 15%, Nozzle: 0.4mm, Material: PLA). Print Controller_Base.3mf and Controller_Divider.3mf as modelled and Controller_Cover.3mf (or Controller_Cover_Handles.3mf) upside down, with the grille on the print bed, so that the walls, the speaker cup and the bosses print without supports; add supports only for the USB-C window and, on the wall-mount version, under the two tabs. The foam tape and the felt pad are generic parts: any 1 to 2 mm self-adhesive closed-cell foam tape and any 3 to 5 mm craft felt will do. For additional information on how to order a custom PCB, see Order Custom PCB.
Assembly Instructions
Here are the device assembly instructions:
Carrier Board: Solder each component onto the Custom PCB according to the Audio Notification Assembly.pdf diagram. The PCB components are:
F1 Resettable Fuse (PTC, 0.75A Hold, 1812): 1812L075PR
C1 Ceramic Capacitor (10µF, 0805): CL21A106KPCLQNC
C2 Ceramic Capacitor (100nF, 0805): CL21B104KBCNNNC
R1 Thick Film Resistor (33kΩ, 0805, marked 3302): RC0805FR-0733KL
JP1 Solder Jumper (bridged as delivered: amplifier gain 6 dB)
XIAO ESP32-C6
A1 MAX98357A I2S Amplifier Module (on its 7-pin header)
First, solder the four 0805 parts (F1, C1, C2, R1) onto the top side of the Custom PCB: tin one pad, slide the part in while the solder is molten, then solder the other end. The resistor carries its value code on top; the capacitors are unmarked, so keep them apart (C1 is the 10 µF part next to the fuse, C2 the 100 nF part below it). Leave JP1 alone: its two pads are bridged by a copper trace, which sets the amplifier to 6 dB of gain; cut the trace only if you want 9 dB (louder, with less headroom on the USB supply). Next, place the XIAO ESP32-C6 flat on the top side with its USB-C connector over the notch in the left edge of the board, so that the connector face ends flush with the board edge, and solder its 14 castellated edge pads to the pads underneath (the pads on the underside of the XIAO are not used). Then solder the 7-pin header that comes with the MAX98357A I2S Amplifier Module into the row of seven holes at the bottom edge of the module outline, long pins up, and solder the module onto the header with its terminal block toward the top edge of the board; nothing on the carrier sits under the terminal block.
Speaker: Solder the two wires of the 26AWG Cable (2-Wire, 80mm) to the two solder tabs of the Speaker 40 x 28.5 mm, one wire to each tab, and twist the free ends. Press four strips of the Closed-Cell Foam Tape (1.5mm, Self-Adhesive, Speaker Gasket) onto the inside of Controller_Cover.3mf (or Controller_Cover_Handles.3mf) around the well behind the grille: two strips across the short sides of the speaker outline, between the well and the four raised pads, and two narrow strips along its long sides, so that the ring of foam seals the speaker frame to the cover all the way round and leaves the pads and the well free. Lower the speaker, cone first, into the cover with its solder tabs toward the end of the box that will be above the terminal block (the end away from the USB-C window), seat its frame on the foam and the pads, and fasten it with the four Flathead Screw M2x6mm screws through the holes in its frame into the pads.
The screws cut their own thread in the printed plastic: drive them until the head seats and no further, and alternate between the four so that the frame settles flat on the foam.
Enclosure: Set the Carrier Board onto the four standoffs of Controller_Base.3mf, with the USB-C connector at the short edge of the base that is flush with the board. Hold Controller_Divider.3mf with its two notches to the left and its 4 mm wire hole in the far half of the plate: the face that is now up is its top, which faces the speaker. Cut four notches, 7 mm wide and 6.5 mm in from the long edges, into the short edges of the Felt Pad (4mm, about 69 x 49 mm, Speaker Chamber Damping): two notches 6 mm deep in one short edge and two notches 13.5 mm deep in the other. Lay the pad centred on the top of the divider (press it down, if it is self-adhesive), with the shallow notches over the two notches of the plate and the deep notches over its two 6.4 mm holes, so that the four bosses and the two ribs of the cover can pass and about 1 mm of the plate stays bare all round, and cut a small cross in the felt over the wire hole. Feed the two speaker wires down through the felt and the wire hole, slide the divider up into the cover from below, with its two notches at the USB-C end, until it rests on the ledge at the bottom of the speaker cup, and push the wires into the two openings of the module's terminal block, which face the long wall of the box, tightening both screws on the bare, twisted ends. Lower the cover over the board and the base, so that the four bosses enter the divider and come to rest just above the board and the USB-C connector sits in the window of the short wall, and fasten it from below with the four Flathead Screw M2x12mm screws through the countersunk holes in the base. Attach four Silicone Pads 6mm to the bottom corners of the base.
Twist the stranded wire ends and clamp them bare; tinned strands creep under a screw and work loose over time. Either wire may go to either terminal: with a single speaker the polarity makes no audible difference.
Print Controller_Base.3mf and Controller_Divider.3mf as modelled and the cover upside down, with the grille on the print bed, so that the walls, the cup and the bosses print without supports; add supports only for the USB-C window and, on the wall-mount version, under the two tabs
Warning: The following components require a specific orientation. Detailed instructions on how to position them on the board are provided in Audio Notification Board Polarity.pdf.
XIAO ESP32-C6 (flat on the board, USB-C over the notch in the left edge, its D0 pad at the pad next to the silkscreen dot)
A1 MAX98357A I2S Amplifier Module (header along the bottom edge of its outline, its LRC pin at the square pad marked 1, terminal block toward the top edge of the board)
Power on the device by plugging the USB Charging Cable into the XIAO ESP32-C6 through the window in the short wall and into a 5V DC adapter (minimum 1A).

Figure 1 (Device, Speaker)

Figure 2 (Device, Divider)

Figure 3 (Device, PCB)

Figure 4 (Device, Assembled)
Device Software
Flash Device Software: Flash the prebuilt firmware in the Audio_Notification_Binaries.zip archive to the XIAO ESP32-C6 with esptool (pip install esptool). Connect the XIAO with the USB Charging Cable and run the following command from inside the folder (on Windows the port is a COM port):
python -m esptool --chip esp32c6 --port /dev/ttyACM0 --baud 460800 --before default-reset --after hard-reset write-flash @flash_argsExtract all files from the Audio_Notification_Binaries.zip archive to a local folder and rename all *.bin.data files to *.bin. The archive also holds clip.wav, the default sampled clip, which flash_args writes to the clip partition together with the firmware.
If esptool cannot connect, hold the XIAO's BOOT button while plugging in the cable, then run the command again. The XIAO ESP32-C6 can be flashed before or after it is soldered to the Carrier Board.
Sampled Clip: The Clip melody plays a WAV file from a flash partition of its own (2.4 MB: about 25 s at 48 kHz or 75 s at 16 kHz, 16-bit mono). To replace it, write any PCM WAV file (8 or 16 bit, mono or stereo, any sample rate) to the partition; the device resamples it and keeps its network settings, so it does not need to be paired again:
python -m esptool --chip esp32c6 --port /dev/ttyACM0 --baud 460800 write-flash 0x1a1000 clip.wavMP3 Clip: To play an MP3 as the clip, convert it to a mono WAV with ffmpeg and write it to the partition (the first two commands). -map_metadata -1 leaves out the MP3's tags, because the device does not accept a WAV with long tags and plays Error instead; -t 25 keeps the first 25 seconds. If the clip is too quiet, read the max_volume of the same 25 seconds with the volumedetect command, convert again with volume set to -1 minus that reading, which puts the peak 1 dB below full scale (a reading of -8.4 dB gives -1 - (-8.4) = 7.4 dB), and write the new file:
ffmpeg -i input.mp3 -map_metadata -1 -ac 1 -ar 48000 -t 25 clip.wav
python -m esptool --chip esp32c6 --port /dev/ttyACM0 --baud 460800 write-flash 0x1a1000 clip.wav
ffmpeg -i input.mp3 -t 25 -af "aformat=channel_layouts=mono,volumedetect" -f null -
ffmpeg -i input.mp3 -map_metadata -1 -af "volume=7.4dB" -ac 1 -ar 48000 -t 25 clip.wavZigbee2MQTT: Use the Audio_Notification.mjs external converter in Zigbee2MQTT.
Home Assistant (ZHA): Use the Audio_Notification.py quirk (quirks v2) in the Zigbee Home Automation integration. Copy the file into the custom quirks folder set with custom_quirks_path in the zha section of configuration.yaml, restart Home Assistant, and then pair the device. The quirk is not needed when the device is connected through Zigbee2MQTT.
Rename both Audio_Notification.mjs.txt to Audio_Notification.mjs and Audio_Notification.py.txt to Audio_Notification.py.
The quirk is written for Home Assistant 2026.8 or later. In Home Assistant the device appears as a switch plus the Volume, Melody and Repeat settings, whether it is connected through ZHA or through Zigbee2MQTT. In the Zigbee2MQTT device page the same values appear as state, volume, melody doorbell, chime, bell, alert, alarm, success, error, symphony_5, fur_elise, clip) and repeat.
Device Usage
Connect Device to Zigbee Network: After flashing the software, power on the device to start the connection process. In Zigbee2MQTT, select Permit Join to allow the device to connect to the Zigbee network. The XIAO's built-in LED blinks until the connection completes, then turns off. If you need to reconnect the device, remove the base and press and hold the BOOT button for more than 3 seconds; this also restores the default volume, melody and repeat count.
Play: Switching the device ON plays the selected melody at the set volume; switching it OFF stops it at once. When the melody has played its repeats the device switches itself OFF and reports the change, so an automation can simply turn it on and forget it. A melody chosen while one is playing starts at once, and a volume change takes effect immediately.
Volume: Set the Volume from 0 to 100 %. The scale is even in loudness: every step is 0.4 dB, so 100 % is about 82 dB at 1 m (as loud as a doorbell), 50 % about 62 dB (a normal conversation) and 1 % about 42 dB; 0 mutes the device. The default is 50 %.
Melody: Pick one of Doorbell, Chime, Bell, Alert, Alarm, Success, Error, Symphony 5, Fur Elise and Clip. The first seven are synthesized bell and tone sequences built into the firmware; Symphony 5 is the opening motif of Beethoven's Symphony No. 5 and Fur Elise the opening of his Für Elise, about 12 seconds long; Clip plays the sampled WAV from the device's flash (the default clip is a two-tone chime). The default is Doorbell.
Repeat: Set Repeat to 1 to play the melody once (the default), to 2 through 10 to play it that many times with a short pause between plays, or to 0 to play it over and over until the device is switched OFF.
Identify: Identify from Zigbee2MQTT or Home Assistant plays the chime once and blinks the XIAO's LED for the requested time.
The device keeps the volume, the melody and the repeat count across power cycles; it always starts silent. It is a Zigbee router: it relays traffic for other devices and should stay plugged in.