Android app that sounds COLREGS Rule 35 fog signals — a practical tool for fog watch aboard any vessel.
Select your vessel type, press START, and the app plays the correct fog signal sequence at the legally mandated interval, running continuously as a foreground service so it keeps going while the screen is off or you switch apps. A countdown shows the time to the next signal.
| Vessel type | Signal | Rule |
|---|---|---|
| Power-driven vessel (making way) | 1 prolonged blast every 2 min | 35(a) |
| Power-driven vessel (stopped) | 2 prolonged blasts every 2 min | 35(b) |
| Sailing vessel | 1 prolonged + 2 short blasts every 2 min | 35(c) |
| Vessel not under command | 1 prolonged + 2 short blasts every 2 min | 35(c) |
| Restricted in ability to maneuver | 1 prolonged + 2 short blasts every 2 min | 35(c) |
| Constrained by draught | 1 prolonged + 2 short blasts every 2 min | 35(c) |
| Vessel engaged in fishing | 1 prolonged + 2 short blasts every 2 min | 35(c) |
| Vessel towing or pushing | 1 prolonged + 2 short blasts every 2 min | 35(c) |
| Last vessel being towed | 1 prolonged + 3 short blasts every 2 min | 35(d) |
| At anchor (vessel < 100 m) | Rapid bell (~5 s) every 1 min | 35(e) |
| At anchor (vessel ≥ 100 m) | Rapid bell + gong every 1 min | 35(e) |
| Vessel aground | 3 bell strokes + rapid bell + 3 bell strokes every 1 min | 35(f) |
| Pilot vessel on duty | 4 short blasts every 2 min | 35(i) |
Sounds are synthesized in real time via AudioTrack (44100 Hz PCM) — no audio files bundled:
- Horn blast — 220 Hz fundamental with harmonics, shaped with an attack/release envelope
- Bell stroke — 600 Hz with inharmonic partials and exponential decay
- Rapid bell — repeated 350 ms strikes over 5 seconds
- Min SDK: Android 8.0 (API 26)
- Language: Kotlin 2.1
- Build: AGP 8.10, Gradle 8.12
- Package:
fi.omoroi.foghorn - The signal loop runs in a foreground service (
mediaPlaybacktype), keeping the process alive and showing a persistent notification.
Open in Android Studio and run, or build from the command line:
./gradlew assembleDebugThis app is a navigational aid. The signals it produces are intended to comply with the International Regulations for Preventing Collisions at Sea (COLREGS) 1972. Always verify signal correctness against the current official text of the regulations.