HT16K33 Tag

1 Article

alphanumeric & 3d printing

25 Jul 2021

categories: Lander Module
tags: HT16K33

Recent efforts have gone into getting the 14-segment alphanumeric display working. I first tried it with d2r2’s translation of the Adafruit library into Golang, but that proved a little frustrating. I then pivoted to’s experiment, and that worked much better. I do have to wrap it in some logic for a few reasons:

  • out of the box, it panics in certain situations related to the decimal
  • I will need a single interface that ends up controlling multiple ht16k33 devices (as in a 6- or 8-digit display)
  • I will likely need to implement scrolling text
  • I may or may not need the interface to control a whole line of nearby displays (as in the case where there are two 6-digit timers, but sometimes they work together to scroll a long string) But I got the test (ht16k33Test) to work! Here are some next steps I’m tracking:


  1. incorporate a segmented display into the console, and the modeTest. Have the display print different things in different modes.
  2. try using periph/conn/gpio instead of warthog618/gpiod
  3. begin playing with the I2C multiplexer board
  4. begin playing with the oled screen
  5. order a 24-bar graph (also based on ht16k33), and play with that
  6. begin playing with the analog joystick
  7. flash the Butterstick with normal-ass keys and write a listener specifically for those keys


  1. experiment with the textured Prusa print plate?
  2. Measure the keyboard cutout, 3dp a cover with known rectangle cutouts and screw-holes.
  3. Print a switchplate for the butterstick
  4. Make cuts for other panels, determine how to screw panels on


  1. Go to the first build crew meeting
  2. establish communication with someone who can help with the power circuit
  3. re-establish who is writing the narrative

As of the last meeting (7/22 with Dr Professor), we had a sketch of the final layout of touchpoints (see notes/layout_1.png). It did not include the bar-graph module though…

later that day First print of a panel was a huge success! I did the thermal printer. I made the cuts to the vent port, and now the TI-99/4A is ruined! (for any other purpose).

The spacing of the vents is such that I think I’ll need to use #3 screws. It also happens that that’s the size that should fasten the printer to the plate! So far I’d been imagining using my stock of #8 screws, but it’ll be good to have options.

Case in point: I’m printing test plates now for the keyboard backer and keyboard switchplate, and the first test uses #8 for both, but I can already tell that #3 might be more fitting to fasten the switchplate to the eventual front plate.

Did some more thinking about the 24-bar graph idea. I think I’ll pick up a few to play with, but I don’t think there’s room for them on the console.