Picking the Software

A project log for PixelWatch

A small ESP32 powered smartwatch. My first large scale hardware project.

PixelDudPixelDud 08/17/2021 at 17:240 Comments

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 AllPCB's free PCB offering for at least my first batch and the parts will likely be coming from DigiKey.