Close
0%
0%

OpenSource firmware for Kospet DK08 Smart Watch

Building a NuttX RTOS based replacement for original firmware of the nRF52832 based watch

Similar projects worth following
The Kospet DK08 is a nice cheap chinese smart watch that features a Color Memory LCD (same technology as Amazfit Bip) and an nRF52832 chip. The watch comes with Nordic based bootloader, supporting OTA DFU. This means it can be flashed with alternative firmware. This is a bit risky since opening the watch without destroying it is kind of impossible but there's enough documentation now to do this relatively safe.

This project is about creating a NuttX based replacement for the watch original firmware, really opening up new possibilities and fixing annoyances.

This project is also possible thanks to the work done by others, disassembling the watch, checking part numbers and general reverse engineering. This watch is also an alternative to the now defunct SMA-Q2 and a simpler option for the SMA-Q3 (which is much nicer but also difficult to get right now).

The hardware identified so far is the following:

- nRF52832 chip

- Color Memory LCD (panel by JDI, most likely) with backlight, using ST7301 controller

- One touch button (handled by 233DH IC)

- Vibration motor

- BMA253 tri-axis accelerometer

- Heart-rate sensor (EM7028)

- SPI FLASH "font chip" (comes with preloaded fonts) GT24L24A2Y

All this information and help is thanks to work made to support Espruino on this watch and the nice people at this gitter.


Currently I'm working on running the watch firmware on a MakerDiary nRF52832 board, before flashing the watch (to reduce chance of bricking it). I've already introduced some modifications to bootloader used to load up Espruino to reduce chance of bricking and manage to build a minimal NuttX image that successfully flashes via OTA and initiates a watchdog at the very beginning. Next step is to start supporting the sensors and display. I will probably support a very minimal "watch" app first but then start adding features. The idea will be to offer NuttX console over BLE UART as well as provide the possibility to transfer apps to NuttX over BLE directly instead of going through OTA process. Once everything is ready and tested, flashing a stock DK08 could be very simple.

I'll keep this project update from time to time and to store resources (such as datasheets) and provide links to appropriate repos. As this is a side project of a side project, you may find updates more often on my twitter account.

  • Working Firmware

    Matias N.12/07/2020 at 15:07 0 comments

    A few weeks ago I got the firmware to a point of stability which now I feel more comfortable sharing. You can now find the firmware here:

    https://gitlab.com/nuttx_projects/dk08/firmware

    The firmware is actually a simplified version of bicycleCompanion.

    Be sure to follow the instructions on how to upgrade, to reduce the chance of bricking (there's still always the chance, so be prepared for that). Anyway, I've been using this firmware for a couple of weeks now and found no further issues. It is still a basic watch firmware with no fancy features but I focused on stability and battery life. As a result I get about 9 days of casual use (check the time a couple of times per day by turning the backlight on).

    There's still some quirks like charge completion detection (doesn't work, so you'll have to see when the charge voltage appears to remain constant for some time). Also, the battery voltage is kind of a guess since I don't now the exact resistor divider ratio used to measure it.

    I think that with current state of firmware you could explore adding more features/screens. You could for example write a driver for accelerometer and do some tap detection, use the internal SPI flash or even the heart-rate sensor.

    At the moment I don't think I will do more with the watch as I'm actually awaiting for a SMA-Q3 smartwatch, which has a lot of very interesting sensors and better input support. I will most likely focus on that. Also, I hope to finish BLE support for nRF52 on NuttX eventually which would really open possibilities for these watches (and other ones, such as PineTime).

View project log

Enjoy this project?

Share

Discussions

Murat Tologlu wrote 10/30/2020 at 06:34 point

Hi Matias, good journey. Do you plan to use any graphic library in this project such as lvgl or similar?

  Are you sure? yes | no

Matias N. wrote 10/30/2020 at 14:04 point

hi, I replied you on twitter

  Are you sure? yes | no

Hacker Vs Monkey wrote 10/29/2020 at 13:11 point

Matias, did you know it: wger.de

Could be interesting to have fitness tracking self hosted ;-)

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates