NHacker Next
login
▲Claude writing a macOS driver for my obscure HP printer built only for Windowstwitter.com
225 points by porridgeraisin 24 hours ago | 171 comments
Loading comments...
ryandrake 14 hours ago [-]
I was able to (through heavy Claude use) successfully reverse engineer a golf cart motor controller that is programmable over USB, but only was supported by a Windows application. Claude walked me through using ILSpy on the .NET assembly, using Wireshark to capture the protocol over USB, and to completely map out all of the functionality in the Windows application. The output was a portable C library and CLI program which, so far, has worked well.

I consider myself kind of an AI detractor but even I'll admit that the tool allowed me to do something it would have taken weeks-to-months to learn to do the hard way.

grvdrm 19 minutes ago [-]
Doing something similar with audio equipment. I have an older USB midi controller that doesn’t seem to have official support. Claude helped bring it back to life!
squibonpig 13 hours ago [-]
Had a similar experience getting a niche app running under wine. The bot had to bring in a different open source renderer, patch dlls, adapt a mapping tool from a different chip architecture to partly map and modify the binary, crazy stuff. Alternatives exist but are expensive, this got it working in an hour when doing it myself would probably be 2 weeks.
josephg 12 hours ago [-]
Last week I had Claude add support for aac audio to davinci resolve on Linux, just by patching the binary. It did almost exclusively with gdb and objdump, patching about 5 functions over an hour or two.

I only got it to the proof of concept stage. The patch adds aac but breaks flac support in the process. And it only works for aac in mp4 container files. But I’m sure with a bit of time we could make a patch which works everywhere and is additive only.

I say ‘we’ - I barely helped. Almost all the work was done by Claude.

Here’s Claude’s report, if anyone wants to build on this work:

https://claude.ai/code/artifact/87d38c2e-9ecb-4066-90cf-e0b2...

blensor 2 hours ago [-]
Are you planning to develop this in the open somewhere. I would be more than interested to have that davinci capability as well
sinpif 14 hours ago [-]
Had a similar thought today - maybe we could finally get Linux drivers for more HW...
themaninthedark 54 minutes ago [-]
Well good news... er... the opposite actually....

>Additional Old Linux Drivers Face Removal Due To Noise From AI/LLM Coding Agents

https://www.phoronix.com/news/Linux-Retiring-Moxa-Driver

nevi-me 14 hours ago [-]
And with the Linux Kernel being friendly to both LLM usage and a modern language, for some of us who don't know C, a huge barrier is lifted from being able to write device drivers.

Not a successful anecdote, but I have a Windows Hello compatible Kengsington fingerprint reader, and for some time I wanted to write drivers for Linux. Even without using C, it would have been a huge undertaking only to fail in the end; because Claude did much of the research and concluded that the device wouldn't work on Linux (can't remember why but it made sense). Then it suggested what could work.

yakz 14 hours ago [-]
Back in the day when dial-up modems were a "significant" market, the concept of "WinModems" came around. Minimum hardware, maximum software. If the sensor is good enough to actually work though, it probably won't be long before an agent can implement the driver, if it can't already.
ryandrake 14 hours ago [-]
I don't understand the technology enough to see why, but LLMs seem unusually skilled at reverse engineering proprietary software.
mmh0000 14 hours ago [-]
LLMs are good at producing what they/the public know.

In this case:

  LLMs know the USB Spec very well.

  LLMs know how to read raw packet dumps.

  LLMs know how to convert a packet dump to USB spec

  LLMs know how to write code to generate USB packets from the spec.
LLMs are also VERY good at transliteration, i.e., converting known-good Python to Rust.

Basically, If you have a well-documented problem, the LLM is a shortcut to learning it yourself. LLMs fail when you have a novel or poorly documented problem. They also fail when you provide the LLM with terrible context or too much context.

CamperBob2 12 hours ago [-]
Don't sell in-context learning short. Right now I'm waiting on Claude to wrap up the latest of a half-dozen extensive changes to XML files for a fairly-obscure (and obsolete) closed-source electronics CAD program. I am pretty sure it doesn't know anything about these files besides what's in the XML .DTD file (which I also gave it.)

This is a very novel, reasonably-poorly-documented problem, and so far it has batted 1.000.

danielheath 14 hours ago [-]
IMO it's because they don't get burnt out by a lack of results.

After 5-6 consecutive approaches fail, I need a reason to think the next one might work out to stay motivated.

Claude will keep burning credits trying new approaches until something sticks. That's a huge advantage in a field where most of the things you try don't go anywhere.

walrus01 2 hours ago [-]
As an analogy, you're not going to cut your lawn by hand at the speed and slow pace that the smallest and weakest lawn mowing robot does. You're not going to cut your lawn with kitchen scissors. But the LLM will, metaphorically, be perfectly happy to cut your lawn with kitchen scissors as long as it has enough time/tokens to keep cranking away at it.
Gracana 9 hours ago [-]
I had a discussion about this with a friend recently. I was using an LLM with a serial console that it wrote to allow us to share a connection to a Z80 computer running CP/M. I was having trouble with the assembler, it wouldn’t assemble in user 1 of a particular disk, so I asked the LLM for help. It debugged ASM.COM and the BDOS, walked through the source compared to memory dumps, basically banging its head on the wall for an hour or more, until it finally figured out and verified that my disk had a bad block. I never would have put in that much effort to find the root cause of the problem.
walrus01 2 hours ago [-]
LLMs don't get as mentally exhausted by trying repeated tedious things as a human will. Same general idea as, imagine if you as a human typing into a keyboard had to manually fuzz test software in a pre-LLM era vs. how fuzz testing is actually done.
buckle8017 46 minutes ago [-]
That's actually pretty simple.

Reverse engineering isn't so much hard as it is exhausting.

LLMs simply don't care about exhaustion.

notfromhere 13 hours ago [-]
LLMs seem to be trained to work very well against a goal, especially one it can verify against. I guess because it can easily know if it passed or failed, va other tasks where good/bad output is subjective
jasonfarnon 12 hours ago [-]
It's LLMs' generalist skills. I think reverse engineering is usually hard when you're in an unfamiliar domain. Eg I've never programmed a videogame or windows application but I'm trying to crack one. On the other hand if you know the domain, and know what the programmers' intentions must be in any given block of code, it's often straightforward. There are no unfamiliar domains for LLMs, including it seems proprietary software.
fl0id 14 hours ago [-]
To some degree. But esp for drivers, you still need to know when they go wrong, and steer them right, or your code will either just not work or be an unmaintainable, not-upstreamable mess.
IshKebab 13 hours ago [-]
I don't think they're any more skilled at it than someone who knows how to reverse engineer stuff... But it is definitely a place where AI is amazing because reverse engineering is usually extremely time consuming and tedious. AI doesn't care about that.

It also has the benefit that it doesn't usually matter too much if it gets minor details wrong. It's definitely one of the areas - like hacking - where it's a) tedious and b) insensitive to mistakes where AI absolutely shines.

mjg59 12 hours ago [-]
My experience is that they're better than me at a lot of the process, so probably worse than someone who's a full time reverse engineer but as good as or better than most. They'll definitely get some small details wrong that would derail the entire thing, so having some skills that are pretty much "This smells wrong" helps a lot, but I think for many scenarios they'll unblock someone who has little RE experience.
SchemaLoad 12 hours ago [-]
Also verifiable. LLMs shine when they can know when the task is completed correctly. Otherwise they will finish and hand over something that's wrong.
andrewmg 13 hours ago [-]
Ditto (except not being an AI detractor): I used Claude and Codex to reverse engineer the proprietary protocol for controlling Devialet amplifiers and then build an iOS controller app to replace the manufacturer's abandoned official app.

The whole thing took about a day, spread out over a week or so. Without AI, I wouldn't have even started the project, because I couldn't spare the time it would have taken.

teepo 12 hours ago [-]
i looked those up, that's pricey gear. is that a similar app abandonment like with Sonos deprecating and moving to newer protocols?
andrewmg 11 hours ago [-]
Sort of. The company released a new model and deprecated its older ones. It’s still possible to control the amps with the (really neat) physical remote.
qsera 5 hours ago [-]
Yes! If only humanity limited the use of this tech to these kind of things where it make sense...
Rebelgecko 14 hours ago [-]
I've had good luck using AI to reverse-engineer Bluetooth comms for "smart" products with shitty apps.
scoot 11 hours ago [-]
I've recently done the same for a Bluetooth LED matrix display, then took it a step further assembling my own hardware (ESP32 controller and RGBIC matrix) to have control over the firmware for features that weren't possible with the off-the-shelf device.

None of this would have been possible (or at least practical from a time-value perspective) for me to do without Claude driving the whole exercise.

eggnet 12 hours ago [-]
I wonder how hard it would be to create various firmware updaters for drives or other devices.
SchemaLoad 12 hours ago [-]
I'd be cautious here because you very easily could brick the hardware. For writing a PC driver it's a lot safer since you can just fail repeatedly until it works.
baby_souffle 12 hours ago [-]
Firmware is a lot harder for a whole host of reasons but it is possible / I've done it.

The odds of success go up a LOT when the stock firmware is easy to extract and reverse engineer.

antihero 13 hours ago [-]
Are we either in a dangerous time where we'll run out of people that have weeks to months, and the resolution/boredom/ability to figure this sort of thing out?

Or are we in a really cool time where we've solved everything so much so many times we can focus on other things?

Tertiary question: If answer two, what the fuck is that?

cracell 12 hours ago [-]
More the second.

For programmers this is the equivalent of when accountants got spreadsheets. We can just tell the machine what to do without manually performing all the steps.

Some programmers enjoyed the code writing more than the problem solving though.

Tiberium 14 hours ago [-]
Unfortunately this is a very misleading article and headline. I don't doubt the end result - it's useful that it works, but it's not "natively" and, unlike what some people assume, Claude didn't write a driver. It basically used HP's existing proprietary driver in a Linux VM on macOS, and just bridged that to macOS.

It also requires a root launcher that runs code from the user ~/.hp1008 dir, so security is weakened.

kuberwastaken 4 hours ago [-]
UPDATE: Noted, shifted to a 100% native MacOS version now :D

https://github.com/Kuberwastaken/hp-laser-1008a-macos

Previous context I shared on X:

"Also some clarification on the "he's just using the linux driver in the VM" - not quite

This is one of the weirdest batch of printers HP made because it's a rebranded Samsung - it "comes" under HP's unified drivers system but specifically has Samsung's printer language so compatibility is extremely messy.

What this version does is take the Linux Unified Driver and extract just the relevant component, rastertospl, basically the codec that turns CUPS raster data into the Samsung SPL format the printer understands. That codec is then wired into macOS’s native CUPS stack, so printing happens through the system like a normal driver. There’s no Linux VM handling the actual print workflow and the entire process basically acting as a driver normally at system level.

In theory, yeah - rastertospl could be reimplemented from scratch. But that would be way more unreliable while turning this from a ~4-hour project into a ~4-day reverse-engineering project, when starting this, I really just wanted a working home printer and running a tiny compatibility applet in Docker just for that codec feels like a pretty reasonable compromise AND I get to not see my mac kernel crash if it messes up.

I didn't expect this to blow up this much lol, so I'll be experimenting with this further and am already in talks with the splix team to sort this specific version out"

column 3 hours ago [-]
I do not want to call anyone names but the level of pedantry and gatekeeping in this comment and the replies is outstanding. I can hear Chuck McGill screaming "You're not a real driver!".
fg137 1 hours ago [-]
Since when is pointing out technical errors a sin on HN?
a2tech 10 hours ago [-]
He could have done this with 10-15 minutes of googling instead of spending 4 hours prompting a LLM.
supriyo-biswas 10 hours ago [-]
This comment should be pinned, and the fact that a misleading post continues to be on the first page blows my mind.
mrweasel 5 hours ago [-]
Yeah, that was rather disappointing. I wouldn't have minded that the Linux driver had been used as an input, allowing Claude to reason about the functionality and interface. That seems like a reasonable approach.

The "only built for Windows" is also a little dubious. Technically I suppose HP could have just intended it as a Windows printer, but the driver clearly already exists in CUPS, which Apple also uses, so porting the driver isn't an unreasonable thought.

netsharc 12 hours ago [-]
Ah, 2026... When the "tech write up" on page 1 of "Hacker News" is some genius selling an LLM creating a VM as "wrote a driver".

OP should probably add this to his list of accomplishments on LinkedIn...

perching_aix 13 hours ago [-]
It's strange, because I have zero doubt in my mind that Claude could 100% genuinely reimplement the driver and port it to actually natively run on macOS, were it prompted that way.
qingcharles 12 hours ago [-]
Agreed.

I bought some cheap host-managed SATA drives the other day that the BIOS can't see and Windows won't recognize. I asked Claude to write a Windows app so I can use them, and it resisted at first, but then gave up and wrote it and they now work great.

It had to implement the entire stack of bare-metal drive functions over SATA and a whole new filesystem to go with it.

bombcar 11 hours ago [-]
Generate the VM, send it crafted PDFs to print, see what it produces, and build a driver. Not that “hard” even for a human, an AI could probably one-shot it.
xyst 13 hours ago [-]
yup, clocked this in just the first few lines of the transcript.

I am sooo tired of this AI generated slop.

pudgywalsh 13 hours ago [-]
For the amount of electricity wasted by the LLM in the data center it would have been more efficient to buy a new printer that works out of the box.
bethekidyouwant 13 hours ago [-]
Redditors actually believe this
NewsaHackO 13 hours ago [-]
Also, they seem to care about wasting electricity but doesn’t bat an eye of discarding a perfectly fine printer.
fzeindl 16 minutes ago [-]
This adds to my feeling that LLMs are incredible at storing compressed information and accessing it in a versatile way.

Apart from occasional hallucinations we celebrate their ability to dissect information and to find obscure links between facts. Hence their stunning effectiveness in finding security holes or new approaches to math problems.

Interestingly the generative part - producing the answers - is what we are criticizing a lot: we think the code is verbose, texts have a weird repetitiveness to them etc.

nullify88 23 hours ago [-]
On a similar experience, I use moonlight on my Android TV to stream video games from my computer in another room. I use my own fork from an unmerged PR which enables me to use an Xbox One Wireless adapter so I can play with my pad wirelessly. These pads have a 3.5mm jack on them which on Windows and Linux enables me to route audio from the game to headphones connected to the pad. Moonlight and the xow driver it bundled, was nowhere near being able to provide this as a feature.

After about 5 hours, feeding it the GIP spec, an export of sniffed usb traffic from Windows, prior art (xone driver for linux), and giving Claude connectivity to my Shield via adb, I had it working. This continuously blows my mind that I dont have to beg a developer on Github to do it for me.

Claude could do it for me for $20.

netruk44 23 hours ago [-]
I have another controller-related anecdote.

I have a Razer Wolverine Xbox controller that has extra back paddle buttons. The controller doesn't expose the paddles directly to PC's over USB. You have to use button remapping on the controller to map them to 'real' Xbox buttons for the PC to see them. But I wanted to use the back paddle buttons on Steam as separate controls.

So I downloaded the latest firmware update off the internet (because what device doesn't have firmware updates these days), installed Ghidra and an MCP server for it, and told Sol to look for how I can expose these extra buttons to a PC host. Maybe we could write a firmware patch?

Turns out the controller already has a special mode to expose those buttons, possibly as a hardware test. But it was enough to write a Linux driver to put the controller into that mode, and a little bit of extra driver code to map the paddles to a Linux controller button, and voila. Paddles working in Steam.

And it only took a few hours to do, too. I spent more time making an open source repository out of the concept than I spent making it work.

rivetrune 21 hours ago [-]
What's the repository link? I think it would be fascinating to have a corpus of "hacked" solutions like this. Can't tell you how many times a couch co-op game night got sabotaged by some piece of hardware failing to communicate with another.
netruk44 20 hours ago [-]
The creatively-named https://github.com/Netruk44/wolverine-v3-pro-linux

The "linux" support is pretty narrow (because I made this for myself). It's restricted to SteamOS. But I'm sure it could be ported easily, the repository contains documentation about the important parts from reverse engineering the firmware.

rivetrune 19 hours ago [-]
Thank you!
matheusmoreira 20 hours ago [-]
> spec, an export of sniffed usb traffic from Windows, prior art

I used to feel proud of the fact I reverse engineered some of my laptop's features using stuff just like this. I suppose that's over.

nullify88 20 hours ago [-]
I suppose you can still be proud you did it during pre AI times and the gained knowledge by doing it yourself.

I don't expect Claude and other hosted AI's to be available so freely and thats when it'll get harder for me to do stuff like that.

oneplane 13 hours ago [-]
Wouldn't it have made more sense for Claude to suggest using the existing Linux-Airprint-VM project/product that already does this exact thing?

There's even a zero-install method via https://printervention.app where it runs that Linux VM isolated inside a WebUSB-capable browser. That website itself was posted right here on HN not too long ago.

I get that the LLM code assistant software prefers writing stuff, but constantly re-writing the same solution seems a bit inefficient.

Lucasoato 13 hours ago [-]
But it wouldn’t have used so many tokens ;)
kuberwastaken 4 hours ago [-]
used like $10 of tokens btw :)
oliwarner 5 hours ago [-]
Four hours of a machine looping through a cycle of repetition, guessing and failure, gratuitous air-punching and premature celebration, before eventually landing on a hideous "solution" that just uses an existing driver from another platform.

LLMs can do stuff but this isn't a good example.

feintruled 14 hours ago [-]
So the critique from the other story holds true - it really is just running the Linux driver inside docker, and (perhaps) dressing it up as something more - though I note the claim on this page is walked back from the original 'writing the driver'. On the other hand, it really did get him printing from his Mac, so in this new LLM results based world we live in it did its job admirably.
embedding-shape 14 hours ago [-]
Somehow, I'm not exactly sure why, I got creeped out by Claude's finishing line:

> Thanks for being such a game debugging partner through all the test pages. Enjoy printing, you and the family.

Maybe it's because my own LLM usage is very "Question > Answer" or "Do this > Agent does that" and I never say "Wow, that's crazy it works, thank you!" at the end or such, so I don't see that sort of things, but if I saw that regularly I'd turn me off so badly from using LLMs. I'm not exactly sure where this feeling is coming from though, it's relatively innocent but just feels so inauthentic, I'm guessing because it's simply a machine.

yakz 14 hours ago [-]
The way that you talk to it influences the way that it responds to you and it is not subtle. I don't want to hitch on to the "it's just really complicated autocomplete" bandwagon, but this is one of the ways that it does feel like that.
nevi-me 14 hours ago [-]
With voice dictation (wispr flow), I find it easier for me to talk naturally as if I'm talking to a friend. I'll sometimes give lengthy notes on context for a project, like why I want to do it, e.g. something for my wife to use.

So I find it common (and fine, I suppose) for Claude to reply using that context. "Let me know what your wife thinks of the app" etc.

column 3 hours ago [-]
Free opensource alternative to whisper flow : https://handy.computer
theultdev 14 hours ago [-]
I'd be willing to bet somewhere in that conversation he said family printer or something.

Seems an oddly specific thing to hone in on otherwise.

hmokiguess 14 hours ago [-]
That's funny, 'Ctrl + F' for 'family' returns a lot of uses of that word in different contexts, so I guess it must have scored heavy eh
ex-aws-dude 14 hours ago [-]
> Leave my family out of this!
mag7269 14 hours ago [-]
https://peepshow.gifglobe.com/scene/?id=HAGUFD3NuzO4
14 hours ago [-]
JKCalhoun 23 hours ago [-]
https://xcancel.com/kuberwastaken/status/2089377982536388964
PeterStuer 2 hours ago [-]
Amazed Claude didn't refuse this for "cybersecurity". Then I noticed this was this Opus 4.8? Did the author start with 4.8 or was this a fallback from the 5 series?
seiferteric 20 hours ago [-]
I just fix a long standing bug on my Linux desktop I have had for years and kept meaning to look into to see if I could fix. The issue was I have a sound blaster katana sound bar and it works okay but the volume on the device is not in sync with the volume in Linux. In Windows it stays in sync. I can work around it by each time I boot, I press the button to go to max volume, then lower the volume in Linux to the desired level but it's been an annoyance. I described the issue to codex and within a few minutes it had it fixed by updating the pipewire device profiles to use the volume control it exposes. Honestly amazing since I doubt I would have ever gotten around to figuring this out since I didn't even know what level of the stack the issue was, I thought maybe it was in the driver itself.
jrflo 7 hours ago [-]
Stuff like this is so nice, I wonder where it will go in the future. Recently on my PC I had a failed windows update that killed the bluetooth driver, I tried to fix it for over an hour and got no where (even consulting chat gpt). I just let codex loose with full authority on the problem and the driver was working again in 5 minutes with no reboot needed.
brabel 20 hours ago [-]
You just gave me an idea to fix lots of little annoyances in my old Linux laptop that had been retired because of those! Maybe the old little laptop can still give me a few more years of fun.
pmdr 6 minutes ago [-]
How much longer until such use is deemed unwanted by our AI overlords?
alexnorton 4 hours ago [-]
Along similar lines I used Codex to reverse engineer and build a modern driver for the niche, proprietary Sony USB protocol for an old camcorder I have lying around, having never done anything like that or used Rust before. It feels like LLMs could be a huge force in making older hardware usable again.

https://github.com/alexnorton/handycam-rs

kuberwastaken 3 hours ago [-]
Update: We're actually fully MacOS native now! https://github.com/Kuberwastaken/hp-laser-1008a-macos
jorl17 22 hours ago [-]
Recently, I had bizarre situation: I wanted to play a game from my childhood on Windows 11, but, without changing two booleans in the settings, I could not reliably move my in-game cursor. The catch is that to change those values in the settings, I needed to move my in-game cursor. So I was stuck.

After digging around, I found a file that looked like it could be the settings file, but it was not plaintext.

Naturally, I told Claude all the options I knew existed in the settings and told it what I needed it to change.

After about 10 minutes poking around my system and the file, it correctly identified the bits (not bytes!) that corresponded to the two settings, and flipped them on. It. Just. Worked!

(Well, then I found out I actually needed to do quite a lot more than flipping those bits, but I still found it worth sharing).

I have many more experiences similar to these. LLMs are an amazing superpower.

txomon 22 hours ago [-]
I have a similar experience. I'm playing minecraft lately and I have patched already like 5 issues in the server that I would never put together time to trace/debug/understand/fix, including some o(n^3) integration between mods that was lagging the server. Same thing for utilities, managing backups, etc.
jorl17 20 hours ago [-]
I've said this time and time again but with LLMs I got the joy of being a little kid learning to code and build stuff again. I haven't had such a custom-built setup since my earliest college days, because I had lost the time to tinker and looked for stuff that just worked. Now tinkering is so much easier that I mod the software I use all the time as well.

For example, I needed to change something in a particular function of firefox (which was in and of itself an amazing claude adventure to find that solved a problem I've had for well over 2 years), but only that very specific function.

I didn't want to fork firefox and have to constantly rebuild it just because of this one function. So I setup an LD_PRELOAD (well, not LD_PRELOAD, but the macOS equivalent) trick that injects only my modified function, as well as a full mechanism that traps firefox's auto-update process to reinject/re-arm the LD_PRELOAD trick into newer versions. I've had it going on for 3 months without any issues.

I counted and I have about 18 custom built apps ranging from "full blown swift GUI" to "tiny helper script" that have really changed how I interact with my computers for the better. It's so cool to be living this revolution.

fagnerbrack 46 minutes ago [-]
Majority of people are still completely blind to what's going on
msyea 3 hours ago [-]
Awesome. I had a crack at the Xerox Travel Scanner 150, which had niche drivers for some reason, only shipped Windows and didn't make it into SANE. Wireshark and prior art from SANE got me most of the way. Getting the stepper motor working was really hard and I didn't manage to get it completely working Maybe I'll resurrect 15 year when it's a little older. I really fancied a Pi+Scanner pipeline with OCR/AI to file all my documents as they arrive. Maybe I should just take a photo?
LeoPanthera 15 hours ago [-]
Claude Code is extremely "honest", and uses that word 10 times in that short transcript.
DougN7 14 hours ago [-]
I find it uses “faithful” an awful lot. But it comes in waves - not at all for a few days and then 10 times in an hour.
physicalecon 14 hours ago [-]
[dead]
pwython 21 hours ago [-]
I have actual obscure RGB corner floor lamps with BLE in my office. I had Claude find the BLE protocol and use my Office 365 calendar feed to change their color to red when I'm in a scheduled meeting (event), and back to warm white when the meeting is over, so co-workers know I'm busy without doing "are you busy" sign language through my window. The script is polled every 60 seconds. Tinkering with stuff like this is a lot of fun.
1970-01-01 22 hours ago [-]
Obscure? Sir, the printer is sold on Amazon. It is not obscure.
jwr 23 hours ago [-]
Freedom -- that's what it is. There are now more and more cases where we don't have to ask for permission.

Unfortunately, as I look around, I see most of the hardware vendors around me as gatekeepers. They prevent me from writing custom code in various ways. Apple restricts access to NFC or their UWB positioning, Supernote Manta does not let me access a bluetooth microphone, the list goes on. Denon at least has an API in their amps/receivers: buggy, but it's there.

ramijames 21 hours ago [-]
I think, from a business perspective, they just don't see us at all. We're such a small, inconsequential part of the market that building open, free hardware with code that we can update, change, or alter for our needs is just.. not part of their business use-case.
itchyouch 20 hours ago [-]
I hope that with AI, this becomes a far more compelling selling point that consumers demand.
ramijames 18 hours ago [-]
I think right now AI is mostly providing a much better experience for using a computer for people that already have deep knowledge of how to use a computer. For example, no matter how many times I've tried to explain how to use it, my wife is just happy to keep plugging away at what she does without leveraging AI for automating away the repetitive parts of her work. I think she's a much more real-world use-case than I am. I like to tinker. She just wants to do what she does.
Avamander 14 hours ago [-]
Denon is definitely one of the better examples, there's so much expensive home hardware out there that gives you basically nothing. Starting from ACs ending with TVs.

I unfortunately can't see it becoming in any way legally mandated either, just have to hope for a good vendor.

throwaway613746 22 hours ago [-]
[flagged]
ssdspoimdsjvv 19 hours ago [-]
If I understand correctly, it just wraps an existing Linux driver in a container. You can hardly call that writing a driver.
ncr100 19 hours ago [-]
Would calling it a "driver adapter" fit more accurately .. ?
unregistereddev 18 hours ago [-]
I don't think so, no. It does not appear to be functioning as an OSX device driver. It's just hosting a network print server in docker.
kuberwastaken 4 hours ago [-]
It works with Cmd + P https://x.com/kuberwastaken/status/2089961185047437729
happyPersonR 17 hours ago [-]
Tbh I actually like this even more than writing a driver …

Makes it so if there’s an issue I don’t get a kernel panic

Maybe it could write something CUPS compliant though ?

05 30 minutes ago [-]
To be fair print drivers have mostly been user mode. On Windows since win2000, and on macOS - since macOS 10 Cheetah.
ASalazarMX 17 hours ago [-]
Why not call it a containerized driver?
joachimma 3 hours ago [-]
Does anyone know if Apple would actually agree to sign and allow the distribution of such a driver? The vendorid and productid clearly belong to another entity, which could hypothetically want to create their own driver?
kuberwastaken 21 hours ago [-]
Thanks for sharing :)

linking this here for those who don't wanna read the threads https://github.com/Kuberwastaken/hp-laser-1008a-macos

genuinely very interesting case to learn from for me because this was one of the HP branded Samsung printers which doesn't have native non-windows support !

inguz 13 hours ago [-]
Reminded me of when I had a Teletype ASR33 on AirPrint (https://github.com/hughpyle/ASR33/tree/master/cups). With LLMs that would have taken a half hour. It would have maybe been less fun? but there's a lot of time faffing around on PPD that I'll never get back.
joshmarinacci 22 hours ago [-]
I was able to get Claude to write an embedded Rust driver for an unsupported epaper screen in a couple of hours by providing it with the spec and some existing C drivers. It’s still not as fast as the arduino versions, but it let me make progress in a project that I’d been stuck on for months.

Reverse engineering seems like an AI sweet spot.

ramijames 21 hours ago [-]
In general I've been really happy to leverage Claude to quickly build software that only I use. It fits my needs exactly and I don't have to worry so much about how others will use it, if it is generalized enough, if the documentation is up to date, etc.

It's kind of nice.

3129476 18 hours ago [-]
Claude did not write any macOS driver. It uses the HP Linux driver inside docker. Here is prior art from 2017. In contrast to the AI gibberish, one can understand it:

https://www.alecburton.co.uk/2017/printing-from-a-docker-con...

There are many such tutorials and Claude just plagiarized as usual.

ASalazarMX 17 hours ago [-]
On the bright side, I hope LLMs erode IP copyright so much we can have a cultural renaissance. China is always put as a horrible piracy heaven, but it is precisely their disregard of IP that got them where they are today. The exhorbitant copyright length of today is a net loss to society.
fl0id 14 hours ago [-]
how would that be a cultural renaissance? quantity without at least discoverability just makes it worth-(less). And it's not like chinese companies are by default anti ip, they do like their work protected like most companies...
srmatto 15 hours ago [-]
Then I guess we need someone to sic Claude on trying to re-write the linux driver for MacOS then and see what happens.
skydhash 17 hours ago [-]
Something similar can be done on freebsd to use the much faster wireless drivers in Linux by passing the PCI device to a VM.
kuberwastaken 19 hours ago [-]
Update: I saw a bunch of comments on the post asking how I got Claude to do this

I usually answer saying there's not really a hack for it, you just work with it, convey thoughts decently and try out things with educated guesses until it sticks with these projects.

But I actually went ahead and exported the chat in a readable format for anyone curious enough to go through :) https://cdn.kuber.studio/chat/hp-laser-1008a-driver

rymndhng 7 hours ago [-]
I've had a lot of success (and fun) getting Claude to write a MacOS userland driver for a pointing device (ZSA Navigator).

See https://git.sr.ht/~rymndhng/teach-touch

saejox 15 hours ago [-]
my Brother dcp-t230 also doesn't have macos drivers and it's a usb only printer. if i ever get some tokens to burn, i would try the same.
trollbridge 14 hours ago [-]
I did a similar project for another make of printer, but used DS Flash and GPT-5.6-Sol, so it was effectively free ($2-$3 of Flash and maybe 5% of a monthly Max sub, so $10?)
qurren 11 hours ago [-]
> if i ever get some tokens to burn

The real trick is to have the AI do something that makes its own money, then tokens are effectively free.

People who are complaining about token costs aren't trying.

asveikau 14 hours ago [-]
It didn't write a driver. It used a linux driver. You don't need an LLM.
altmanaltman 14 hours ago [-]
someone already burned those tokens for you: https://github.com/farafonoff/Brother-DCP-T230-MacOS-driver
f0cus10 14 hours ago [-]
i have a label printer that's in the same boat. I wonder how many tokens this convo was
TacticalCoder 14 hours ago [-]
> my Brother dcp-t230 also doesn't have macos drivers and it's a usb only printer.

Same thing here brother: DCP-L2510D (laser printer + scanner).

Wife is on MacOS and cannot print/scan from there, so I'm the scanman.

thrownaway561 14 hours ago [-]
I don't see anywhere in the post or the repo how much it cost him to do this in tokens.
gmac 21 hours ago [-]
https://printervention.app (also co-written by Claude) may be useful in similar cases.
mjmvisser 13 hours ago [-]
Had a similar experience. I bought an ePaper display and a Pi 4 to run a calendar widget on. I got stuck because the open source project I was building off expected the previous generation of ePaper display, and the firmware had changed completely. I found the new firmware examples, but got stuck trying to get it to work. With Claude assisting we banged it out in two sessions of about 3 hours each.

codeberg.org/mjmvisser/infoframe if anyone’s interested.

IronWolve 14 hours ago [-]
Claude is great at that. I have a usb keypad with no linux version of the app to program it. Since its just a vial/qmk based, claude built me a linux version in qt/python.
kccqzy 13 hours ago [-]
Claude can do Linux drivers too. A friend bought a second-hand Intel Mac, installed Linux, and found that some of the hardware didn’t work. It wasn’t very hard to get Claude to write those drivers.
ano-ther 20 hours ago [-]
I wasn’t so lucky with my attempt for a Windows 11 driver for an old emaguc MT4 MIDI interface. It works on Macs, but no longer on PCs.

Claude worked for a while and then spun itself into a loop of making a mistake, correcting it, then making it again.

That was 9 months ago so perhaps I should try again.

leftouterjoins 10 hours ago [-]
Nice! About a year ago I used Claude to make a macOS driver for an ancient laser engraver that only ever worked with Windows.

https://github.com/leftouterjoins/EpilogDriver

swerner 21 hours ago [-]
I tried to get Copilot to port the Linux drivers for my HP CP1025 to macOS, but it failed. Even modern Linux can’t print to it any more, I had to put an older distribution on a RasPi and now I’m printing at reduced quality.

It was crazy how the LLM held on to outdated information. It suggested so many things that might have worked on an older macOS but very obviously wouldn’t nowadays. It also tried to port from Linux for a while until it eventually discovered that cups on Linux didn’t support that printer either.

anthk 14 hours ago [-]
Doesn't HPLIP handle it?
m4rtink 21 hours ago [-]
I've seen this explained as LLMs being well - language models. Driver binaries are just a language understood by the machine executing the binary. While its basically unreadable for normal humans, it is just another language for LLMs & they are able to operate on it, changing the result & translating it (e.g. correlating with specs, logs, docs, etc.).

Given the positive results from what I've heard, this might be actually one are where LLMs could prove useful for once.

dackdel 5 hours ago [-]
thats great but man I want a printer that is not manufactured by hp, epson or any of the giants. new player has entered the game
foodandart 23 hours ago [-]
Nice! I've an ML-1710 that is sitting in a closet that I'd love to get properly working on macOS. I've tried with SPLIX and followed the directions to the letter to install the drivers, but it just doesn't stick, in that I can only manage to get one print queue through the device for each time the computer is turned on. I gave up and repaired a junked Epson and put that into service, but I really prefer the formar printer for making line tenplates.
asveikau 20 hours ago [-]
I'm pretty sure I've used that exact printer on Linux without issue. Long ago, deep into the pre ai era.

Edit: no, I was thinking of the older p1008.

aniceperson 20 hours ago [-]
from the screenshot, i believe it took the linux driver and transcribed to the mac kernel.
asveikau 19 hours ago [-]
But the dominant print daemon on Linux, CUPS, was literally acquired by apple to form the basis of their printer architecture.
eisbaw 5 hours ago [-]
why are people still surprised that this is possible? To me, this is has been normal for the past 1.5 years.
benimar 17 hours ago [-]
The test printout mentions Samsung ML2010 which had a Mac osx driver (had a Ml2020 till a couple of weeks ago).. by the picture of the printer it seems they had an identical plastic mold..they most likely came from the same oem (xerox).. but still nice from Claude to figure it out..
TacticalCoder 14 hours ago [-]
If this could all finally solve, once and for all, printing and scanning issues it'd be lovely (btw there are entire businesses who's only raison d'etre is "installing printers at clients and fixing them when they stop printing").

But of course it's hard not to both marvel and lament (at) the fact that in the mid-1990s (so yup 30 years ago) I could:

    nc 192.168.1.150 9100 < tiger.ps
And the native PostScript printer (also an HP laser btw: a LaserJet) would just start printing.

I know, I know, about garbled print jobs, pages of codes being printed, etc.

But still: it's hard to not at least wonder if some things haven't been lost. For a start printers with their own IP addresses were sweet (instead of a USB cable and, now, people setting up, say, a Pi just to expose a LAN IP for/to their printer). Then of course another talk could be had about the "quality" of modern day HP laser printers compared to what you'd get int the nineties.

tonyarkles 14 hours ago [-]
I was digging into the history of PostScript engines inside laser printers and Adobe made tons of royalty money off of that for quite a long time.
tonyedgecombe 54 minutes ago [-]
They needed more memory and a faster processor as well which bumped the price up. In the mid eighties I worked for a company distributing QMS printers in the UK. A basic laser was selling for £2,000 and the PostScript equivalent was £4,000.
quietsegfault 13 hours ago [-]
That mid-1990s postscript, networked printer when new cost as much as a small car! The HP Laser 1000 was like $250 tops new.
ryandrake 14 hours ago [-]
I've always thought USB-only made no sense on a printer. If there was one device in your house that multiple computers (and phones, don't forget) would want to use simultaneously, it's a printer. I'll only buy a printer that has its own built in network connectivity. Infuriating to have to stick a Pi onto your printer just so it can do what should be basic, table-stakes functionality.
skydhash 13 hours ago [-]
A usb controller is way less expensive than something that can run a TCP stack and the associated software.
sylvinus 17 hours ago [-]
I did the same for a scanner that was missing an driver for latest macOS! https://github.com/sylvinus/freethescan
sgjohnson 14 hours ago [-]
This is awesome. I take it your plans for the next weekend include actually cleanrooming the driver so you can skip running it in a linux container? =P
xyst 13 hours ago [-]
bro is going to need opus and a couple thousand dollars in tokens for something that _may_ work.
qarl2 23 hours ago [-]
Yeah. I have a Stratasys J55 3D printer. Industrial and closed.

And now I can print to it via my Mac.

It's a fun time to be alive.

Dban1 6 hours ago [-]
tbh at times it feels like my fear of failure and lack of imagination is now the limiting factor.
etothet 12 hours ago [-]
Very cool. I want to do something similar to ressurect old Orb disks from over 25 years ago.
jambalaya8 20 hours ago [-]
This is very very cool. But now it has me worried about device driver coders being out of work. Why pay for months of low level coding. Grumble.
abadar 18 hours ago [-]
I've been taking Windows only apps from github and having Claude rewrite them for Linux. It's been awesome.
amelius 23 hours ago [-]
Next try writing a printer driver for your iPhone.
kotaKat 23 hours ago [-]
if you shoehorn it into CUPS you might as well just expose CUPS on your home network and use AirPrint via IPD at that point ;)
TMWNN 19 hours ago [-]
As kotaKat said, it's possible to use CUPS to talk to non-AirPrint printers with AirPrint.

This is what I do with two 4" USB-only thermal printers. They are connected to a Raspberry Pi running CUPS, so I can print labels to them from within my home network. I never need to print labels from my phone, but do sometimes need to print photos to one of the printers. Avahi on the Pi enables AirPrint, and iOS sees that and lets me do so.

column 3 hours ago [-]
Very impressive and enjoyable good experience. This was done with Opus 4.8! In theory Qwen 3.8-27B could do it too.

...I would have asked Fable.

colingauvin 9 hours ago [-]
All the people saying "it's not a driver, it didn't write a driver, it's wrapping the Linux one" are missing the point: no one cares - the printer prints. It didn't before, and now it does.
bulder 5 hours ago [-]
Personally, "AI wrote a driver" and "AI rebottled an existing solution and sold it as Dr. Claude's Miracle Driver" are semantically very different claims to be making in the public square. If you're only making it to use by yourself sure they might behave similarly, but when you're doing it for a public audience people will want to know if you're fibbing with your verbiage.
cushychicken 21 hours ago [-]
I love seeing things like this. Is it not kind of a magical thing to see AI make stuff like this reality? This was always possible but not worth a human’s time. Now this guy has a working printer again. That’s pretty doggone neat.
bethekidyouwant 13 hours ago [-]
Doesn’t every printer work with CUPS?
bredren 13 hours ago [-]
Notably done on Opus 4.8.
Razengan 21 hours ago [-]
If you see articles from old computing magazines or TV shows in the 1980s (there’s some good rabbit holes on YouTube), the prevailing optimism was that everyone would have a computer in their kitchen and write their own programs for whatever they need to do..

But programming languages and operating system fragmentation didn’t let that really take off

Maybe now that original promise of personal computers can be realized :)

Imagine instead of going to the App Store, just telling ChatGPT etc to make a custom app and run it right away on your phone

thewebguyd 20 hours ago [-]
That'd be an interesting future for sure but first we need Google to stop their power trip of needing to ID you before you can install an app on your phone, and likewise Apple will never allow that either without paying the Apple tax.

I feel like both Google and Apple see that future, and are now actively working to make sure it can't happen to protect their app store commissions.

jaen 19 hours ago [-]
The slightly sad part is that most of these LLM-assisted fixes probably never make it upstream, so life for non-technical Linux users does not improve...

If you do AI fixes, for the greater good, at least publish them (or even better, try to submit upstream, although expect to be ignored if the upstream does not like slop...)! :)

ValentineC 15 hours ago [-]
See also: https://news.ycombinator.com/item?id=49344643
ChrisArchitect 14 hours ago [-]
[dupe] Discussion, including activity from the dev https://news.ycombinator.com/item?id=49344643
finchisko 21 hours ago [-]
I would like to see driver for my samsung printer. Drivers for mac was only for some very old macOS
leecommamichael 23 hours ago [-]
"HP" "obscure"

Cool nonetheless.

kotaKat 23 hours ago [-]
sliiiiightly obscure in that it seems to use the ULD drivers (or a variant of); HP's "unified linux driver" that talks Samsung's printing language. it's weird.

https://wiki.debian.org/CUPSPrintQueues#hpuld

claude seems to have realized it was one of the samsung printer variants and just shoehorned in a samsung MFP driver to the OS.

2dahg 22 hours ago [-]
Performing Stallman's stunt. Cool story bro, but unverified. Guy is marketing AI on X with an "attention is all you need" picture etc.
nerevarthelame 21 hours ago [-]
I'm all for being skeptical, but it doesn't take too much digging to find the proof (it's in the original tweet thread): https://github.com/Kuberwastaken/hp-laser-1008a-macos
mariuolo 20 hours ago [-]
But it's not completely native, it's a wrapper around the original linux driver (or parts thereof) running in a container.

Still better than nothing.

AH36 20 hours ago [-]
That runs the original HP driver in a Docker container, using two minuscule Python scripts.

Bro is marketing it as a (native) MacOS driver.

tracespect 14 hours ago [-]
güzel bir çalışma olmuş
theturtle 23 hours ago [-]
[dead]
throwaway613746 22 hours ago [-]
[dead]
iluvcommunism 15 hours ago [-]
[dead]
josteinhylin 19 hours ago [-]
[dead]
theturtle 13 hours ago [-]
[dead]