App privacy

Applies to: TrainControl for iOS, iPadOS, macOS and Android, and the web app at app.traincontrol.ca.


1. Summary

TrainControl runs entirely on your device and your local network.

  • No user account is required.
  • We do not collect, transmit or store any personal information on our servers.
  • Your locomotives, photos, functions and settings stay on your device.
  • The app communicates only with your TrainController command station, over your local Wi-Fi network.
  • We use no analytics, advertising, tracking or profiling tools.

The rest of this policy explains how this works and what your rights are.


2. Who we are

Controller of personal information:

TrainControl 2282 rue Aylwin Montréal, Québec, Canada, H1W 3C6

Person responsible for the protection of personal information (as required by Quebec's Act respecting the protection of personal information in the private sector, "Law 25"):

Baptiste Grenier Email : info@traincontrol.ca

For any question about this policy, write to info@traincontrol.ca.


3. Scope

This policy covers:

  • the native TrainControl app (iOS, iPadOS, macOS, Android);
  • the app.traincontrol.ca web app;
  • communication between these apps and the TrainController command station.

The traincontrol.ca online store (orders, payments, shipping) is covered by a separate policy, since it processes actual personal information. See section 11.


4. Information handled by the app

4.1 Data you create, stored on your device

Data Purpose Location
Locomotive name, DCC address, notes Identifying and controlling rolling stock Device (SwiftData / Room)
Imported locomotive photos Display in the interface Device (local database, compressed images)
Function icons and labels (F0–F28) Command customization Device
Train groups, consists, sequences Multi-unit operation and automation Device
CV values read or written Decoder programming Device
Settings (sound, haptics, language, display options) User preferences Device
Local IP address or mDNS name of the command station (e.g. traincontrol.local) Establishing the connection Device
Modules and positions in the Map view Layout representation Device

This data never leaves your device, except through a backup or sync service provided by your operating system (see 6.2).

4.2 Photo library

When you add a locomotive photo, the app uses the system photo picker. We do not access your full photo library: only the image you select is passed to the app, resized (200 × 200 px, JPEG) and stored in the app's local database. No location data or EXIF metadata is retained.

4.3 Local network

On iOS, iPadOS and macOS, the system asks for Local Network permission. It is required so the app can discover your TrainController (mDNS/Bonjour) and open a WebSocket connection to it. This permission gives us no internet access and no access to your other devices for collection purposes.

4.4 Notifications, Live Activities and Dynamic Island

On iOS, the app can display the current locomotive's status in Live Activities and on the Lock Screen. This information is generated and displayed locally; it does not pass through Apple's push notification servers or ours.

4.5 What we do not collect

We do not collect or process:

  • your name, email, phone number or mailing address (in the app);
  • your location;
  • your contacts, calendar, microphone or camera;
  • advertising identifiers (IDFA, AAID) — no App Tracking Transparency prompt is shown;
  • usage statistics, analytics events or tracking cookies;
  • browsing history.

We do not sell, rent or trade personal information. We perform no automated decision-making or profiling.


5. Network communication

5.1 With your TrainController

The app communicates with the command station over WebSocket (port 81) and HTTP REST (port 80) on your local Wi-Fi network. Messages contain only railroad commands: DCC address, speed, direction, function state, CV commands, current telemetry.

These exchanges take place unencrypted on your local network, like most home-automation protocols. They contain no personal information, but someone connected to the same Wi-Fi network could technically observe them. We recommend protecting your Wi-Fi network with a strong password (WPA2 or WPA3).

5.2 Firmware updates (OTA)

If you start a firmware update from the app, it may download a file from our distribution server. That request may appear in the server's technical logs together with your public IP address, the version requested and a timestamp. These logs are used only for security and troubleshooting, and are kept for at most 30 days.

5.3 No other outbound traffic

Apart from the case above, the app makes no connections to the internet.


6. Retention, backup and deletion

6.1 Retention

Your data is kept for as long as the app is installed. We set no remote retention period, because we do not hold the data.

6.2 Operating system backups

If you have enabled iCloud Backup, encrypted local backup (Finder/iTunes) or Google Backup, app data may be included. Those backups are governed by Apple's or Google's privacy policies, not ours. We have no access to them.

6.3 Deletion

  • Delete one item: remove the locomotive, group or photo directly in the app.
  • Delete everything: uninstall the app. All local data is erased with it.
  • Web app: clear your browser's local storage for app.traincontrol.ca.

7. Web app (app.traincontrol.ca)

The web app stores your locomotives and settings in your browser's local storage, on your device. No data is sent to a server.

The site is hosted on Cloudflare Pages. For security and network operation, the host may log technical data such as IP address, browser type and timestamp. We do not use these logs for analytics or marketing. See Cloudflare's privacy policy: https://www.cloudflare.com/privacypolicy/

The web app uses no tracking or advertising cookies.


8. Third-party providers

We integrate no third-party analytics, advertising or social media SDKs. The only third parties that may process data related to the app are:

Third party Role Data involved
Apple (App Store, TestFlight) Distribution, purchases, crash reports Aggregated App Analytics and diagnostic reports, only if you consented to share them with developers in your device settings
Google (Google Play) Distribution, purchases, crash reports Same, subject to your Android settings
Cloudflare Hosting of the web app and update files Technical logs (IP address, timestamp)

These providers may process data outside Quebec, including in the United States. Such transfers are governed by those providers' contractual commitments and privacy policies.

Any crash reports we can view are anonymized and aggregated by Apple or Google: they contain technical information (device model, OS version, stack trace) and cannot identify you.


9. Security

We apply measures appropriate to the (very low) sensitivity of the data involved:

  • no centralized personal data, therefore no database to breach;
  • on-device storage protected by operating system encryption and your device passcode;
  • communication limited to the local network;
  • no accounts, therefore no passwords to protect.

Known limitation: the link between the app and the command station is neither encrypted nor authenticated. Anyone with access to your Wi-Fi network could potentially control your layout. Do not connect the command station to a public or open shared network.

No system is completely secure; we cannot guarantee absolute security.


10. Your rights

Because we hold no personal information about you, you exercise most of your rights directly in the app: view, edit or delete your data at any time.

If you have sent us personal information through another channel (support email, store order), you have the right to:

  • Access your information;
  • Correct inaccurate or incomplete information;
  • Delete it;
  • Portability: receive it in a structured, commonly used technological format;
  • Withdraw consent;
  • De-indexing / cessation of dissemination, where the law provides for it.

How to exercise them: email info@traincontrol.ca with your request. We respond within 30 days. We may ask for reasonable verification of your identity.

Complaints:

California residents: we do not sell or share personal information as defined by the CCPA/CPRA, and we do not discriminate against users who exercise their privacy rights.


11. Online store and customer support

When you buy a TrainController on traincontrol.ca or contact us, we process the information needed for the transaction or the reply: name, shipping and billing address, email, phone number, order contents and message history.

  • The store runs on Shopify, acting as processor and host; payments are handled by Shopify Payments and the relevant payment providers. We never see or store full credit card numbers.
  • Order records are kept as long as accounting and tax obligations require (generally 7 years).
  • Support emails are kept for at most 24 months after the request is closed.
  • You receive our newsletter only if you subscribed; every message includes an unsubscribe link.

Shopify's privacy policy: https://www.shopify.com/legal/privacy


12. Children

TrainControl is not directed at children and knowingly collects no information from a child. Under Law 25, parental consent would be required for a child under 14; under COPPA (United States), for a child under 13. Since no data is collected, this situation does not arise. If you believe a child has sent us information through another channel, contact us and we will delete it.


13. App store privacy labels

Consistent with the above, our declaration on Apple's App Store and in Google Play's Data Safety section states: Data Not Collected.


14. Changes to this policy

We may update this policy to reflect product or legal developments. The last-updated date appears at the top. For material changes — in particular if the app were ever to collect personal information — we will notify you in the app or in release notes before the change takes effect.

Previous versions are available on request.


15. Contact us

TrainControl 2282 rue Aylwin Montréal, Québec, Canada H1W 3C6 Email: info@traincontrol.ca Website: https://traincontrol.ca

If there is any discrepancy between the French and English versions of this policy, the French version prevails.