The Problem
I have two big problems I wanted to address with this project: My terrible memory, and the fact that I'm a data hoarder with no good way to "remember" absolutely everything. Important thoughts, reminders, conversations, and ideas would often slip away before I had a chance to jot them down; and even when I did, I would often forget where I had stored those notes, or not have access to them when I needed them ("Did I bring my notebook and pen?", "Is it appropriate to pull my phone out right now?").
I needed something that allowed me to document everything, everywhere, without a second thought; and more importantly, something that would allow me to easily access those memories later on. I realized that I needed a wearable device that would record audio 24/7, provide an easy way to "tag" specific moments, and sync everything to my homelab for later retrieval — perhaps with software that could help me search through the recordings semantically.
Thus, Omoidase was born.
Namesake
As an aside, the name "Omoidase" comes from the Japanese verb 思い出せ, which means "remember" (in a commanding tone). I chose this name, embarassingly enough, because of my favorite artist (Yorushika) and their song 五月は花緑青の窓辺から (May is from the Verdigris Windowsill), where Suis, the vocalist, sings "Omoidase!" in way that stuck with me, haha.
The Device
I had a few requirements in mind for the device:
- It needed to record audio continuously, with minimal user intervention.
- It needed a simple way to "tag" moments of interest.
- It needed to be small and wearable, ideally as a pendant.
- It needed to sync recordings to my homelab automatically.
- It needed to have a long battery life (at least a full day of use).
With this in mind, I started researching components and designing the hardware. Originally, I wanted to make it truly tiny, perhaps with an RP2040, a NAND chip, and pogo pins for charging and data transfer — but such a complex setup would be too difficult for my first-ever PCB design. Instead, I opted for an ESP32 microcontroller (which has built-in Wi-Fi for syncing), a microSD card slot for local storage, and a USB-C port for charging and programming.
Using KiCad's schematic editor, I designed the eight systems needed for Omoidase — the USB port, the charge controller, the battery protection system, the 3.3v regulator, the microphone, the SD card interface, the battery level detection, and the microcontroller itself. After quite a few mistakes, several iterations, and a life-saving review from r/PrintedCircuitBoard (I had connected a shunt capacitor in series insted of in parallel 😬), I finally arrived at a design I was happy with.
I then moved on to the PCB layout. Again, this was my first time creating an actually-functional PCB (I had used KiCad before, but only for my PCB business card). I wanted to make it as small as possible, so I mistakenly opted for 0402 components, and went for a components-on-both-sides design to save space. After several more iterations, DRC checks, and reviews, I finally ended up with this design:
I sent the gerber files to JLCPCB, and they came back with a quote of... $220 for three boards. Ouch. I realized that my design was way too complex for a first attempt, and if anything went wrong, I'd be forced to either hand-solder 0402 components or scrap the entire board — not to mention that the double-sided design drove the cost up and fixability down significantly.
I went back to the drawing board and deleted the old PCB file, and started fresh. This time, I opted for 0603 components, a single-sided design, and a different USB-C connector. This time, the "front" of the PCB will be the back of the device, since the microphone's sound hole is on the back of the PCB. I had also learned a lot from my previous mistakes, so the PCB layout process went much more smoothly and I'm much happier with the result:
As of writing this post, I just sent it off to JLCPCB again, and it came in at a much more palatable $150 for five boards, three assembled; and they'll get here in about two to three weeks.
The Firmware
To be continued!
The Software
To be continued!