Blake Smith

create. code. learn.

Micropad: A Custom USB Macropad Keyboard

Status
Complete
Tech
Rust, KiCAD, OpenSCAD, 3D Printing
Description

Micropad is a custom USB Macropad: Essentially a 3-button USB keyboard that also includes a rotary encoder. I was tired of my mac touch bar for volume and music control, so I wanted something with tactile buttons. I made multiple copies of it to give to friends. It features a custom designed circuit board, custom firmware written in Rust (including a custom bidirectional serial protocol) and a custom designed case that's 3D printed in PLA.


Spritejar: A Retro Game Boy Flash Cartridge

Status
In progress
Tech
KiCAD, FPGA / Verilog, 8-bit C, Rust
Description

Spritejar is a custom retro Game Boy flash cartridge that allows you to load homebrew code onto a Game Boy via a micro SD card. It utilizes an FPGA to clock data from the Game Boy data pins. The FPGA bitstream is synthesized using an entirely open source FPGA toolchain (yosys, nextpnr, etc.).

Hardware
  • FPGA: ice40-HX4K
  • RAM: 8MB of PSRAM
  • Flash: 2MB SPI
  • 5v to 3.3v bus logic level shifters


GBTile: A GameBoy PNG to Tile Converter

Status
Released
Tech
Rust
Description

GBTile is a small command line utility that converts PNG images into GameBoy image tiles. It utilizes the Rust png crate to read PNG images, and quantizes the pixel data into the nearest 2-bit Game Boy pixel, based on the color value.


Puch Maxi Electric Moped Conversion

Status
Complete
Tech
CAD design, 3D printing, Laser cutting, Circuit design
Description

I converted an old 1978 Puch Maxi moped that wasn't running to into a fully-drivable electric vehicle. This was my first foray into electric vehicles. I custom manufactured several parts, including the motor plates, custom motor shaft, and battery ampmeter bar mount. If you'd like to read the entire build log, it's up here:


More project descriptions coming soon. For now, check out my Github Profile for more!