What began as a plan to make a synthesizer quickly spiraled into making a smartwatch... a few days later and I've purchased the parts to make a smartwatch. This page will document the entire process, both hardware and software, of making my smartwatch.
A few days after placing my order with PCBWay, my PCBs arrived. It's been about a week since they arrived now and I've had some time to take a look at them. They appear to be great and should work so long as I haven't screwed up the design. I'll be purchasing the other parts soon, so it shouldn't be too long until I've got the hardware finished. Quick thanks to PCBWay for providing me with the PCBs, the ordering process was simple, easy and fast.
I've recieved a lot of schoolwork recently and had to delay the project a little bit. It's nearly been finished, but there's still a little to do. I hope to have it completed by the end of this month or half-way through the next.
A computer is nothing without software to run on it, as such I've now reached the point where I must decide in what way I'll control the hardware that I've chosen. There are three main options that I have found: Arduino (C++), MicroPython, and Espruino (JavaScript). I could easily choose any of them and have a fully functioning prototype within the week, but I've decided to make my choice based on which I know the least about.
C++ is similar to C, a language that I've had a bit of experience with. I find C to be quite fun to use and easy to understand, it's the language that I used for my entry to the 4MB Jam on itch. I also used it for all of my Arduino projects as well as another personal game dev project.
Python is the first programming language that I learned, in a class for the Raspberry Pi, and one of my most used. I'm not a huge fan of it, but it often gets the job done.
Lastly we have JavaScript, a language that I know very little of and have been wanting to learn more about. Espruino is easy to setup on an ESP32 and has modules (libraries) for all of the hardware that I'm using. The only downside that I can see at the moment is the lack of Bluetooth support for ESP32, thankfully that's not something that's vital to my smartwatch and can always be added later on.
I've settled on using Espruino for now, but I can always change over to Arduino later on. In other news, I've got the hardware wiring finalized and I'll start making the schematics, with KiCad, for the watch soon. I'll use PCBWay's free PCB offering for at least my first batch and the parts will likely be coming from DigiKey.
After some consideration I settled on purchasing these parts for the initial prototyping. The breadboard friendly parts give me the opportunity to reuse them in future projects while also making it easy to reconfigure the layout on the breadboard.
The screen in particular is far from what will be used in the "production" model. It's much larger and has an aspect ratio which is... less than desirable... for a smartwatch. During prototyping I intend to use only 240x240px centered on the screen. As for the touch capabilities... it is as of yet undecided whether the production model will use a touchscreen or not. In the scenario that it does, I'll be prepared to whip up a touch interface on my prototyping screen prior to purchasing any final parts.