Implement automatic page scaling feature with viewport adjustments
This commit is contained in:
311
chromium-setup/BUZZER-CONTROL-SIMPLE.md
Normal file
311
chromium-setup/BUZZER-CONTROL-SIMPLE.md
Normal file
@@ -0,0 +1,311 @@
|
||||
# Simple Buzzer Control Guide - reTerminal DM4
|
||||
|
||||
## Overview
|
||||
|
||||
The reTerminal DM4 has a built-in buzzer that can be controlled for alerts and notifications. The buzzer is located at the bottom right corner of the screen.
|
||||
|
||||
## Quick Start
|
||||
|
||||
### Turn Buzzer ON
|
||||
```bash
|
||||
echo 1 | sudo tee /sys/class/leds/usr-buzzer/brightness
|
||||
```
|
||||
|
||||
### Turn Buzzer OFF
|
||||
```bash
|
||||
echo 0 | sudo tee /sys/class/leds/usr-buzzer/brightness
|
||||
```
|
||||
|
||||
### Check Buzzer Status
|
||||
```bash
|
||||
cat /sys/class/leds/usr-buzzer/brightness
|
||||
```
|
||||
- `0` = OFF
|
||||
- `1` or `255` = ON
|
||||
|
||||
---
|
||||
|
||||
## Basic Control Methods
|
||||
|
||||
### Method 1: Command Line (Simple)
|
||||
|
||||
**Single Beep (0.2 seconds):**
|
||||
```bash
|
||||
echo 1 | sudo tee /sys/class/leds/usr-buzzer/brightness
|
||||
sleep 0.2
|
||||
echo 0 | sudo tee /sys/class/leds/usr-buzzer/brightness
|
||||
```
|
||||
|
||||
**Double Beep:**
|
||||
```bash
|
||||
for i in 1 2; do
|
||||
echo 1 | sudo tee /sys/class/leds/usr-buzzer/brightness
|
||||
sleep 0.1
|
||||
echo 0 | sudo tee /sys/class/leds/usr-buzzer/brightness
|
||||
sleep 0.1
|
||||
done
|
||||
```
|
||||
|
||||
**Long Beep (1 second):**
|
||||
```bash
|
||||
echo 1 | sudo tee /sys/class/leds/usr-buzzer/brightness
|
||||
sleep 1
|
||||
echo 0 | sudo tee /sys/class/leds/usr-buzzer/brightness
|
||||
```
|
||||
|
||||
### Method 2: Python Script
|
||||
|
||||
**Simple Python Control:**
|
||||
```python
|
||||
import subprocess
|
||||
import time
|
||||
|
||||
BUZZER_PATH = '/sys/class/leds/usr-buzzer/brightness'
|
||||
|
||||
def buzzer_on():
|
||||
"""Turn buzzer ON"""
|
||||
subprocess.run(['sudo', 'tee', BUZZER_PATH], input='1', text=True)
|
||||
|
||||
def buzzer_off():
|
||||
"""Turn buzzer OFF"""
|
||||
subprocess.run(['sudo', 'tee', BUZZER_PATH], input='0', text=True)
|
||||
|
||||
def beep(duration=0.2):
|
||||
"""Play a beep for specified duration (in seconds)"""
|
||||
buzzer_on()
|
||||
time.sleep(duration)
|
||||
buzzer_off()
|
||||
|
||||
# Usage
|
||||
beep(0.2) # Short beep
|
||||
beep(0.5) # Medium beep
|
||||
beep(1.0) # Long beep
|
||||
```
|
||||
|
||||
**Blinking Pattern:**
|
||||
```python
|
||||
def beep_pattern(count=3, on_time=0.1, off_time=0.1):
|
||||
"""Blink buzzer multiple times"""
|
||||
for _ in range(count):
|
||||
buzzer_on()
|
||||
time.sleep(on_time)
|
||||
buzzer_off()
|
||||
time.sleep(off_time)
|
||||
|
||||
# Usage
|
||||
beep_pattern(3, 0.1, 0.1) # 3 quick beeps
|
||||
```
|
||||
|
||||
### Method 3: Bash Function
|
||||
|
||||
Add to your `~/.bashrc`:
|
||||
```bash
|
||||
buzzer() {
|
||||
local action=$1
|
||||
local duration=${2:-0.2}
|
||||
local BUZZER='/sys/class/leds/usr-buzzer/brightness'
|
||||
|
||||
case $action in
|
||||
on)
|
||||
echo 1 | sudo tee $BUZZER > /dev/null
|
||||
;;
|
||||
off)
|
||||
echo 0 | sudo tee $BUZZER > /dev/null
|
||||
;;
|
||||
beep)
|
||||
echo 1 | sudo tee $BUZZER > /dev/null
|
||||
sleep $duration
|
||||
echo 0 | sudo tee $BUZZER > /dev/null
|
||||
;;
|
||||
*)
|
||||
echo "Usage: buzzer {on|off|beep [duration]}"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
```
|
||||
|
||||
Then use:
|
||||
```bash
|
||||
buzzer on # Turn on
|
||||
buzzer off # Turn off
|
||||
buzzer beep 0.2 # Beep for 0.2 seconds
|
||||
buzzer beep 0.5 # Beep for 0.5 seconds
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Common Patterns
|
||||
|
||||
### Success Alert (2 short beeps)
|
||||
```bash
|
||||
for i in 1 2; do
|
||||
echo 1 | sudo tee /sys/class/leds/usr-buzzer/brightness
|
||||
sleep 0.1
|
||||
echo 0 | sudo tee /sys/class/leds/usr-buzzer/brightness
|
||||
sleep 0.1
|
||||
done
|
||||
```
|
||||
|
||||
### Error Alert (3 fast beeps)
|
||||
```bash
|
||||
for i in 1 2 3; do
|
||||
echo 1 | sudo tee /sys/class/leds/usr-buzzer/brightness
|
||||
sleep 0.05
|
||||
echo 0 | sudo tee /sys/class/leds/usr-buzzer/brightness
|
||||
sleep 0.05
|
||||
done
|
||||
```
|
||||
|
||||
### Warning Alert (1 long beep)
|
||||
```bash
|
||||
echo 1 | sudo tee /sys/class/leds/usr-buzzer/brightness
|
||||
sleep 0.5
|
||||
echo 0 | sudo tee /sys/class/leds/usr-buzzer/brightness
|
||||
```
|
||||
|
||||
### Notification (1 short beep)
|
||||
```bash
|
||||
echo 1 | sudo tee /sys/class/leds/usr-buzzer/brightness
|
||||
sleep 0.2
|
||||
echo 0 | sudo tee /sys/class/leds/usr-buzzer/brightness
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Using the Test Script
|
||||
|
||||
A test script is available at `/tmp/test_buzzer.sh` on the device:
|
||||
|
||||
```bash
|
||||
# Run the test script
|
||||
ssh guard "/tmp/test_buzzer.sh"
|
||||
```
|
||||
|
||||
Or copy and run locally:
|
||||
```bash
|
||||
scp guard:/tmp/test_buzzer.sh ./
|
||||
chmod +x test_buzzer.sh
|
||||
./test_buzzer.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Important Notes
|
||||
|
||||
1. **Requires sudo**: All buzzer control commands require root privileges
|
||||
2. **Simple on/off**: The buzzer can only be turned ON or OFF - no volume or frequency control
|
||||
3. **Location**: Bottom right corner of the screen
|
||||
4. **Use case**: Alerts, notifications, system events
|
||||
|
||||
---
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Buzzer Not Working
|
||||
|
||||
1. **Check device exists:**
|
||||
```bash
|
||||
ls -la /sys/class/leds/usr-buzzer/
|
||||
```
|
||||
|
||||
2. **Test manually:**
|
||||
```bash
|
||||
echo 1 | sudo tee /sys/class/leds/usr-buzzer/brightness
|
||||
# Wait a moment - you should hear the buzzer
|
||||
echo 0 | sudo tee /sys/class/leds/usr-buzzer/brightness
|
||||
```
|
||||
|
||||
3. **Check permissions:**
|
||||
```bash
|
||||
ls -la /sys/class/leds/usr-buzzer/brightness
|
||||
# Should show: -rw-r--r-- (requires sudo to write)
|
||||
```
|
||||
|
||||
4. **Verify current state:**
|
||||
```bash
|
||||
cat /sys/class/leds/usr-buzzer/brightness
|
||||
# 0 = off, 1 or 255 = on
|
||||
```
|
||||
|
||||
### No Sound from Buzzer
|
||||
|
||||
- Check if buzzer is physically present and working
|
||||
- Verify the device is powered on
|
||||
- Try a longer duration (e.g., `sleep 1` instead of `sleep 0.2`)
|
||||
- Check kernel messages: `dmesg | grep -i buzzer`
|
||||
|
||||
---
|
||||
|
||||
## Examples
|
||||
|
||||
### Example 1: Simple Alert Function
|
||||
```bash
|
||||
#!/bin/bash
|
||||
alert() {
|
||||
echo 1 | sudo tee /sys/class/leds/usr-buzzer/brightness
|
||||
sleep 0.3
|
||||
echo 0 | sudo tee /sys/class/leds/usr-buzzer/brightness
|
||||
}
|
||||
|
||||
# Use it
|
||||
alert
|
||||
```
|
||||
|
||||
### Example 2: Python Notification System
|
||||
```python
|
||||
import subprocess
|
||||
import time
|
||||
|
||||
def notify(message_type):
|
||||
BUZZER = '/sys/class/leds/usr-buzzer/brightness'
|
||||
|
||||
patterns = {
|
||||
'info': (1, 0.1), # 1 beep, 0.1s
|
||||
'success': (2, 0.1), # 2 beeps, 0.1s each
|
||||
'error': (3, 0.05), # 3 fast beeps
|
||||
'warning': (1, 0.5), # 1 long beep
|
||||
}
|
||||
|
||||
count, duration = patterns.get(message_type, (1, 0.2))
|
||||
|
||||
for _ in range(count):
|
||||
subprocess.run(['sudo', 'tee', BUZZER], input='1', text=True)
|
||||
time.sleep(duration)
|
||||
subprocess.run(['sudo', 'tee', BUZZER], input='0', text=True)
|
||||
time.sleep(0.1)
|
||||
|
||||
# Usage
|
||||
notify('success') # 2 short beeps
|
||||
notify('error') # 3 fast beeps
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Quick Reference
|
||||
|
||||
| Action | Command |
|
||||
|--------|---------|
|
||||
| Turn ON | `echo 1 \| sudo tee /sys/class/leds/usr-buzzer/brightness` |
|
||||
| Turn OFF | `echo 0 \| sudo tee /sys/class/leds/usr-buzzer/brightness` |
|
||||
| Check Status | `cat /sys/class/leds/usr-buzzer/brightness` |
|
||||
| Single Beep | `echo 1 \| sudo tee /sys/class/leds/usr-buzzer/brightness && sleep 0.2 && echo 0 \| sudo tee /sys/class/leds/usr-buzzer/brightness` |
|
||||
|
||||
---
|
||||
|
||||
## Related Documentation
|
||||
|
||||
- `BUZZER-TEST-GUIDE.md` - Detailed testing guide
|
||||
- `FLASK-BUZZER-CONTROL.md` - Flask web API for buzzer control
|
||||
- `starwars_buzzer.sh` - Star Wars theme example script
|
||||
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
The buzzer is simple to control:
|
||||
1. **Path**: `/sys/class/leds/usr-buzzer/brightness`
|
||||
2. **Values**: `0` = OFF, `1` = ON
|
||||
3. **Requires**: `sudo` privileges
|
||||
4. **Control**: Write `1` to turn on, `0` to turn off
|
||||
|
||||
That's it! Simple and straightforward.
|
||||
Reference in New Issue
Block a user