Skip to content

Commit df62718

Browse files
committed
Update project configuration and documentation: Modify version codes, streamline paths, and add installation and quick start guides for better user onboarding.
1 parent 28908a9 commit df62718

File tree

6 files changed

+267
-11
lines changed

6 files changed

+267
-11
lines changed

android/local.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ sdk.dir=/opt/homebrew/share/android-commandlinetools
22
flutter.sdk=/opt/homebrew/share/flutter
33
flutter.buildMode=release
44
flutter.versionName=1.0.0
5-
flutter.versionCode=1
5+
flutter.versionCode=1769658133
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
# Installation
2+
3+
MeshMapper is available for Android, iOS, and web browsers. Choose your platform below for installation instructions.
4+
5+
## Android
6+
7+
### From Google Play Store
8+
9+
1. Open the **Google Play Store** on your Android device
10+
2. Search for "MeshMapper"
11+
3. Tap **Install**
12+
4. Once installed, tap **Open** to launch the app
13+
14+
### Requirements
15+
16+
- Android 5.0 (Lollipop) or newer
17+
- Bluetooth Low Energy (BLE) support
18+
- GPS/Location services
19+
20+
### Permissions
21+
22+
When you first open MeshMapper, you'll be asked to grant these permissions:
23+
24+
- **Bluetooth** - Required to connect to your MeshCore device
25+
- **Location** - Required for GPS tracking and Bluetooth scanning on Android
26+
- **Background Location** (optional) - Allows continuous tracking while the app is minimized
27+
28+
## iOS
29+
30+
### From the App Store
31+
32+
1. Open the **App Store** on your iPhone or iPad
33+
2. Search for "MeshMapper"
34+
3. Tap **Get** to download
35+
4. Once installed, tap **Open** to launch the app
36+
37+
### Requirements
38+
39+
- iOS 12.0 or newer
40+
- iPhone 6s or later (or equivalent iPad)
41+
- Bluetooth Low Energy (BLE) support
42+
43+
### Permissions
44+
45+
When you first open MeshMapper, you'll be asked to grant these permissions:
46+
47+
- **Bluetooth** - Required to connect to your MeshCore device
48+
- **Location** - Required for GPS tracking
49+
50+
Tap "Allow" when prompted to ensure full functionality.
51+
52+
## Web Browser
53+
54+
MeshMapper also runs in your web browser, which is great for quick testing or if you don't want to install an app.
55+
56+
### Supported Browsers
57+
58+
- **Google Chrome** (recommended)
59+
- **Microsoft Edge**
60+
61+
**Note:** Safari is not supported because it doesn't include the Web Bluetooth feature that MeshMapper needs.
62+
63+
### How to Use
64+
65+
1. Open Chrome or Edge on your computer
66+
2. Navigate to the MeshMapper web app URL
67+
3. When prompted, allow Bluetooth and Location access
68+
69+
### Web Limitations
70+
71+
The web version works well but has a few limitations compared to the mobile apps:
72+
73+
- Must keep the browser tab open and active
74+
- May require you to re-connect your device if the page refreshes
75+
- No background operation
76+
77+
## After Installation
78+
79+
Once installed, head to the [Quick Start Guide](quick-start.md) to connect your first device and start wardriving!
80+
81+
## Updating the App
82+
83+
MeshMapper is regularly updated with improvements and bug fixes. We recommend keeping automatic updates enabled:
84+
85+
- **Android**: Updates install automatically from Google Play
86+
- **iOS**: Updates install automatically from the App Store
87+
- **Web**: Always uses the latest version automatically
88+
89+
---
90+
91+
**Next:** [Quick Start Guide](quick-start.md)
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
# Quick Start Guide
2+
3+
Get up and running with MeshMapper in just a few minutes. This guide walks you through your first connection and ping.
4+
5+
## Before You Begin
6+
7+
Make sure you have:
8+
9+
- MeshMapper installed on your device ([Installation Guide](installation.md))
10+
- A MeshCore-compatible radio device, powered on
11+
- Bluetooth enabled on your phone/tablet
12+
- GPS/Location services enabled
13+
- You're within the service area (150km of Ottawa)
14+
15+
## Step 1: Open MeshMapper
16+
17+
Launch the MeshMapper app. You'll see the main screen with a map and connection panel.
18+
19+
## Step 2: Scan for Your Device
20+
21+
1. Tap the **Bluetooth icon** in the top bar (or the "Scan" button on the connection panel)
22+
2. MeshMapper will search for nearby MeshCore devices
23+
3. Wait a few seconds for your device to appear in the list
24+
25+
**Tip:** Make sure your MeshCore radio is powered on and not connected to another app.
26+
27+
## Step 3: Connect
28+
29+
1. Tap your device name in the scan results
30+
2. MeshMapper will start the connection process
31+
3. Watch the status messages as the app:
32+
- Connects via Bluetooth
33+
- Identifies your device model
34+
- Syncs the time
35+
- Sets up the wardriving channel
36+
- Acquires GPS position
37+
38+
This takes about 5-10 seconds. When complete, you'll see "Connected" status.
39+
40+
## Step 4: Wait for GPS Lock
41+
42+
Before you can send pings, MeshMapper needs a GPS fix:
43+
44+
- **Red GPS indicator** = No GPS signal yet
45+
- **Yellow GPS indicator** = Acquiring position
46+
- **Green GPS indicator** = GPS locked and ready
47+
48+
If you're indoors, try moving near a window or stepping outside for better GPS reception.
49+
50+
## Step 5: Send Your First Ping
51+
52+
Once GPS is green:
53+
54+
1. Tap the **PING** button
55+
2. MeshMapper sends a ping to the mesh network
56+
3. The app listens for 7 seconds for repeater responses
57+
4. Your ping appears as a green marker on the map
58+
5. Any repeater responses appear as colored markers
59+
60+
Congratulations! You've just contributed your first data point to the MeshMapper community map!
61+
62+
## Step 6: Enable Auto-Ping (Optional)
63+
64+
For hands-free operation while walking or driving:
65+
66+
1. Tap the **Auto** toggle to enable auto-ping mode
67+
2. MeshMapper will automatically send pings as you move
68+
3. A ping is sent every time you travel 25 meters
69+
70+
This is perfect for mapping coverage while you go about your day.
71+
72+
## Understanding the Display
73+
74+
### Status Bar
75+
76+
- **Bluetooth icon** - Connection status (gray = disconnected, blue = connected)
77+
- **GPS indicator** - GPS status and accuracy
78+
- **Signal strength** - Last received signal quality
79+
80+
### Map Markers
81+
82+
- **Green markers** - Your TX pings (what you sent)
83+
- **Colored markers** - RX responses from repeaters
84+
- **Blue circle** - Your current position
85+
86+
### Stats Panel
87+
88+
- **TX Count** - Number of pings you've sent
89+
- **RX Count** - Number of repeater responses received
90+
- **Queue** - Data waiting to upload to the server
91+
92+
## Disconnecting
93+
94+
When you're done wardriving:
95+
96+
1. Tap the **Disconnect** button (or Bluetooth icon)
97+
2. MeshMapper will:
98+
- Upload any remaining data
99+
- Release your API slot
100+
- Close the Bluetooth connection
101+
102+
Your data is saved locally if upload fails, and will be sent automatically next time you connect.
103+
104+
## Next Steps
105+
106+
Now that you know the basics:
107+
108+
- Learn about [Connecting to Your Device](../guides/connecting.md) in detail
109+
- Understand [Wardriving Basics](../guides/wardriving.md)
110+
- Explore the [Map Features](../guides/map.md)
111+
- Set up [Auto-Ping Mode](../guides/auto-ping.md) for efficient mapping
112+
113+
---
114+
115+
**Having trouble?** Check the [Troubleshooting Guide](../troubleshooting/common-issues.md) for solutions to common issues.

docs/wiki/index.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# MeshMapper User Guide
2+
3+
Welcome to MeshMapper! This app helps you contribute to community mesh network mapping by sending GPS-tagged pings from your MeshCore device and tracking repeater coverage in your area.
4+
5+
## What is MeshMapper?
6+
7+
MeshMapper is a wardriving app that works with MeshCore mesh network devices. When you're out and about with your MeshCore radio, MeshMapper sends out pings and listens for responses from nearby repeaters. This data gets uploaded to the MeshMapper community map, helping everyone understand mesh network coverage in the region.
8+
9+
## Getting Started
10+
11+
New to MeshMapper? Start here:
12+
13+
- [Installation](getting-started/installation.md) - How to install the app on your device
14+
- [Quick Start Guide](getting-started/quick-start.md) - Get up and running in 5 minutes
15+
16+
## Feature Guides
17+
18+
Learn how to use all of MeshMapper's features:
19+
20+
- [Connecting to Your Device](guides/connecting.md) - Pair your MeshCore radio with the app
21+
- [Wardriving Basics](guides/wardriving.md) - How to send pings and collect coverage data
22+
- [Using the Map](guides/map.md) - Understanding map markers and your coverage area
23+
- [Auto-Ping Mode](guides/auto-ping.md) - Hands-free wardriving while you move
24+
25+
## Troubleshooting
26+
27+
Having issues? Find solutions here:
28+
29+
- [Common Issues](troubleshooting/common-issues.md) - Solutions to frequent problems
30+
- [FAQ](troubleshooting/faq.md) - Answers to common questions
31+
32+
## Supported Platforms
33+
34+
MeshMapper runs on:
35+
36+
- **Android** - Version 5.0 (Lollipop) and newer
37+
- **iOS** - Version 12.0 and newer
38+
- **Web** - Chrome or Edge browsers (Safari is not supported)
39+
40+
## Supported Devices
41+
42+
MeshMapper works with 30+ MeshCore device variants including radios from Ikoka, Heltec, RAK, LilyGo, Seeed, and more. The app automatically recognizes your device and configures the correct power level reporting.
43+
44+
## Service Area
45+
46+
MeshMapper currently operates within a 150km radius of Ottawa, Canada. This boundary is enforced to ensure data quality for the community map.
47+
48+
---
49+
50+
Need help? Check the [Troubleshooting](troubleshooting/common-issues.md) section or visit the [MeshMapper community](https://meshmapper.net).

ios/Flutter/Generated.xcconfig

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
FLUTTER_ROOT=/opt/homebrew/share/flutter
33
FLUTTER_APPLICATION_PATH=/Users/schnobbc/Documents/Github/MeshMapper_Flutter_App
44
COCOAPODS_PARALLEL_CODE_SIGN=true
5-
FLUTTER_TARGET=/Users/schnobbc/Documents/Github/MeshMapper_Flutter_App/lib/main.dart
5+
FLUTTER_TARGET=lib/main.dart
66
FLUTTER_BUILD_DIR=build
77
FLUTTER_BUILD_NAME=1.0.0
8-
FLUTTER_BUILD_NUMBER=1
8+
FLUTTER_BUILD_NUMBER=1769658133
99
EXCLUDED_ARCHS[sdk=iphonesimulator*]=i386
1010
EXCLUDED_ARCHS[sdk=iphoneos*]=armv7
11-
DART_DEFINES=RkxVVFRFUl9WRVJTSU9OPTMuMzguNw==,RkxVVFRFUl9DSEFOTkVMPXN0YWJsZQ==,RkxVVFRFUl9HSVRfVVJMPWh0dHBzOi8vZ2l0aHViLmNvbS9mbHV0dGVyL2ZsdXR0ZXIuZ2l0,RkxVVFRFUl9GUkFNRVdPUktfUkVWSVNJT049M2I2MmVmYzJhMw==,RkxVVFRFUl9FTkdJTkVfUkVWSVNJT049NzhmYzMwMTJlNA==,RkxVVFRFUl9EQVJUX1ZFUlNJT049My4xMC43
11+
DART_DEFINES=QVBQX1ZFUlNJT049QVBQLTE3Njk2NTgxMzM=,RkxVVFRFUl9WRVJTSU9OPTMuMzguNw==,RkxVVFRFUl9DSEFOTkVMPXN0YWJsZQ==,RkxVVFRFUl9HSVRfVVJMPWh0dHBzOi8vZ2l0aHViLmNvbS9mbHV0dGVyL2ZsdXR0ZXIuZ2l0,RkxVVFRFUl9GUkFNRVdPUktfUkVWSVNJT049M2I2MmVmYzJhMw==,RkxVVFRFUl9FTkdJTkVfUkVWSVNJT049NzhmYzMwMTJlNA==,RkxVVFRFUl9EQVJUX1ZFUlNJT049My4xMC43
1212
DART_OBFUSCATION=false
13-
TRACK_WIDGET_CREATION=true
14-
TREE_SHAKE_ICONS=false
13+
TRACK_WIDGET_CREATION=false
14+
TREE_SHAKE_ICONS=true
1515
PACKAGE_CONFIG=/Users/schnobbc/Documents/Github/MeshMapper_Flutter_App/.dart_tool/package_config.json

ios/Flutter/flutter_export_environment.sh

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
export "FLUTTER_ROOT=/opt/homebrew/share/flutter"
44
export "FLUTTER_APPLICATION_PATH=/Users/schnobbc/Documents/Github/MeshMapper_Flutter_App"
55
export "COCOAPODS_PARALLEL_CODE_SIGN=true"
6-
export "FLUTTER_TARGET=/Users/schnobbc/Documents/Github/MeshMapper_Flutter_App/lib/main.dart"
6+
export "FLUTTER_TARGET=lib/main.dart"
77
export "FLUTTER_BUILD_DIR=build"
88
export "FLUTTER_BUILD_NAME=1.0.0"
9-
export "FLUTTER_BUILD_NUMBER=1"
10-
export "DART_DEFINES=RkxVVFRFUl9WRVJTSU9OPTMuMzguNw==,RkxVVFRFUl9DSEFOTkVMPXN0YWJsZQ==,RkxVVFRFUl9HSVRfVVJMPWh0dHBzOi8vZ2l0aHViLmNvbS9mbHV0dGVyL2ZsdXR0ZXIuZ2l0,RkxVVFRFUl9GUkFNRVdPUktfUkVWSVNJT049M2I2MmVmYzJhMw==,RkxVVFRFUl9FTkdJTkVfUkVWSVNJT049NzhmYzMwMTJlNA==,RkxVVFRFUl9EQVJUX1ZFUlNJT049My4xMC43"
9+
export "FLUTTER_BUILD_NUMBER=1769658133"
10+
export "DART_DEFINES=QVBQX1ZFUlNJT049QVBQLTE3Njk2NTgxMzM=,RkxVVFRFUl9WRVJTSU9OPTMuMzguNw==,RkxVVFRFUl9DSEFOTkVMPXN0YWJsZQ==,RkxVVFRFUl9HSVRfVVJMPWh0dHBzOi8vZ2l0aHViLmNvbS9mbHV0dGVyL2ZsdXR0ZXIuZ2l0,RkxVVFRFUl9GUkFNRVdPUktfUkVWSVNJT049M2I2MmVmYzJhMw==,RkxVVFRFUl9FTkdJTkVfUkVWSVNJT049NzhmYzMwMTJlNA==,RkxVVFRFUl9EQVJUX1ZFUlNJT049My4xMC43"
1111
export "DART_OBFUSCATION=false"
12-
export "TRACK_WIDGET_CREATION=true"
13-
export "TREE_SHAKE_ICONS=false"
12+
export "TRACK_WIDGET_CREATION=false"
13+
export "TREE_SHAKE_ICONS=true"
1414
export "PACKAGE_CONFIG=/Users/schnobbc/Documents/Github/MeshMapper_Flutter_App/.dart_tool/package_config.json"

0 commit comments

Comments
 (0)