I run OmniOS on an Aoostar WTR PRO as my NAS and for most of my self hosting needs. After installing a new fan, I wanted to see if I could read and control the fan speed from the OS instead of just the BIOS. Using Claude chat, I got a working kernel driver that gives me fan speed, PWM control, temperature readings, and even (incorrect) voltage readings.

I wanted to share as an example of what’s currently possible. I’ve even seen people vibe code ethernet drivers for freeBSD.

What do you all think of using LLMs to cobble together drivers like this?

  • Scrubbles@poptalk.scrubbles.tech
    link
    fedilink
    English
    arrow-up
    11
    ·
    2 days ago

    Personally it’s what I use them for the most. I do not have the time to reverse engineer arbitrary things like this. I have a scooter that uses Bluetooth BLE which has no connectivity beyond that. I’ve been using Claude to help reverse engineer the protocol to hopefully get a home assistant integration up and running.

    Claude can see things I can’t, patterns in hex that are coming back, I send in results from wireshark and it can try ad neaseum to try and get something working. Right now it’s about half working. When I have time I’ll keep plugging away. Then hopefully other people will be able to use it, and we can have one less vendor locked in device

    • paper_moon@lemmy.world
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      2 days ago

      That’s awesome! Can you describe your set up for vibe coding this? I’d like to take a look at porting postmarketOS linux, or ubports to some phones I have laying around.

      • Scrubbles@poptalk.scrubbles.tech
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 day ago

        First I asked it how to create a dump file. I hooked up ADB debugging to my phone, then used the scooter’s app as normal, with the logging turned on in Android developer tools. It created a very long and complex dump file of hex that I could not understand.

        However, then I had Claude get to work. I describe that in that I had opened the scooter’s app, and turned it on, paused a few seconds, then turned it off and closed the app. It started attempting to mimic the commands through the computer’s local bluetooth device, to get a successful response. Eventually, after something like 20 attempts it found a hidden clue that was basically a pattern that it had detected, and it was able to finally get an ACK from the scooter. Something I would have never been able to do. From there we have a plan on how to map out all of the other commands, but it was a huge win for the day.