Cyberdeck RPG Character Tracker

a tiny cyberdeck, hopefully awesomely 80s, that can show an RPG character's stats, check out the gear list, and roll some dice

Similar projects worth following
I wanted to get in on the Cyberdeck craze, but there is a serious shortage of Raspberry Pi computers out there right now. So I had to settle for something a little less computer. After searching around for something that both looked cool, had some bells and whistles, but would be easy to program to do what I wanted, I found the M5Stack Core2. They even have a tiny keyboard that plugs right in.

I also, sadly, do not have a 3D printer. I may still work on a printed case, but I think my temporary Erector Set solution came out pretty well. Especially once accented by the fun noodie neon lights. Still trying to figure out how I want that to look.

Now the real work starts, programing it to display a the basics of a character sheet, list out the details of available gear, and roll some dice. For Shadowrun, of course. Because have you seen how many dice you have to roll for that game?

Here are the basics of how I want this to function:

Character Stats

  • show damage, and be able to update damage for both types
  • show penalties for damage
  • show armor amount

Dice Roller

  • choose number of dice
  • get results as success, sixes, and glitches


  • hopefully be able to do a simple chat over MQTT

NEON LIGHTS! I have some fun flexible neon like LED filaments to use on this thing. I'd like them to pulse or flash especially during dice rolls.

Further MQTT function, as I'm able to get it set up
  • have character stats update from online data rather than onscreen buttons
  • have dice roll send info to online to simulate skill rolls
  • control other devices over MQTT (i.e. send red alert code)


Full MicroPython code, with the MQTT and WiFi details taken out.

plain - 16.11 kB - 09/30/2022 at 03:42



Here is the code so far in MicroPython.

plain - 12.54 kB - 09/27/2022 at 02:19


Dice Working.m5f

The code so far. I have the Stats scree and Dice screen working. This is the file for the UIFlow.

m5f - 51.31 kB - 09/27/2022 at 02:14


View all 6 components

  • Breathing Neon!

    Melissa Matos09/30/2022 at 03:48 0 comments

    I had to had in this awesome pink neon nOOd flexible LED. I mean, what else says "I built this in some alternate 80s history" like pink neon?

    Also fixed the issue with the MQTT comms chat not working. There was an error in the code for connecting it to the internet. 

    I have more plans for this, but I set out to accomplish my goals - easy dice roller and some tracking for a Shadowrun RPG character, and an 80s I built this myself look.

  • Working Comms?

    Melissa Matos09/28/2022 at 21:01 0 comments

    Well, I thought I had the MQTT comms working. It can send and receive text to the MQTT feeds, as you can see at the end of the video. But it was only working while it was connected to UIFlow. I downloaded the program onto the Core2. And though it will still receive messages, it isn't sending any more. Not sure what's going on there, if I accidentally broke something before downloading? Who knows. Hopefully I will get that fixed soon and will show some added neon LEDs.

  • Dice Roller

    Melissa Matos09/23/2022 at 16:29 0 comments

    I got the dice roller working. For Shadowrun one needs to know how many dice (which can be a lot, sometimes 19 to 23 d6s), how many are successes (5s or 6s), sometimes how many 6s, and how many are 1s or glitches. So greens are successes, blue is 6s, red is 1s. Hitting the right capaxitative touch button clears it, as the left one clears the stats screen. Center button takes you home.

    Next, I'm going to branch into something I've never tried. You may have noticed the Comms button on the home screen. I'm going to try setting up an MQTT chat with a website. 

  • Character Stats

    Melissa Matos09/21/2022 at 16:33 0 comments

    it took some getting used to, using UIFlow. But it can do some amazing things. You can see the code take shape in MicroPython as you work in the visual editor. However once you decide to make changes in the code portion you can't go back. I may make tweaks in the code once I'm done designing the visual interfaces. But you can't beat just drawing buttons on the screen!

    I wish there was a way to hide the buttons in the design interface. For now you have to leave them all on there or they get removed from the code. You can show and hide them in the code, so you can create different screens that way to show up woth button pushes. 

    So far I have the character stats screen, showing the damage and armor for the character. In accordance with Shadowrun rules you get a penalty to dice rolls for every 3 points of damage. I intend to use this variable in the dice roller.

    Here's the main screen:

    And a few shots of the character stats:

View all 4 project logs

  • 1
    Prepare the M5Stack Core2

    Following the documentation here to use M5 Burner so that your Core2 can connect over your wifi to UIFlow.

  • 2
    Copy the code

    Use the code file on this project. Remember to change the MQTT settings (I tried to all cap the spots you need to edit) and add in instructions to connect the Core2 to the your wifi.

  • 3
    Set up MQTT Feeds

    There are several places that allow you to set up simple MQTT feeds for free. I used which makes it very simple to create the feeds and get an API code. You need one feed for the Core2 to send messages to, and one to get messages from. I have marked in the code where you would put the API code and feed names so they show up in the chats.

View all 6 instructions

Enjoy this project?


Discussions wrote 09/15/2022 at 11:45 point

nice but why this screen is very big?

all device must be smallest, whe n I play RPG i have map, pencil, cart etc. definitely this device must be a smallest and no wire!

  Are you sure? yes | no

zenfish wrote 09/15/2022 at 01:46 point

Cool look!  Are you going to put out a BoM for the project?  That keyboard is pretty crazy looking.  Good luck...!

  Are you sure? yes | no

Melissa Matos wrote 09/15/2022 at 12:41 point

I plan to. Sorry I know it's a bit sparse now. Should get more up this weekend.

  Are you sure? yes | no

Melissa Matos wrote 09/15/2022 at 12:41 point

You shall see why. It's going to work with another project of mine. Not for full RPG play, though the dice roller might be handy for that.

  Are you sure? yes | no

davedarko wrote 09/14/2022 at 15:02 point

heck yeah, thanks for sharing, now I have an inspiration on what to use the led noodles for!

  Are you sure? yes | no

Melissa Matos wrote 09/15/2022 at 12:42 point

Aren't they cool? I'm debating just stringing them on the erector set or 3D printing some kind of frame for them.

  Are you sure? yes | no

Tom Nardi wrote 09/14/2022 at 04:29 point

I love the Erector pieces, makes it feel like some kid in the 80's put it together (assuming some kid in the 80s had access to microcontrollers from the future, anyway). Wouldn't look out of place as part of the ship they build in Explorers.

  Are you sure? yes | no

Melissa Matos wrote 09/14/2022 at 13:01 point

Cool! Thanks. 

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates