From 655a37404db7dec06dba5f53c0799e35cecab117 Mon Sep 17 00:00:00 2001 From: Th3maz1ng Date: Mon, 27 Feb 2023 17:27:06 +0100 Subject: [PATCH] Updated README.md file Updated current progress status in the README.md file + started to add a getting started section describing the steps required to build and flash the W800_Smart_Watch firmware --- README.md | 88 ++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 58 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index d71d303..d350c62 100644 --- a/README.md +++ b/README.md @@ -5,14 +5,40 @@ I am also quite unhappy with the smartwatches that are on the market (expensive, I also wanted to test this W800 SOC more deeply and see what it could do and I think it is a perfect fit for the project. So let's go ! +## Getting started : +### So, you'd like to try this project yourself ? +### Here are the steps to follow, to be able to build the firmware and flash the board : +#### On Windows : +1) Start by cloning the repository. +**Put it in a path that doesn't contain any spaces** ie : C:\Users\Bob\Desktop\projects for example. +2) Once cloning is done, you will need to install the [MSYS2](https://www.msys2.org/) tool/environment. This tool is need to compile the project using **Make**. +3) Open a terminal by clicking on the **MSYS2** icon and execute the following commands to install : + 1) Update packages : + ```bash + pacman -Syu + ``` + 2) Install make : + ```bash + pacman -S msys/make + ``` + 3) Install automake : + ```bash + pacman -S msys/automake + ``` + 5) Install autoconf : + ```bash + pacman -S msys/autoconf + ``` + + ## A Smart Watch project using the Chinese W800 SOC. The W800 is a pretty interesting chip with impressive characteristics for its price (around 1$) : ### Core : * 32bit XT804 CPU -* 240 Mhz frequency +* 240 Mhz max clock ### Memory : * 2 MB on chip flash -* 288 KB RAM +* 288 KB RAM, ~130 KB available to the user ### Wireless connectivity : * Bluetooth EDR(Classic) and BLE 4.2 * WiFi 2.4Ghz 802.11 b/g/n @@ -40,7 +66,7 @@ Possible choices : * ~~A piezo buzzer~~ : dropped, maybe in next version. ## Power source : -* 1 cell lipo 450 mAh battery. +* A single 450 mAh cell lipo battery. * A charge/discharge controller. ## Screen + touch element : @@ -89,49 +115,51 @@ using a magnetic 4 pin plug. ||PB_11|**I/O**|I²S_DO/MMC_D3/HSPI_DO/SDIO_D3|U/D|**BMA456 IRQ 2 line**|| ||GND|P|Ground (Central Pad)|||| -## What is done/working so far : + +## What is done/working so far - HARDWARE : +* Schematic : + * First version of the schematic is done an available [here](design/Kicad/W800_Smart_Watch/W800_Smart_Watch.pdf). +* PCB version 1.0 design is done based on the schematic. Waiting for the PCBs from JLCPCB. +* Wake up interrupts handling : + * Wrist tilt MCU wake up working + * LCD touch wake up +* MCU sleep feature : + * Sleep and Standby modes working but implemented in a crude way. + Can and should be improved. + +## What is done/working so far - SOFTWARE : * LVGL 8.3.3 running on the SOC using DMA. * Supported LCD drivers : * ILI9341 in 4-line serial mode (8 bits) with D/C pin * ST7789 in 4-line serial mode (8 bits) with D/C pin * GC9A01 in 4-line serial mode (8 bits) with D/C pin * Supported LCD touch screen : - * CST816D capacitive touch ic. - * Three screens designed and working with LVGL : + * CST816D I2C capacitive touch ic. + * Four screens designed and working with LVGL : * 1 watch face based on a casio watch. - * 1 menu list screen with icons. + * 1 menu screen with a list of icons. * 1 setting screen with basic settings (date and time + display brightness) (work in progress). + * 1 compass application using the QMC5883L. * Debug UART on PB_2 (output only) -* Wake up interrupts handling : - * Wrist tilt MCU wake up working - * LCD touch wake up * Sensors/Actuators : * QMC5883L driver working * BMA456 driver working - * BMP280 driver working (temperature + pressure) + * BMP280 driver working (temperature + pressure + altitude) * Battery voltage sense using ADC is working * Vibration motor controlled by PWM working +* Update the W800 SDK from version 1.00.08 to version 1.00.10 released in January of 2023. -## To do : -* Write I2C drivers for the : - * [X] BMA456 - * [X] Wrist tilt detection - * [X] BMP280 - * [X] Temperature - * [X] Pressure - * [X] QMC5883L -* [X] Write the init sequence for the GC9A01 LCD driver. -* [X] Make LCD display + touch work. -* [X] Design and test battery voltage sensing circuit -> voltage divider bridge because ADC input can sense 2.5V Max. + +## To do - HARDWARE: +* [ ] Add the MAX30102 Heart Rate Monitor to the current design. +## To do - SOFTWARE * [ ] Finish to design the settings page. -* [ ] Implement a good algorithm to handle adaptiv MCU clock to save power -* [X] Test the charge circuit. -* [X] Handle watch auto sleep feature with wake up on screen touch + wrist tilt (POC could be improved). -* Design and test the : - * [X] vibration motor circuit -* [X] Draw the schematic, the first revision of the schematic is available [here](design/Kicad/W800_Smart_Watch/W800_Smart_Watch.pdf). -* [X] Design the PCB (routing, placement etc..) on a 2 layer PCB - done. -* [ ] Update the W800 SDK from version 1.00.08 to version 1.00.10 released in January of 2023. +* [ ] Implement a good algorithm to handle adaptiv MCU clock +to save power +* Drivers: + * [] Write/port the MAX30102 Heart Rate Monitor driver to the project. +* [ ] Add a wake up alarm app (using the vibration motor). + ## Achieved power consumption recap: (Need to work on sleep current :-( )