Supporting HOPERF CMT2300A on Linux

What This Article Covers This article presents a practical journey to add Linux support for the HOPERF CMT2300A Sub-GHz RF transceiver - starting from extracting register configuration tables out of vendor firmware, to building and testing a Linux driver on real hardware. You'll learn: How TP-Link's driver situation motivated this effort How firmware was extracted and analyzed How to build and load the custom driver on Raspberry Pi How to verify real on-air packet RX This is aimed at embedded Linux developers, reverse engineers, and RF hackers. It is not a beginner Linux kernel tutorial nor a full CMT2300A datasheet walkthrough; the focus is on practical bring-up and reproducibility. ...

December 23, 2025 · 8 min · 1497 words · Dhiru Kholia

Debugging gaming pads on Linux

While running https://github.com/fhoedemakers/pico-infonesPlus, I found that my SNES gaming pad was not fully supported. Specifically, the UP/DOWN and LEFT/RIGHT keys were not working. Let's debug this a bit: Plug in the gaming pad on a Linux box and run the following command (hidraw5 will need to be changed as needed): $ lsusb ... Bus 001 Device 063: ID 0810:e501 Personal Communication Systems, Inc. SNES Gamepad $ sudo hexdump -C /dev/hidraw5 ... 00004a50 01 80 80 7f 7f 0f 00 00 01 80 80 7f 00 0f 00 00 |................| 00004a60 01 80 80 7f 00 0f 00 00 01 80 80 7f 00 0f 00 00 |................| * 00004a80 01 80 80 7f 7f 0f 00 00 01 80 80 7f 7f 0f 00 00 |................| This is what I see when pressing the UP key. ...

September 29, 2025 · 2 min · 292 words · Dhiru Kholia

Running Vivado 2025.1 on Ubuntu 25.04 (plucky)

Notes to get Vivado 2025.1 running on Ubuntu 25.04 (plucky) Linux distribution. Original reference: QMTech XC7Z020 Notes Setup Install dependencies: sudo apt-get update sudo apt-get --no-install-recommends install \ bc binfmt-support bison build-essential ca-certificates curl \ debootstrap device-tree-compiler dosfstools flex fontconfig git \ libncurses-dev libssl-dev libtinfo6 parted qemu-user-static \ squashfs-tools u-boot-tools x11-utils xvfb zerofree zip Hack deps a bit: sudo ln -s /lib/x86_64-linux-gnu/libtinfo.so.6 /lib/x86_64-linux-gnu/libtinfo.so.5 You can now go ahead and run the Vivado installer. ...

September 21, 2025 · 8 min · 1552 words · Dhiru Kholia

Reimagining the 'Tangara' Music Player - Part 2

Tangara is an excellent project! It recently inspired us to build a similar FOSS DAP product but at a much lower cost of <= 40 USD. Our initial tech stack: RP2350-Zero, PCM5102A 32-bit 384kHz DAC, Burr-Brown OPA1662 (specified for 3.3v) as the unity gain buffer and headphone driver, no explicit DC-DC converters anywhere, microSD card, everything will be a module if possible We quickly got this prototype working on a breadboard and discovered some limitations: ...

April 11, 2025 · 5 min · 966 words · Dhiru Kholia

RSP1 Clone SDR Notes (2025)

Notes to get RSP1 working on Linux and macOS using FOSS drivers (2025) Prerequisites Please use a mainstream Linux distribution like Ubuntu 24.04 LTS (or later) or the latest Raspberry Pi OS. Using a Raspberry Pi is NOT recommended as it has quite a bit of power supply noise on the USB ports, which reduces the performance of the connected SDR. Linux Setup On Linux, add the following lines to the /etc/modprobe.d/blacklist.conf file ...

February 13, 2025 · 4 min · 678 words · Dhiru Kholia

Ubuntu Going Downhill

I was a bit late in realizing that Ubuntu has been going downhill for a while. Why? Here are a couple of things I have noticed about Canonical/Ubuntu: Forced paid updates even for active life OS versions Series of bad decisions (Mir, Unity, Upstart, Snaps) causing pain all around Inflicting slow and buggy snap applications on their users. Not listening to feedback from users - Firefox Snap is really slow to launch, especially on older computers. ...

February 9, 2025 · 1 min · 173 words · Dhiru Kholia

Easy Taint Tracking - Finding Heartbleed in 2024

Aim Finding 'Heartbleed' class of bugs with taint analysis. Background reading: https://heartbleed.com/ Motivation While Coverity is now able to detect this bug, we wanted to evaluate the state of open-source security tooling in 2024. Have we been able to reduce the cost of finding such bugs after all these years? The Idea Can we find an execution path from the tainted data in the n2s function to sensitive functions? Since n2s typically operates on network received bytes, it can serve as a taint source. ...

November 1, 2024 · 3 min · 488 words · Dhiru Kholia