New free audio and USB-C drivers for Win

EDIT - release links first

Hello,

I’m a DevOps engineer that does software development only as part of my job though not a main one.

I have been using Chromebook as a second device in Linux, but was always curious how well it would do in Windows. Since the audio drivers were not available though, not without a license, I avoided it.

Well, nowadays, AI tools have changed things. I can build software, but to make a OS level driver would be too difficult and take forever for me to learn and understand.

I started the project as a test of how good Claude Code is, to see if we can build the driver ourselves for one of my devices, from scratch, using Linux installation as a reference where everything works.

Long story short - took about 8 hours to get the first sound out, and then maybe a week to get everything working, fix all the bugs and test everything.

I haven’t released it yet, want to do a few more tests first, but I will be releasing it on Github for anyone to use.

I only have two Chromebooks it has been built on and tested with, so those will work 100%. Devices with similar architecture are likely going to work as well. Anything else - probably not, but my example should be easy to take as a starting point and you can use AI to build your own if you like.

Devices tested and working:

  • Acer CP713-2W (core i5-10210U / CometLake) - audio driver
  • Acer CB514-1WT (core i5-1135G7 / TigerLake) - audio driver and USB-C ports driver

What works:

  • Audio
    • works on Win10 (2004 or newer, tested 21H2) and Win11 (any version, tested 25H2)
    • integrated speakers & microphone
    • Jack headset (headphones and microphone)
    • HDMI passthrough (i.e. to a TV)
      • Works both on integrated HDMI port and on UsbC-to-HDMI adapters/hubs
      • Caveat on Acer 713 - the HDMI audio on my TV only worked when the TV output was set to 60 Hz, but when mirroring screen, the default was 59.94Hz, had to manually change.
  • USB-C - only on TigerLake device, USB-C wasn’t working properly without drivers
    • Windows 10 - regular USB-C with USB3.2 working
    • Windows 11 - should in theory support USB4/Thunderbolt, but I don’t have any device with that connection to actually test it
    • HDMI passthrough tested with 3 external screens

Additional caveat - all the drivers are unsigned, so to install them, you have to put windows to Test Signing mode. To get them signed Microsoft requires developer identity certificates which are like $250 and since this was just a hobby project to test the capabilities, I am not paying that, unless someone wants to foot the bill :smile:

So how do you get it?

It is NOT released yet **- but should be in the next few days. **
I will post the Github link & the releases here when they’re up.

you realize that’s partially why coolstar charges for the drivers, is because they are signed and require dev certs, which cost money.

Absolutely - nothing against Coolstar, he’s done a fine job making those drivers when nobody else did/could, and if people want to buy them, he’s entitled to get paid.

But if someone just wants to test their device on windows, or don’t mind the “Test mode” watermark being active in windows, nothing wrong with having an open source alternative, hence why I will release it free for all to use, fork, or do whatever they want with it.

the watermark isn’t the issue, that’s easily removed. It’s that many games won’t run with testsigning on due to anti-cheating measures.

I agree having a free open source alternative is a great thing, but I’d also encourage open development as well since there’s lots of us with firmware/driver design experience that can help catch things early, and LLMs get a lot of things wrong even when they produce a working result

Of course, I’m not arguing against any of that. And yes, I am a developer with most of my experience in j2ee and python, so working firmware and driver design was way above my head (hats off to you guys who understand it), but it was enough to drive the LLM to actually get a fully functional driver that passes all physically doable tests, windows driver verifier, memory integrity, fault injection. Might not be perfect, but I think for most people who just want to tinker with their device, it could be enough to play with, hence why I want to share it. As for anti-cheat, you’re right, but I think most people don’t get a Chromebook laptop to then convert it into a Windows box and then play online games with root level anti-cheat, I’d consider that an edge case - and for those, they always have the signed drivers option to buy.

Since mine only covers two architectures, it won’t be for everyone either, but I’m hoping it might also inspire others to try similar approaches when another option might not be available in the future.

all of the CB’s using SoF should follow the same arch, unless you’re not using SoF?

SoF is the basis it is built on, but there are enough differences between my two devices that the driver is different for each while making sure everything keeps working.
The Cometlake system has RT5682 audio chipset and MAX98357A amp, which has it’s own way for connecting, powering up headset jack, mixing/presenting audio channels from a microphone, etc.
Tigerlake system also has RT5682, but it uses a newer more advanced MAX98373 amp, which has a different way of connecting things up.

So they do share a fair bit for the RT5682 part that came from SOF, but making them all work and being able to fully drive the headset jacks on both devices, for headphones and mic without failures.. that was honestly the largest part of the work time spent on it.

right, but from a design perspective, you have the SoC layer, the SoF layer, the codec, and the amp. each of which should talk to the others using an interchangeable API. You should be able to drop in alternatives without having to rework any code

well agreed.
this is probably the result of bulding for one platform first and then deciding “hey, this worked, let’s try the other one!” - i wasn’t thinking of interchangeability at that point, so i didn’t specify that was the goal.
if i were to extend this further, definitely would be a piece to refactor. maybe if i get bored and want to do v2.0 :slight_smile:

no reason you can’t feed that requirement into your LLM :slight_smile:

of course, but that would require another week of testing back and forth, connecting and disconnecting in all situations and combinations, and that takes days to finish :smiley:

i’ll release 1.0.0 as is given it’s now passed all tests, and then perhaps as another hobby project do the change for easier extensibility :+1:

TigerLake USB-C driver is now up on github, sourcecode and a release zip with driver & installer script https://github.com/missingtools-dev/chromebook-windows-usbc-driver

Audio drivers to follow after a few final tests finish.

Audio drivers now on GitHub as well.

https://github.com/missingtools-dev/chromebook-windows-audio-driver

I wanted to update the original post on the top of this topic, unfortunately it no longer allows me to edit, so link is now only down here.