SP2ALERT
POTA / SOTA スポット通知
Free · Designed for iPad. Not verified for macOS.
SP2ALERT is an alert app for amateur radio operators that delivers real-time push notifications for new POTA (Parks on the Air) and SOTA (Summits on the Air) spots.
■ POTA / SOTA Spot Alerts
Automatically detects new spots and sends push notifications — even when the app is in the background.
■ Three Alert Modes (foreground only)
• CW Vibration — vibrates in Morse code pattern (adjustable WPM and amplitude)
• CW Tone — plays Morse code through the speaker (300–1500 Hz pitch)
• Voice — reads spot information aloud (phonetic alphabet supported)
■ Flexible Filtering
• Filter by band and mode (all bands from 160m to 13cm supported)
• Filter by POTA program (JP, K, VK, etc.) or SOTA association
• Include/exclude specific callsigns, park references, or summit references
• Save and switch between multiple named presets
■ Hunt / Chase Management
• Import POTA Hunt and SOTA Chase history via CSV
• Alert only for unworked parks and summits
• Multi-location activations (same operator at multiple parks) are always alerted even if one park is already hunted
■ Notification Controls
• Configurable polling interval
• Alert time window (e.g. 7:00–22:59 only)
• Re-alert interval
• Alert expiry timer
• Additional alert on frequency/mode change
■ English / Japanese Localization
The UI automatically switches between English and Japanese based on your device language setting.
【iOS Limitations】
Background operation is limited to notification banners and sounds. CW tone, voice, and vibration alerts only work while the app is in the foreground. Background polling timing is controlled by iOS and may be delayed beyond the configured interval.
more Handling the issue where some ACT data cannot be retrieved.
1.04 3d ago
### Bug Fix: Unvisited states incorrectly shown as "done" on POTA Achievement Map (root cause fix)
This is a root-cause fix for an issue that persisted after the partial fix in v1.02.
- **Symptom**: States such as ND (North Dakota) and SD (South Dakota) appeared colored (done) on the US POTA Achievement Map even though the user had not hunted any parks there
- **Root Cause (iOS)**: In the hunt map builder (`buildAndOpenMap`), bare park references (e.g. `"US-1234"`) were added to the filter set for every hunted park, regardless of whether location data (`hasc`) was present. As a result, a park hunted in US-MN that also appears in the POTA API's park list for US-ND (e.g. a border park spanning MN and ND) was incorrectly counted as a done hunt for North Dakota
- **Fix**: Parks that have location data (`hasc`) are now matched only at their recorded location. Only parks with no location data use a bare-reference fallback that can match any location
- **Scope**: All programs and all countries (any country with parks spanning administrative boundaries could exhibit the same false positive — this fix applies universally)
- **Android**: Not affected — Android computes done counts by directly assigning each park to its hasc location bucket, so cross-region contamination cannot occur
1.03 4d ago
What's new in v1.02
• Fixed a bug where hunted parks were incorrectly shown as unworked ("未Hunt") in notifications when hunt data was imported from the POTA API. The "Notify unworked only" filter was also affected.
• Fixed a bug where unvisited states/regions appeared colored on the POTA Achievement Map. Multi-location parks spanning multiple states were incorrectly coloring states the user had not physically visited.
• Fixed a bug where some regions in Denmark, Finland, Italy, France, Spain, Poland, Czech Republic, Romania, Bulgaria, Croatia, Turkey, and South Africa were not correctly colored on the POTA Achievement Map even after being hunted.
1.02 5d ago
### SOTA Notifications: Overwrite by Callsign + Summit (aligned with POTA behavior)
Changed the notification key for SOTA spots from summit-only to **callsign + summit**.
- Different stations operating from the same summit now each get their own notification slot
- Updated spots from the same station (frequency/mode changes) overwrite the existing notification
- Now consistent with POTA's per-activator-per-park notification management
### SOTA Notifications: Re-notify on Frequency/Mode Change (aligned with POTA behavior)
SOTA notifications are now re-triggered when an activator changes frequency or mode.
- Previously, only the first spot generated a notification; frequency/mode updates were silent
- Now consistent with POTA's frequency/mode change re-notification behavior
### Fix: Duplicate SOTA Spots in Display
When multiple spots exist for the same callsign and summit, only the latest one is now shown in the spot list.
1.01 6d ago
[Changes]
• SOTA spot fetching now uses the REST API (telnet cluster removed)
— spots load reliably every time
1.00 Sep 17
# SP2ALERT iOS v0.85 Release Notes
**Version**: 0.85 (Build 20)
**Release Date**: 2026-09-04
## New Features
### POTA Achievement Map — New Country Support
- **China (CN/BY)**: Province, municipality, and autonomous region coloring
- **Philippines (PH/DU)**: 81 province coloring
- **Thailand (TH/HS)**: 76 province coloring
All three use ArcGIS Living Atlas public GeoJSON, matched to POTA location codes via ISO_SUB fields.
### Location Progress Chart (New)
- Added a chart button (`chart.bar.xaxis`) to the Hunt/ACT list screen
- Shows per-location progress bars: hunted (green), partial (orange), unvisited (gray)
- Tap a location row → sheet listing done / partial / unvisited parks
- "Map" button in the progress view opens the Achievement Map
- Hunt / ACT mode toggle
- Filter by program (JP / US / KR, etc.)
- Immediately displays local data on launch; fetches API totals in the background
## Bug Fixes
### Splash Screen
- Fixed version string occasionally appearing blank
0.853 Sep 4
- Wifi RIG CTRL integration: tap a POTA/SOTA spot to auto-set frequency & mode in Wifi RIG CTRL (enable in Settings)
- Banner fix: banner now shows correctly when returning to the app after a background alert
- Banner fix: tapping a notification no longer overwrites the currently-playing alert banner
0.84 Aug 23
Fixed POTA location filter bugs.
- Corrected location codes: Chiba (JP-CB→JP-CH), Okayama (JP-OK→JP-OY)
- Location list now fetched dynamically from POTA API (all countries supported)
- Location picker now displays code + name together
0.830 Aug 21
- Updated SOTA spot API to new endpoint (api-db2.sota.org.uk)
- Fetch hunted park list directly via POTA API after login (CSV import also supported)
- Per-location hunt tracking for multi-location parks; unworked locations shown in spot list- Toggle between reference number order and count order (QSOs / activations)
- Ascending / descending for each
- Default: reference ascending
- Improved partial multi-location park detection (yellow pin now works without location filter)
0.82 Aug 19
### Bug Fixes
- **Fixed POTA hunt count showing fewer parks than actual** — Removed JS hook-based partial data capture via WKWebView (which only captured the first paginated response). Hunt data is now always fetched directly from the POTA `/hunter/{callsign}` API, resolving the issue where only 390 parks were shown instead of 440+.
- **Fixed per-location hunt tracking for multi-location parks** — Parks spanning multiple locations (e.g., JP-KN, JP-SZ, JP-TK) now track hunt counts independently per location (keyed by `ref|locationCode`). Previously, all locations showed the same total count.
- **Improved hunt count accuracy** — Now uses the `hunts` field (unique activations hunted) from POTA `/hunter/{callsign}` API instead of `qsos` (total QSO contacts).
- **Fixed unworked park list not appearing** — Fixed location picker not showing after program selection, and fixed the unworked filter incorrectly using bare park reference instead of per-location key (`ref|loc`).
### New Features
- **Unworked location display toggle** — Added an "Unworked Loc" toggle to the POTA spot list. When enabled, each spot row shows per-location hunt status for multi-location parks in blue text: "Unworked: JP-XX Hunted: JP-YY, JP-ZZ".
0.76 Aug 12
• English / Japanese localization — UI switches automatically based on device language
• Added 23cm (1240 MHz) and 13cm (2300 MHz) band filters
• Improved preset description text for clarity
0.75 Aug 11
## v0.74 — 2026-08-10
### 改善
- **スポット一覧の並び順を変更** — 強調表示 → 通常 → 強調QRT → QRT の順でグループ化。同グループ内は通知時刻の新しい順に並ぶ
0.74 Aug 10
## v0.72 (Build 5) — 2026-08-01
### バグ修正
- **POTAフィルタ条件が通知開封時に無効になる問題を修正** — 通知タップでアプリを開いた際に必ず最新のフィルタ設定で再フェッチするよう修正。フィルタ設定変更後に古いスポット一覧が表示される問題を解消
- **グローバル設定でのPOTAフィルタ条件が不完全だった問題を修正** — プリセットなし時のUIフィルタ(`matchPOTAGlobal`)において、ロケーション絞込み・コールサイン絞込み/除外・PARK絞込み/除外がバックグラウンド通知と不一致だった点を修正
- **バックグラウンド通知でSOTAフィルタ条件が不完全だった問題を修正** — プリセット・グローバル設定共に、コールサイン絞込み/除外・サミットRef絞込み/除外がバックグラウンド通知に反映されていなかった問題を修正
- **グローバルSOTA設定のバックグラウンド未適用を修正** — プリセットなし時のグローバルSOTA設定(コールサイン・サミットRef)がバックグラウンド通知に渡されていなかった問題を修正
---
## v0.7 (Build 3) — 2026-07-31
### 変更点
- **通知タップでアプリが前面に来ない問題を修正** — ロック画面・通知センターから通知をタップしたとき、アプリが確実に前面に起動するよう修正
- **通知タップ時のタブ自動切替** — POTAの通知をタップするとPOTAタブ、SOTAの通知をタップするとSOTAタブを表示
---
## v0.6 (Build 2) — 2026-07-31
内部テスト版。
### 主な機能
**POTA / SOTA スポット通知**
- POTA API・SOTA API を定期ポーリングして新着スポットをプッシュ通知
- バックグラウンド通知対応(通知バナー・通知音)※ポーリングタイミングはiOSシステムが制御
- 常時ONモード(画面オフ防止)でフォアグラウンド動作を維持可能
- 通知周期: 1〜60分で設定可能
- SOTA スポット有効時間フィルター(15分〜12時間)
**フィルタープリセット**
- バンド・モード・プログラム(POTA)/ アソシエーション(SOTA)でフィルタリング
- コールサイン 絞込み/除外、パーク/サミット 絞込み/除外
- POTA ロケーション絞込み(JP 都道府県、US 州など)
- 複数の名前付きプリセットを保存・切替・更新可能
- 最終ACT日数フィルター(X日以上アクティブでないアクティベーターを除外)
- プリセット一致スポットの強調表示
**Hunt / Chase ステータス管理**
- POTA Hunt 済みパーク CSV インポート対応
- SOTA Chase 済みサミット CSV インポート対応
- 未Hunt / 未Chase スポットのみ通知する「NEEDED_ONLY」モード
- マルチロケーションアクティベーター検出(同一運用者が複数公園でアクティベート中の場合、Hunt済みでも通知)
- 「NEEDED_ONLY_STRICT」モード(マルチロケーションも除外する厳密モード)
**アラートモード(フォアグラウンド時)**
- **CWバイブ** — モールス符号で振動。WPM・最大件数・開始ディレイを設定可能
- **CWトーン** — スピーカーでモールスサイン波を再生。音程(300〜1500 Hz)設定可能
- **音声読み上げ** — TTSでスポット情報を日本語読み上げ。フォネティックコード読み対応
- ※バックグラウンド時はCWバイブ・CWトーン・音声読み上げは動作しません(通知バナー・通知音のみ)
**プリセットごとの振動パターン**
- デフォルト・なし・短1回・短2回・長1回・短短長など定型パターン
- カスタムモールス(固定テキスト)
- スポット情報連動モールス(コールサイン・リファレンス・周波数・モード・バンドをトークンで組み合わせ)
**通知コントロール**
- 通知時間帯設定(例: 7:00〜22:00 のみ通知)
- 再通知間隔(0〜120分)
- アラート消滅タイマー(0〜120分)
- 周波数・モード変更で追加通知
- 起動時・復帰時アラート ON/OFF
### ビルド環境
- iOS 16.0+ / SwiftUI
- Xcode 16
---
## v0.55 (Build 1) — 2026-07-31
- バックグラウンド復帰時に通知が大量に溜まる問題を修正
- SOTA オフなのに通知が届く問題を修正
- `/` 付きコールサインが音声読み上げで読まれない問題を修正
- CW モードで `/` がモールス送出されない問題を修正(ITU 規定の `-..-. ` を追加)
- 起動時・復帰時アラートのオン/オフ設定を追加
0.72 Aug 5
Handling the issue where some ACT data cannot be retrieved.
more Version 1.04 3d ago
Data Not Collected The developer does not collect any data from this app.