Blueprint

Blackie

Blackie – a macropad based on the STM32F031K6Ux. This is the most advanced project I’ve ever made, and I hope you’ll enjoy following my journey.

Created by Jadamek1337 Jadamek1337

3 views

0 followers

Timeline

Jadamek1337 Jadamek1337 added to the journal ago

Final Schematic

This is how it looks like ;)

image

‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎

Jadamek1337 Jadamek1337 added to the journal ago

Made Encoder and Matrix

At the end of the schematic, I worked on the keyboard matrix for the mechanical keyboard and the encoder.

The keyboard will use Cherry switches, and for the encoder I chose the EC11.

This part is pretty standard for mechanical keyboards and didn’t cause any major issues.

image

Jadamek1337 Jadamek1337 added to the journal ago

Made QSPI Flash

I set up the QSPI Flash for the project.

QSPI Flash is basically extra memory that’s super fast because it uses four data lines instead of one. It’s perfect for storing stuff like firmware or big tables that the MCU needs to read quickly.

This way, I can have more memory without slowing anything down, which is really handy for this type of projects.

image

Jadamek1337 Jadamek1337 added to the journal ago

Made OLED Connectors

Added OLED connectors. Since I want the OLED screen to sit higher, I used regular female headers on pins positioned higher to make the setup look cleaner and more organized.

  • 4 pins for connection
  • 5.1 kΩ pull-up resistors on each pin

This was a simple step, but it improves the overall layout and appearance.

image

Jadamek1337 Jadamek1337 added to the journal ago

MCU Setup

At this stage, I got the RP2040 MCU up and running. Here's what I did:

  • Connected the MCU and added all the essential components.
  • Added capacitors and a 12 MHz oscillator to stabilize the circuit.
  • Added pins for easy connections.

The process was straightforward, and everything is now ready for the next steps of the project.

image

Jadamek1337 Jadamek1337 added to the journal ago

Made USB-C and 3.3V Converter

Note: I had to change the microcontroller to the rp2040 because the ESP does not support KMK/QMK.

Current Progress

  • Created a new USB-C power supply with programming functionality.
  • Added an AMS1117 voltage converter to 3.3V.
  • Added 10µF capacitors to reduce electrical interference.

image

Jadamek1337 Jadamek1337 added to the journal ago

MCU decision

I decided to use ESP32-WROOM-32E instead of an STM32.

Reasons

  • Dual-core CPU up to 240 MHz
  • Built-in Wi-Fi and Bluetooth
  • 4 MB flash, sufficient SRAM
  • Wide set of peripherals (GPIO, UART, SPI, I²C, ADC, PWM)
  • Easy OTA updates and good software support

ESP32 vs STM32 (brief)

Feature ESP32 STM32
Wireless Built-in External module needed
Performance Higher Lower (typical)
Power use Higher Lower
Real-time Moderate Better

ESP32 fits connected and IoT-focused designs, while STM32 is better for low-power and strict real-time applications.

image

Jadamek1337 Jadamek1337 added to the journal ago

First Fail

I discovered a serious mistake — my STM will not work with QMK/KMK, so I have to change it.

It’s unfortunate because all the work will go to waste, and I need to use a different chip, such as the RP2040.

image

Jadamek1337 Jadamek1337 added to the journal ago

Made PCB Schematic

I managed to complete the entire PCB schematic.

It wasn’t that difficult, and the process was very intuitive. Along the way, I gained a much better understanding of how the components interact with each other and how careful planning affects the reliability of the final design.

image

Jadamek1337 Jadamek1337 added to the journal ago

Started making PCB!

Now that I had familiarized myself with the architecture, I started designing the PCB in KiCad.

I decided that the keyboard would be powered via USB-C and connected to the STM through an AMS1117 voltage regulator.

  • I also worked on the encoder, the OLED display, and other essential components.

image

Jadamek1337 Jadamek1337 added to the journal ago

Basics!!!

In the first stage, I focused on what I would need to create a macropad.

It will not be an ordinary macropad; it will be more in the professional category, without using the typical off-the-shelf microcontrollers.

I reviewed datasheets and started looking into how decoupling capacitors work and what techniques are used.
image

Jadamek1337 Jadamek1337 started Blackie ago