diff --git a/README.md b/README.md index bae439c..97c8280 100644 --- a/README.md +++ b/README.md @@ -31,13 +31,13 @@ Possible choices : * HMC5883L <-- After reading some comparison articles between the HMC5883L and QMC5883L and the datasheets, the later seems better in term of perfomances. * QMC5883L <-- **SELECTED** i2c addr : 0x0D 7 bit address, better soldering footprint * LSM303DLHC - * BMM150 <-- Package with balls, hard to handle + * BMM150 <-- Package with balls, hard to solder * An air pressure/temperature sensor (to display the altitude for example) * BMP280 <-- **SELECTED** i2c addr : 0x76 or 0x77 ## Actuators : * A vibration motor to notify events to the user. -* A piezo buzzer. +* ~~A piezo buzzer~~ : dropped, maybe in next version. ## Power source : * 1 cell lipo 450 mAh battery. @@ -47,6 +47,10 @@ Possible choices : * [Screen with touch](https://fr.aliexpress.com/item/1005004887834918.html?spm=a2g0o.order_list.order_list_main.22.340a5e5bX8WCb0&gatewayAdapt=glo2fra) : GC9A01 with touch panel. It uses the required 4 line Serial Interface. * Touch element i2c addr : 0x15, CST816D I2C touch driver. +## Programming and charging : +* The smart watch programming and charging is done through the same USB port +using a magnetic 4 pin plug. + ## MCU Pin assignement table : | Pin Number | Pin Name | Type | Function | Pull UP/DOWN| Connected to | Comment | @@ -93,14 +97,20 @@ Possible choices : * 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 : - * 1 watch face based on a casio watch. - * 1 menu list screen with icons. - * 1 setting screen with basic settings (date and time + display brightness) (work in progress). + * Three screens designed and working with LVGL : + * 1 watch face based on a casio watch. + * 1 menu list screen with icons. + * 1 setting screen with basic settings (date and time + display brightness) (work in progress). * 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) + * Battery voltage sense using ADC is working + * Vibration motor controlled by PWM working ## To do : * Write I2C drivers for the : @@ -112,15 +122,15 @@ Possible choices : * [X] QMC5883L * [X] Write the init sequence for the GC9A01 LCD driver. * [X] Make LCD display + touch work. -* [ ] Design and test battery voltage sensing circuit -> voltage divider bridge because ADC input can sense 2.5V Max. +* [X] Design and test battery voltage sensing circuit -> voltage divider bridge because ADC input can sense 2.5V Max. * [ ] Finish to design the settings page. -* [ ] Test the charge circuit. +* [ ] 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 : - * [ ] vibration motor circuit - * [ ] piezo buzzer circuit ? -* [ ] Draw the schematic. -* [ ] Design the PCB. + * [X] vibration motor circuit +* [X] Draw the schematic, the first revision of the schematic is available [here](src/branch/master/design/Kicad/W800_Smart_Watch/W800_Smart_Watch.pdf). +* [ ] Design the PCB (routing, placement etc..) on a 2 layer PCB (might need 4 though) - In progress. ## Achieved power consumption recap: (Need to work on sleep current :-( ) @@ -128,5 +138,5 @@ Possible choices : |--------------------------|--------------|---------------------------------------| |Active (40Mhz clk)
(No BLE / No WiFi) |~52 mA | ~8 hour | |Active (240Mhz clk)
(No BLE / No WiFi) |~72 mA | ~6 hour | -|Sleep |~4.5 mA | ~4 days and 4 hours | -|Standby |TODO |TODO | +|Sleep |~4.5 mA |~4 days and 4 hours | +|Standby |~1.8 mA |~10 days and 15 hours |