Crew is a mobile app that combines a universal group voice intercom with shared locations on a map.
Crew is an independent project by its creator.
Crew is a mobile app that combines a universal group voice intercom with shared locations on a map.
Crew is an independent project by its creator.
Crew is born of the following observations:
Crew is freely available on Apple App Store and Google Play Store.
I am Christophe, a motorcycle enthusiast since 1988, licensed since 1998, and a software engineer in the San Francisco Bay Area and I am building Crew.
When you register with Crew using your Apple or Google account, Crew records your first name, last name, and email address. We use this for authentication purposes and might reach out using emails for marketing research or support. Your first and last name will be shared with other riders.
Note 1: In the demo ride, Sally (our bot) will receive your GPS and audio just like any other rider. It is running the same code as the app plus addons to run the voice agent. It needs audio in and out to engage with you. So it does receive your data.
Note 2: In the future, we're hoping to launch a virtual copilot agent that you can invite to your rides. This agent is powered by A.I. and will assist you and your crew during the ride in many different ways. So just like the Sally agent in demo ride, in order to provide value, this bot will receive your audio and GPS coordinates. Rest assured, as of today, since copilot is not available, when you join any ride you create or that was created by a friend of yours, it is only the participants of that ride that will receive audio and GPS data from you.
Yes! Crew has full CarPlay support with a rich map interface that is nearly identical to the phone version.
If your motorcycle has CarPlay, or if you're using it in your car, you get the complete Crew experience on your dashboard: the shared GPS map with all riders' positions, ride management, audio controls, and rider list.
The menu tab manages your rides.
The audio tab will show a red dot when the microphone is active. You can mute/unmute microphone and speaker. You can enter/leave private chats with other riders.
The riders tab lists all riders in the ride and those that are online.
Android Auto support is in development and looking promising. A working version using Google Maps is already functional, though it is still going through the review process before it can be released publicly.
Stay tuned for updates!
The app offers a wide range of features to enhance the riding experience for groups. Some of these features include:
However, the app does not yet have the following features:
Communication systems, comms, and intercoms are Bluetooth headsets installed in your helmet semi-permanently. Some integrate very well within the helmet, with controls barely sticking out of the shell. Others attach to the side of the helmet. Most have two speakers inside the shell, next to the ears, and a microphone near the mouth. Some have a remote control attached to the handlebars.
Most use Bluetooth to communicate with the mobile phone, GPS, and other comms systems.
A few modern systems use a mesh network to simplify their operations. But these only work within their brand and revert to regular Bluetooth to pair with other brands.
Bluetooth headsets communicate with mobile phones using multiple protocols called profiles. Crew uses these two:
GPX files are a standard format for GPS data. There are three types of data:
The principal difference between routes and tracks is in the number of GPS coordinates: Routes usually include enough coordinates to describe the shape of the path. Tracks record all the coordinates as you go and can be noisy.
A ride is an event that starts when a user creates it, and allows participants to join the group voice chat and share their location.
Demo ride is a built-in ride that anyone can join. Sometimes, a Crew bot joins and talks, so you can test what the app does.
Local ride connects you with anyone within a 6.5 miles / 10 km radius recursively: the coverage extends beyond the initial radius depending on the density of riders.
The button with the + icon lets you create your ride.
By default, the name will be 'Firstname's ride #xxx' where xxx is a counter.
The prefix creates a series. You can change the default name from the settings.
If you want to join a ride, you have a few options:
When you are in the map view, long press on the double head button (bottom left) to show a QR code, then have your guest scan that code.
Below the QR code is a share button to send the ride invitation link using the built-in mechanisms of your device:
If you already joined a ride with a fellow rider, you can invite them to join your ride. If they're in the app, just navigate to the riders tab in my files, and select the ride, then invite them to the current ride. Note: this works starting with version 1.3.1 on both ends.
You can press the Home button at the bottom right to go back to the menu, then press the red button with the exit icon. You can also long-press the home button to return to the menu and leave the ride simultaneously.
Crew automatically records your ride when you join it. It saves your GPS coordinates in a file on local storage.
When you created a ride and invited friends, you shared a link to the ride. You can join and leave and rejoin as often as you want until you archive it. Once a ride is archived, no one can join it anymore. Only the ride creator can archive it.
Note: if you shared the ride and left it, other riders can still be in the ride and leave/join again until you archive it.
Once it is archived, you will be able to create a new one in that series:
When you ride with a buddy in Crew, that rider becomes a connection. You can visit the list of riders from the 'My files' menu. Select the 'Riders' tab. It will show you the list of connections (Your crew). The green dot means they're online, using the app right now. If you click, you can see if they're in a public ride, which you can join. If you are in a ride, you can invite them to your ride. Their status (online, in which ride) is updated periodically. You can control if you share your current ride in two ways from the settings:
Yes, if a rider you don't really know joined a ride you were in, you both can see each other's status. However, you can decide to block that rider. When you do, they are no longer able to see if you're online, and which ride you're in. To block them, just navigate to the riders tab in my files, and select the rider, then click on block.
Yes, if you no longer want to block a rider, you simply navigate to their profile from the riders tab in my files, then click on unblock. That moves them back to 'your crew'. And they'll begin to receive your information again.
Yes! Starting with v1.3.1, the first time you run the app, it will ask you if you're home and if you want to enable the location protection. When active, it will hide your exact GPS coordinates and place you at a random nearby location.
When you look at the map, you can see the fence (brown dotted circle). As long as you are in the fence your GPS is masked.
From the settings, you reset the home location, and enable/disable one of two options for the fence radius. (500m / 2000m)
There is no provision to select who could bypass this protection today.
Navigation (directions) are not supported as of today. However, you can still use other navigation apps in complement to Crew. But Navigation is coming soon with a few unique features.
On the map view, long-press anywhere on the map to drop a pin.
Waypoints automatically get a name (iPhones only).
On Android, long-press on the marker on the map and then drag it to a new location.
On iPhones, tap the marker once to show its controls, then drag the little colored dot below the white label.
When you tap any waypoint, additional controls appear. To delete that waypoint, click the red cross in the center.
When you tap any waypoint, additional controls appear, then use the left or right green arrows to swap order with the previous or next waypoint.
Whenever you manage waypoints, any connected riders can also see and edit the waypoints. It is automatic. If a rider joins after you have added waypoints, they will receive the waypoints upon entering the ride.
Click on the head icon (bottom left) from the map view. The screen will show the list of riders. The first one on top is yourself. Next, click on the profile picture of any other rider you want to begin following on the map. To return to tracking yourself, click on your profile image from that list.
From the main menu, select My files. For each event, there is a button to export GPS records in GPX format, including waypoints from the ride.
If you receive a GPX file by email, save it to local storage, or try and open it, select the Crew app. If you saved it from your File manager app, select the GPX file and 'open-with', then choose Crew. That will automatically import it.
In the 'my rides' view, there are three tabs. The first tab lists the rides you have been to, one for the riders you met, and the last one to access the GPX files you imported. In the GPX tab view, you have the list of imports. You can delete the imported file or select/deselect it (toggle).
After you import a GPX file, it is automatically selected in the overlays tab (see above question). The routes, tracks, and waypoints of selected GPX files are added to the list of available overlays. On the map view, a new icon lets you toggle individual components from that list.
Yes, click on the microphone icon from the map view to stop Crew from listening to the microphone.
Yes, click on the speaker icon from the map view to stop Crew from making sounds.
Yes, from the list of riders (double head icon bottom left), adjust the volume using the -/+ controls.
Yes, by adjusting their volume down.
Yes. You have to request it once per rider:
On the map view, profiles which allow private chats are displayed.
If the option is active in the settings, the microphone and speakers will unmute when a private chat is initiated. They will return to mute after the chat ends.
Note:
That option is not available. Crew offers an alternative:
This option is controlled by a dedicated setting. On iPhone, long press on the microphone button lets you choose.
In the rider's list, two indicators are showing the state of the microphone and speaker for each rider. If the option is disabled, you won't share your audio state, and won't see the others' state either.
That is the unfortunate effect of using a Bluetooth microphone today.
The only way to access microphone audio over Bluetooth with cellphones is via the Hands-Free Profile. Modern headsets (BT5.0+) will have a much better audio quality, using 16kHz or 24kHz instead of the weak 8kHz.
If you are not planning on talking for a while, you can mute your microphone and return to A2DP stereo quality.
With the auto-unmute option, it is possible to engage in a conversation without clicking on the button.
When the microphone is muted/unmuted, the phone switches from A2DP to HFP and vice-versa.
Most systems will have different volume settings for each.
The mobile phone must use the Hands-Free Profile to access the microphone over Bluetooth. That profile is the same as a regular phone call.
So from your comms system perspective, HFP active is equivalent to an active phone call. Note: Crew does not make a phone call when using the microphone!
When you enable the option in the settings (Record audio conversation), Crew adds a new menu entry when you're in a ride.
The new menu button is "Start Recording". This will notify all the riders that the audio is being recorded, and by whom.
When recording, the menu button becomes "Stop Recording". This will also notify all the riders that the audio recording has ended. If you leave the ride, the recording also stops.
When a ride is recorded, versions 1.4+ will also display a blinking red dot in the top right corner for the duration of the recording.
All recordings will be saved on your device. You can find the files through the 'My Files' menu, then select "Audio Recordings" tab. This will show you a shortcut to the folder in the file explorer app.
On iOS, it will open the Files app, showing the recordings.
On Android, it will open the Google Files app, or any other explorer, showing the recordings as well.
The files are in ogg/opus format. Android can natively play them. iOS requires other apps, such as VLC to play these.
You can separate the local microphone input from the intercom conversation to simplify video editing, with different combinations of noise filtering.
Check-out the settings to get more explanations.
In the settings (gear icon on main menu), you can select any of the built-in helmet images as your profile, or you can use any image in your phone's gallery.
The name of the rides is automatically formatted to add a counter after the prefix you input in the settings. By default, it's going to be your name's ride.
The main map view shows a slider on the right side of the screen. Use it to adjust the zoom. Crew will automatically adjust the zoom level based on speed and distance to other riders. With this slider you give additional signal to the zoom controller.
If you enable 'Record audio conversation', new settings options become available.
Moto Vlogging Audio Split will record the local microphone to the right channel and the other speakers to the left channel.
Record all sounds from local microphone: When true, the local microphone will be captured when recording, without any filtering, including when not talking. If not set, the microphone will only record when the user is speaking, with noise removal applied.
Remove noise and mix with others. If the microphone is recording all the noise to the right channel, this setting will capture your voice and feed it to the left channel in the conversation.
It can, depending on a few factors. As an intercom, Crew needs a way to connect to other riders. Audio and GPS data will flow over whatever connection is available—cellular data, WiFi, or Bluetooth—and the system handles fallback and deduplication automatically.
If everyone is nearby:
WiFi mesh with travel routers:
Alternatively, you can use one or more GL-iNet travel routers with custom Crew firmware. These are small, portable devices powered by any USB 5V source (around $30 each). A single box provides a WiFi coverage area of about 30–50 meters for anyone running the app. Add more boxes and, with the Crew firmware, they automatically mesh together via WiFi with up to 400m range (line of sight) between each box. All boxes broadcast the same WiFi network, and any phone running Crew can communicate with others through the mesh—no cellular data needed.
Even better: the mesh and cellular work together seamlessly. If some riders have cell coverage and others don't, Crew handles the fallback and deduplication automatically. Audio flows through both WiFi mesh and cellular simultaneously, so the group stays connected even when coverage is spotty—riders on the mesh bridge the gap for those without signal, and vice versa.
Compatible GL-iNet models:
The Puli and Mudi have built-in batteries, so they can go in a backpack or pocket without needing USB power—not as good for range as a bike-mounted setup, but much easier to carry.
If you're interested in the router mesh option, reach out to support@crewrelaychat.com for details and firmware.
Crew automatically falls back to Bluetooth and WiFi to communicate with other devices in range.
Bluetooth: Works between Android and iPhones, up to about 200ft / 70m. However, if you're using a Bluetooth helmet intercom, HFP (Hands-Free Protocol) limits the antenna time available for phone-to-phone Bluetooth, which can prevent this from working alongside the headset.
WiFi: Works between iOS devices only, with a shorter range than Bluetooth and requires close proximity to establish.
WiFi mesh routers: For the best offline experience, consider the WiFi mesh router setup described in the question above. It bypasses all Bluetooth limitations and extends range to 400m between each router.
Crew adapts the audio quality based on several factors, such as network latencies, number of participants, and use of Bluetooth. The audio bandwidth used on the cellular network is about 50kbit/s maximum (~22MB/hour). The data usage for the map depends on the settings and is comparable to other navigation apps.
Here are a few technical details about the architecture:
The signaling API is over HTTPS between the application and the server.
Crew does not use the typical WebRTC media channels. Instead, it encodes and routes audio and GPS data using opaque packet oriented data-channels. These are secured using DTLS between devices.
The server knows the ride members. It builds and maintains a network of interconnected nodes, each having 1 to 3 connections, in a lattice.
The server minimizes the effects of connections/disconnections. So each mobile phone connects to at most three other peers. The (audio/GPS) data does not flow through the server. Data flows from node to node. The lattice also offers redundant paths to reach nodes to minimize losses. When a rider speaks, its phone shares the audio data with the three immediate peers, with instructions to forward the payload to their peers recursively, reaching the whole group.
The Local ride requires special handling:
The server maintains the list of all the members, and uses an algorithm to perform the clustering, called DBScan. Basically, the server periodically receives GPS coordinates from all the members of that ride. Every minute, it computes the new partition of riders based on locality. Each cluster then behaves like an individual ride, with a lattice of connections. The maximum distance between a rider and at least one other rider in a cluster is 10km, 6.5 miles. That allows a group ride to form on the spot. As long as the group stays reasonably well together, they stay connected. The purpose of that ride is to enable random and spontaneous connections on the road.