Showing posts with label pico2. Show all posts
Showing posts with label pico2. Show all posts

2026-06-13

prototype case print 5 with a mock PCB

i more or less finished the print from 4.5 with an improved keyboard fit. the keyboard looks really good in gray and red actually.
on the inside i'm doing new things! i've printed a mock PCB with some stilts for the approximately correct height. my initial version put the accidental switches near the bottom of their notes, and the natural switches somewhere in the middle:
i didn't think it would matter too much where i put these, but being a former scientist i know it's important to actually verify your assumptions. also, printing these mock PCBs isn't very expensive (in either time or materials), so i printed out a couple other versions to test: one where the switches were all in a line (i assume that might make wiring them up a bit easier) and one where i put the switches further up for accidentals and further down (near the bottom of the notes) for the naturals. mostly i wanted to test low/mid/hi for naturals and low/mid for accidentals (since they're small), so i could do that with just three versions (and just pick the best version for each note type).
i was surprised to find that where the switches are makes a big difference on how pressing the key feels. this one where the key switches were all in a line felt the worst, at least for the natural keys. they felt too goopy, or like they flexed in an unintuitive way.
the position that feels the best is when the switches are near the bottom of their respective notes. i think this will also help with reducing the amount of stress on the "key wiggle bridge" that flexes when the note is pressed. however, this may make finding space for other PCB components challenging but i think i have enough space. it will also reduce the amount of negative space available for the speaker cutout but that's probably not something i need to optimize for. (you can see i'm going to try and put the pico2 on the *back side* of the PCB, which either makes me very smart or very stupid.)

this thing is really shaping up to look very nice and feel good to hold, but it would be a shame if it didn't also feel good to play. unfortunately it feels super clicky right now based on the tactile switches that i'm currently using. i think i will try these silicon tipped tactile switches, but those will probably still be clicky, so something like the soft touch switches might be better.

for the shoulder buttons, i will likely try out right angle switches, but if i want those to be soft as well i'll likely need to do a bit of a breakout like on the PIGRRL zero. might not be too bad for one-off prototypes but might get annoying if i ever try to produce a lot of these.
interior of PIGRRL zero with focus on shoulder button.

2026-06-09

button interactivity with the pico2

had to start somewhere with a basic circuit, and because the pico2 already has a built-in LED, i figured putting in a button and reading that for the LED was the best path forward:
the example code is here. i'm using interrupts to check if the button state rises/falls (i.e., changes), but i think the code can get a bit confused if the toggle happens quickly.

i think the only confusing part was not realizing i needed to set the GPIO to pull up (gpio_pull_up(BUTTON_PIN)); i was wondering if i had wired up the button wrong. this encouraged me to set the LED to default on (so pressing the button turns it off), so that at least i knew the board was powered up :/.

thanks to Ramji for a basic tutorial here, which helped me build out the C version, and the pico-examples for interrupts which made the code more "elegant" than just checking state and sleeping.

2026-05-30

trying out microcontrollers

i did some work with the bitbox a long time ago, and i've been excited to try out building my own gadgets. i wanted to work with a 32 bit architecture, which may be overkill for my synth, but it would help with experience for future projects.

i picked up a Raspberry Pi Pico 2, which has nice getting started documentation, but i like doing things with the command line rather than VSCode, so i put together this little tutorial: https://codeberg.org/lowagner/pico-test.
i was getting a ERROR: Cannot determine the binary size, so cannot save the program only, try --all. when doing `picotool save`, but that's because `save` will download from the device, when i wanted to upload (using `load`). well, progress is progress. i have a blinking light on my desk for now.