Lately I’ve been really liking the idea of having something hosted on a RISC-V machine. RISC-V is a non-proprietary instruction set that is a competitor to ARM. The idea of having a something running on an open source operating system, running on an open standard CPU, served from my house, gives me a warm fuzzy feeling.

I was under the impression that most Linux distributions were unstable on RISC-V. Turns out, I’m wrong about that. From a quick search, the following have official Debian images:

and the Pine64 Star64 has a community-maintained Armbian image.

Does anyone here have a RISC-V single-board computer doing anything practical for you?

  • tuckermOP
    link
    fedilink
    38 months ago

    A homemade RISC-V fightstick? This is combining all of my favorite things! I bought a leverless controller recently (an SGF Bridget).

    I’m only vaguely familiar with microcontrollers, but I know there are libraries out there for using an Arduino to make a mechanical keyboard or fightstick. Is there something similar for the CH32V305?

    • @HakFoo
      link
      28 months ago

      This is the firmware I’ve been working on. Basically I wrote it because at the time (early 2023) there wasn’t a “good” keyboard firmware like QMK or ZMK for the CH32V305. Now it supports keyboards, joysticks, and a rudimentary pointing device made out of a PS2-style analogue stick.

      https://gitlab.com/hakfoo1/ch32v-keyboard/-/tree/fightstick?ref_type=heads

      That branch has the mapping I used. Note this firmware has a keyboard-centric assumption that switches are wired as a matrix (between two sense lines), even if that matrix is 1x24, rather than just grounding a sense line individually.

      The stick portion was one of those “Pandora Box” devices that was built into a cabinet and pre-wired to a crappy Android TV box.

      I bought it because I figured it was probably cheaper than cutting a decent looking cabinet and buying the buttons off AliExpress. That also meant it came with a predefined cable harness to fit the Android box. In the hopes of making it tidy, and reversible, I ordered a little throwaway PCB that accepted the existing 40-pin plug and bridged it to a nanoCH32V305 breakout board. Of course, I made a design mistake, so the PCB had bodge wires, so not much was saved.

      If you’re starting from scratch, you could direct-wire to the MCU breakout board.