Hello everyone!

I already posted a first time here a while ago: https://lemmy.world/post/30549957

My goal was to replace my Android Auto + phone setup for satnav in car with a dedicated Raspberry Pi.

Here’s a status update of the project so far!

Choosing the parts and getting them here was obviously fairly easy even though it took quite bit of research to find a way to power the Pi4 in car reliably.

It’s a pi4 with an adafruit ultimate gps dongle, an SD card and a 2.5 SSD. The SD for OS installs, and then I clone them to SSD for better stability and performances.

I first tried to go Pi OS route. I figured Linux might open more possibilities and I’m more comfortable with Linux. I tried a few options in Pi OS, namely Navit. I banged my head quite hard on that one, trying to figure out how to make it work, but I never managed to get a good navit.xml config file. After hours upon hours of trials, I gave up.

Tried Organic Maps then, but it was a flatpak which introduced a lot of permission issues and I never got the GPS dongle to talk to the app.

After a few failed attempts, I decided to try Emteria OS, an android spin available in the Pi Imager. It doesn’t boot without SD card as opposed to PiOS, so I was glad I spent the 5€ for the SD card. It booted easily, SSH was harder to enable than on Linux but it’s likely because I just know Linux better. Installing apps was easy, but I stopped there and didn’t even try to get the GPS working because 90% of my RAM was used idling at boot, which makes the whole project impossible on Emteria. Not sure if there’s a bug in the current version or what, but I simply moved on.

Then I went to LineageOS. Similarly to Emteria, installing apps was very easy. Getting the GPS from Adafruit to talk to Android was fairly easy if you read the docs carefully. I needed to install android dev tools on my main PC and connect to the Pi using ADB as root to edit some config files. That’s it, the GPS worked and I had a working GPS unit.

Now I’m at the point where I need to introduce the package into the car. For now , the pi still doesn’t have a case because I didn’t want to limit my options in the car. I still haven’t found a good way to bring the pi with me and have it being safely transported without breaking or even becoming a deadly cannonball in case of crash.

My current idea that I’m exploring and checking is getting a Pelican Case, not sure if any of their cases has vent holes. The pi would go inside the case, and the case would be attached to a strong anchor point like the seat rails. Not sure how, yet. I’m thinking maybe about carabiners from Petzl since they would be much stronger than needed, I’m just not sure the anchor point on the case would be strong enough.

So there you have it, I’ve made good progress on the project and I’m confident it will work out reasonably well.

  • KaninchenSpeed@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    9 hours ago

    I’m currently doing the same project.

    To get gps to work on linux, you configure gpsd to get the data from your gps module and setup geoclue to get its data from gpsd. I lost the config files but I remember that I did the gpsd geoclue connection by echoing the gps data of gpsd into a netcat socket and connecting geoclue to it. Organic maps then automaticly gets its position from geoclue.

    Im also working on a organic maps fork, which shows onscreen directions on linux.

    • Natal@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      9 hours ago

      I had GPSD working nicely, confirmed both by cgps -s and mongps, but I was stuck on geoclue. Whatever I did, the GPS wouldn’t send data to Organic Maps. I kept having this error: “Error: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: Object does not exist at path “/org/freedesktop/GeoClue2/Client/1”” despite being 100% sure client1 was the right one.

      Going to Lineage OS was much easier for me and I just needed a working GPS. Linux GPS will stay in the “challenge todo list”, because I’d like to figure it out eventually. I most likely was doing something stupid.

  • Yaky@slrpnk.net
    link
    fedilink
    English
    arrow-up
    3
    ·
    18 hours ago

    For offline navigation on Linux, have you looked at osmin? It was pretty decent on a PinePhone.

    How do you handle power-off? Does Raspberry Pi just shut down? My thoughts were to use Alpine or some RAM-based OS that would not corrupt SD card or the hard drive.

    I have been messing around with building an in-car navigation from e-waste for a while now. Right now, I settled on an old smartphone with OsmAnd and wrote my own app to view the reverse camera.

    • jmf@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      1
      ·
      8 hours ago

      What material are you using to print your enclosures? I know abs is pretty bad for car type heat…

      • Yaky@slrpnk.net
        link
        fedilink
        English
        arrow-up
        1
        ·
        6 hours ago

        (I haven’t really used them a lot in the heat yet) Last enclosure was ASA, but AFAIK, black ABS is OK too because black pigment absorbs most of the light/UV, preventing plastic from degrading as fast

    • Natal@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      12 hours ago

      I didn’t know about osmin! I might try it out.

      For the poweroff, I’ll just poweroff the Pi from the UI and wait a sec for it to go down. Initial testing has me waiting 10 seconds on the “shutting down” screen. That’s short enough, meanwhile I can put my jacket on or something. Once off, I just unplug it. It’s also running on SSD because I don’t trust SD cards to endure constant read/write from satnav so I installed from SD card and cloned the OS to an SSD, it should be more resilient this way.

  • neidu3@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    8
    ·
    edit-2
    1 day ago

    I was considering something similar for my Volvo 940 about around 2010. The idea was that I’d install a touch screen as an infotainment system where I could see stuff like OBD2 data and navigation.

    While not having a functioning speedometer for a little bit (later fixed), I used my phone to see the GPS speed with the screen flipped so I could get the speed on the windshield like a HUD in some modern cars. The plan was to do something similar integrated with the home brewed infotainment.

    It annoys me that I never went through with it, because so much stuff of what I’d drawn up became standard for “fancy” cars later.

    • KaninchenSpeed@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      1
      ·
      8 hours ago

      I’m currently doing this to a Citroën C5 III (2015). The hdd in the old infotainment system broke, so I had a reason to do it, and adding a few features couldn’t hurt.

      It’s a huge pain to get to find information about anything in this car and to get anything to work properly, but I hope it’ll be worth it.

  • sepi@piefed.social
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 day ago

    Curious question: have you looked into something like this https://a.co/d/b6tSJDI ? Sorry for the amazon link there, use it as inspiration. Maybe some cheap stereo box with power supply, etc? This might fit better in a car than a pelican case and may allow you to stuff components, fan etc

    • Natal@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 day ago

      Hey, thanks for the link. I haven’t looked at that type of parts because I’m not confident tinkering with the car, especially since it’s still fairly new and I’m too afraid to damage some plastic. And I also don’"t have any spare room available on the dashboard anywhere.

      There’s a little nook to empty your pocket between the gear shifter (manual car) and the dashboard but it’s wide open, fairly hot, and probably still too small even to fit a raspberry pi in a case with the cooling I’ll need.

      That’s why I’ve been looking at external solutions. If wires weren’t an issue, I’d put a trunk/boot organizer at the back and store the pi unit there during drives but it’s not practical with the wiring. Still routing cables in my head in case I’d get an idea.

      Here’s a photo I found of the front of the car: https://www.ouestfrance-auto.com/sites/default/files/sandero_stepway_1_0.jpg

        • Natal@lemmy.worldOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          11 hours ago

          He, I wish. I don’t have access to a 3D printer either at home or in the close area. I’d have to go to the closest big city for that and at that point it costs as much in fuel as it’d cost to get a new one. Granted I have to find one that suits my needs to begin with.

      • curbstickle@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 day ago

        How do you plan to get audio in? Bluetooth? Wired audio input?

        In your first post you were calling it a head unit, which would replace everything. Given the picture, you have a more fully integrated android auto compatible system rather than a traditional head unit, so I understand why the other commenter pointed to that - its similar to what I would have suggested, which would be to get a din cover appropriately sized, then cut out for a screen.

        So the question becomes how do you want to hear and/or see? That would decide placement requirements. For example, I have a nice spot in the passenger seat I could easily hide it behind a panel under the dash, but the audio input I’d have to bring over to the armrest. So I’d run a cable under the carpet to the aux input, bring it up the side of the armrest and plug it in.

        FWIW, your phone may work nicely by rebooting into recovery and wiping the cache partition. That resolved things for my wife and her car, no issues or trouble since.

        • Natal@lemmy.worldOP
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 day ago

          For the audio, I’ll first try the obvious and plug the Pi to the USB A of the factory car unit. Maybe it’ll detect it as mass storage media and give it access to the built in audio system. Else, I’ll just use a bluetooth speaker I have at home. I don’t need good audio for “turn left/turn right”, just to hear it.

          The whole project is an attempt at getting rid of Android Auto and having my own standalone unit that will free me from unwanted updates both from the OS and the apps. I’ve had Waze become useless three times in the span of two years because they pushed updates that made the app unstable enough to not be reliable.

          For the viewing angle, on the car next to the existing head unit screen, there’s a mounting bracket. I’ll use that to mount a 7inch display I got. It’ll sit right above the existing one if that doesn’t obstruct the view too much, else I’ll have to get one of those arms with joints and lower it somewhere not annoying.

          My bluetooth speaker is the perfect size to sit in the cup holder so if the car audio isn’t possible, then there’s a plan B.

          I’ll try the recovery mode for my phone and see if that helps!

          • curbstickle@lemmy.dbzer0.com
            link
            fedilink
            English
            arrow-up
            1
            ·
            1 day ago

            Maybe it’ll detect it as mass storage media and give it access to the built in audio system.

            It won’t. Both will be acting as host, so thats not going to work out.

            What car do you have?

            Else, I’ll just use a bluetooth speaker I have at home. I don’t need good audio for “turn left/turn right”, just to hear it.

            Didn’t you want to use it for your music as well with navidrome?

            I’ve had Waze become useless three times in the span of two years because they pushed updates that made the app unstable enough to not be reliable.

            CoMaps may be up your alley, uses OSM.

            I’ll try the recovery mode for my phone and see if that helps!

            Hope that works for you regardless, it was an absolute pain when my wife’s phone update (Samsung) broke android auto and Bluetooth connections. Especially since I just bought the car a few weeks before.

            • Cort@lemmy.world
              link
              fedilink
              English
              arrow-up
              1
              ·
              59 minutes ago

              Fwiw, pi zeros have USB host & device/gadget modes, but I doubt a zero would have enough power to do what you need

            • Natal@lemmy.worldOP
              link
              fedilink
              English
              arrow-up
              1
              ·
              11 hours ago

              What car do you have? Dacia Sandero Stepway

              Didn’t you want to use it for your music as well with navidrome? Maybe, if the USB port works, then I’ll use Navidrome on it and put the music that way through the car speaker. If they don’t, I can plug my phone to the car speakers and the Pi to bluetooth external speakers. The phone only crashes during satnav. By the way I did a recovery reset, i’ll try a drive today and see how it goes.

              CoMaps may be up your alley, uses OSM. Thanks for the name, current app in testing is OsmAnd, as i’ve seen it recommended a lot. If it doesn’t work I’ll try CoMaps.

              Especially since I just bought the car a few weeks before. I feel you, this phone was bought specifically for car use. My former one was slow, but I don’t use my phone much so there was no point in upgrading. I got the Oppo A51 back then because it had decent reviews for the price and I had a deal on it. But I think it’s not beefy enough. It thermal throttles very easily, too.