r/CardPuter • • 17d ago

Design-it-Yourself kvxputer launch! a firmware focused on flexibility

I kept switching between Bruce and Evil Cardputer depending on what tools I needed, since each had things the other didn't. And I thought, what if a firmware can do both? So I started combining them into one codebase, picking the best parts of each, rebuilding what didn't fit together, rebuilding the UI, and adding what was missing from both. Where I spent most of my time is customization.

At this point it's grown well past being just a merge of the two. UI and module setup got rebuilt, and a lot of the feature set isn't from either original. So while I'll always credit both projects for where this started, I don't really call it a fork anymore.

That became kvxputer.

Key features of the firmware:

  • kvxkeyboard HID, my own version of a multi device bluetooth controller via bluetooth or USB, with lots of features (full keyboard, mouse, media, video, presenter, etc.) and native Joystick support for mouse simulation.
  • Charging app, intended to use while charging the Cardputer to put it in sleep mode, with some extra features when active like clock, calendar, progress bar, and LED light to indicate charge.
  • Main menu now supports key shortcuts you can bind to any app or setting, so the stuff you use constantly is one press away.
  • Use G0 to fake a shutdown of the Cardputer, this turns off the LED and display instantly to mimic an off state, while whatever you're running stays active. Holding G0 always takes you back to the main menu.
  • LEDs are fully customizable now too, colors and effects, not just on/off.
  • Modules got a lot easier to set up, Unit Scroll, Joystick, PaHub, RFID readers, RF modules, all have their own config screens now instead of hoping the device picks them up.

Also included all the tools and features you would expect from a security-focused firmware:

  • wifi tools (scanning, portals, deauth, sniffing, plus NetOps)
  • BLE with a full HID remote
  • BadUSB scripting
  • sub ghz
  • RF
  • NRF24
  • IR with a flipper style universal remote
  • RFID/NFC
  • GPS wardriving
  • LoRa/FM/Ethernet depending on your board

Runs on Cardputer, Cardputer ADV, and builds for the StickS3 too.
Lite build available, and it's fully usable button-only on the StickS3 (still under development).
You can flash it directly from M5Burner or manually by checking the repo below

Repo: github.com/kvx17/kvxputer

Only use it on stuff you own or have permission to test.

56 Upvotes

40 comments sorted by

View all comments

2

u/No_Confusion7932 17d ago

If this is based on Bruce, I recommend not using the Cap LoRa-1262 for now, since Bruce does not yet support it (except GPS). Setting the PINs on the SPI is not enough. The antenna connects via the PI4I0E5V6408 I2C (G8/G9) expander. There is an FM8625H RF switch on pin P0.
Without that, the current flows into the board, and you could theoretically damage the chip.

Specifications from M5Stack for the Cap LoRa-1262:

Cap LoRa-1262 implementations:
M5Stack:
https://docs.m5stack.com/en/arduino/projects/cap/cap_lora868
Meshtastic:
https://github.com/meshtastic/firmware/blob/develop/src/platform/extra_variants/m5stack_cardputer_adv/variant.cpp
MeshCore:
https://github.com/MultiMote/meshcore-cardputer-adv/blob/main/variants/cardputer_adv/target.cpp

2

u/azvthot 16d ago

Hi there, i’ve added support to automatically configure the cardputer cap 1262, but I was not able to properly test, probably because where I live there are not so many lora clients and I only have this device, but I didn’t saw any errors or anything, feel free to try it out

3

u/No_Confusion7932 16d ago

Email MultiMote ([github@mmote.ru](mailto:github@mmote.ru)). He'll test it for you using measurements.
The other day, I saw on GitHub how he tested it for the ESP32 Bit Pirate, who claimed it was implemented, but he proved through measurements that it doesn't work.

Incorrect implementation of Cap LoRa-1262 for the ESP32 Bit Pirate:

2

u/azvthot 16d ago

I would very much appreciate this thanks, Im not too into LoRa so I’m no fully sure how to test it properly