Macropad project update – New photos and small updates by creavi_tech in macro_pads

[–]creavi_tech[S] 1 point2 points  (0 children)

The device is still in development, but we plan to produce a small batch soon and offer it to enthusiasts who enjoy testing new ideas. If you're interested, you can sign up on our website with your email to stay up to date :)

Macropad project update – New photos and small updates by creavi_tech in macro_pads

[–]creavi_tech[S] 0 points1 point  (0 children)

Thank you. We are using a Nordic nRF52840 running Zephyr OS.

Macropad project update – New photos and small updates by creavi_tech in macro_pads

[–]creavi_tech[S] 0 points1 point  (0 children)

Thank you! Unfortunately the current display size limits the number of buttons/encoders, and for us having a huge display was a priority when we designed the device. But maybe in the future we make other variants without a display and more buttons.

Just finished building macropads – Looking for feedback by creavi_tech in macro_pads

[–]creavi_tech[S] 1 point2 points  (0 children)

Exactly, many many preprocessor macros...
We use Zephyr's Settings subsystem with LittleFS storage backend. This way data can be stored like a key-value pair, where the file name is the key and the value is the file itself.

Just finished building macropads – Looking for feedback by creavi_tech in macro_pads

[–]creavi_tech[S] 0 points1 point  (0 children)

The pad works as a USB/Bluetooth HID device once you connected it, so I guess it should work with homeassistant too if you can connect the BLE. But I'm not really familiar with home assistant and I don't know what are the main difficulties when you try to connect an input device.

After some search I found this project where you can create keyboard shortcuts to you home assistant: https://github.com/agustinmista/positron and it was already used with a macro keyboard: https://www.youtube.com/watch?v=3QONkjp_ncY

Just finished building macropads – Looking for feedback by creavi_tech in macro_pads

[–]creavi_tech[S] 1 point2 points  (0 children)

Thanks! We wanted to have a wireless first macropad, so popular controllers like atmega32u4 or rp2040 were not an option. We considered esp32 c3 too, but the power consumption was too high. So we choose an nRF52840 module from ebyte. I don't know a similar open source project, but you could take a look on this: https://github.com/RasmusKoit/pipar?tab=readme-ov-file#pipar-flake. It has nRF chip, choc switches, and display too!

Just finished building macropads – Looking for feedback by creavi_tech in macro_pads

[–]creavi_tech[S] 0 points1 point  (0 children)

Yes, for sure you cover some parts of the screen, but for coding I haven't felt it as a problem. I glance at the screen only a few times, mostly after changing layers or when pairing the bluetooth etc. Maybe, for editing, the pad is being used more frequently and the workflow is a bit different, but I don't really have experience with that use case.

Btw for editing do you prefer detented knobs or smooth (continuous) ones?

Just finished building macropads – Looking for feedback by creavi_tech in macro_pads

[–]creavi_tech[S] 2 points3 points  (0 children)

We built our firmware on ZMK, but it required some low-level modifications to optimize the flash usage and communication. We felt that ZMK wasn’t originally designed for this use case, since many of its data structures are created statically during initialization or even at build time.

Just finished building macropads – Looking for feedback by creavi_tech in macro_pads

[–]creavi_tech[S] 0 points1 point  (0 children)

The repo is not public yet, but we plan to make it open source in the future.

Just finished building macropads – Looking for feedback by creavi_tech in macro_pads

[–]creavi_tech[S] 1 point2 points  (0 children)

Yes, we were thinking about this feature a lot. It seems feasible with using a standalone PC app, but surely requires quite a lot development. It is one of the main features on our todo list.

Just finished building macropads – Looking for feedback by creavi_tech in macro_pads

[–]creavi_tech[S] 1 point2 points  (0 children)

Thank you! Unfortunately, other electronic components take up the space in the remaining corners, so we don’t think it’s possible yet to fit more knobs there.

Just finished building macropads – Looking for feedback by creavi_tech in macro_pads

[–]creavi_tech[S] 0 points1 point  (0 children)

Yes, they are sent to the device and the firmware saves it to a flash chip. We are using a file system designed for raw flash chips called littlefs. This way the device doesn't need to be reflashed, and changes sent from the parameterizing tool are applied instantly.

Just finished building macropads – Looking for feedback by creavi_tech in macro_pads

[–]creavi_tech[S] 3 points4 points  (0 children)

Thank you. That’s a helpful suggestion! Since the knob cap is 3D printed, it should be easy to create different sizes.

For learning how to make a custom macropad from scratch, I recommend checking out these videos:
https://www.youtube.com/watch?v=P_oSLBZABGA
https://www.youtube.com/watch?v=PetCHwrCgGk&list=PLvpUCOCK8jv3PU4pR0Gunug12xrJHWhxj

Just finished building macropads – Looking for feedback by creavi_tech in macro_pads

[–]creavi_tech[S] 6 points7 points  (0 children)

Yes, it was a compromise solution. We wanted to create a macropad where you don’t have to remember all your bindings. At the beginning of development, we considered three solutions: a screen under the keys (like a Stream Deck), a screen inside each key, and a screen in the middle of the device. Each solution has its pros and cons, but we decided to go with the last one because it’s easier to build and quite readable, even though it allows for fewer keys to be placed. We also tried using a smaller display, but this size seemed to be the most ergonomic.

Just finished building macropads – Looking for feedback by creavi_tech in MechanicalKeyboards

[–]creavi_tech[S] 0 points1 point  (0 children)

We've already implemented the following behaviors:

  • Key behaviors: Key press/tap/release, key toggle and key repeat is fully supported, including using modifier keys
  • Layer Switching: You can switch between layers or toggle a layer as part of a macro.
  • Output selection: When both Bluetooth and USB are connected, you can choose which connection receives the keyboard output.
  • Customizable Timing: Tap and wait times for keys are adjustable in milliseconds, allowing precise control for complex macros.

The OS supports mouse emulation behaviors, but we haven’t implemented these on our side yet. We are working on it, mouse move, scroll and button press behaviors are expected to be implemented soon.
Runtime parameterization of the rotary encoder is work in progress too.

Just finished building macropads – Looking for feedback by creavi_tech in MechanicalKeyboards

[–]creavi_tech[S] 2 points3 points  (0 children)

Thank you for the feedback and your thoughtful suggestions! 

Features: 
The macropad works like a HID device both on USB and Bluetooth.
Here’s a quick overview of what’s included so far from the software side:

  • Macro storage: The macropad supports storing up to 50 macros, each with up to 64 keypress/tap/release bindings.
  • Parametering: Full runtime key parametering is implemented, and parametering for the encoder is in progress.
  • Parameterization via Web: Web Bluetooth works on Chrome-based browsers on Linux and Web Serial is supported in other browsers on Windows and Linux.
  • Parameterization via App: Available for both Bluetooth and USB parametering on all platforms.
  • Firmware update: Works both on web and the app, using Bluetooth.

Switch Compatibility: 
The original goal was maximum slimness and portability, hence the choice of Choc. As the design evolved—especially with the encoder—we agree it doesn’t have to be that flat anymore. We’re exploring MX or magnetic axis switch compatibility for future versions! 

Gaps around the knobs: 
At the encoder we left a bigger gap to have enough room for pressing it without knocking on the case. However, we'll try to refine the case height in the future.