
My Own Car System, Rear Camera, Offline Maps and Routing with Go - robteix
https://blog.nobugware.com/post/2018/my_own_car_system_raspberry_pi_offline_mapping_map_matching_places_part2/
======
djsumdog
This is pretty awesome. Back in the late 90s I ran a 333Mhz Celeron in a
little box under the seat of my car, with a parallel port LCD display, as my
MP3 player.

I've thought about building something like this, but it just seems like a ton-
o-work. This project seems to have maps+camera, no media player yet.

I do run/build a lot of my own stuff (my own web/email server managed via
ansible/docker), I run custom Android roms and I do like building things
myself, but with the time tradeoff, I just find it easier to get a Pioneer
nav/media unit. (Tried the Joyen Android versions for a bit too, but it's
difficult to get a good/safe car UI setup in Android).

~~~
bronco21016
I’ve often wondered why there hasn’t been someone that developed a good
Android headunit project. What is it about Android that has made it difficult
to make a good/safe car UI? Couldn’t one just mimic Android Auto? Or even just
run Android Auto?

~~~
jefft255
You can buy aftermarket Android Auto headunits:
[https://www.androidauthority.com/best-android-auto-head-
unit...](https://www.androidauthority.com/best-android-auto-head-
units-791179/)

~~~
tristanb
I have one in my car - pumpkin audio. It does the job great. Talks to my back
up cam - smart mirror, and i've written scripts so it takes pictures of the
driver at ignition, opens my last spotify track, last google map search etc

~~~
exhilaration
The pumpkin audio website isn't super-informative -- do you know where I could
find out if their units support my Toyota's backup camera and steering wheel
buttons?

------
nabilt
Great project. Offline mapping is a great feature addition. I'm working on a
similar side project using C++ and Qt. I tinkered with Qt maps for a bit, but
found it was sucking up too much of my time building a navigation app with all
of the necessary features so I scrapped it. I will probably try to integrate
an open source mapping app later on to make life easier.

So far, I got music streaming and voice calls working over bluetooth and I'm
currently working on cleaning up the UI. I'm also considering upgrading my
board to the i.MX8 which recently came out. Next I''m planning on adding an
LTE modem, OTA updates and some kind of basic music app.

~~~
elboru
How do you handle aesthetics? Sounds like a really fun project but a big
challenge, at least for me, would be to make it look pretty and not like a
Sunday hack.

~~~
nabilt
Hardware is the biggest challenge and what I assume you are asking about. My
first approach was to get a double din computer case, which gives you an
aftermarket look. The better option is to go to the junk yard and get a stock
head unit and replace the internals. The problem here is finding an LCD that
fits the dimensions. Another thing I've been thinking about is using a larger
LCD that sticks out of the dash like the Tesla Model 3. Downside here is there
is no space for physical buttons which I really like.

------
ocdtrekkie
Very neat! I'm still relying on my car's built-in display for the camera, so
my computer isn't doing maps or the like, but I've got a computer in my car
mostly for music and GPS logging, always neat to see what other people are
doing!

~~~
wycy
Do you have any writeups/pictures/etc on your setup? I'd like to get some
systems in my car but I'm not sure where to start.

~~~
ocdtrekkie
I don't have a good comprehensive write-up, but the code is here:
[https://github.com/ocdtrekkie/HAController](https://github.com/ocdtrekkie/HAController)
The README describes the modules which should give you some idea of what it's
designed to do. It's built in Visual Basic and also designed to run my home
automation system. It is janky and while I wouldn't mind someone else using
it, I wouldn't exactly recommend it. :P

In the car, I run an Intel NUC on the floor of my car, and the display I use
is an Adafruit serial backpack-based unit ([https://learn.adafruit.com/usb-
plus-serial-backpack/overview](https://learn.adafruit.com/usb-plus-serial-
backpack/overview)) inside a plastic enclosure along with a small USB hub and
the GPS receiver. The enclosure's attached to my dashboard using the same 3M
strips available for IPASS/EZPASS devices.

My first question is always "what do you want to do?" What frustrations do you
have, what would make your life easier to automate? A lot of times it is less
than you think.

------
squiidz
Does your car have a custom licence plate ?

~~~
sebtoast
From what I can gather by the maps, he's located in Quebec city in Canada and
we didn't have custom plates until July 2018.

------
pitaj
Does anybody know if it would be possible to just run a standalone version of
Android Auto on something like this?

------
dev_dull
> _In Part I, I had to patch qtmultimedia for the camera to work, but Qt
> compilation is ressource hungry, same goes for the osrm compilation, the
> memory of the Raspberry Pi is too small_

I was just thinking about this today. Is it possible to set up an arm VM for
“dev” and port the binaries over to the RPI?

~~~
akhenakh
qemu is capable of emulating an ARM cpu so yes but won't be able to emulate
all the real hardware, especially the opengl ES gpu. From a compilation
perspective I believe using a cross compiler is way more efficient than
emulating the whole system.

~~~
microcolonel
> _...especially the OpenGL ES GPU..._

Does Virgil3D not work in DBT QEMU targets?

Generally agree that cross-compilation is a better solution, but I think it
could also be nice to have everything (except the drivers for your actual
hardware) tested _as delivered_.

------
huslage
Why write a new gpsd when a mature one exists? Why not just write a Go
interface to it?

~~~
akhenakh
I've tried to explain this in part 1:

I assume you talk about gpsd? or libgeoclue?

gpsd is slow to start because it tries to detect the baudrate as stated in the
manpage Autobauding on the Trimble GPSes can take as long as 5 seconds

I didn't find any solutions to disable this behaviour.

libgeoclue is a giant ecosystem relying on tons of libraries to work with and
it does not work on my system.

~~~
akerro
No, a cheap tablet with Android and install OsmAnd~

------
oulipo
And you can add 100% on-device and private-by-design Voice AI to your car
using what we are building at [https://snips.ai](https://snips.ai)

~~~
ocdtrekkie
My system is built for a conversational interface, but I don't have voice
recognition in place yet. Questions: Why is a Raspberry Pi required? If a
Raspberry Pi is required, why does the computer need to be either MacOS or
Linux?

Would it be possible to use this to, say, look for a hotword and then just
always return the rest of the command to a single program, since I have my own
command structure already in play? I need the on-device voice recognition and
hotword detection, but not the actual assistant.

~~~
j88439h84
A popular choice seems to be Mycroft

[https://mycroft.ai/](https://mycroft.ai/)

(no affiliation)

~~~
ocdtrekkie
Mycroft is again, a whole assistant setup though, I just need a good local
voice recognition component. Command processing and TTS are already built-in
to my own code. I'm not totally opposed to adding a Raspberry Pi, but since my
existing automation code runs on Windows, I at least need something that can
talk to a Windows box.

------
mulmen
I’m thinking of replacing my 2010 BMW with something... simpler. Since good
mechanics don’t exist I need a car I can work on myself. That means probably
not much later than 2005. I see that late 90s 4-Runners are cheap now and nice
vehicles but miss a lot of the fancy buttons I have become accustomed to.
Early 2000s M3s are similarly priced. Both have DIN headunits. This kind of
project would really fill that gap for me.

------
0xfeba
The latest Kenwood AA units use Linux (no surprise) and Qt. Their UI is wonky
af though.

~~~
craftyguy
Do they comply with the GPL? If so, custom firmware seems like a real
possibility!

~~~
NullPrefix
Qt for devices is commercial only, not GPL.

~~~
craftyguy
My question has nothing to do with Qt.. GP said it was using Linux, and the
kernel _is_ GPL.. so.. are they compliant? Are they releasing any/all
modifications they are making to the kernel for booting it on their device?

~~~
NullPrefix
GPL requires you to supply sources together with binaries. Is he distributing
binaries to anyone?

------
adreamingsoul
Now this is something I can get behind.

