Published using Google Docs
CarlinKit 4.0 (CP2A) 2-in-1 Adapter
Updated automatically every 5 minutes

Specs

Design & Build Quality

Plug & Play

Multi-Device Support

Wireless CarPlay

Human Machine Interface

Media Playback

Audio Delay

Telephony

GPS Navigation

Wireless Android Auto

Web Interface & OTA Updating

Verdict

I have actively been using the CarlinKit 2.0 Wireless CarPlay Adapter for about two years already. While it certainly is a useful gadget, upgrading the car’s stereo to support Wireless CarPlay, it is not without one or the other quirk. Now that newer versions of the adapter have been released which are advertised as being faster and more reliable, I thought I would give the CarlinKit 4.0 2-in-1 Adapter (CPC200-CP2A) a shot, adding the ability to hook my wife’s Android phone up to the car’s stereo wirelessly which comes in handy as my wife typically hosts the kids’ playbooks and stuff on her phone whereas I am responsible for some good music.

This write-up may go beyond the scope of a conventional review, also giving advice on how to squeeze the most out of those adapters.

Testing Conditions:

CarlinKit 4.0 (CP2A) 2-in-1 Adapter (FW 2023.07.15.1119)

2019 SEAT Leon Sportstourer FR (with MIB2 based head unit)

iPhone 13 Pro (iOS16.6)

Xiaomi Redmi Note 11 Pro 5G (Snapdragon 695, Wi-Fi 5 @ 433 mbps, Android 12, Android Auto 9.9.632624-release)

History:

[2023-08-05] updated FW to 2023.07.15.1119, updated Android Auto app to 9.9.632624-release

[2023-05-08] initial publication (FW 2023.03.18.1756)

Specs

I wonder why one still finds an ancient Atmel AT91SAM9260 processor from 2006 in the specs of the CarlinKit 4.0 adapter which certainly doesn’t have the required horses to drive such an application, only supporting USB Full Speed at up to 12 mbps. In fact, this breed of CarlinKit adapters is a Linux-based embedded system using the NXP/Freescale i.MX automotive platform. Power consumption measured at around 1.2 W while navigating and playing music, being about 30% more than the 0.9 W of the V2 however. The SoC package is the same for both adapter generations. So I guess that they use the same i.MX 6, possibly with a higher clock frequency though.

The increased power consumption of the CarlinKit 4.0 may also very well be due to an upgraded Wi-Fi module, now featuring a Broadcom BCM4358 Wi-Fi and Bluetooth baseband processor, effectively supporting Wi-Fi 5 (802.11ac) with speeds up to 867 mbps (with 2x2 MIMO on a 80 MHz wide channel) as per Apple’s recommendations. It also enables the WMM Quality of Service mechanism for improved VoIP latency and input reaction times. The Wi-Fi channel can finally be adjusted to the advertised 5.8 GHz (UNII-3) frequency band which may be less crowded than the lower 5 GHz frequencies. So in case you are suffering from connection reliability issues in always the same spots (e.g. around densely populated urban areas), you may want to consider switching the Wi-Fi channel.

I wonder whether it is really all that wise to use an 80 MHz wide channel for this kind of application. Considering that CarlinKit adapters are USB 2.0 Hi-Speed only, I don’t think that a ~800 mbps wireless link will have a considerable impact on the application’s performance. CarPlay and Android Auto both use a peer-to-peer connection, not transferring a hell of a lot of data either (a maximum of 10-11 mbps for Wireless CarPlay). Maybe a 40 MHz channel would be a good compromise between minimizing interference and maximizing throughput with a link speed of up to ~400 mbps, also being in the ballpark of USB 2.0 Hi-Speed. It has to be considered though that for phones not supporting multiple spatial streams (MIMO), maximum link speed will be limited to ~200 mbps. It therefore may make sense to make channel width configurable or automatically adapt to the phone’s antenna configuration?

Wi-Fi security of the CarlinKit adapters remains to be subpar despite WPA/TKIP having finally been disabled as passphrase is still hard-coded to the well-known 12345678, enabling another non-paired phone to manually connect to the adapter and change settings or initiate a firmware update via web interface. The adapter should in my opinion generate a random passphrase for Wireless CarPlay and Android Auto in order to prevent manual connections which is a non-requirement anyway. The idea probably is to still have access to the adapter in case the Wireless CarPlay or Android Auto connection fails in order to be able to tweak compatibility settings or update the firmware. Then on the other hand, no personal data from your phone gets stored on the adapter or the head unit.

The USB-A port of the adapter is not advertised as being a charging (or passthrough) port anymore but is only meant to be used as an emergency backup for flashing firmware via pen drive in case OTA updating isn’t possible due to broken firmware. It looks like the current output of the USB-A port is limited to 500 mA anyway (with 1A being another mistake in the official specs), resulting in a maximum power output of only 2.5 W which won’t make a connected phone charge at a reasonable speed.

I strongly advise installing a MagSafe/Qi wireless or USB-C PD/QC charger via 12 V on-board (cigarette lighter) socket, providing 15 W and more for charging.

Design & Build Quality

The CarlinKit 4.0 adapter features the second major industrial design upgrade, being even more visually pleasing than V2. The top surface isn’t glossy anymore which certainly helps against fingerprints. Marketing materials also claim the carbon fiber housing to be scratch resistant which I highly doubt. The adapter still feels very plasticky. The chosen texture may do a better job in hiding some light scratches though.

Most people may hide their adapter behind the car’s fittings. So they couldn’t care less about its design and sturdiness.

Plug & Play

Installation is fairly simple. It is no harder than plugging the adapter into the USB port of the car’s stereo and pairing the phone to it via Bluetooth. Wi-Fi credentials are exchanged transparently over which future connections are magically established whenever the paired phone gets close to the running car.

Keep in mind that for any CarlinKit adapter to work, the car has to at least support wired CarPlay via USB.

Volkswagen’s Modular Infotainment System (MIB) is built into many cars from their different brands (VW, AUDI, Skoda, SEAT, Porsche). So it may have received some special treatment by CarlinKit. It typically takes no longer than 20 seconds after turning the ignition switch until music from the phone starts playing over the car’s speaker system. Mileage may vary depending on car/head unit brand. In case of my Leon Sportstourer, USB ports are already powered when unlocking the car. So the operating system on the adapter may already be up when the MIB2 starts its CarPlay negotiation process, therefore not wasting a lot of time.

Multi-Device Support

The CarlinKit 4.0 allows multiple phones to be paired. Unfortunately there is no dedicated facility to on-the-fly switch between those devices.

In order to switch to another paired phone, disabling Wi-Fi on the currently active one results in a disconnect with the adapter’s device selection being displayed again. In case Auto Connect is being used, it is also necessary to disable Bluetooth on the active phone in order to prevent an automatic reconnection attempt.

Switching from iPhone to Android and vice versa reproducibly results in a distorted screen when booting into the respective system. Only a power cycle of the adapter (e.g. by replugging it) resolves this issue.

Wireless CarPlay

Human Machine Interface

Navigating the CarPlay interface via touchscreen does not feel much different compared to wired CarPlay. This clearly indicates that the concept indeed works with only slightly increased lagging. Any input inaccuracies may also be due to the mediocre head unit with its matte touchscreen built into my car.

The iPhone properly detects through the adapter that CarPlay is controlled via touchscreen rather than a rotary knob or trackpad. So the iPhone does not erroneously focus on some menu item. Dark and light modes are switched automatically based on whether the car's lights are on or off. Also metadata like route guidance, the currently playing audio track and active phone call is properly being displayed via the instrument cluster. So all information between head unit and phone seems to properly pass through the adapter.

Steering wheel controls for volume and track skipping (previous/next) work fine as well. Unfortunately, seeking (fast-forwarding/rewinding) the currently playing audio track by long-pressing the skip (previous/next) buttons is not supported through the adapter. Siri is supported and can be engaged by long-pressing the voice control button on the steering wheel.

Media Playback

While Apple specifies uncompressed LPCM audio for wired CarPlay, Wireless CarPlay uses the compressed and lossy AAC-LC format for media audio which the adapter therefore needs to decode. There is no audible quality degradation which may however depend on the music service and used audio codec/bitrate combination. For services using AAC (e.g. Apple Music), wired vs. Wireless CarPlay shouldn’t make any difference. It typically doesn’t matter whether the iPhone or the adapter decodes the audio stream. Sound output is neutral which can be optimized via equalizer of the in-car amplifier. Spotify uses a pretty transparent 320 kbps Vorbis in its highest quality preset. Transcoding that to 256 kbps AAC-LC shouldn’t do too much harm with the upside of being able to use the in-app equalizer. Low bitrate MP3 internet radio stations will probably suffer the most. Those however suffer anyway, still sporting more dynamics than good old AM/FM though. Keep in mind that compared to a studio, a car is a rather noisy environment. Asking for some lossless or Hi-Res audio would therefore probably be too much.

Transitioning between and mixing two audio sources works flawlessly, for example engaging Siri or the navigation app giving directions while listening to music, either via iPhone/CarPlay app (e.g. Apple Music or Spotify) or the head unit’s CD/radio tuner. The adapter properly handles the different types of audio (music, speech/Siri, phone call, ringtone), enabling the head unit to store separate volume levels for all of them. So you can for example turn up your music while still getting directions at a reasonable volume.

Audio Delay

The adapter-side audio decoding however seems to have one major drawback. There is a noticeable audio lag which can to some degree be mitigated via the Media Delay setting in the adapter's web interface. The interface can be reached via web browser on the iPhone (URL=http://192.168.50.2) while being connected to Wireless CarPlay.

Media delay can in many cases reliably be set as low as 300ms, still resulting in flawless audio most of the time. This however still results in an effective lagging of around 1.5 seconds (down from >2s with the default media delay of 1000 ms).

So how does this audio lag manifest itself? When for example skipping through songs, it takes the mentioned amount of time until audio reflects the change. Also displayed album artwork is out of sync accordingly. 1.5s doesn’t sound like much. But it is very noticeable when quickly skipping through songs compared to the almost instant wired CarPlay. It is certainly above Apple's latency requirements for media audio over Wireless CarPlay. What probably has to be added is that turn-by-turn instructions arrive perfectly in time.

The CD/DVD Category setting does not have an impact on audio lagging and reliability. CarPlay supports 16-bit audio at 44.1 and 48 kHz. In case the CD option is selected, only the first sample rate is advertised with the iPhone applying an appropriate conversion for other sample rates.

Telephony

Making phone calls through the CarlinKit 4.0 adapter works in principle. There is some talking over each other every now and then which however also happens with the factory-fitted wired CarPlay. Some factory-fitted head units with integrated Wireless CarPlay, some of which only operate in the low bandwidth and interference-prone 2.4 GHz frequency band, are said to be lagging so badly that making phone calls isn’t feasible at all.

In order to assess the phone call behavior, I called an echo test number and measured the round-trip time (RTT or two-way delay). With no CarPlay involved at all, RTT measured in at ~300 ms using an iPhone. With wired CarPlay of the MIB2 in between, latency increased to ~600 ms. The CarlinKit 4.0 adapter added another ~200 ms on top, resulting in a total RTT of ~800 ms. That's quite a lot, however being in the ballpark of the ITU’s proclaimed acceptable one-way delay of up to 400 ms for conversational audio (extrapolated to 800 ms for two-way communication). Recommendation however is 150 ms (300 ms) and below.

The higher delay may probably be more of a systemic than an adapter specific problem. To get from phone to head unit and vice versa, data has to travel over several bus interfaces with format conversions along the way as Wireless CarPlay uses compressed but latency optimized audio formats for speech (either Opus or AAC-ELD). I tried to assess latency of the Wi-Fi part alone by issuing the ping command from the iPhone to the adapter which measured in at 3-5 ms without massive outliers.

GPS Navigation

A common problem with Wireless CarPlay is that the iPhone may be placed in a location without any GPS satellite visibility, e.g. in the pocket, a bag or a dedicated wireless charging cradle. Apple therefore mandates that location information of an in-car GPS antenna gets passed on to the iPhone via CarPlay-enabled head unit. The MIB2 of my Leon Sportstourer comes with navigation built in, therefore featuring a GPS antenna.

I tested turn-by-turn navigation with the iPhone in my pocket and the glove box, using some of the most popular CarPlay-enabled navigation apps available such as Apple Maps, Google Maps, Waze, TomTom GO or Sygic GPS Navigation. Location information of the in-car GPS antenna passes through the CarlinKit 4.0 adapter perfectly fine, helping to improve accuracy and also to preserve battery life of the connected phone.

Wireless Android Auto

The interesting part about the CP2A Wireless Android Auto integration is that the car does not have to support Android Auto for this to work at all as Wireless Android Auto is converted to Apple CarPlay which actually makes sense as head units exist which support Apple CarPlay but lack support for the Android counterpart.

This cross-conversion between Wireless Android Auto and CarPlay seems to work better than I expected due to the two protocols being sufficiently similar. One minor drawback is that multi-touch gestures are not supported for CarPlay by the MIB2 as the specification officially only supports single-touch. As for pinch-to-zoom inside maps there is however also a one-finger-gesture to achieve that.

Navigating the UI feels a bit more laggy compared to Wireless CarPlay through the adapter and also to wired Android Auto with the phone directly being connected to the MIB2. Out of the box, the projection of the Wireless Android Auto screen through the CP2A adapter appeared to be of a higher resolution which turned out to be due to a different DPI being set. Here is how Android renders its car projection at different DPI settings on my car’s 8” screen at 800x480:

CarlinKit default (0)

 

120 dpi (screen native 800x480 @ 8”)

140 dpi

160 dpi (MIB2 default for wired Android Auto)

The CarlinKit default is in the ballpark of the screen’s native 120 dpi. Stock Android Auto of the MIB2 uses 160 dpi, resulting in less real estate being displayed. The visually more pleasing rendering via CarlinKit adapter at ~120 dpi comes at a cost though with smaller icons being harder to hit, text harder to read and also an increased input lag.

After increasing DPI to 160 in the adapter’s settings, look and feel closely resembled that of stock Android Auto of my car’s MIB2 and its 8” screen, with the UI becoming more responsive and easier to navigate. I found 140 dpi to be the sweet spot between usability and real estate being displayed.

Android Auto via CarlinKit adapter may require a bit more tweaking compared to the Apple counterpart which may also depend on the used Android phone model, its performance and/or Wi-Fi capabilities.

Wired and Wireless Android Auto both use the Bluetooth Hands-Free Profile (HFP) for making phone calls, resulting in slightly less lagging compared to Wireless CarPlay.

Web Interface & OTA Updating

CarlinKit adapters still enjoy lively support with CarlinKit constantly fixing bugs, improving compatibility and performance. A recent upgrade featured major web interface design and functionality changes. The front page now displays in-depth information about the status of the adapter’s hardware which may help with debugging in case of problems. Geeks among us certainly celebrate this feature.

With newer versions of the firmware, it is possible to customize the logo of the shortcut which takes you back to the car infotainment’s menu. Wi-Fi and Bluetooth device names can also be customized.

Then there are a handful of configuration switches which are meant to work around compatibility issues between certain phones and the integrations of car and head unit manufacturers. Unfortunately some of the used terms are either poorly translated or not very intuitively chosen (e.g. Category which is more like an Audio Compatibility Mode).

The Wi-Fi channel can be changed in case of interference problems. As for Wi-Fi security, it would probably make sense to also be able to change the passphrase. This would fix the security issue of the hard-coded passphrase while at the same time preserving the ability to manually connect to the adapter in case of problems.

The OTA updating mechanism is quite straight-forward. Just visit the web interface’s Help page via browser on the connected mobile phone and press Check Update. You will be prompted to install in case an update is available. Beware that firmware images are downloaded via your phone’s mobile plan. Those files are rather small though, typically being around 10 MB.

Better make sure the car engine is running while updating the firmware in order to prevent the USB from entering some power saving state or being switched off altogether. Also do not plug your phone (nor any other device) into the adapter’s USB-A port in order to prevent potential disruption, either from power or data side.

In order to be able to access the web interface from an Android phone, it may be necessary to sideload the AutoKitools app. It didn’t receive much love but it does what it is supposed to do.

Verdict

Apple CarPlay

Android Auto

Xiaomi Redmi Note 11 Pro 5G

Setup

★★★★★

★★★★☆

Functionality

★★★★☆

★★★★☆

Stability

★★★★☆

★★★★☆

Build Quality

★★★★☆

Price

★★★★☆

Overall

★★★★☆

Judging from some older rather devastating reviews that I stumbled across, it looks like the CarlinKit adapters have come a long way and matured quite a bit over time. Most major quirks of my V2 adapter have also been taken care of with V4. There is no guarantee for an Apple-like carefree experience which is mostly due to the fact that the CarlinKit adapters are based on reverse engineered CarPlay and Android Auto protocols, potentially suffering from compatibility issues with certain cars or head units on one side and phones on the other. Therefore a Made for iPhone logo is nowhere to be found.

I pretty much prefer this breed of Wireless CarPlay and/or Android Auto adapters over those running a full-blown Android OS, which are more like complete set-top boxes, allowing one to run apps like Netflix or YouTube on the dashboard. I am not really sold on the idea, violating safe-driving principles. For cars already supporting wired Android Auto, the CarlinKit 5.0 (CPC200-2air) adapter may be the better option, performing more of a straight passthrough of wireless to wired Android Auto than a cross-conversion to Apple CarPlay.

The Wireless CarPlay experience used to be quite a bit smoother compared to Wireless Android Auto, which however may very well be due to comparing a high-end iPhone to a mid-class Android phone. With my setup, the experience in fact came close to perfection when using an iPhone only. Admittedly though, the MIB2 infotainment system built into my car is pretty state of the art, without fancy things like some huge dynamic or weirdly shaped display. In order for the Functionality and Overall categories to receive a full five stars, I would at least like to see long-pressing the steering wheel’s skip buttons working in order to be able to seek audio without having to resort to the mobile interface and a proper switching between paired iPhone and Android phones.

Here is a final rundown of the yays and nays…

  • 2-in-1 adapter (Apple CarPlay & Android Auto)
  • typically easy setup
  • fast and reliable connection
  • stable operation
  • in-car GPS passthrough
  • steering wheel controls working
  • easy OTA updating
  • nice industrial design

  • increased media audio & phone call lag
  • buggy switching between iPhone and Android
  • seeking audio by long-pressing steering wheel’s skip buttons not working


© Daniel