A Python CLI tool to calibrate Mondaine Stop2Go Bluetooth wall clocks via BLE, replacing the official Android/iOS app.
The BLE protocol was determined through clean-room interoperability analysis of the official companion app, for the sole purpose of enabling users to control hardware they have lawfully purchased.
| Model | Connection | Supported |
|---|---|---|
| GGM.D069 (Stop2Go Bluetooth) | BLE | Yes |
Other Mondaine Bluetooth clocks with MMT_CLOCK BLE name |
BLE | Likely |
| GGM.D078 (Stop2Go WiFi) | WiFi | No |
- Python 3.12+
- uv
- Bluetooth-enabled computer within range (~10m)
BlueZ must be installed and running:
sudo apt install bluez # Ubuntu/Debian
sudo systemctl enable --now bluetooth # Start and enable on bootgit clone https://github.com/llama1969/mondaine-sync.git
cd mondaine-sync
uv sync# Scan for nearby clocks
uv run python -m mondaine_sync scan
# Sync time to current local time
uv run python -m mondaine_sync sync
# Read device info and room temperature
uv run python -m mondaine_sync info
# Toggle Stop2Go (58s sweep + 2s pause at 12 o'clock)
uv run python -m mondaine_sync stop2go on
uv run python -m mondaine_sync stop2go off
# Specify clock address to skip scanning
# macOS: CoreBluetooth UUID
uv run python -m mondaine_sync -a B45101D5-60A1-7D6E-5E16-3754A9DB6B69 sync
# Linux: MAC address
uv run python -m mondaine_sync -a C8:20:98:F5:9C:72 sync
# Debug output
uv run python -m mondaine_sync -v syncFind your clock address first:
uv run python -m mondaine_sync scanThen add to crontab (crontab -e):
# Sync every 6 hours
0 */6 * * * cd /path/to/mondaine-sync && uv run python -m mondaine_sync -a YOUR_CLOCK_ADDRESS sync
# Sync once a day at 3:00 AM
0 3 * * * cd /path/to/mondaine-sync && uv run python -m mondaine_sync -a YOUR_CLOCK_ADDRESS syncTip: Without
-a, the tool scans for ~10 seconds each time to find the clock. Specifying the address skips scanning and connects directly, which is faster and more reliable for cron jobs.
The BLE protocol used by this project was determined through clean-room interoperability analysis of the official Mondaine companion app (com.mmtswissconnect.android.mondaineclock), for the sole purpose of achieving interoperability with the Mondaine Stop2Go Bluetooth wall clock hardware that users have lawfully purchased.
- No copyrighted source code was copied, reproduced, or distributed. Only the functional BLE protocol (UUIDs, command bytes, data formats) -- which constitutes an interface specification necessary for interoperability -- was documented and reimplemented independently in Python.
- This type of reverse engineering for interoperability purposes is generally permitted under:
- EU Directive 2009/24/EC, Article 6 (decompilation for interoperability)
- US Copyright Act, 17 U.S.C. 1201(f) (reverse engineering for interoperability)
- Swiss Copyright Act (Urheberrechtsgesetz), Art. 21 (reverse engineering of software interfaces)
Mondaine, Stop2Go, SBB, and Swiss Railway Clock are trademarks of Mondaine Watch Ltd. and/or SBB AG. MMT and Swiss Connect are trademarks of Manufacture Modules Technologies Sarl. This project is not affiliated with, endorsed by, or sponsored by any of these companies.
This software is provided "as is", without warranty of any kind. Use at your own risk. The authors are not responsible for any damage to your clock or any other equipment. See LICENSE for details.
MIT