stardance has been extended another month! the new deadline is october 31 :)

You are browsing as a guest. Sign up (or log in) to start making projects!

brainlesslukas

@brainlesslukas

Joined June 3rd, 2026

  • 21Devlogs
  • 1Projects
  • 1Ships
  • 10Votes
I am Lukas, 17 years old and I like to code :) Have fun!
Ctrlpad
Open comments for this post

6h 34m 47s logged

Devlog #21

The last days I added some important updates to the Ctrlpad website:

  • Major refactoring: Cleaned and reorganized parts
  • Responsive design, full mobile and Tablet support
    The website is now better structured for future additions :)
0
0
27
Open comments for this post

3h 7m 17s logged

Devlog #19

I’m back after my first week of school after the holidays :)
The newest update is that I implemented rendering for the icons you select in the desktop software. The mechanism behind it wasn’t easy, but here’s my final implementation:

Each button’s icon arrives over BLE as a base64-encoded bitmap in the JSON config. renderIcon() decodes it and hands it off to changeIcon(), which builds an lv_image_dsc_t and assigns it via lv_image_set_src() to that button’s LVGL image widget or blanks it out if no icon string was provided.
I also fixed some things in the Desktop software :)
The next step, is making the config persistent on the ESP

0
1
197
Ship Changes requested

Hello everyone! I built an Elgato Stream Deck alternative called Ctrlpad.
Ctrlpad runs actions when you press its button. For example, opening applications like Discord really fast. It can genuinely improve your workflow.
At the beginning I had trouble getting the Ctrlpad to communicate with my computer, but then I learned about BLE.
I also coded a desktop app to configure the layout, colors, icons, actions and more.
The ecosystem is only available on Linux for now, since I wanted to focus on the important things first.
The project is split into three separate repositories: the Firmware (the code flashed onto the ESP), the Desktop Application (the interface used to configure actions like opening apps or changing the volume), and the Daemon (a background service that runs continuously on your computer to execute those actions).

  • 18 devlogs
  • 97h build
See source code →
Open comments for this post

2h 27m 49s logged

Devlog #18

Today I applied the features I built last week: editing button colors.
One big problem was that I had used a button matrix, and it’s almost impossible to change the background color of just one button in a matrix.
So I did some refactoring. I moved from a matrix to six normal, standalone buttons.
After that, I wrote the functions to apply the config.
In the pictures you can now see how it’s possible to change the button color you select in the app.
(Please ignore my dusty, messy desk xD)

0
0
78
Open comments for this post

3h 44m 57s logged

Devlog # 17

Today I made it possible to send the button background color and the icon SVG to the BLE config. I also built a little preview (left corner). The next step is to display the SVG icon and the background color on the CtrlPad.

0
0
16
Open comments for this post

7h 27m 8s logged

Devlog #16

I wasn’t really motivated to code this last week.
But I did build something for the desktop software! I created a color and icon selector. The icons are fetched from Simple Icons.
It’s only the UI for now. The feature for the ctrlPad firmware is coming in the next version(s) :)
Stay tuned!

0
0
39
Open comments for this post

5h 35m 2s logged

Devlog #15

I was on vacation for the last two weeks, so I didn’t get much done. But I’m back now. Since then I’ve been working on the hardware side:
I 3D printed a case for the CYD, and it now sits perfectly on my desk. For now it’s a model from MakerWorld.
I’d like to design my own later, but I haven’t had the time yet.
I’m also working on a few fixes for the daemon. Unfortunately, I noticed that the problem with the path is still there. :(

0
0
12
Open comments for this post

2h 18m 54s logged

Devlog #14

Today was a warm one, but I still managed to sit down at my PC :)
I ended up writing some docs, mostly because I couldn’t decide what else to work on.

  • Added installation instructions for the packages I released over the last few days. Nix and Snap. I couldn’t add the AUR one yet, since the AUR is still down and I haven’t been able to finish that release :(
  • Wrote the README for Ctrlpad’s web project. It covers how to set up the web app and gives an overview of what the repo contains.
0
0
63
Open comments for this post

4h 21m 6s logged

Devlog #13

Originally, I wanted to release both packages (daemon & desktop app) on the AUR, but it’s still down. So instead I released the desktop app on Nix with a flake. Now both packages are on Nix(-OS). I also released the desktop app on Snap.

0
0
13
Open comments for this post

2h 12m 52s logged

#Devlog #12
The last two days I worked on releasing the daemon for Nix(-OS) users. It’s now available as a flake, so they can pull it in directly.

0
0
15
Open comments for this post

11h 46m 38s logged

Devlog #10

The last three days were pretty frustrating.
In the last devlog I mentioned building a website with Next.js. But I soon realized a hero section wasn’t enough. I also needed documentation. So I set out to embed Markdown (Nextra). It was tedious work, and it took me over five hours to get it running (the /docs route just refused to render for the longest time).
With that working, I started writing some basic docs. A few minutes in, a question hit me: “How is the user actually going to flash the board themselves?”
For that I turned to ESP Web Tools, a neat library that lets you flash an ESP directly from the browser. I ran into plenty of problems, but the biggest one was my own browser. It worked fine on my second PC, yet failed on my main one. The reason? An outdated Chromium version. I spent six-plus hours tracking that down.
But it’s all working now and everyone can flash the board with my firmware! Amazing

0
0
23
Open comments for this post

6h 49m 1s logged

Devlog #9

Things have been busy with school over the last two weeks, but I managed to make some solid progress on CtrlPad:

  • Website Launched: Built the landing page using Next.js and published it live at ctrlpad.xyz
  • Hosting: Configured my local home server to host the site directly.
  • CI/CD Pipeline: Set up an automated CI/CD pipeline so future commits deploy automatically.
  • Source Code: The website repository is open source on GitHub.

Stay tuned!

0
0
10
Open comments for this post

8h 38m 25s logged

Devlog #8

Over the past day, I built the CtrlPad daemon using Golang. This background service listens for commands sent from the CtrlPad via BLE (Bluetooth Low Energy).
In the example below, you can see the daemon logs in action as it successfully receives and executes commands for “Spotify” and “Proton VPN”.
To make things even smoother, I also wrote a dedicated installation script for the daemon to streamline the setup process.

0
0
11
Open comments for this post

1h 7m 5s logged

Devlog #7

Today, I ventured into Inkscape to design an icon. I usually dread the intricacies of SVG creation, but, to my surprise, everything came together quite smoothly. With the design finalized, I generated the necessary icon variations and implemented them into the Tauri project. The icon is designed to be a clean, minimalist recreation of the CtrlPad.

2
0
38
Open comments for this post

7h 50m 4s logged

Devlog #6

In the last day, I was really busy and didn’t have much time to code, but I managed to accomplish some amazing things:

  • CI/CD Pipeline: Created a pipeline to build the application automatically
  • Tooling Integration: Added git-cliff for automated changelogs, alongside Prettier, ESLint, and commitlint for code quality
  • Bug Fixes: Successfully found and resolved several existing bugs
  • I also implemented real configuration uploads to the ctrlPad instead of using an example JSON string
0
0
14
Open comments for this post

10h 26m 6s logged

Devlog #5

This update was all about tackling the tough stuff.
First, I had to figure out how to scan and display every installed application on your system, a feature that turned out to be incredibly tricky to implement.
After that, I spent a lot of time wrestling with the drag-and-drop system for the ctrlPad actions. It took a while, but it was worth it. To wrap things up, I also built a solid README to guide you through the development setup and other project essentials.

0
0
54
Open comments for this post
Reposted by @brainlesslukas

3h 27m 59s logged

This is my first Devlog. Mover is an App to see the Departures of Public Transit Stops on your WearOS Watch. It uses Transitous as it’s API and (currently) does not require a Companion App. You are already able to see the Departures but the Stops are still hardcoded. This is my next Goal: Have a Searchbar for Stops.

1
2
218
Open comments for this post

7h 12m 24s logged

Devlog #4

Today was a refactoring day! I updated the entire desktop UI and made everything cleaner. I also made it possible to connect to Bluetooth devices and send an example layout configuration to them.

0
0
54
Loading more…

Followers

Loading…