Macro System
This is a collection of FreeCAD, KiCad, OpenSCAD, and Arduino projects that comprise the Macro System.
frame builder.scad
The frame builder creates 3D-printable models that mount the modules and mini breadboard tray.
macro_pad
The macro_pad is a 2x2 keyboard matrix, designed originally as a prototype for a larger keyboard project. It has NKRO diodes despite being fairly pointless for a 2x2 matrix. It is designed to use ALPS-style switches, but it can be easily adapted for Cherry-style.
macro_pad mounting plate
FreeCAD project for the key switch mounting plate, which the keyswitches mount into above the PCB. It is designed for ALPS-style keyswitches, so it probably won't work with Cherry-style switches. It also doesn't have a cut-out for the macro_pad headers, so you'll probably want to fix that (I fixed it post-production with a dremel :/).
M2.5x3.4mm spacer
The spacer that goes between the macro_pad PCB and the mounting plate.
macro_knob
The macro_knob interfaces an ALPS EC12D 30-detent pushbutton rotary encoder. In addition to exposing the A, B, and D contacts, it can optionally include MOSFETs and LEDs to show the state of the A and B contacts.
EC12D knob
A FreeCAD project for a knob which fits on the EC12D encoder.
macro_7seg
The macro_7seg is a two-digit seven segment display, interfaced through two 74HC595 shift registers. It exposes the data in, shift, and latch inputs, as well as the shift-out output.
macro test.ino
An arduino project that uses all three modules. It configures the macro_pad as a USB keyboard input, and the encoder updates a value on the 7seg.