Blueprint

TrlPad

Macropad with an OLED display

Created by aeoyawn aeoyawn

Tier 4

41 views

0 followers

aeoyawn aeoyawn added to the journal ago

Blinked My First LED

I used the built-in RGB LED in the XIAO SEEED ESP32-NRF52840

I created a program that made it blink alternately, very simple but I also explored the possible ways I can make my firmware for the Macropad. I'll discuss it below, but here are some pics:

1000136996
10001369981000136997

Application:

Python-side

  • Tkinter (GUI)
  • Reads battery percentage (psutil) and Spotify info (spotipy).
  • Combines data into a string (e.g., "85|Song Name|Artist Name\n").
  • Sends the string over the USB serial port to ESP32.
  • Packaged by PyInstaller ESP32-side
  • Reads incoming serial data.
  • Parses string into battery, song, and artist.
  • Updates OLED display accordingly.

I also just realized how tiny the OLED display is, will make it condensed yet still aesthetic.

aeoyawn aeoyawn added to the journal ago

Updated PCB

Hello I updated my PCB, removed the passive capacitors and resistors connected to the rotary encoder!

image.png

image.png

Apart from that somebody from printing legion can in fact help me! So it was quoted that the shipping cost would be $12-$17? I think that should be still under our given grant of $45?

CAN CAN ⚡🚀 approved TrlPad ago

Tier approved: 4

Grant approved: $50.00

TrlPad was submitted for review ago

aeoyawn aeoyawn added to the journal ago

BOM

HI, I'm excited for this to be shipped. I finalized my bom.csv and README.md. I looked through AliExpress for parts and JLCPCB for PCB quotes. I am experiencing some troubles with 3D printing though, not sure where I'd be getting that for my case. I explored the option of #printing-legion as suggested but they're all way too far from where I am. If that doesn't work out I guess, I'll try to source a 3D printing shop or friends and I'll cover the cost on my own. But so far as I've checked with 3D-ing(?) website, it would cost $16? I would definitely want it to be lower since it's not that complicated of a model. Below is a picture attached:

cost

but overall this was my BOM
image.png

aeoyawn aeoyawn added to the journal ago

Finished 3D Model

I finally am done with my case along with the keycaps and rotary encoder case. I copied the keycaps model directly from Orpheuspad credits to the project!

image.png

I think I am quite satisfied with my first build. I don't want to over-engineer things and this model is simple yet punk-y enough!

aeoyawn aeoyawn added to the journal ago

Finalized Case + Re-routed PCB

I am glad to announce that I am almost finished!

I pushed the rotary encoder further down:
image.png

I addressed the USB port being blocked by the case, it took a while to find the dimensions of the USB type-C. I borrowed some made-cases online however they were made of surface mesh which wasn't compatible with my design. Eventually I found a work-around (lazily). I imported the STEP file of the PCB with the mounted 3D models and from there began to build my USB port.

However more problems arose with this approach. Then so, I decided I was going to build this from the ground up. I started from scratch, built the base, the inclined bottom, the cover for the keyboard matrix and then the screen overlay. The screws still seem to be a problem tho.. I really need help with that.

image.png
image.png

aeoyawn aeoyawn added to the journal ago

3D model + PCB rerouting

I first re-routed my PCB after sending it to a discord channel for review. Apparently I needed to make much of my space since my resistors and capacitors were all cramped up. I had to move them but still keep an efficient design. Below is the newly routed PCB (may still make amendments in the future):

image.png

I also realized that my screen wasn't positioned at a nice place so when I began to see my 3D model, instantly I knew it had to be moved I guess by 5-10mm further to the right. But anyways, this is my first preview of the keyboard design.

image.png

I decided that it'd be better if it was inclined by 7 degrees (6-12 degrees was the incline height for keyboards according to Google):
image.png

I guess majority of my time was spent looking through mx switch, rotary encoder and screen blueprints. My brain was always making quick calculations of the possible height + thinking of clearances. I intentionally did not create a USB-C hole on the side for this yet. I thought that having the 1st prototype model ASAP is the goal for today. The design is for sure not yet final, the character of a pedal effect hasn't taken 'effect' yet.

aeoyawn aeoyawn added to the journal ago

PCB edits + 3D model Research

image.png

Finally, I fixed the switch keys -it now is on the front copper. Below is the alleged PCB that I worked on for the past couple days:
image.png
image.png

I then started to think about the design of my macropad. I've searched a YT vid going through the basics of fusion 360 as a refresher.

Furthermore, I desire to continue the design of a pedal effect, borrowing its rectangular outline and its steep elevation between the pedal and the rotary encoders (for my design that would be between the screen+rotary encoder and the keypads. Here is a first look of the design:

image.png

I know I know there's a lot to work on, but I shall work on this 3d model further

aeoyawn aeoyawn added to the journal ago

Routed the PCB

I opted for a horizontal oriented macro-pad, leaving behind the initial design in mind (I shall revamp my sketches). This came to realization when finding space for the OLED display. The xiao micro-controller has its USB facing sideways too for convenience. When it's assembled I would be able to connect it without the wires going over my laptop keyboard.

image.png

Honestly routing only took so long coz I thought of it as a puzzle (y'know that game where you have to connect pipes and that they shouldn't interfere with another). Until, I discovered that I can route through components (thought I'd mess it up by doing that).

I also added my fill zones! This and Phil's lab's vid on it proved very useful.

image.png

Oh shocks...I just realized, are my keypads not facing me?

aeoyawn aeoyawn added to the journal ago

Polishing schematic + Learning lots

Continued with research: reading blogs regarding rotary encoder, examining the pcb of the split keyboard guide to figure out where the placements of the 'battery sense' and 'test points' should be, why it's important to use a 4-pin only OLED display etc.

I also asked around why the Resistor values were the way they were in battery sense, but I didn't get an answer to that. I knew the formula but why was it precisely those?

Eventually everything started to click when I looked after seeing this repo and this one which was a link attached to hackpad tutorial (well sort of). I also discovered that the xiao seeed was flipped which explained the blue outline colours in the guide compared to what was previously red on my screen: learnt the shortcut 'F'. The keyboard switches, the resistors and capacitors for the rotary encoder had to be flipped too.

I also learnt the difference between SMD diodes and THT diodes, visually at least -THT really does look more beginner-friendly to solder compared to the former. Another thing, I switched my switch keys footprint to mx (previously being choc) for the intent of it being more tactile.

image.png

image.png

Not everything is polished yet but I'll amend things soon. Off to another session of learning!

aeoyawn aeoyawn added to the journal ago

Schematic drafting

I re-thought the parts I was going to use for this project. It felt that the xiao nrf52840 was more suitable as the guide said it "has wireless capabilities". For some reason again, there were problems with my library imports- I had to install and uninstall, reboot the application a couple times before I could see the footprint.

I spent most of my time researching rotary encoders and the possibility of it being connected with my keyboard matrix. I found some solutions but I am quite puzzled, frankly lost, in their PCB schematics. I made little progress with the project itself as today's work was more researching and asking.

image.png

aeoyawn aeoyawn added to the journal ago

Followed the tutorial

This marks the start of my macropad. First time doing electronics. Special thanks to nimit and other people in the thread for encouraging me! They also suggested that I needed a deskop app. But for the hardware, the vision would something be like below:

concept-1.jpg

Details: a macropad with 4 keys, rotary encoder and an OLED screen up top. The design inspiration was drawn from effect pedals (it alters sound of a musical instrument, seen them being used by friends and thought it looked cool).

This isn’t my first time using KiCAD, but it's the first project I’m turning into a real, functioning PCB. Even so, I followed the tutorial from hackpad to learn from the best, since I’m still a novice.

I had troubles importing the footprint, it didn't detect the imported library automatically. I had to manually select the footprint by double-clicking the component in the schematic editor. After checking with DRC, there appeared to be numerous warnings which I was told by hack-clubbers to ignore apart from the line-height. I patched things up.

image.png

image.png

I shall begin my actual schematic prototyping in the next journal!

aeoyawn aeoyawn started TrlPad ago

10/11/2025 - Followed the tutorial

This marks the start of my macropad. First time doing electronics. Special thanks to nimit and other people in the thread for encouraging me! They also suggested that I needed a deskop app. But for the hardware, the vision would something be like below:

concept-1.jpg

Details: a macropad with 4 keys, rotary encoder and an OLED screen up top. The design inspiration was drawn from effect pedals (it alters sound of a musical instrument, seen them being used by friends and thought it looked cool).

This isn’t my first time using KiCAD, but it's the first project I’m turning into a real, functioning PCB. Even so, I followed the tutorial from hackpad to learn from the best, since I’m still a novice.

I had troubles importing the footprint, it didn't detect the imported library automatically. I had to manually select the footprint by double-clicking the component in the schematic editor. After checking with DRC, there appeared to be numerous warnings which I was told by hack-clubbers to ignore apart from the line-height. I patched things up.

image.png

image.png

I shall begin my actual schematic prototyping in the next journal!

10/14/2025 - Schematic drafting

I re-thought the parts I was going to use for this project. It felt that the xiao nrf52840 was more suitable as the guide said it "has wireless capabilities". For some reason again, there were problems with my library imports- I had to install and uninstall, reboot the application a couple times before I could see the footprint.

I spent most of my time researching rotary encoders and the possibility of it being connected with my keyboard matrix. I found some solutions but I am quite puzzled, frankly lost, in their PCB schematics. I made little progress with the project itself as today's work was more researching and asking.

image.png

10/15/2025 - Polishing schematic + Learning lots

Continued with research: reading blogs regarding rotary encoder, examining the pcb of the split keyboard guide to figure out where the placements of the 'battery sense' and 'test points' should be, why it's important to use a 4-pin only OLED display etc.

I also asked around why the Resistor values were the way they were in battery sense, but I didn't get an answer to that. I knew the formula but why was it precisely those?

Eventually everything started to click when I looked after seeing this repo and this one which was a link attached to hackpad tutorial (well sort of). I also discovered that the xiao seeed was flipped which explained the blue outline colours in the guide compared to what was previously red on my screen: learnt the shortcut 'F'. The keyboard switches, the resistors and capacitors for the rotary encoder had to be flipped too.

I also learnt the difference between SMD diodes and THT diodes, visually at least -THT really does look more beginner-friendly to solder compared to the former. Another thing, I switched my switch keys footprint to mx (previously being choc) for the intent of it being more tactile.

image.png

image.png

Not everything is polished yet but I'll amend things soon. Off to another session of learning!

10/16/2025 - Routed the PCB

I opted for a horizontal oriented macro-pad, leaving behind the initial design in mind (I shall revamp my sketches). This came to realization when finding space for the OLED display. The xiao micro-controller has its USB facing sideways too for convenience. When it's assembled I would be able to connect it without the wires going over my laptop keyboard.

image.png

Honestly routing only took so long coz I thought of it as a puzzle (y'know that game where you have to connect pipes and that they shouldn't interfere with another). Until, I discovered that I can route through components (thought I'd mess it up by doing that).

I also added my fill zones! This and Phil's lab's vid on it proved very useful.

image.png

Oh shocks...I just realized, are my keypads not facing me?

10/17/2025 - PCB edits + 3D model Research

image.png

Finally, I fixed the switch keys -it now is on the front copper. Below is the alleged PCB that I worked on for the past couple days:
image.png
image.png

I then started to think about the design of my macropad. I've searched a YT vid going through the basics of fusion 360 as a refresher.

Furthermore, I desire to continue the design of a pedal effect, borrowing its rectangular outline and its steep elevation between the pedal and the rotary encoders (for my design that would be between the screen+rotary encoder and the keypads. Here is a first look of the design:

image.png

I know I know there's a lot to work on, but I shall work on this 3d model further

10/18/2025 - 3D model + PCB rerouting

I first re-routed my PCB after sending it to a discord channel for review. Apparently I needed to make much of my space since my resistors and capacitors were all cramped up. I had to move them but still keep an efficient design. Below is the newly routed PCB (may still make amendments in the future):

image.png

I also realized that my screen wasn't positioned at a nice place so when I began to see my 3D model, instantly I knew it had to be moved I guess by 5-10mm further to the right. But anyways, this is my first preview of the keyboard design.

image.png

I decided that it'd be better if it was inclined by 7 degrees (6-12 degrees was the incline height for keyboards according to Google):
image.png

I guess majority of my time was spent looking through mx switch, rotary encoder and screen blueprints. My brain was always making quick calculations of the possible height + thinking of clearances. I intentionally did not create a USB-C hole on the side for this yet. I thought that having the 1st prototype model ASAP is the goal for today. The design is for sure not yet final, the character of a pedal effect hasn't taken 'effect' yet.

10/20/2025 - Finalized Case + Re-routed PCB

I am glad to announce that I am almost finished!

I pushed the rotary encoder further down:
image.png

I addressed the USB port being blocked by the case, it took a while to find the dimensions of the USB type-C. I borrowed some made-cases online however they were made of surface mesh which wasn't compatible with my design. Eventually I found a work-around (lazily). I imported the STEP file of the PCB with the mounted 3D models and from there began to build my USB port.

However more problems arose with this approach. Then so, I decided I was going to build this from the ground up. I started from scratch, built the base, the inclined bottom, the cover for the keyboard matrix and then the screen overlay. The screws still seem to be a problem tho.. I really need help with that.

image.png
image.png

10/21/2025 - Finished 3D Model

I finally am done with my case along with the keycaps and rotary encoder case. I copied the keycaps model directly from Orpheuspad credits to the project!

image.png

I think I am quite satisfied with my first build. I don't want to over-engineer things and this model is simple yet punk-y enough!

10/23/2025 - BOM

HI, I'm excited for this to be shipped. I finalized my bom.csv and README.md. I looked through AliExpress for parts and JLCPCB for PCB quotes. I am experiencing some troubles with 3D printing though, not sure where I'd be getting that for my case. I explored the option of #printing-legion as suggested but they're all way too far from where I am. If that doesn't work out I guess, I'll try to source a 3D printing shop or friends and I'll cover the cost on my own. But so far as I've checked with 3D-ing(?) website, it would cost $16? I would definitely want it to be lower since it's not that complicated of a model. Below is a picture attached:

cost

but overall this was my BOM
image.png

10/24/2025 - Updated PCB

Hello I updated my PCB, removed the passive capacitors and resistors connected to the rotary encoder!

image.png

image.png

Apart from that somebody from printing legion can in fact help me! So it was quoted that the shipping cost would be $12-$17? I think that should be still under our given grant of $45?

11/8/2025 - Blinked My First LED

I used the built-in RGB LED in the XIAO SEEED ESP32-NRF52840

I created a program that made it blink alternately, very simple but I also explored the possible ways I can make my firmware for the Macropad. I'll discuss it below, but here are some pics:

1000136996
10001369981000136997

Application:

Python-side

  • Tkinter (GUI)
  • Reads battery percentage (psutil) and Spotify info (spotipy).
  • Combines data into a string (e.g., "85|Song Name|Artist Name\n").
  • Sends the string over the USB serial port to ESP32.
  • Packaged by PyInstaller ESP32-side
  • Reads incoming serial data.
  • Parses string into battery, song, and artist.
  • Updates OLED display accordingly.

I also just realized how tiny the OLED display is, will make it condensed yet still aesthetic.