Skip to content
View dank0i's full-sized avatar

Highlights

  • Pro

Block or report dank0i

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
dank0i/README.md

Ary

Firmware and Rust, mostly. Lately a lot of USB HID.

pc-bridge - Rust agent, puts my gaming PC in Home Assistant over MQTT. Game detection, sleep state, remote launch, wake-on-LAN. Recently a module host, so personal automation runs as a supervised subprocess instead of living in the tree. Not a DLL plugin: Rust has no stable ABI, and a plugin built against an older version loaded into a self-updating binary doesn't error, it corrupts memory.

cyclone2 - GameSir Cyclone 2, a JieLi BR23 pad. I pulled the firmware, patched it for battery and LED over Bluetooth, and raised the 2.4G report rate. The Pi half fakes an Xbox 360 receiver so the pad shows up as XInput on Windows. The Ghidra module for these chips renders byte-load addresses wrong, that's documented in there too.

sc3 - A FIFINE SC3 desk mixer sums its line in into the USB mic send, so whoever I'm talking to hears themselves back. The vendor's update claims to fix that and doesn't. The routing is in encrypted firmware, so I broke it: 81 of 87 sibling images ship unencrypted, which makes it known-plaintext. All 315,654 words come out. It also reports one of its four faders, so the patch exposes all four and I got the per-app volume mixer I'd been meaning to build out of potentiometers.

football-forecast - Forecasts 25,979 European matches and scores the result against bookmaker odds instead of against nothing. Using no betting data it gets 92% of the way to the market. Turns out the gap left over is missing information, not a worse model. Writeup.

ledger - Double-entry ledger, Spring Boot and React. Idempotent posting, and row locks taken in consistent id order so concurrent postings don't race.

controllernav - Discord with a controller. I built it because I game from bed.

More at dank0i.github.io. Open to software and ML engineering roles.

Pinned Loading

  1. pc-bridge pc-bridge Public

    Home Assistant PC Bridge - cross-platform agent for game detection and remote control

    Rust 1

  2. cyclone2 cyclone2 Public

    GameSir Cyclone 2: JieLi BR23 firmware reverse engineering, and a Pi that bridges it to Windows as an Xbox 360 receiver

    1

  3. sc3 sc3 Public

    Reverse-engineering tools for the FIFINE SC3 USB audio mixer and MVsilicon BP10xx/AP82xx firmware

    Python 1

  4. football-forecast football-forecast Public

    Probabilistic football match forecasting, benchmarked against the betting market

    Python 1

  5. controllernav controllernav Public

    Navigate Discord with a game controller. Vencord userplugin.

    TypeScript 1