• EDIT 2020.0719-1559

    List of ICs

    counter clock wise starting with nrf52932 (name/id details may slightly vary between individual watches / production batches):

    1. nrf52832 - N52832 QFAAE1 1929HO
    2. xtal - SJK 32.000
    3. xtal? - S845A
    4. gps - ublox M8130-KT B302FA 05077589 1837A3
    5. gps iox P0 enabled (?) LDO 3.3V Regulator - 9Q|R (| date) like ON Semi's NCP161 XDFN4
    6. ? - TW
    7. ? - 8044
    8. xtal? - BN26.0 D730
    9. accelerator - KX023 92495 3818
    10. io expander - 672 01 02 uD831 (? NPX (ex Philips) PCAL6408A)
    11. magnetometer - C3A 011
    12. dual PNP bipolar transistors - K42 (? DIODES' ... MMDT3906)
    13. serial flash - A1Y2000 1934P
    14. main perm enabled (?) LDO 3.3V Regulator - 9Q|R (| date) like ON Semi's NCP161 XDFN4
    15. touch controller - Holtek H A2 A4 - 2 capacitive touch keys
    16. battery charge controller - 65b924
    17. vibr motor - +99J
    18. dual NPN bipolar transistor - K6N (DIODES' K6N MMDT3904)
    19. ? - L9

    nrf52832 pins and purpose

    counter clock wise starting Left top in shot with pin 1, then Bottom, Right, Top, with GPIO (in/out) and usage (from bangle board .py file https://github.com/espruino/Espruino/blob/master/boards/BANGLEJS.py and inspecting watch / non-destructive tear-down):

    1. L -
    2. L - GPIO D0 (o) - display D0 - 8-bit parallel mode ST7789 controller
    3. L - GPIO D1 (0) - display D1
    4. L - GPIO D2 (0) - display D2
    5. L - GPIO D3 (0) - display D3
    6. L - GPIO D4 (0) - display D4
    7. L - GPIO D5 (0) - display D5
    8. L - GPIO D6 (0) - display D6
    9. L - GPIO D7 (0) - display D7
    10. L - GPIO D8 (o) - display D/C - display data/command
    11. L - GPIO D9 (o) - display SCK - display serial clock
    12. L - GPIO D10 (o) - display CS - display chip select
    13. B - VDD - + Vdd
    14. B - GPIO11 D (i) - BTN4 - Button 4 - touch left area from touch controller
    15. B - GPIO12 D (i) - cha - charge controller status (neg charging)
    16. B - GPIO D13 (o) - VIB - Vibration Motor via R and 1st transistor in K6N dual array
    17. B - GPIO D14 (o) - i2c C - i2c clock (to accel, io expander, magn)
    18. B - GPIO D15 (i/o) - i2c D - i2c data (to/from accel, io expander, magn)
    19. B - GPIO D16 (i) - BTN5 - Button 5 - touch right area from touch controller
    20. B - GPIO D17 (o|i) - extMem rst - reset to external flash memory | qio: D3
    21. B - GPIO D18 (o) - SPKR - Speaker via R and 2nd transistor in K6N dual array
    22. B - GPIO D19 (o) - extMem sc - sck serial clock to external flash memory
    23. B - GPIO D20 (i) - extMem mi - master-in/slave out from external flash memory | qio: D1
    24. B - GPIO D21 (o) - extMem cs - chip select to external flash memory
    25. R - SWDCLK (i) - SWDCLK -on pad on back of main board for pogo pin
    26. R -SWDIO (i/o) - SWDIO - on pad on back of main board for pogo pin
    27. R - GPIO D22 (i) - BTN2 - Button 2 - push button (middle when right facing)
    28. R - GPIO D23 (i) - BTN3 - Button 3 - push button (bottom when right facing)
    29. R - GPIO D24 (i) - BTN1 - Button 1- push button (top when right facing)
    30. R - Ant - Antenna BLE
    31. R -VSS - - Vss
    32. R -
    33. R -
    34. R -
    35. R -
    36. R - VDD - + Vdd
    37. T - GPIO D25 (o) - GPS TX - serial transmit to gps RX
    38. T - GPIO D26 (i) - GPS RX - serial receive from gps TX
    39. T - GPIO D27 (o|i) - extMem mosi - matser-out/slave-in to ext flash memory | qio: D0
    40. T - GPIO D28 (o) - IOXR - IO eXpander Reset - io expander / portexpander reset
    41. T - GPIO D29 (i) - hrtr - heart rate (analog value) from heart rate monitor, analog input
    42. T - GPIO D30 (i) - volt - battery voltage from R voltage divider, analog input
    43. T - GPIO D31 (o|i) - wp - extMem wp - write protect to external flash memory | qio: D2
    44. T -
    45. T - VSS - - Vss
    46. T -
    47. T -
    48. T - VCC - + Vdd

    uD831 IO Expander / Portexpander

    The way it is wired up it looks like a NPX (ex Philips) PCAL6408A: Low-voltage translating, 8-bit I²C-bus/SMBus I/O expander. neg_INT pin as well as port P1..P4 pins 3..5 and 7 seem not to be connected and configuration / initialization state is 'Power-Up default' / reset default.

    Address of IO Expander / Portexpander on I2S bus is 0x20- A(ddress) pin 16 input line grounded.

    PortsBits (and pins) of IO Expander / Portexpander purpose and mask (according to wiring, bangle board .py file https://github.com/espruino/Espruino/blob/master/boards/BANGLEJS.py and .c code file https://github.com/espruino/Espruino/blob/master/libs/banglejs/jswrap_bangle.c ):

    1. P0 (2) - pin_en - GPS enable - IOEXP_GPS 0x01 via GPS LDO 9Q|R enable pin
    2. P1 (3) - ? NC
    3. P2 (4) - ? NC
    4. P3 (5) - ? NC
    5. P4 (7) - ? NC
    6. P5 (8) - pin_bl - Display Back Light - IOEXP_LCD_BACKLIGHT 0x20 via TR2 PNP Array K42
    7. P6 (9) - pin_rst - Display Reset - IOEXP_LCD_RESET 0x40
    8. P7 (10) - pin_led - Heart Rate Monitor LED - IOEXP_HRM 0x80 via TR1 PNP Array K42

    Espruino Bangle.ioWr(<portMask>,<onOffInversedBoolean>):

    • Bangle.ioWr(0x20,false) or ...,0) turns display back light on (when display is on)
      - Bangle.ioWr(0x20,true ) or ...,1) turns display back light off (when display is on)
      - Bangle.ioWr(0x80,false) or ...,0) turns heart rate monitor LED on
      - Bangle.ioWr(0x80,true ) or ...,1) turns heart rate monitor LED off
About

Avatar for allObjects @allObjects started