AP_PERIPH Mateksys L431 : Buzzer Pin always ON if NTF_BUZZ_PIN>0 & Strange BZ pin waveform


My setup is as following:

  • FC : Mateksys H743-MINI (running copter-bdshot 4.3.3), with this settings

NTF_BUZZ_TYPES 5 (do means PIN + DroneCan active)

  • AP_PERIPH : CAN NODE L431 (running stable 1.4.x or lastet 1.5.x), with this settings:

NTF_BUZZ_PIN = 32 ( was -1 by default)

Some other information AP_PERIPH L341:

  • NeoLed on pin SERVO 5 is working OK
  • GPS & Compass are working OK, compass calibration done.

case 1 : NTF_BUZZ_TYPES = 0

  • On AP_PERIPH reboot , I get no sound while booting L431.
  • At FC reboot/startup, I can ear the boot melody on AP_PERIPH L431 , so the Buzzer wiring is OK. When playing the FC boot melody, i can seen the waveform on the BZ- PIN of L431, showing power peaks at each rise of the curve, which explain why i can ear the melody.

BTW, I can’t seen the melody CAN command using drone can gui → bus monitor, since my FC is rebooting… [Edit : expected since play_tone(AP_NOTIFY_TONE_STARTUP) is called from AP_PERIPH boot]

After the boot melody is played, no tone is audible (uavcan.equipment.indication.beepcommand is doing no audible sound, generated from LOST_BEEP on FC+RC). But, what is really wierd is that i can still see the expected tone the waveform in my scope, BUT WITHOUT POWER PEAK !!! suggesting fewer power is sent to the buzzer. Maybe the STM32 pin driving the buzzer (transistor/mosfet) is sending far less voltage to the driver than during the melody tone.

Anyway, NTF_BUZZ_TYPES=0 should give no sound at all, so this result is not expected (I am right ?).

case 2 : NTF_BUZZ_TYPES = 1 or 5 or 7
if NTF_BUZZ_TYPES is equal to 1 or any value above, I get a permament ON state atfer AP_PERIPH boot (BZ-=0V, constant value, seen with a scope) which gives a loudy buzzer sound.

I hope it will help someone to trigger the root cause…
Does anyone has a clue or a more testing procedure to be done in mind ?


I cannot get the buzzer to work on my Matek L431-GPS using periph firmware

Do you mean , it is not possible ? or It should work ? what is your setup ?
Do you have other board is which it do works ?

By the way you should ear the AP_NOTIFY_TONE_STARTUP is played at AP_PERIPH startup ( in the end of AP_ToneAlarm::init() )

It should work. Probably just something to do with my buzzer.

Ok i will do more testing with other model of AP_Periph board on my side.

In my case the buzzer is working for sure, since i can ear the startup melody from AP_Periph boot sequence.

Nevertheless, I still think this is a firmware issue.