Close

Detour: iPad 2

A project log for Volty MIR - [M]ap & [I]ntelligent [R]everse Camera

Building a display unit capable of showing maps and reverse camera feed for my first-gen Chevy Volt.

yakyYaky 11/04/2024 at 02:340 Comments

Another old device I had laying around was iPad 2 (WiFi version), so I thought I could try to make that into an in-car display, too. (I specifically wanted to upcycle something I already had) But that did not work out as well as I had hoped.

The original plan

  1. Mount the iPad to the central console, (partially) covering the built-in display.
  2. Install navigation software that works.
  3. Automate the software to wake (or power on) and launch a navigation app when the car is turned on, and go to sleep (or power off) when the car is turned off.
  4. Feed the video from reverse camera into the iPad and display it somehow.

Compared to the setup I originally planned with an Android phone and a display, there are some advantages:


1. Mount the iPad

The iPad fits rather nicely onto the central console:

But since the built-in screen is covered, there's the minor inconvenience of being unable to see the radio station, or configure A/C.

2. Navigation Software

This was quite an adventure into jailbreaking, downgrading, and sketchy tools. There are only a handful of navigation apps that still work on old iOS versions

As of right now, the iPad runs iOS 6.1.3 and uses CoPilot GPS. This required jailbreaking and some fixes to make the App Store usable again. Ironically, right after I installed many of the apps I needed, Apple irreversibly shut down the App Store for iOS 6. Instead of being on the cutting edge of technology, it seems I am on the blunt back edge.

2.1 GPS

This caught me by surprise. Since my version of iPad 2 is WiFi-only, it does not have a GPS chip. While at home, it happily showed my correct location (derived from known WiFi access points), so I paid no attention since most other devices that I had were phones with built-in GPS chips. But when I tried the iPad out on the road, it was clear there is no GPS chip.

I bought a cheap used bluetooth GPS module, hoping to use that. However, using bluetooth as a GPS source on iOS requires a jailbreak (which I already had), and BTStack GPS, an app from Cydia. However, this is a paid app, and Cydia's purchases have been broken for years. I tried looking for workarounds and "fixes" but did not find any.

After some more searching, I found out about high-accuracy BadElf GPS modules, early models of which had a 30-pin "dock" connector for early iPhones and iPads. All of their plug-in devices have been discontinued, but by sheer luck, I found the one I need on eBay. Combined with their official app, the GPS location works pretty well.

3. Automation

The Activator app from Cydia is very flexible, allowing to map almost any action to an event. The only thing it is missing is automating gestures. What I set up:

3.1 External Input

iPad obviously does not have external GPIO or any intentional way to read external input (from another circuit for example), but I was able to hack together an external on/off trigger using the phone jack and Activator's events for connecting and disconnecting headphones. The way headphone detection works in this iPad is checking if two contacts on the opposite sides on the phone jack are closed (connected by a conducting material). Building a "plug" out of two parallel, non-connected wires allows me to short these two wires using an external circuit to trigger an event within the iPad.

The intent is to use an external trigger (gear shifter in R position) to trigger the iPad to display the feed from the rear camera.

4. Video Input

Since I want to use the in-car device to see the video feed from the rear camera, I need to find a way to get the video stream into the iPad. After lots of searching, it appears none of the consumer smart devices are capable of accepting video input. Only very recent versions of iOS are capable of using USB cameras (or capture devices). And, as far as I understand, microphone hardware is not fast enough to be able to sample the video signal (KHz for audio vs MHz required for video). An idea is to use one of the WiFi reverse cameras, but for the one that I have, the app is available only for iOS 9, which, on the iPad 2, is very slow, and does not have a permanent jailbreak.

So I had a very naive idea to point the iPad's back camera at a small LCD showing the reverse camera feed, figuring that the already-low resolution of composite video cannot be made much worse by viewing it through a camera. After some time designing and 3D-printing an enclosure for this contraption, the result was very disappointing. The composite signal from a rear camera (with brightness-contrast balanced by the camera), is shown on a small, low-resolution LCD, which is viewed by iPad's camera (which attempts to balance brightness-contrast again) at a distance of ~80mm results in a blurry, either washed-out or very dark picture, with LCD's pixels still visible.

Now What?

  1. Go back to the original idea, using a smaller, separate, non-interactive screen for maps and rear camera. This also will not obscure the built-in screen.
  2. ...or both the iPad for navigation and a separate screen for rear camera. How many screens do I need in a car though?
  3. Try a non-invasive way of displaying the rear camera feed. As an example, iPad could use VNC to connect to or VLC to stream from a Raspberry Pi, which uses a USB capture card to receive the composite signal from the rear camera. Kind of an overkill. Maybe something like this can be implemented on an ESP32, too. Automating this using Activator might be difficult.
  4. An invasive way. Open up the iPad, and switch the LVDS display connector between the original source (the iPad) and an external driver (which is connected to the rear camera). This depends on whether the LCD is designed to handle such "hot plug" actions.

Discussions