Getting Started with A0

Use the pre-loaded firmware "A0RET" to use A0 with Torque or SavvyCAN (WIP)!


What is A0RET?

A0RET is the name of the firmware that comes pre-loaded on your new Macchina A0. A0RET stands for A0 Reverse Engineering Tool and provides two primary functionalities*: ELM327 emulation for use with apps like Torque, and Wi-Fi based connection to SavvyCAN.

*These functionalities are current as of version 0.1, however future versions may have expanded features.

ELM327 Emulation, Explained Extra Efficiently

Why would you want to emulate an ELM327 device? First off, ELM327 is a closed-source black box interpreter chip (a PIC with some firmware) and you'd much rather know exactly what is being sent to and from your car, right?

Another answer is that now you can take advantage of the numerous existing, (semi) working and tested applications out there for every platform.

Smartphone Apps

Torque Lite for Android can be found at the link below:

Torque Lite (OBD2 & Car) - Apps on Google Play
See what your car is doing in realtime, get fault codes, sensor data and more! An OBD II engine ECU diagnostics tool that uses a cheap bluetooth ELM / OBD adapter to connect to your car OBD2 engine management system Some features include: * Shows and Resets engine fault codes / DTC trouble codes stored in your car * Can export map/track log files to Google Earth KML / CSV * Engine performance data(0 to 60, 0-100, quarter mile, etc) (full version) * Head up Display / GPS HUD mode perfect for checking your speed at night * Data Logging functions including web upload and file logging, you can even upload data to your own web server from sensors you choose * Customisable dashboard with theme support - setup the dashboard with the gauges and dials that you want * Can help you fix your car and helps keep car repair costs down! * Turbo Boost gauge support for VW vehicles (in Pro version only) * MPG for Petrol/Gasoline vehicles. (Pro version has diesel support) This is the free/basic version - it lets you get a feel for the application and lets you find out if it works with your vehicle / obd2 adapter combination; but may contain some small bugs including not working on some nissan/chrysler/subaru ECUs. The paid version has support for more vehicles and ECU types, looks a lot nicer, and works with more cars / trucks The paid version has more features (HorsePower,Torque, 0-60 , quarter mile tests, graph data, map / track views) + no adverts and exra dial/display types! and better ABS / Knock sensor support, Transmission temperature support for some makes of car / trucks (GM / Ford, etc), and Turbo Boost on many more vehicles (including VW) Works on vehicles made by Ford, GM/Vauxhall/Opel, Chrysler, Mercedes, Volkswagen, Audi, Jaguar, Citroen, Peugoet, Skoda, Kia, Mazda, Lexus, Daewoo, Renault, Mitsubishi, Nissan, Honda, Hyundai, BMW, Toyota, Seat, Dodge, Jeep, Pontiac, Subaru and many more vehicle makes, European, US, Far East, etc. Some vehicle ECUs may support more/less features than others. **PLEASE NOTE!** Any reports of hanging or freezing after quitting the app is due to a bug in the HTC Evo 4G and Galaxy Tab, this can be triggered by using the Pandora/Vlingo/Aldiko bluetooth enabled apps. Disabling Pandoras new bluetooth settings fixes the problem, but HTC/Samsung need to release a fix. Please contact their support and encourage them to fix, Thanks! The pro version supports USB ELM adapters which are use 'Prolific' or 'FTDI' chips * Update: A freeze/hang workaround has been found after a great amount of effort and is available in the full version in the General Preferences settings!

An iOS alternative is also included below:

Other Software

Visit this page for an extensive list of software compatible with ELM327, and by extension A0RET.

Flash A0RET to your A0 (again!)

A0 comes pre-loaded with A0RET, no need to flash again unless you've been flashing new programs to your A0!

Download A0RET

Find the A0RET repo at the link below: Download the entire repo as a .zip and extract to a folder called A0RET. Open A0RET.ino with Arduino IDE.

Opening A0RET.ino should also open the dependent files as separate tabs.

Enable Bluetooth

On line 80 of A0RET.ino, change false to true to enable Bluetooth by default (for connecting with Torque).

Upload Settings

Ensure your settings match those shown below before uploading. (These should all be correct by default except for Partition Scheme)

Use A0 with Torque

The process of connecting A0 with non-Torque apps should be fairly similar to the the one shown below.

Connect via Bluetooth

Using your phone's Bluetooth settings, connect to ELM327-A0.

Configure Torque

Enter the settings in Torque, and then the "OBD2 Adapter Settings". Ensure connection type is set to Bluetooth and then select ELM327-A0 under the "Choose Bluetooth Device" option.



After this point consult the Torque Wiki to learn how to use Torque.

Use A0 with SavvyCAN

A0RET allows A0 to work with SavvyCAN via Wi-Fi, no wires needed!

Download SavvyCAN

Follow the link below to download the latest release* of SavvyCAN as a zip archive. Then unzip to a folder.

*As of the date of this guide, this version is 1.0.36.

Run SavvyCAN

First run vc_redist.x64.exe to install the Microsoft Visual C++ Redistributable, then run SavvyCAN.exe to open SavvyCAN.

After opening SavvyCAN for the first time

Add a Connection

Go to Connection->Open Connection Window to begin adding a new device.

At this point, from the machine running SavvyCAN, power on A0 and connect to its Wi-Fi network. The defaults are:


Password: aBigSecret

These defaults can be changed on lines 89 and 94 of A0RET.ino

Click Add New Device Connection and select Network Connection, the IP address should pre-populate since we have already connected to A0's network.

Test the Connection

This should be done while A0 is powered on but not connected to a vehicle, such as through the USB cable.

Go to Send Frames->Fuzzing, click start fuzzing and then stop fuzzing to send random CAN frames.

Back in the main window, the frames sent by fuzzing should be listed.

View CAN Traffic in a Vehicle!

After this step you're ready to move your A0 to a vehicle and connect to it using the same steps as above (you may want to enable Listen Only to avoid any accidents at first). The A0-specific steps have now all been completed and you have free reign in the huge playground that is SavvyCAN, visit their extensive documentation below: