Crew is a mobile app that combines a universal group voice intercom with shared locations on a map
The Crew app is made by Crew Relay Chat L.L.C.
© 2023 CrewRelayChat L.L.C.
FrançaisCrew is a mobile app that combines a universal group voice intercom with shared locations on a map
The Crew app is made by Crew Relay Chat L.L.C.
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 youu/.
Starting with v1.3.1, Crew will now display on your CarPlay unit.
If your motorcycle has CarPlay , or if you're using it in your car, the app will give you some controls about the intercom and ride management
As of today, the CarPlay experience doesn't render the same map. You can control the audio, mute/unmute, as well as see the riders that are in the ride, or online, and you can see a small map of the group.
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. When that's active, the audio tab shows the picture in the menu.
The riders tab will list riders. CarPlay restricts how much information can be displayed, so we only show the riders in the ride, and those that are online.
We expect to provide a richer map experience similar to the phone version for CarPlay soon. We're working on this with Apple.
Unfortunately, Android Auto is not happening for the time being. We're relying on the Google Maps SDK for Android and we don't have authorization to use these maps on Android Auto.
We'll keep trying to bring the Crew experience to Android Auto, to at least match the current CarPlay level. Stay tuned.
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.5miles/10km 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 :
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 headset (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 blinked red dot in 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 combination 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 builtin 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.
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.
Today, Crew has limited support for offline peer-to-peer communication. The map does not support downloads yet.
Crew will use Bluetooth and Wifi to find and connect other devices in range. Our tests show that this can work up to a maximum of about 200ft / 70m. This works even between Android and iPhones. The range and reliability of Bluetooth between multiple phones are adversely affected by older versions of Bluetooth used by some comms systems. We will find alternatives to improve the application's usefulness depending on user feedback on this topic. For example, audio over Bluetooth is demanding, so we might introduce delayed messages. We might instead use speech-to-text techniques and transmit a textual message, then use the built-in text-to-speech voice to speak the message back to the recipients. Today, Crew uses Wifi to communicate between iOS devices only. This system has a shorter range than Bluetooth and requires to be nearby (a couple of meters) to establish. Unfortunately, Crew does not support Wifi-Direct, so Android users depend only on Bluetooth.
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 WEB-RTC media channels. Instead, it encodes and routes audio and GPS data using opaque packet oriented data-channels. These are secured using D.T.L.S 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 flow 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.5miles. 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.