Using AI to Port a Wi-Fi Driver from Linux to FreeBSD: A Case Study

Direct AI Code Porting Attempt
The developer had a 2016 MacBook Pro with a Broadcom BCM4350 Wi-Fi chip that lacks native FreeBSD support. The typical workaround is wifibox - a Linux VM with PCI pass-through. Instead, they attempted to port the Linux brcmfmac driver (ISC license) directly to FreeBSD using AI.
They cloned the brcmfmac subtree and asked Claude Code to make it work for FreeBSD, specifically pointing to the iwlwifi driver as a reference for using LinuxKPI (FreeBSD's Linux kernel compatibility layer). The initial attempt produced a module that compiled but didn't function because the test VM lacked the actual hardware.
When testing with the actual PCI device, the kernel panicked. Claude Code attempted to fix panics by adding #ifdef __FreeBSD__ wrappers and building FreeBSD-specific shims and callbacks, but warned the project was becoming "very complicated and messy." The resulting diff was significantly larger than expected, and the driver remained non-functional.
Specification-First Approach
Inspired by Armin Ronacher's experience with Claude Opus and Pi agent, the developer switched approaches. Recognizing their task was narrow (one chip, only PCI, only Wi-Fi client), they spawned a fresh Pi session and asked the agent to write a detailed specification of how the brcmfmac driver works with focus on BCM4350.
They explicitly set the audience as "readers tasked with implementing the specification in a clean-room environment" and asked for explanations "to the bits." The agent produced an 11-chapter specification covering:
- 00-overview.md
- 01-data-structures.md
- 02-bus-layer.md
- 03-protocol-layer.md
- 04-firmware-interface.md
- 05-event-handling.md
- 06-cfg80211-operations.md
- 07-initialization.md
- 08-data-path.md
- 09-firmware-commands.md
- 10-structures-reference.md
The developer notes that AI-generated specifications require verification, as one "can't just trust what AI has written."
📖 Read the full source: HN AI Agents
👀 See Also

Running 20 Claude Code terminal windows simultaneously with ADHD traits
A developer with ADHD traits runs 20 Claude Code terminal windows simultaneously across different projects, using AI agents to hold context their brain can't. The article examines both productivity benefits and potential downsides of this workflow.

Using Opus 4.6 and GPT 5.4 to peer-review a memory stack design for OpenClaw
A developer used Claude Opus 4.6 to design a three-layer memory stack for OpenClaw, then had GPT 5.4 peer-review the design. The stack includes Lossless Claw for message preservation, SQLite hybrid search for keyword matching, and Mem0 Cloud for cross-session persistence.

Developer Reports AI Coding Challenges: Design Decisions and Real-User Debugging
A developer building an iOS app with Claude Code for 5 months reports that while the AI can generate functional code easily, making design decisions and debugging issues that only appear with real users are the most difficult parts. The app has 220k lines and real users are testing it.

Connecting OpenClaw to a Rotary Phone via SIP and Speech APIs
A developer connected a Benotek rotary phone to OpenClaw using a Grandstream HT801 v2 ATA, Twilio SIP, Deepgram for speech-to-text, and ElevenLabs for text-to-speech, with audio streaming via WebSocket and ngrok.