Skip to the content
PCBKitNew board
2 layers309.6 × 95.3 mmMacrolev, the printed circuit board in 3D

Macrolev is an open source analog keyboard powered by Hall Effect switches

Size
309.6 × 95.3 mm
Copper layers
2
Thickness
1.6 mm
Parts
184
Nets
125
Pads
629
Tracks, vias
1,154, 615
Pours
5
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
24 Aug 2022
Updated
25 Aug 2025

Overview

Macrolev is an open-source printed circuit board by heiso, from the heiso/macrolev repository on GitHub. It is a 2-layer board of 309.6 × 95.3 mm with 184 parts on 125 nets, routed with 1,154 tracks and 615 vias.

It is built around the STM32F411CEU6, A1101ELHLT-T and AMS1117-3.3, with the CD74HC4067SM96 among its other parts. Its parts include 69 ICs, 18 capacitors, 5 resistors, 3 connectors and 2 switches. It belongs with the keyboards and input boards and the STM32 boards of this library.

Main components

4

README

README.md

Macrolev - Open Source Analog Keyboard

I use the two prototypes shown above as my daily drivers for both coding and gaming. They work well, and the current state of the web configurator is sufficient for seamlessly switching between coding and gaming modes. The current layout of my prototypes is Mac ISO azerty (FR).

Disclaimer

This is still a work in progress. While the prototypes are functional, building one requires a good understanding of electronics and firmware development. If you're interested in creating your own, please be aware that you'll need experience with PCB assembly, microcontroller programming, and debugging embedded systems.

The Rev1 version shown in the images above requires an ST-Link programmer to flash the firmware, making setup more complex. Additionally, the keymap is hardcoded in the firmware, so any changes to the key layout require recompiling and reflashing the firmware.

The second revision features a split PCB design consisting of a main board for the key layout and a separate breakout board. This two-board approach makes it easier to test and evaluate different microcontrollers. However, development is still in progress as the microcontroller board (currently planned to use an ESP32-S3) has not been finalized yet.

Features

  • Analog Input: Each key detects varying levels of pressure thanks to Hall Effect technology, allowing for a more responsive and sensitive typing experience.
  • Rapid Trigger Support: Enables keys to actuate without fully releasing, allowing for faster response times during intense usage (e.g., gaming or rapid typing).
  • Continuous Rapid Trigger: For keys that require repeated pressing (e.g., in gaming), this feature allows automatic repeated key input with a single press.
  • Tap and Hold Functionality: Each key can be assigned two functions. A tap function for quick presses and a hold function for longer presses. This is ideal for combining shortcuts or creating multi-functional keys, such as assigning the right Shift key to act as an arrow up when tapped.
  • Web-Based Configurator: Allows customization of key sensitivity and rapid trigger settings, with future updates planned to enable key mapping and expanded functionality. (see screenshot)

Todos

This is still a work in progress, the firt revision is working flawlessly but it is not that configurable yet. Here is some of the things I'm working on right now

  • PCB Rev 2.0
  • Explore other MCUs
    • esp32-s3 (in progress)
    • nRF52840
    • RP2354 ?
  • Add Bluetooth
  • Configure layout and key mapping from the web interface
  • Improve performances

Links

Misc

References

Tooling

Add footprints and symbols from jlcpcb with this cmd

bash
JLC2KiCadLib <...LCSC refs> -dir JLCPCB -symbol_lib JLCPCB

PCB reviews

Parts

184
QtyValueFootprintReferences
67A1101ELHLPackage_TO_SOT_SMD:SOT-23U1, U2, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23 +51
55SW_MX_Lekker_1uLekker switch:SW_MX_Lekker_1u- _, , ?, ; ., : /, ! 8, ' 4, " 3, ( 5, ) °, @ #, & 1, ` £, ^ ¨, < >, = +, $ * € +39
10100nCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderC2, C3, C4, C5, C9, C14, C15, C16, C17, C18
5CD74HC4067SMPackage_SO:SSOP-24_5.3x8.2mm_P0.65mmAMUX0, AMUX1, AMUX2, AMUX3, AMUX4
5SW_MX_LekkerLekker switch:SW_MX_Lekkerbackspace, enter, lspace, rshift, rspace
4SW_MX_Lekker_1.25uLekker switch:SW_MX_Lekker_1.25ucmd, cmd, lshift, option
3FiducialFiducial:Fiducial_1mm_Mask3mmFID1, FID2, FID3
21.2KResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR1, R2
210kResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR3, R4
2120RInductor_SMD:L_0603_1608Metric_Pad1.05x0.95mm_HandSolderFB1, FB2
21uCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderC7, C8
220pCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderC12, C13
222uCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC10, C11
2SW_MX_Lekker_1.75uLekker switch:SW_MX_Lekker_1.75ucaps lock, ctrl
110nCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderC6
110uCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC1
125MHz/20ppm/15pFCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mm_HandSolderingY1
15.1kResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR5
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U68
1BOOT_BTNswitch:SKRPACE010SW2
1DEBUGConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ3
1I2CConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ2
1REDLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD1
1RST_BTNswitch:SKRPACE010SW1
1STM32F411CEU6Package_DFN_QFN:QFN-48-1EP_7x7mm_P0.5mm_EP5.6x5.6mmU69
1SW_MX_Lekker_1.5uLekker switch:SW_MX_Lekker_1.5utab
1USBCConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ1

The 176 most common of 184 parts.

Questions

How big is the Macrolev PCB?

It measures 309.6 × 95.3 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Macrolev use?

184 parts, built around the STM32F411CEU6, A1101ELHLT-T, AMS1117-3.3 and CD74HC4067SM96. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Macrolev KiCad files?

From the heiso/macrolev repository on GitHub, at the commit this page was made from: the board is kicad/Rev 1.0/macrolev.kicad_pcb and its schematic kicad/Rev 1.0/macrolev.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Macrolev design in my own project?

Its repository states no licence, so its author keeps all rights: ask heiso before reusing the design.

Similar boards

  • 2 layers147.2 × 86.8 mmT248 Reverse engeneer, the printed circuit board in 3D

    T248 Reverse engeneer

    Spb2005/Thrustmaster-T248-reverse-engineering

    Reverse engineering project of the Thrustmaster T248 steering wheel, with the end goal, of making custom steering wheels for it.

    76 parts17MIT
  • 2 layers68.6 × 42.5 mmLask4, the printed circuit board in 3D

    Lask4

    turfptax/lask4

    Finger Movement Detector

    20 parts5
  • 2 layers239.3 × 121.3 mmPanel, the printed circuit board in 3D

    Panel

    ZeniteSolar/MT19

    Tachometer Module for CANBUS with ATmega328p

    252 parts2GPL-3.0
  • 2 layers17 × 12.4 mmHall effect, the printed circuit board in 3D

    Hall effect

    ashton6student/ece445

    Note: each subfolder has its own README.md file that forms the ECE 445 notebook, in addition to this top-level file.

    4 parts
  • 4 layers38.5 × 37 mmQuadcopter, the printed circuit board in 3D

    Quadcopter

    BenGrumm/STM-Quadcopter

    A simple quadcopter built on the STM32F411CEU6 (black pill board) with 4 motors, a PPM receiver, ADC checking battery level and I2C communication with MPU6050 imu.

    49 parts3
  • 2 layers52.2 × 24.4 mmF411 dev board, the printed circuit board in 3D

    F411 dev board

    JPNguyen38/f411_dev_board

    33 parts
  • 2 layers100 × 55 mmPCBTriatlonWAY, the printed circuit board in 3D

    PCBTriatlonWAY

    Alejojoa/Triatlon-Alita

    Repositorio dedicado al desarollo de un robot triatlon.

    43 parts6
  • 4 layersSoccer bottom, the printed circuit board in 3D

    Soccer bottom

    class-ab/open-soccer

    Mindstormers' open soccer repo. contains code, pcbs, elec, diagrams, etc...

    76 parts2