PCBs have arrived

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:270 Comments

I ordered a couple PCBs from JLCPCB. They are of quite good quality given the cost and turnaround time. Since NRF52840 has native USB  i thought of making a USB dongle form factor. I could simply plug it in and program it using a USB bootloader.

The design is not complicated, its just the NRF connected to the sensors over I2C. It does not focus on low power yet. I added a few pads for debugging and programming like the SWD pins, 2 pins for RX,TX and power pins. I wanted it to work on both 1.8V and 3.3V so i added some solder bridge pads so i connect/disconnect them to convert from 1.8V to 3.3V and vice versa.  All of the ICs except the MAX30101 have 1.8V and 3.3V compatible logic levels, so i added a transistor level shifter on the I2C of it. Unfortunately, I connected the 2 capacitive pads wrong, as the NRF52840 does not support the ISOURCE method. You can read more about it in the Nordic docs about capacitive touch. I will have to change the capacitive touch design in the next revision. The next iteration would also have 0402 or maybe 0201 components instead of the 0603s i have used in this design.

The soldering took some patience. Again the most difficult was NRF52840 module. I had to align it perfectly with the outline i made on the silk screen and heat it up using the hot air gun then give it some gentle taps so there weren't any solder bridges underneath.

KWP-3 means KaroWear prototype - 3. Completely scraped KWP-2 and started fresh.

I use a black magic probe to program and debug it most of the time. Sometimes i use the nordic open bootloader which is a USB bootloader. I am using the NRF SDK currently, For the display i am using the u8g2 library  and ported it to work with the NRF SDK. It is a great library, it handles a lot of the work, i just had to write the low level I2C communication. I plan to switch to Apache mynewt, circuit python, Zephyr or arduino. Mynewt and Zephyr have a working open source bluetooth stack so they seem interesting.

Next step is to make a 3D printed case and port libraries for all sensors.