Yet Another Metronome by Sreekar

Created by [Sreekar Ramisetty] • Started on June 04, 2024

Metronome with rotary encoder and OLED display

total time: 18 hours

June 4th, 2025, 6:32 PM

I have a vision for where I want to take this project, but since I have finals tomorrow i'll just get a basic schematic whipped up (i have no idea what i'm doing)
literally like 30 seconds spent 😭

June 9th, 2025, 3:17 PM

I did not in fact get anything done but finals are over so i can probably actually get started today
hear me out tabletop flat design cause i'm scared of 90°, plate for mx switches and an oled cause i'm overconfident, but first let's get a basic pcb done
wait no hear me out: rotary encoder. to encode your rotary movement. amirite amirite?
1 hour spent

June 12th, 2025, 9:01 PM

ok time to wire up the oled and rotary encoder
zawg how do i power ts
ohhhh now i know the difference between vsys, vbus, and 3v3
it's all wired in the schematic :yay:
now time to find a speaker that's loud and preferably not expensive (good cheap fast ahh)
oops i had the times i spent written in obsidian but not here better add those in
alr i got a somewhat coherent schematic together i'm going to sleep now
2 hours spent
image

June 13th, 2025 12:04 PM

if you're reading the actual markdown for some reason i must apologize for the way i format this
so i want to put an led on here for visual feedback
i could use just a single led or i could use a neopixel :wow:
i think for the led i could just give it power every x ms and put a resistor in front of it
after further research, i've decided to just use a single neopixel
time to go back to the schematic
1 hour spent 😭
image

June 15th, 2025 4:30 PM

i guess it's time to pcb all over the place
nvm my schematic has issues
so i guess it's better to power oled with 3v3
and my neopicel wasn't connected to anything somehow
also i guess the buzzer should also use 3v3, honestly the buzzer is what i'm most worried about
schematic should be finished now, it looks so tuff

oh i guess the pins for the buzzer symbol don't match the ones on the footprint, i guess i should just reassign them
2 hours spent

June 18th, 2025 1:12 PM

i fixed the buzzer and made a basic outline of how i want it on paper and on the pcb
alt text
alt text
1 hour spent

June 22nd, 6:32 PM

got pcb outline finished and wired alt text 1 hour spent

June 29th, 7:30 PM

ok i should run git push i've been editing ts locally this whole time 😭
anyway i'm locking in now to make the case
okay i think it'll be more stable if i make a round cutout for the rotary encoder instead of just having it completely exposed
and i should also have a square border that is actually connected to the plate to give it some more stability
alt text
wait i was going to sandwich mount it like a keyboard but i don't have mx switches, just a rotary encoder
how do i mount ts 😭
3 hours spent

June 30th, 2:34 PM

i thought about it and i looked at the mounting styles website and i think if i make a kind of tray mount style case it'll be fine
alt text so in my case the plate doesn't hold up the pcb in any way, it's just to cover and protect the pcb, so i'll have a couple more posts in the corners to hold it up, and probably something under the encoder to give it stability
i made some slight adjustments to the pcb to give the screw a bit of clearance
alt text
ok i'll just edit my sketch and go to sleep 2 hours spent

July 1st, 3:22 PM

i want to get ts finished today, luckily it's just continuing manual labor from yesterday
okay i got the case put together
alt text
so this is in two pieces, the bottom case and a top covering.
alt extxusdcgfsihguofijdhsu
there's a hole for the rotary encoder, and another hole on the side for power delivery to the xiao
the pcb is held up with supports at the bottom of the case. there's a post in each corner, plus one directly under the rotary encoder and one approximately in the middle to screw into.
alt text
agh i forgot about firmware see you tomorrow
2 hours spent

July 2st, 1:10 PM

okay firmware should be pretty simple. i think i can even get away with using qmk cause that's what i'm familiar with
ok so i am definitely not using qmk
oh yeah i added a ground pour
alt text
after much research and docs reading, i think i got a probably working firmware:
i aint reading allat
you change the bpm with the rotary encoder, and push on it to turn off the metronome
when a beat happens, the piezo buzzer chirps and the neopixel flashes
yeah that's pretty much it :heavysob:
thanks for reading make sure to like and subscribe
3 hours spent