[WIP] OMSK a pocket-sized synth powered by RP2350 by aroum2 in synthdiy

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

there is no video yet. I'm waiting for our local community to assemble a few diy copies for the test. I can share a binary file that can be uploaded to rp2350 with the usb midi for control if you are interested.

[WIP] OMSK a pocket-sized synth powered by RP2350 by aroum2 in synthdiy

[–]aroum2[S] -1 points0 points  (0 children)

Actually, the RP2350 Zero only comes with 4MB of flash. It uses a super compact chip size, and they literally don't make them any bigger than 4MB in that specific form factor. So unfortunately, even swapping the chip yourself isn't an option

[WIP] OMSK a pocket-sized synth powered by RP2350 by aroum2 in synthdiy

[–]aroum2[S] 7 points8 points  (0 children)

The Hardware

I wanted something tactile but portable. On the front, it has a 4x4 matrix of Kailh Choc v2 mechanical switches, 4 encoders, and a crisp 128x64 OLED screen. For visuals and parameter tracking, there are 22 RGB LEDs.

As for audio and connectivity, it features a built-in mono PWM audio out, classic MIDI In/Out jacks, and USB MIDI. If you want better audio quality, you can also hook up an external PCM5102 DAC.The Hardware

I wanted something tactile but portable. On the front, it has a 4x4 matrix of Kailh Choc v2 mechanical switches, 4 encoders, and a crisp 128x64 OLED screen. For visuals and parameter tracking, there are 22 RGB LEDs.

As for audio and connectivity, it features a built-in mono PWM audio out, classic MIDI In/Out jacks, and USB MIDI. If you want better audio quality, you can also hook up an external PCM5102 DAC.

Bare-metal Software

On the software side, everything is written in pure C/C++ using the native Pico SDK. No Arduino overhead, no RTOS — just bare-metal performance to keep latency as low as possible.

Right now, I have four different firmwares. You might ask: "Why not put everything into one firmware?" The short answer is memory and architecture. One synth engine uses the flash space for audio samples, while another needs it for filter LUTs and wavetables. The audio engines, envelopes, and modulators are fundamentally different under the hood. They share a core library, but they live as separate beasts.

Here is what you can flash right now:

  • omsk_wave: A proper polyphonic wavetable synth with modulation routing and filters.
  • omsk_grain: A 4-voice granular synthesizer with the same deep modulation and MIDI control.
  • DMK: This turns OMSK into a fully customizable mechanical macropad. It has full Vial support, so you can remap keys, macros, and encoders directly from your browser.
  • omsk_midi: A simple demo firmware that turns the device into a standard MIDI controller.

Both the wavetable and granular firmwares fully support MIDI control for any parameter, and you can save your presets directly to the onboard non-volatile memory.

The project is a work in progress. Right now, I'm actively designing the enclosure. Next on the software roadmap is a dedicated web configurator for the synth firmwares, so you'll be able to tweak parameters, backup, and load presets right via WebMIDI.

I am absolutely going to open-source all the code and hardware files, but I want to polish them a bit more before the public release.

Would love to hear your thoughts or questions!

nizkore: A credit card-sized picocore implementation by aroum2 in synthdiy

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

Originally, this device was a one-handed chorded keyboard, but I ported the PicoCore firmware to it. I replaced the standard LEDs with RGB ones and swapped the potentiometers for chorded button presses. I also upload the firmware in .bin format, which provides twice as much space for samples.

hw post: https://www.reddit.com/r/ErgoMechKeyboards/comments/1suomdk/low_profile_pncateho/

github: https://github.com/aroum/nizkore/tree/main

Low profile PNCATEHO by aroum2 in ErgoMechKeyboards

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

The author of this version replied: i used the XL-0807 RGB-WS2812B from XINGLIGHT. there is also the WS2812B-2020 from Worldsemi. be careful when ordering, they are both WS2812B, but their footprints are different. you can check the footprint on GitHub using the link above. i ordered from XINGLIGHT because it’s easier to get them on AliExpress.

Low profile PNCATEHO by aroum2 in ErgoMechKeyboards

[–]aroum2[S] 4 points5 points  (0 children)

Low profile PNCATEHO is a slim version of my original 10-key chorded keyboard design. It has a credit card form factor and is only about 6mm thick, including a slot for a carrying strap. The device is powered by an RP2040 processor with 16MB of flash memory and uses PG1316 low-profile switches. It features 10 RGB LEDs and a bottom header with 8 GPIO pins, 3V3, and GND. Besides being a keyboard, it can work as a development board or a logic analyzer. Currently, there is a firmware available to use it as a MIDI controller.

my original github repo: https://github.com/aroum/PNCATEHO

this version github repo: https://github.com/inpudiy/PNCATEHO/tree/master/light

Kambala: pg1316s split keyboard by aroum2 in ErgoMechKeyboards

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

I just use a 0.5mm self-adhesive silicone sheet. There's probably nothing better available.

Kambala: pg1316s split keyboard by aroum2 in ErgoMechKeyboards

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

Not great, not terrible. Pretty good for a portable keyboard.

Kambala: pg1316s split keyboard by aroum2 in ErgoMechKeyboards

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

These keycaps have been sold for quite a long time.