Prototyping: The journey begins

A project log for KaroWear

KaroWear is a NRF52840 based watch in a USB dongle form factor with a multitude of sensors.

Rohit GujarathiRohit Gujarathi 03/10/2019 at 15:260 Comments

After seeing a plethora of activity tracker/smart watches popping up on markets like aliexpress, alibaba, gearbest, etc I thought to myself, how difficult would it be to make one.  I googled and found a few DIY atmega328 based projects but they didn't look good or didnt contain bluetooth.

The goal is to make a device that I can wear everyday. It should be able to display time, notifications, calculate steps, calories, heart rate etc. the basics and should last atleast a couple days with medium usage.

I started looking for some interesting parts and found the new nrf52840. Which seemed perfect. It supports a bunch of protocols, Bluetooth Low Energy, ANT, IEEE 802.15.4, Thread, and nordics proprietary protocol operating in the 2.4 GHz band. They also released the Mesh SDK which would enable me to do some cool home automation projects. I wanted the parts to be well known in the make community so that they would already have the libraries. After some research i finalized on the following parts and ordered them from mouser.

  1. NRF52840 (MDBT50Q-1M module from raytac) the main controller
  2. MPU9250 (Accelerometer, Gyroscope and Magnetometer )
  3. BME280 (temperature, pressure and humidity )
  4. MAX30101 (pulse oximetry and Heart rate)
  5. 0.91” OLED
  6. Lipo Charger
  7. RGB LED
  8. Tactile button
  9. Vibration motor

Next step was to make a prototype as fast as i could and check if everything worked. The design is just the sensors and display connected via i2c to the NRF. I made two different boards, one for the peripherals and one for the NRF52840 module. This would help isolate the problem whether it was in the code or in the soldering.  I etched and soldered one at home over a weekend. The soldering would have been very tedious, but my hot air gun made things simpler. The most difficult part was the NRF52840 module, since it had pads below it.

I used an I2C scanner code to check if the sensors and display were working and some GPIO toggling for the LED and motor.

And to my surprise it works!!