{
    "key": "buzzer-passive",
    "kind": "actuator",
    "model": {
        "aliases": [
            "buzzer-passive"
        ],
        "device_class": "siren"
    },
    "driver": {
        "runtime": {
            "init": {
                "args": {
                    "pin": "{signal_pin}"
                },
                "class": "drivers.buzzer_passive.PassiveBuzzer"
            },
            "apt_packages": [],
            "pip_packages": [
                "rpi-lgpio"
            ],
            "python_module": "drivers.buzzer_passive"
        },
        "targets": [
            "raspberrypi"
        ],
        "verified": {
            "by": null,
            "os": null,
            "date": null,
            "board": null,
            "reviewed_by": null,
            "evidence_url": null
        },
        "interface": "pwm",
        "connection": {
            "pins": [
                {
                    "role": "signal",
                    "notes": "Requires a square wave at the desired pitch.",
                    "required": true
                }
            ],
            "supply_voltage": "3.3V or 5V",
            "level_shift_required": null
        },
        "constraints": {
            "warmup_seconds": null,
            "read_timeout_seconds": null,
            "min_read_interval_seconds": null
        },
        "failure_modes": [
            "Produces no sound from a steady level. It must be driven with a square wave at the target frequency.",
            "Software PWM jitters under load and the pitch wavers audibly. Hardware PWM channels are limited and are shared with other peripherals.",
            "Drive current at the top of its range exceeds a GPIO pin. Loud operation needs a transistor."
        ]
    },
    "source": "platform-seed",
    "status": "draft",
    "platform": {
        "name": "Passive Buzzer Module",
        "states": [
            {
                "label": "Beep",
                "command": "BEEP",
                "payload": "BEEP",
                "parameter": null,
                "sort_order": 1,
                "description": "Single short beep"
            },
            {
                "label": "Alarm",
                "command": "ALARM",
                "payload": "ALARM",
                "parameter": null,
                "sort_order": 2,
                "description": "Continuous alarm tone"
            },
            {
                "label": "Play Tone",
                "command": "TONE",
                "payload": "{\"frequency\": 1000, \"duration\": 500}",
                "parameter": {
                    "name": "frequency",
                    "required": true,
                    "data_type": "integer",
                    "range_max": 5000,
                    "range_min": 100,
                    "unit_symbol": "Hz"
                },
                "sort_order": 3,
                "description": "Play tone at specified frequency and duration. Payload: frequency in Hz and duration in ms"
            },
            {
                "label": "Off",
                "command": "OFF",
                "payload": "OFF",
                "parameter": null,
                "sort_order": 4,
                "description": "Stop buzzer"
            }
        ],
        "protocol": "pwm",
        "description": "Passive buzzer driven by PWM frequency. Produces tones at specified frequencies. 3.3V-5V GPIO controlled.",
        "manufacturer": null,
        "model_number": "BUZZER-PASSIVE",
        "actuator_type": "buzzer",
        "datasheet_url": null,
        "command_topic_suffix": "command/buzzer",
        "response_topic_suffix": "response/buzzer"
    },
    "revision": 1
}