Git Product home page Git Product logo

wirelessandroidautodongle's Introduction

Wireless Android Auto Dongle

Use Wireless Android Auto with a car that supports only wired Android Auto using a Raspberry Pi.

This repository consists of the buildroot setup to generate an sd card image to create your own Wireless Android Auto Dongle.

Features

  • Native Wireless Android Auto connection to the phone, no extra app needed on the phone.
  • Passes through all Android Auto traffic without any modifications to ensure seamless and safe experience.
  • Fast bootup, connection under 30 seconds.
  • Supports multiple boards (Currently multiple Raspberry Pi boards).

Supported Hardware

The setup should work on any devices with these basic requirements (albeit, with some modifications).

  • The board should support USB OTG or Gadget mode.
  • Has Wifi and Bluetooth. External should also work if not in-built.
  • Should be able to operate on power provided by the car.

Currently tested with multiple Raspberry Pi boards supporting USB OTG.

Install and run

Download a pre-built sd card image or build one as described below. Install the image on the SD card using your favorite tool.

You may want to update the country_code in the /etc/hostapd.conf file.

That should be it. Insert the SD card and connect the board to the car. Make sure to use a data cable, with the USB OTG enabled port.

Once the car recognizes the device and sends a request to start Android Auto, bluetooth is enabled. On your phone, open Bluetooth settings and pair a new device called "AA Wireless Dongle". Once paired, it should automatically start the Wireless Android Auto on the car screen.

From the next time, it should automatically connect to your phone, no need to pair again. Make sure your Bluetooth and Wifi are enabled on the phone.

Troubleshoot

Once you've already tried multiple times and it still does not work, you can ssh into the device and try to get some logs.

  • Connect the device to the headunit, let it boot and try to connect once. The logs are not persisted across reboots, so you need to get the logs in the same instance soon after you observe the issue.
  • Connect to the device using wifi (SSID:AAWirelessDongle, Password: ConnectAAWirelessDongle, see hostapd.conf).
  • SSH into the device (username: root, password: password, see relevant defconfigs e.g. raspberrypi0w_defconfig).
  • Once you're in, try to have a look at /var/log/messages file, it should have most relevant logs to start with. You can also copy the file and attach to issues you create if any.

Build

Clone

$ git clone --recurse-submodules https://github.com/nisargjhaveri/WirelessAndroidAutoDongle

Build with Docker

$ docker compose run --rm rpi4 # See docker-compose.yml for available options.

You can use rpi0w, rpi02w, rpi3a or rpi4 to build and generate an sdcard image. Once the build is successful, it'll copy the generated sdcard image in images/ directory.

You can also use the bash service for more control over the build process and experimentation.

$ docker compose run --rm bash

Build with manual setup

Once you have a recursive clone, you can manually build using the following set of commands.

$ cd buildroot
$ make BR2_EXTERNAL=../aa_wireless_dongle/ O=output/rpi0w raspberrypi0w_defconfig # Change output and defconfig for your board
$ cd output/rpi0w
$ make

When successful, this should generate the sd card image at images/sdcard.img in your output directory. See the "Install and Run" instructions above to use this image.

Use one of the following defconfig for the board you intend to use:

  • raspberrypi0w_defconfig - Raspberry Pi Zero W
  • raspberrypizero2w_defconfig - Raspberry Pi Zero 2 W
  • raspberrypi3a_defconfig - Raspberry Pi 3A+
  • raspberrypi4_defconfig - Raspberry Pi 4

Limitations

  • Tested with very limited set of headunits and cars. Let me know if it does not work with your headunit.

wirelessandroidautodongle's People

Contributors

nisargjhaveri avatar bluemediager avatar ioniq3 avatar thom-x avatar hkfuertes avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.