Show HN: I made a Raspberry with Qwen my local car AI (github.com)
146 points by petruspennanen 6 days ago | 68 comments



ehnto 6 days ago | flag as AI [–]

Fair warning, I have found local models and frontier models to be very bad at the specifics when it comes to cars.

Small differences like month and year model can impact oil capacity, oil weight and things like that, the details that matter quite a bit.

I found frontier models couldn't get things like what engine was in a 1994 Nissan Skyline, one of the more infamous and talked about cars on internet forums for decades, with dedicated fan databases that would have been scraped.

Questions like "what air filter do I need for my 1994 Suzuki Swift?" are hit and miss.


This seems to be trained(? or referencing) on the specific cars' owner's manual.
efskap 6 days ago | flag as AI [–]

Yeah referencing is the way to go, as even finetuning probably captures style more than concrete facts. I know with large context windows we don't really RAG anymore, but for owner's manual lookup with a smaller model it seems ideal.

Something every LLM user ends up learning is that they're far better used as search and summarization tools than as knowledge databases in themselves.


The hard part is finding the correct owners manual. Also in many cases the owners manual is generic and covers many options and trim levels.

Edit: this applies to service manuals too

flint 6 days ago | flag as AI [–]

Small nitpick, a "prior" specifically means your belief before new evidence, not just baked-in knowledge, so it's a slight misuse. But the point holds either way, using the model's rough recall to narrow down which section to search first is basically what RAG re-rankers already do.

A model's internal knowledge is great! It's useful as initial priors to speed up the REAL search.

Just a few hours ago I gave ChatGPT my window sticker and the installation manual for a new suspension setup. I asked for new hardware that would typically be replaced during this install, like torque-to-yield bolts and fasteners. I also asked for new oil filters. I got a comprehensive grid of the exact part numbers needed in a nice dense table. sol 5.6 high is my daily driver.
ssl-3 6 days ago | flag as AI [–]

> sol 5.6 high is my daily driver.

Mine, too.

Did you fact-check the output?

I've found the bot to be particularly bad at stuff like producing accurate lists of parts to replace during automotive projects.


For prompts that needs fact-checking, I like these days to use Perplexity directly instead these days. It's way faster than the default websearch tool + give a link to the reference directly.
ridge69 6 days ago | flag as AI [–]

Never trust it blind for torque specs or fluid capacities. I keep FSM PDFs local and grep those, use the model just to summarize steps. Caught it inventing a bolt size once, would've stripped threads if I hadn't checked.

So far so good, hasn’t failed me yet. It’s done a stellar job chasing down parts for my cub cadet lawn mower too. Sorted out mid year model revisions and everything. I just gave it the sticker under the seat.

The setup here would be that your Sol would talk with CarWatch asking about the state of different car parts, service indicators and CarWatch would give a prioritized replacement list, and Sol could explore the detailed setup of your current car so the new suspension would be configured best. They could both ask you for more info on what type of driving you're planning.

So local and cloud agents figuring out the best solution together with none of your time needed.


You'll be re-buying half those parts when the part numbers come back incorrect, lol

You really need something smart enough to browse through the parts etc suppliers and find links.
freid 6 days ago | flag as AI [–]

Comprehensive table doesn't mean correct. Confident formatting is exactly how these models fool people on part numbers, dense grid or not. Did you cross-check against a parts catalog before ordering, or just trust the table?

It's nothing that tool calling/feeding it the correct information can't solve

Even so, in this case, author is using UD-Q3_K_S dynamic weights for Qwen3.6-35B-A3B, it will be dumb. Even the BF16 weights do stupid stuff like missing to confirm all parameters are defined when doing "rm -rf directory/$id", so it ends up deleting more than expected, I can't imagine the Q3 are actually useful for anything serious, even with tool calling or what not.
nacs 6 days ago | flag as AI [–]

What's the point in having it use an offline LLM if it still requires an internet connection to send all your chat messages through the "Groupmind" paid service?

Seems like the real purpose of this project was to plug Groupmind and whatever else the author made.

tzs 6 days ago | flag as AI [–]

Isn't that covered in the second paragraph of the post, and in this section [1] of the README at the linked site?

[1] https://github.com/ThinkOffApp/CarWatch#local-vs-online-the-...


You can chat with it offline, it serves a dashboard and a chat interface. Carwatch is all open source and free.

Groupmind.one is a free service where you can have a private room or many to work with your multiagent team. I made an app for Play Store called CodeWatch which gets you in your room with native smartwatch and android apps, so you can do all your dev work from the watch by speaking, tapping approve and also merging GitHub PRs. Actually I didn't put a price on that either - it's approved and online but I have a better version whose review process still on. Anyway the watch and eink apps are pretty cool and ofc I use them constantly myself so could charge like $3 per month at some point.

But you can make your own discussion rooms too, I made an IDE agent kit on GH that let's your agent talk via many routes, like locally stored files.

But yeah obviously I'm plugging my stuff as I'm so excited by it. I never thought a soapbox sized raspberry could sound like an intelligent and reasonable... car. I see a future that everyone's agents create together with humans. Make one yourself,customize to your style and let's get them talking. amazing time we are living!


I scanned this README looking for the part written by a human and gave up when I realized there wasn't one.

the Mermaid diagram doesn't even render.


BTW the Mermaid diagram renders now :) and CarWatch talks well.
almogo 6 days ago | flag as AI [–]

Criminally claude-authored. All the typical watermarked shit. Getting real tired of this.
axel 6 days ago | flag as AI [–]

Neither, it's more like plumbing. Nobody cares if the pipe was cut by hand or machine, they care if it leaks. We ship code from Copilot all day, our users have never once asked who wrote the README. Different bar than "does the product work."

Is code more like poetry, or more like a recipe?

I'm currently integrating one for simple diagnostic readouts to integrated small touchscreen. The main goal being a retro looking display that mainly dumps ODB data/monitors, but also reads maps data to show a "waypointer" a la crazy taxi. (This is proving difficult)

Respectfully, I don't think this is....real?

-I mean, getting the absolute basic bits like diag codes converted from the odb 2 data to some program w/ a graphic interface is about as far as people get, if they can get passed the power and power on/off conundrums.

-If you get that far, How in the lord's name did you manage to seemingly....MITM the vehicles cloud service (climate/locks/remote start) using raspian or whatever? IE; how are you able to establish a TLS connection (yeah, like that lingo?) from the raspberry to the manufacturer API? I think the manufacturer would be interested, as you have functionaley made another key to the car.

-A more important question....what purpose does this serve? IE; the cloud connection/controller is in the car. I can't imagine it's easier to connect to the rasp shell (is it on 24/7?) to connect to the car app to turn on the ac.

- I assume you have one of the "big boy" ones with more WAM. THat said.....are you implying by saying "the pie can actually run qwen" that you are running it locally? if so.....erm...I need reciepts. Cuz idk what that even means nowadays.

Maybe i'm just jaded because my "crazy, crazy taxi style waymarker + ODB2" monitor isn't progressing, but this is...fishy


From readme:

"""

Unverified against the real car — it will confirm or refute itself on the next drive

"""

Looks like a ton of this is aspirational.

For your project -- do you really need the car's GPS positioning? Could go with a dedicated GPS antenna, like the freematics dongle


GPS accuracy question is the real gotcha in my experience too, dead reckoning between fixes drifts hard on highway overpasses/tunnels. Curious if v0.3's cloud integration pulls a cleaner fix than the OBD stack alone, or if you're still stitching both sources together.

I've had many drives with the carwatch and the list of verified features is long. Today we tested manufacturer cloud integration for lots of data and e g door locking through it. V0.3 came out today, progress is rapid.
rpcope1 6 days ago | flag as AI [–]

I have no idea on OP, but as far as a waypointer, have been in the area of building bespoke automotive telemetry solutions for a while now (including reversing some existing tools), I would wager that something like the Freematics One+ could do it easily if you combine the IMU with the GPS data (I've managed to get good data for something similar this way). The Freematics dongle does suck in comparison to even the now gone STN2120 as it artificially bottlenecks PID data retrieval on the CAN by the boneheaded design of the STM32 coprocessor firmware, but it probably would work well for your use case.

EDIT: I've actually got a couple cars with the One+ B, doing that sort analysis/data capture, so speaking from actual experience here.


Yes Qwen runs local. Manufacturer cloud workw via existing integrations (they have many) in Home Assistant. The Pi makes a secure tunnel to my home assistant running on a Mac mini at home, and then reads data and gives commands like the manufacturer's mobile app does.

It's all in the repo and this feature has been proven on several test drives, feel free to check it out. What would be great if you can add your cars cloud to your HA and use it with CarWatch, so we could have expand device coverage. I have only 2 cars and they are both MB - the nice thing is you can view both cars on CarWatch, one just does not have OBD port on :)


It's unfortunate that a 16GB raspberry pi is so incredibly expensive now. Fascinating how we've scope creeped over the years from the original $30 or $35 raspberry pi SBC to this.
blululu 6 days ago | flag as AI [–]

FWIW you can still buy a B+ for like $30. They just aren’t that useful.

https://www.adafruit.com/product/1914?src=raspberrypi


You can buy a pi 4 1GB for $49 CAD which is pretty close to the original price, especially accounting for USD:CAD conversion and inflation in the last 12 years. That's a much more normal price for something with all the I/O pins of a raspberry pi. I would never in my life even think of trying to run a LLM of that size on one (spending $300+ on the board just to do so), it's really just a weird use...
fedeb95 6 days ago | flag as AI [–]

I think you should provide better use case scenarios that make clear why this project is useful.

I can already change AC and lock doors with two buttons, why it should be better to do it by voice? Pressing those buttons is way faster.

I guess the manual RAG is useful, what I am saying is that use cases aren't clear from your post or README. As it is, one reads it as "cool, LLM in a car", and skips it.


Thanks point taken, will add clear use cases with proven / in testing / planned status indicators!
dofm 6 days ago | flag as AI [–]

Cool — but is that model really the right choice for the task?

I guess it is only 3B active which helps a lot but is Gemma 4 E4B not more practical?


Qwen3.5-4B would be a good (better?) candidate. It uses a gated, deltanet hybrid, so your KV cache stays nearly flat as context grows, important for RAM-constrained environments like the Pi.

Qwen 4B and 9B should be faster and better reasoning than Gemma 4 E4B. Other good options for that much RAM are Gemma 4 12b and 31b. Gemma 4 E4B would be better for native audio, but OP is using Whisper for STT so prob doesn't matter
dofm 6 days ago | flag as AI [–]

The issue is not RAM size. It's memory bandwidth!

The 12B and 31B models will be useless on a Pi 5; maybe the 12B can be persuaded to run, but it may not manage more than one token per second. It only manages 17GB/s memory bandwidth (I have seen a suggestion that the 4GB model manages more).

But yes — some sort of small reasoning-oriented model (Ornith?) seems a better candidate than Qwen 35B.

(Don't get me wrong, I think the 35B model is ace… just seems like at least an unusual choice here)


It was chosen because it presents a new level of intelligence in this size class. The smaller gemmas abd qwens are not so smart.

It was a very tight fit!


Just launched v0.4! Listens to spoken questions, reads sensor data, thinks hard and gives sharp as nail answers - completely offline.

Video from today:

https://x.com/petruspennanen/status/2093404279000141869


I will shamelessly plug https://pitstop.app. I've been working on this for years and I work on/race cars regularly.

I wouldn't fully trust LLMs with this :p BUT this project is still really freaking sweet.


Very cool! Working on a product for in-care use as well, complementary to this. Would love to talk shop!

Yes, I'd love to! How? haha I'm robdel12 on pretty much everything (twitter, github, threads). Personal site w/email link https://robertdelu.ca/ I'd rather not put my email out here :p

Any/all work!


At one point, every machine on earth is going to be its own agent, asking and answering questions and expressing concerns. Its like a good example of that, but I think the utility of it needs to be clear, by making some action a lot more convenient or even better, by solving a structural impossibility - what is it that you can do with an agent mounted in a car that you otherwise can't? That seems like a much stronger use case to me.

Exactly right! Yes now adding use cases where you actually need an agent in the car. Proactively informing the agent team about car status and them performing follow up actions based on my schedule and preferences too is one basic set up where an agent is needed.

I feel that it could be a nice addition for:

- People that didn't read the manual (actually almost all of us), like: explain a warning signal

- Or integrate different systems together: `I saw that on your GPS you want to go to this place, but in 2 hours it will be snowing heavily there. Please remember to bring your snow chains'

rpcope1 6 days ago | flag as AI [–]

> stuff like changing AC

Maybe it's different in the People's Republic of Europe or wherever, but either that's a translation error or I don't understand, but I would be interested to see how quickly the EPA gets mad when Claude tells you to recover your R134a to the atmosphere.


Greetings from the republic.. yeah I part time live in Berlin where we had 41'C (that is like 106 F ?) end of June, and have been watching them reconsider their attitude to AC.

Anyway here I meant activating heating / cooling before you step in the car, as determined by your agent family who understand you well and not requiring any "AC on!" commands from you. i live in Finland and preheating is very useful in the winter


I assume it means changing the settings like fan speed or target temperature.
hypfer 6 days ago | flag as AI [–]

What is the LLM doing there?

Why does it need to be hooked up to the car for you to ask it which type of engine oil the manual recommends?

What is the point?


You could hook it up with different tools, like real time information:

Oil + GPS + Web Search --> "LLM > You have 50 Km of autonomy. You can go today to this cheaper oil station, at 20 km, on your GPS road, instead of the one near your home. The one at 10Km is closed as well due to a local strike, I will avoid it too"

You can of course script all the scenarios + only use a TTS model. However, when plugging different systems together, I feel that it's the sweet spot where LLM is shining --> no need to pre-plan every scenarios that the user will ask, it can be done on the fly


People don't want to ask google, they just want to ask their plagiarism machine instead and be fed some answers directly, correctness be damned

If I ask google, it will just use the google plagiarism machine to serve me a response anyway, might as well ask the plagiarism machine of my choice.
avi 6 days ago | flag as AI [–]

Point is "car AI" sounds cooler on a Show HN than "PDF reader."
amelius 5 days ago | flag as AI [–]

> and refuses to answer what the manual doesn't say.

Prove it.


If the agent could read info like the manual and had a memory system logging vehicle operation data, this seems like it would get pretty useful over time

Yes exactly! It has the manual and uses RAG on it.

What's the hardware situation to get OBD data?

You get a bluetooth device that plugs into the odb port, or a patch cord that you connect to your raspberry pi. There are fancier ones with more features, that can do more than just report signals like watch for certain signals or changes.

https://www.amazon.com/s?k=obd+bluetooth+adapter


Any standard OBD-II ELM32 will work, they are like $15.. Mine is a Vgate iCar Pro over bluetooth. A USB ELM327 v1.5 also works
ellis0n 6 days ago | flag as AI [–]

Awesome!

Thanks! :)

Release 0.3 out today!

bitwize 6 days ago | flag as AI [–]

Now make it talk in a Fuchikoma voice.

Ok. Coming up in v0.4!

I’d be most interested in how it handles uncertainty when the answer depends on trim/year or service history. For a car assistant, a useful default might be “I found the relevant manual section, but this is ambiguous” rather than a direct fix. Do you surface the source page or confidence anywhere?

It refers to the manual page, that's really all you can do in that case especially offline.