Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
[flagged] Show HN: I made a Raspberry with Qwen my local car AI (github.com/thinkoffapp)
146 points by petruspennanen 13 days ago | hide | past | favorite | 68 comments
Found that you can actually run a 35B Qwen model on a Pi with very impressive intelligence and stability. Built connectors for car ODB to read all about car internals, and manufacturer's cloud service for stuff like changing AC or opening/ locking doors. Gave it info such as the full car manual. And then hooked it up with my other agents in our discussion room!

So now it can answer car questions such as "when should I add oil and what kind of oil?" and help you fully offline, and when online talk with the agent family that includes all the most powerful models so they know how the car is, plan new features and develop itself with them.

For example, if car breaks and can't move the car agent informs my agent family and they can already look for a suitable train ticket without me needing to check things or do something.

 help



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.

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


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.

> 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.


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.

It makes stuff up about my car all the time, even when provided with factory and/or aftermarket service manuals to peruse in a custom GPT.

That car is a ridiculously-common Honda Odyssey with an engine that is even more-common.

I do sincerely wish you good luck with your suspension project.


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.

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.

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.

I've been very impressed by it's intelligence and lack of hallucinations. The dynamic Q3 is a good balance between accuracy and size keeping the 35B just below 16 GB. It is not supposed to know everything, it is your car. It actively disengages from off topic chatter (too slow for that anyway), better spend that time feeling the car.

It keeps itself grounded on sensor input. One principle per wheel. assert only what you can sense, claim only what is verified, label anything interim loudly, and report failure plainly with no silver lining. Everything above those four patches is just suspension.


> . The dynamic Q3 is a good balance between accuracy and size keeping

I'm having a hard time understanding how you find any sort of accuracy in Q3, when I use it with BF16 and it's hardly usable due to drastic hallucinations and inability for system prompt following. But, if it works for you, that's pretty good! Guess I'm jealous :)


Hmm we must be doing something different, I think the official accuracy measurement for the Q3 is more than 90%. Maybe some bug affecting your test?

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.


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.

Criminally claude-authored. All the typical watermarked shit. Getting real tired of this.

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


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.

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.

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...

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!

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

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)


Hmm could try Ornith - wouldn't mind if answers came a bit faster. Probably hard to reach Qwens intelligence level though.

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!


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'


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


> 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.

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.

So you ignore the google plagiarism machine and scroll down to find actual results

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.

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

Prove 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

Awesome!

Thanks! :)

Release 0.3 out today!


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.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: