I recently bought a Lioncast LK200 RGB keyboard which is a nice piece of hardware and has exactly the look and feel I want. All basic functions work well under Linux. Unfortunately the manufacturer only provides user software to upload/download profiles and control the LEDs for Windows. The device can be configured and operates autonomously from any OS but color setup is a PITA and it's very easy to factory-reset, and lose all config.
I approached them but Lioncast seems neither interested to support native Linux nor to provide protocol specs so one can implement it. I thought to take this as an example to learn about reading and reverse-engineering USB device software.
I have the hardware at hand and I can connect it to a suitable Windows-VM to control it with the original (closed source) application from the manufacturer. But I need a solid portion of handholding, preferably from someone who already did something similar.
A good result would be to have demo code to be able to modify individual keys, or have the basic profile upload working from Linux with information from a (whatsoever) text file.
Looking for hackers with the skills:
This project is part of:
Hack Week 19
Activity
Comments
Be the first to comment!
Similar Projects
OSHW USB token for Passkeys (FIDO2, U2F, WebAuthn) and PGP by duwe
Description
The idea to carry your precious key material along in a specially secured hardware item is almost as old as public keys themselves, starting with the OpenPGP card. Nowadays, an USB plug or NFC are the hardware interfaces of choice, and password-less log-ins are fortunately becoming more popular and standardised.
Meanwhile there are a few products available in that field, for example
yubikey - the "market leader", who continues to sell off buggy, allegedly unfixable firmware ROMs from old stock. Needless to say, it's all but open source, so assume backdoors.
nitrokey - the "start" variant is open source, but the hardware was found to leak its flash ROM content via the SWD debugging interface (even when the flash is read protected !)
solokey(2) - quite neat hardware, with a secure enclave called "TrustZone-M". Unfortunately, the OSS firmware development is stuck in a rusty dead end and cannot use it.
I plan to base this project on the not-so-tiny USB stack, which is extremely easy to retarget, and to rewrite / refactor the crypto protocols to use the keys only via handles, so the actual key material can be stored securely. My Initial testbed is the devkit for the solokey2, the NXP LPCXpresso55S69.
Goals
Create a proof-of-concept item that can provide a second factor for logins and/or decrypt a PGP mail with your private key without disclosing the key itself. Implement or at least show a migration path to store the private key in a location with elevated hardware security.
Resources
LPCXpresso55S69, tropicsquare tropic01, arm-none cross toolchain
Adding individual key RGB to the keychron k17 pro by ldragon
Description
I recently acquired a k17 pro and was disheartened to learn instead of a way to set individual key RGB values we were given a set of preset "animations" and didn't have individual key RGB. The keychron k17 pro in hardware does support individual key RGB addressing as shown in many of the animations it ships with.
However this functionality is not provided to the firmware/via to set individual key RGB back light. Other keychron keyboard with similar issues seem to have this resolved by following a method similar to the one described here this aim is to replicate this one the k17 and attempt to over come the shortcomings of the original(save+load does not work).
Goals
- Port the original RGB to the wls_2025q1 branch of keychrons fork of qmk
- Fix the capslock and numlock state light not changing state after being pressed once.
- Fix the save+load issue that is present in the fork by Sasuchisama
Resources
Port some classic game to Linux by MDoucha
Let's pick some old classic game, reverse engineer the data formats and game rules and write an open source engine for it from scratch. Some games from 1990s are simple enough that we could have a playable prototype by the end of the week.
Write which games you'd like to hack on in the comments. Don't forget to check e.g. on Open Source Game Clones, Github and SourceForge whether the game is ported already.
Hack Week 25 - TBD
It's time to pick a game for the upcoming Hack Week. Discuss in the comments what game you'd like to hack!
Hack Week 24 - Master of Orion II: Battle at Antares & Chaos Overlords
Work on Master of Orion II continues but we can hack more than one game. Chaos Overlords is a dystopian, lighthearted, cyberpunk turn-based strategy game originally released in 1996 for Windows 95 and Mac OS. The player takes on the role of a Chaos Overlord, attempting to control a city. Gameplay involves hiring mercenary gangs and deploying them on an 8-by-8 grid of city sectors to generate income, occupy sectors and take over the city.
How to ~~install & play~~ observe the decompilation progress:
- Clone the Git repository
- A playable reimplementation does not exist yet, but when it does, it will be linked in the repository mentioned above.
Further work needed:
- Analyze the remaining unknown data structures, most of which are related to the AI.
- Decompile the AI completely. The strong AI is part of the appeal of the game. It cannot be left out.
- Reimplement the game.
Hack Week 20, 21, 22 & 23 - Master of Orion II: Battle at Antares
Master of Orion II is one of the greatest turn-based 4X games of the 1990s. Explore the galaxy, colonize planets, research new technologies, fight space monsters and alien empires and in the end, become the ruler of the galaxy one way or another.
How to install & play:
- Clone the Git repository
- Run
./bootstrap; ./configure; make && make install - Copy all *.LBX files from the original Master of Orion II to the installation data directory (
/usr/local/share/openorion2by default) - Run
openorion2
Further work needed:
- Analyze the rest of the original savegame format and a few remaining data files.
- Implement most of the game. The open source engine currently supports only loading saved games from the original version and viewing the galaxy map, fleet management and list of known planets.
Hack Week 19 - Signus: The Artifact Wars
Signus is a Czech turn-based strategy game similar to Panzer General or Battle Isle series. Originally published in 1998 and open-sourced by the original developers in 2003.
How to install & play:
- Clone the Git repository
- Run
./bootstrap; ./configure; make && make installin bothsignusandsignus-datadirectories. - Run
signus
Further work needed: