├── 3D_files ├── README.md ├── prt0001.stl ├── prt0002.stl ├── prt0003.stl ├── prt0004.stl └── prt0005.stl ├── docs ├── .gitignore ├── en │ ├── soft-reference │ │ ├── DRV2605.rst │ │ ├── LSM9DS1.rst │ │ ├── MAX3010X.rst │ │ ├── MAX30208.rst │ │ ├── MPU9250.rst │ │ └── index.rst │ ├── index.rst │ ├── hw-reference │ │ └── index.rst │ ├── get-started │ │ └── datasheet.inc │ ├── troubleshooting.rst │ └── COPYRIGHT.rst ├── zh_CN │ ├── soft-reference │ │ ├── DRV2605.rst │ │ ├── LSM9DS1.rst │ │ ├── MAX3010X.rst │ │ ├── MAX30208.rst │ │ ├── MPU9250.rst │ │ └── index.rst │ ├── index.rst │ ├── troubleshooting.rst │ ├── hw-reference │ │ └── index.rst │ ├── get-started │ │ └── datasheet.inc │ └── COPYRIGHT.rst ├── _static │ ├── readme │ │ ├── 1.jpg │ │ ├── 2.jpg │ │ ├── 3.jpg │ │ ├── new_version.png │ │ ├── older_version.png │ │ └── new_version_green_tag.png │ ├── arduino-logo.png │ └── platformio-logo.png ├── requirements.txt ├── Makefile └── make.bat ├── .gitignore ├── libdeps ├── MAX30208_Library │ └── README.MD ├── TFT_eSPI │ ├── Fonts │ │ ├── TrueType │ │ │ └── Not_yet_supported.txt │ │ ├── Font16.h │ │ ├── Font32rle.h │ │ ├── Font64rle.h │ │ ├── Font72rle.h │ │ ├── Font7srle.h │ │ ├── Font72x53rle.h │ │ └── GFXFF │ │ │ ├── license.txt │ │ │ └── print.txt │ ├── Tools │ │ ├── RPi_TFT_mod.png │ │ ├── RPi_TFT_Connections.png │ │ ├── ESP32 UNO board mod │ │ │ ├── ESP32 UNO board mod.jpg │ │ │ └── ESP32 UNO board pinout.jpg │ │ ├── Create_Smooth_Font │ │ │ └── Create_font │ │ │ │ ├── data │ │ │ │ └── Final-Frontier.ttf │ │ │ │ └── FontFiles │ │ │ │ └── Final-Frontier28.vlw │ │ └── PlatformIO │ │ │ └── Configuring options.txt │ ├── examples │ │ ├── Sprite │ │ │ ├── Animated_dial │ │ │ │ └── data │ │ │ │ │ └── dial.jpg │ │ │ └── Rotated_Sprite_3 │ │ │ │ └── data │ │ │ │ ├── EagleEye.jpg │ │ │ │ └── Eye_80x64.jpg │ │ ├── ePaper │ │ │ └── Floyd_Steinberg │ │ │ │ └── data │ │ │ │ ├── Tiger.bmp │ │ │ │ └── TestCard.bmp │ │ ├── Generic │ │ │ ├── TFT_SPIFFS_BMP │ │ │ │ └── data │ │ │ │ │ └── parrot.bmp │ │ │ ├── ESP32_SDcard_jpeg │ │ │ │ └── Data │ │ │ │ │ ├── lena20k.jpg │ │ │ │ │ ├── Baboon40.jpg │ │ │ │ │ ├── EagleEye.jpg │ │ │ │ │ └── Mouse480.jpg │ │ │ └── drawXBitmap │ │ │ │ └── drawXBitmap.ino │ │ ├── Smooth Fonts │ │ │ ├── SPIFFS │ │ │ │ ├── Font_Demo_1 │ │ │ │ │ ├── data │ │ │ │ │ │ ├── NotoSansBold15.vlw │ │ │ │ │ │ └── NotoSansBold36.vlw │ │ │ │ │ └── Notes.ino │ │ │ │ ├── Font_Demo_2 │ │ │ │ │ ├── data │ │ │ │ │ │ ├── NotoSansBold15.vlw │ │ │ │ │ │ └── NotoSansBold36.vlw │ │ │ │ │ └── Notes.ino │ │ │ │ ├── Font_Demo_3 │ │ │ │ │ ├── data │ │ │ │ │ │ ├── NotoSansBold15.vlw │ │ │ │ │ │ ├── NotoSansBold36.vlw │ │ │ │ │ │ └── NotoSansMonoSCB20.vlw │ │ │ │ │ └── Notes.ino │ │ │ │ ├── Font_Demo_4 │ │ │ │ │ ├── data │ │ │ │ │ │ ├── NotoSansBold15.vlw │ │ │ │ │ │ └── NotoSansBold36.vlw │ │ │ │ │ └── Notes.ino │ │ │ │ ├── Unicode_test │ │ │ │ │ └── data │ │ │ │ │ │ ├── Unicode-Test-72.vlw │ │ │ │ │ │ ├── Final-Frontier-28.vlw │ │ │ │ │ │ └── Latin-Hiragana-24.vlw │ │ │ │ ├── Print_Smooth_Font │ │ │ │ │ └── data │ │ │ │ │ │ └── Final-Frontier-28.vlw │ │ │ │ ├── Smooth_font_gradient │ │ │ │ │ └── data │ │ │ │ │ │ ├── NotoSansBold15.vlw │ │ │ │ │ │ └── NotoSansBold36.vlw │ │ │ │ └── Smooth_font_reading_TFT │ │ │ │ │ └── data │ │ │ │ │ ├── NotoSansBold15.vlw │ │ │ │ │ └── NotoSansBold36.vlw │ │ │ ├── FLASH_Array │ │ │ │ ├── Unicode_test │ │ │ │ │ └── data │ │ │ │ │ │ ├── Unicode-Test-72.vlw │ │ │ │ │ │ ├── Final-Frontier-28.vlw │ │ │ │ │ │ └── Latin-Hiragana-24.vlw │ │ │ │ ├── Font_Demo_1_Array │ │ │ │ │ └── Notes.ino │ │ │ │ ├── Font_Demo_2_Array │ │ │ │ │ └── Notes.ino │ │ │ │ ├── Font_Demo_4_Array │ │ │ │ │ └── Notes.ino │ │ │ │ └── Font_Demo_3_Array │ │ │ │ │ └── Notes.ino │ │ │ └── SD_Card │ │ │ │ └── ESP32_Smooth_Font_SD │ │ │ │ └── data │ │ │ │ └── Final-Frontier-28.vlw │ │ ├── 320 x 240 │ │ │ └── TFT_Ellipse │ │ │ │ └── TFT_Ellipse.ino │ │ ├── 480 x 320 │ │ │ ├── TFT_Ellipse │ │ │ │ └── TFT_Ellipse.ino │ │ │ └── Touch_Controller_Demo │ │ │ │ └── Touch_Controller_Demo.ino │ │ ├── 160 x 128 │ │ │ ├── TFT_Ellipse │ │ │ │ └── TFT_Ellipse.ino │ │ │ └── TFT_SPIFFS_Jpeg │ │ │ │ └── SPIFFS_functions.ino │ │ └── Test and diagnostics │ │ │ └── Test_Touch_Controller │ │ │ └── Test_Touch_Controller.ino │ ├── README.txt │ ├── library.properties │ ├── .gitattributes │ ├── TFT_Drivers │ │ ├── ST7789_2_Init.h │ │ ├── EPD_Defines.h │ │ ├── S6D02A1_Rotation.h │ │ ├── HX8357D_Rotation.h │ │ ├── R61581_Rotation.h │ │ ├── ILI9481_Rotation.h │ │ ├── ILI9488_Rotation.h │ │ ├── R61581_Defines.h │ │ ├── ILI9481_Defines.h │ │ ├── ILI9488_Defines.h │ │ ├── RM68140_Defines.h │ │ ├── ILI9163_Rotation.h │ │ ├── RM68140_Rotation.h │ │ ├── ST7789_2_Rotation.h │ │ ├── ILI9486_Rotation.h │ │ ├── ST7796_Rotation.h │ │ ├── ILI9163_Init.h │ │ ├── ILI9481_Init.h │ │ ├── RM68140_Init.h │ │ ├── ILI9486_Init.h │ │ ├── R61581_Init.h │ │ ├── ST7789_Rotation.h │ │ ├── HX8357D_Defines.h │ │ └── S6D02A1_Defines.h │ ├── library.json │ ├── User_Setups │ │ ├── Setup22_TTGO_T4_v1.3.h │ │ ├── Setup22_TTGO_T4.h │ │ ├── Setup25_TTGO_T_Display.h │ │ ├── Setup23_TTGO_TM.h │ │ ├── Setup12_M5Stack.h │ │ ├── Setup45_TTGO_T_Watch.h │ │ ├── Setup44_TTGO_CameraPlus.h │ │ ├── Setup11_RPi_touch_ILI9486.h │ │ ├── Setup36_RPi_touch_ILI9341.h │ │ ├── Setup5_RPi_ILI9486.h │ │ ├── Setup1_ILI9341.h │ │ ├── Setup15_HX8357D.h │ │ ├── Setup20_ILI9488.h │ │ ├── Setup21_ILI9488.h │ │ ├── Setup6_RPi_Wr_ILI9486.h │ │ ├── Setup16_ILI9488_Parallel.h │ │ ├── Setup10_RPi_touch_ILI9486.h │ │ ├── Setup13_ILI9481_Parallel.h │ │ ├── Setup19_RM68140_Parallel.h │ │ ├── Setup14_ILI9341_Parallel.h │ │ ├── Setup4_S6D02A1.h │ │ ├── Setup3_ILI9163.h │ │ ├── Setup8_ILI9163_128x128.h │ │ ├── Setup2_ST7735.h │ │ ├── Setup7_ST7735_128x128.h │ │ ├── Setup26_TTGO_T_Wristband.h │ │ ├── User_Custom_Fonts.h │ │ ├── Setup43_ST7735.h │ │ ├── Setup9_ST7735_Overlap.h │ │ └── Setup18_ST7789.h │ └── Extensions │ │ ├── Button.h │ │ └── Touch.h ├── PCF8563_Library │ ├── README.md │ ├── library.properties │ ├── examples │ │ └── simple.ino │ ├── LICENSE │ └── keywords.txt ├── WiFiManager │ ├── extras │ │ ├── png_signal_strength_master.png │ │ └── parse.js │ ├── library.properties │ ├── .github │ │ ├── CONTRIBUTING.md │ │ ├── workflows │ │ │ ├── cpp_lint.yml │ │ │ └── compile_library.yml │ │ └── ISSUE_TEMPLATE.md │ ├── library.json │ ├── examples │ │ ├── Unique │ │ │ └── cb │ │ │ │ └── AnonymousCB.ino │ │ ├── NonBlocking │ │ │ ├── AutoConnectNonBlocking │ │ │ │ └── AutoConnectNonBlocking.ino │ │ │ └── AutoConnectNonBlockingwParams │ │ │ │ └── AutoConnectNonBlockingwParams.ino │ │ ├── Old_examples │ │ │ ├── AutoConnectWithTimeout │ │ │ │ └── AutoConnectWithTimeout.ino │ │ │ ├── AutoConnectWithReset │ │ │ │ └── AutoConnectWithReset.ino │ │ │ └── AutoConnectWithFeedback │ │ │ │ └── AutoConnectWithFeedback.ino │ │ ├── OnDemand │ │ │ ├── OnDemandWebPortal │ │ │ │ └── onDemandWebPortal.ino │ │ │ └── OnDemandConfigPortal │ │ │ │ └── OnDemandConfigPortal.ino │ │ └── Basic │ │ │ └── Basic.ino │ ├── keywords.txt │ ├── LICENSE │ ├── .travis.yml │ └── travis │ │ └── common.sh ├── SparkFun_MAX3010x_Sensor_Library │ ├── extras │ │ ├── HeartBeat.jpg │ │ └── HeartBeat1.jpg │ ├── .gitattributes │ ├── library.properties │ ├── examples │ │ ├── Example1_Basic_Readings │ │ │ └── Example1_Basic_Readings.ino │ │ ├── Example8_SPO2 │ │ │ └── License.ino │ │ ├── Example5_HeartRate │ │ │ └── License.ino │ │ └── Example3_Temperature_Sense │ │ │ └── Example3_Temperature_Sense.ino │ └── keywords.txt ├── SparkFun_LSM9DS1_Arduino_Library │ ├── extras │ │ ├── LSM9DS1 Datasheet.pdf │ │ └── SparkFun-LSM9DS1-Breakout-schematic.pdf │ ├── LICENSE.md │ └── library.properties ├── Adafruit_DRV2605_Library │ ├── library.properties │ ├── examples │ │ ├── audio │ │ │ └── audio.ino │ │ ├── complex │ │ │ └── complex.ino │ │ └── realtime │ │ │ └── realtime.ino │ ├── README.md │ ├── .travis.yml │ └── LICENSE └── patches │ └── 0001-New-version-screens.patch ├── schematic ├── T_Wristband_DRV2605.pdf ├── T_Wristband_mpu9250.pdf ├── T_Wristband_MAX30102.pdf └── T_Wristband_lsm9ds1_20200306.pdf ├── firmware ├── T-Wristband- factory(RGB).bin ├── T-Wristband-20191206 │ ├── setting.jpg │ └── T_Wristband_Firmware.bin ├── T-Wristband-20200104 │ ├── setting.jpg │ └── T-Wristband-20200104.bin ├── T-Wristband-MAX30208-20201021 │ ├── setting.jpg │ └── TWRISTBAND_MPU_MAX30208_20201021.bin └── LilyGo_Wristband_MPU9250_Motor_20200703.bin ├── .readthedocs.yml ├── examples ├── T-Wristband-DRV2605 │ ├── quaternionFilters.h │ └── platformio.ini ├── T-Wristband-MAX30208 │ ├── quaternionFilters.h │ └── platformio.ini ├── T-Wristband-MPU9250 │ ├── quaternionFilters.h │ └── platformio.ini ├── T-Wristband-LSM9DS1 │ └── platformio.ini └── T-Wristband-MAX3010X │ ├── platformio.ini │ ├── README_CN.rst │ └── README.rst ├── scripts ├── clear_patches.py └── apply_patches.py └── README_CN.md /3D_files/README.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/.gitignore: -------------------------------------------------------------------------------- 1 | build -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .vscode 2 | .pio -------------------------------------------------------------------------------- /libdeps/MAX30208_Library/README.MD: -------------------------------------------------------------------------------- 1 | MAX30208 Sensor Library 2 | ===================== -------------------------------------------------------------------------------- /3D_files/prt0001.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/3D_files/prt0001.stl -------------------------------------------------------------------------------- /3D_files/prt0002.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/3D_files/prt0002.stl -------------------------------------------------------------------------------- /3D_files/prt0003.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/3D_files/prt0003.stl -------------------------------------------------------------------------------- /3D_files/prt0004.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/3D_files/prt0004.stl -------------------------------------------------------------------------------- /3D_files/prt0005.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/3D_files/prt0005.stl -------------------------------------------------------------------------------- /docs/en/soft-reference/DRV2605.rst: -------------------------------------------------------------------------------- 1 | .. include:: ../../../examples/T-Wristband-DRV2605/README.rst 2 | -------------------------------------------------------------------------------- /docs/en/soft-reference/LSM9DS1.rst: -------------------------------------------------------------------------------- 1 | .. include:: ../../../examples/T-Wristband-LSM9DS1/README.rst 2 | -------------------------------------------------------------------------------- /docs/en/soft-reference/MAX3010X.rst: -------------------------------------------------------------------------------- 1 | .. include:: ../../../examples/T-Wristband-MAX3010X/README.rst 2 | -------------------------------------------------------------------------------- /docs/en/soft-reference/MAX30208.rst: -------------------------------------------------------------------------------- 1 | .. include:: ../../../examples/T-Wristband-MAX30208/README.rst 2 | -------------------------------------------------------------------------------- /docs/en/soft-reference/MPU9250.rst: -------------------------------------------------------------------------------- 1 | .. include:: ../../../examples/T-Wristband-MPU9250/README.rst 2 | -------------------------------------------------------------------------------- /docs/zh_CN/soft-reference/DRV2605.rst: -------------------------------------------------------------------------------- 1 | .. include:: ../../../examples/T-Wristband-DRV2605/README_CN.rst 2 | -------------------------------------------------------------------------------- /docs/zh_CN/soft-reference/LSM9DS1.rst: -------------------------------------------------------------------------------- 1 | .. include:: ../../../examples/T-Wristband-LSM9DS1/README_CN.rst 2 | -------------------------------------------------------------------------------- /docs/zh_CN/soft-reference/MAX3010X.rst: -------------------------------------------------------------------------------- 1 | .. include:: ../../../examples/T-Wristband-MAX3010X/README_CN.rst 2 | -------------------------------------------------------------------------------- /docs/zh_CN/soft-reference/MAX30208.rst: -------------------------------------------------------------------------------- 1 | .. include:: ../../../examples/T-Wristband-MAX30208/README_CN.rst 2 | -------------------------------------------------------------------------------- /docs/zh_CN/soft-reference/MPU9250.rst: -------------------------------------------------------------------------------- 1 | .. include:: ../../../examples/T-Wristband-MPU9250/README_CN.rst 2 | -------------------------------------------------------------------------------- /docs/_static/readme/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/docs/_static/readme/1.jpg -------------------------------------------------------------------------------- /docs/_static/readme/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/docs/_static/readme/2.jpg -------------------------------------------------------------------------------- /docs/_static/readme/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/docs/_static/readme/3.jpg -------------------------------------------------------------------------------- /docs/requirements.txt: -------------------------------------------------------------------------------- 1 | breathe>=4 2 | Sphinx>=3 3 | sphinx-rtd-theme>=0.5.2 4 | recommonmark 5 | sphinx_markdown_tables -------------------------------------------------------------------------------- /docs/_static/arduino-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/docs/_static/arduino-logo.png -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/Fonts/TrueType/Not_yet_supported.txt: -------------------------------------------------------------------------------- 1 | TO DO: Add support for converted True Type fonts in an RLE format. -------------------------------------------------------------------------------- /docs/_static/platformio-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/docs/_static/platformio-logo.png -------------------------------------------------------------------------------- /schematic/T_Wristband_DRV2605.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/schematic/T_Wristband_DRV2605.pdf -------------------------------------------------------------------------------- /schematic/T_Wristband_mpu9250.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/schematic/T_Wristband_mpu9250.pdf -------------------------------------------------------------------------------- /docs/_static/readme/new_version.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/docs/_static/readme/new_version.png -------------------------------------------------------------------------------- /schematic/T_Wristband_MAX30102.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/schematic/T_Wristband_MAX30102.pdf -------------------------------------------------------------------------------- /docs/_static/readme/older_version.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/docs/_static/readme/older_version.png -------------------------------------------------------------------------------- /firmware/T-Wristband- factory(RGB).bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/firmware/T-Wristband- factory(RGB).bin -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/Tools/RPi_TFT_mod.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/Tools/RPi_TFT_mod.png -------------------------------------------------------------------------------- /firmware/T-Wristband-20191206/setting.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/firmware/T-Wristband-20191206/setting.jpg -------------------------------------------------------------------------------- /firmware/T-Wristband-20200104/setting.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/firmware/T-Wristband-20200104/setting.jpg -------------------------------------------------------------------------------- /schematic/T_Wristband_lsm9ds1_20200306.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/schematic/T_Wristband_lsm9ds1_20200306.pdf -------------------------------------------------------------------------------- /docs/_static/readme/new_version_green_tag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/docs/_static/readme/new_version_green_tag.png -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/Tools/RPi_TFT_Connections.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/Tools/RPi_TFT_Connections.png -------------------------------------------------------------------------------- /firmware/T-Wristband-MAX30208-20201021/setting.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/firmware/T-Wristband-MAX30208-20201021/setting.jpg -------------------------------------------------------------------------------- /firmware/LilyGo_Wristband_MPU9250_Motor_20200703.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/firmware/LilyGo_Wristband_MPU9250_Motor_20200703.bin -------------------------------------------------------------------------------- /firmware/T-Wristband-20191206/T_Wristband_Firmware.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/firmware/T-Wristband-20191206/T_Wristband_Firmware.bin -------------------------------------------------------------------------------- /firmware/T-Wristband-20200104/T-Wristband-20200104.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/firmware/T-Wristband-20200104/T-Wristband-20200104.bin -------------------------------------------------------------------------------- /libdeps/PCF8563_Library/README.md: -------------------------------------------------------------------------------- 1 | PCF8563_Library 2 | ===================================== 3 | 4 | MIT license, all text above must be included in any redistribution -------------------------------------------------------------------------------- /libdeps/WiFiManager/extras/png_signal_strength_master.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/WiFiManager/extras/png_signal_strength_master.png -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Sprite/Animated_dial/data/dial.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/examples/Sprite/Animated_dial/data/dial.jpg -------------------------------------------------------------------------------- /libdeps/SparkFun_MAX3010x_Sensor_Library/extras/HeartBeat.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/SparkFun_MAX3010x_Sensor_Library/extras/HeartBeat.jpg -------------------------------------------------------------------------------- /libdeps/SparkFun_MAX3010x_Sensor_Library/extras/HeartBeat1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/SparkFun_MAX3010x_Sensor_Library/extras/HeartBeat1.jpg -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/ePaper/Floyd_Steinberg/data/Tiger.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/examples/ePaper/Floyd_Steinberg/data/Tiger.bmp -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Generic/TFT_SPIFFS_BMP/data/parrot.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/examples/Generic/TFT_SPIFFS_BMP/data/parrot.bmp -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/Tools/ESP32 UNO board mod/ESP32 UNO board mod.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/Tools/ESP32 UNO board mod/ESP32 UNO board mod.jpg -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Generic/ESP32_SDcard_jpeg/Data/lena20k.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/examples/Generic/ESP32_SDcard_jpeg/Data/lena20k.jpg -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Sprite/Rotated_Sprite_3/data/EagleEye.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/examples/Sprite/Rotated_Sprite_3/data/EagleEye.jpg -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Sprite/Rotated_Sprite_3/data/Eye_80x64.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/examples/Sprite/Rotated_Sprite_3/data/Eye_80x64.jpg -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/ePaper/Floyd_Steinberg/data/TestCard.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/examples/ePaper/Floyd_Steinberg/data/TestCard.bmp -------------------------------------------------------------------------------- /libdeps/SparkFun_LSM9DS1_Arduino_Library/extras/LSM9DS1 Datasheet.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/SparkFun_LSM9DS1_Arduino_Library/extras/LSM9DS1 Datasheet.pdf -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/Tools/ESP32 UNO board mod/ESP32 UNO board pinout.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/Tools/ESP32 UNO board mod/ESP32 UNO board pinout.jpg -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Generic/ESP32_SDcard_jpeg/Data/Baboon40.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/examples/Generic/ESP32_SDcard_jpeg/Data/Baboon40.jpg -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Generic/ESP32_SDcard_jpeg/Data/EagleEye.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/examples/Generic/ESP32_SDcard_jpeg/Data/EagleEye.jpg -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Generic/ESP32_SDcard_jpeg/Data/Mouse480.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/examples/Generic/ESP32_SDcard_jpeg/Data/Mouse480.jpg -------------------------------------------------------------------------------- /firmware/T-Wristband-MAX30208-20201021/TWRISTBAND_MPU_MAX30208_20201021.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/firmware/T-Wristband-MAX30208-20201021/TWRISTBAND_MPU_MAX30208_20201021.bin -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/Tools/Create_Smooth_Font/Create_font/data/Final-Frontier.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/Tools/Create_Smooth_Font/Create_font/data/Final-Frontier.ttf -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Font_Demo_1/data/NotoSansBold15.vlw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Font_Demo_1/data/NotoSansBold15.vlw -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Font_Demo_1/data/NotoSansBold36.vlw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Font_Demo_1/data/NotoSansBold36.vlw -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Font_Demo_2/data/NotoSansBold15.vlw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Font_Demo_2/data/NotoSansBold15.vlw -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Font_Demo_2/data/NotoSansBold36.vlw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Font_Demo_2/data/NotoSansBold36.vlw -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Font_Demo_3/data/NotoSansBold15.vlw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Font_Demo_3/data/NotoSansBold15.vlw -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Font_Demo_3/data/NotoSansBold36.vlw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Font_Demo_3/data/NotoSansBold36.vlw -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Font_Demo_4/data/NotoSansBold15.vlw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Font_Demo_4/data/NotoSansBold15.vlw -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Font_Demo_4/data/NotoSansBold36.vlw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Font_Demo_4/data/NotoSansBold36.vlw -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Unicode_test/data/Unicode-Test-72.vlw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Unicode_test/data/Unicode-Test-72.vlw -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/Tools/Create_Smooth_Font/Create_font/FontFiles/Final-Frontier28.vlw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/Tools/Create_Smooth_Font/Create_font/FontFiles/Final-Frontier28.vlw -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Font_Demo_3/data/NotoSansMonoSCB20.vlw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Font_Demo_3/data/NotoSansMonoSCB20.vlw -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Unicode_test/data/Final-Frontier-28.vlw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Unicode_test/data/Final-Frontier-28.vlw -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Unicode_test/data/Latin-Hiragana-24.vlw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Unicode_test/data/Latin-Hiragana-24.vlw -------------------------------------------------------------------------------- /libdeps/SparkFun_LSM9DS1_Arduino_Library/extras/SparkFun-LSM9DS1-Breakout-schematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/SparkFun_LSM9DS1_Arduino_Library/extras/SparkFun-LSM9DS1-Breakout-schematic.pdf -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Smooth Fonts/FLASH_Array/Unicode_test/data/Unicode-Test-72.vlw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/examples/Smooth Fonts/FLASH_Array/Unicode_test/data/Unicode-Test-72.vlw -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Smooth Fonts/FLASH_Array/Unicode_test/data/Final-Frontier-28.vlw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/examples/Smooth Fonts/FLASH_Array/Unicode_test/data/Final-Frontier-28.vlw -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Smooth Fonts/FLASH_Array/Unicode_test/data/Latin-Hiragana-24.vlw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/examples/Smooth Fonts/FLASH_Array/Unicode_test/data/Latin-Hiragana-24.vlw -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Print_Smooth_Font/data/Final-Frontier-28.vlw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Print_Smooth_Font/data/Final-Frontier-28.vlw -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Smooth_font_gradient/data/NotoSansBold15.vlw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Smooth_font_gradient/data/NotoSansBold15.vlw -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Smooth_font_gradient/data/NotoSansBold36.vlw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Smooth_font_gradient/data/NotoSansBold36.vlw -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Smooth_font_reading_TFT/data/NotoSansBold15.vlw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Smooth_font_reading_TFT/data/NotoSansBold15.vlw -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Smooth_font_reading_TFT/data/NotoSansBold36.vlw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Smooth_font_reading_TFT/data/NotoSansBold36.vlw -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Smooth Fonts/SD_Card/ESP32_Smooth_Font_SD/data/Final-Frontier-28.vlw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Wristband/HEAD/libdeps/TFT_eSPI/examples/Smooth Fonts/SD_Card/ESP32_Smooth_Font_SD/data/Final-Frontier-28.vlw -------------------------------------------------------------------------------- /docs/zh_CN/soft-reference/index.rst: -------------------------------------------------------------------------------- 1 | ***** 2 | 示例 3 | ***** 4 | 5 | .. toctree:: 6 | :maxdepth: 1 7 | 8 | LSM9DS1 9 | MPU9250 10 | DRV2605 11 | MAX3010X 12 | MAX30208 13 | -------------------------------------------------------------------------------- /docs/en/soft-reference/index.rst: -------------------------------------------------------------------------------- 1 | ********* 2 | Examples 3 | ********* 4 | 5 | .. toctree:: 6 | :maxdepth: 1 7 | 8 | LSM9DS1 9 | MPU9250 10 | DRV2605 11 | MAX3010X 12 | MAX30208 13 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/Fonts/Font16.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #define nr_chrs_f16 96 4 | #define chr_hgt_f16 16 5 | #define baseline_f16 13 6 | #define data_size_f16 8 7 | #define firstchr_f16 32 8 | 9 | extern const unsigned char widtbl_f16[96]; 10 | extern const unsigned char* const chrtbl_f16[96]; 11 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/Fonts/Font32rle.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #define nr_chrs_f32 96 4 | #define chr_hgt_f32 26 5 | #define baseline_f32 19 6 | #define data_size_f32 8 7 | #define firstchr_f32 32 8 | 9 | extern const unsigned char widtbl_f32[96]; 10 | extern const unsigned char* const chrtbl_f32[96]; 11 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/Fonts/Font64rle.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #define nr_chrs_f64 96 4 | #define chr_hgt_f64 48 5 | #define baseline_f64 36 6 | #define data_size_f64 8 7 | #define firstchr_f64 32 8 | 9 | extern const unsigned char widtbl_f64[96]; 10 | extern const unsigned char* const chrtbl_f64[96]; 11 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/Fonts/Font72rle.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #define nr_chrs_f72 96 4 | #define chr_hgt_f72 75 5 | #define baseline_f72 73 6 | #define data_size_f72 8 7 | #define firstchr_f72 32 8 | 9 | extern const unsigned char widtbl_f72[96]; 10 | extern const unsigned char* const chrtbl_f72[96]; 11 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/Fonts/Font7srle.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #define nr_chrs_f7s 96 4 | #define chr_hgt_f7s 48 5 | #define baseline_f7s 47 6 | #define data_size_f7s 8 7 | #define firstchr_f7s 32 8 | 9 | extern const unsigned char widtbl_f7s[96]; 10 | extern const unsigned char* const chrtbl_f7s[96]; 11 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/Fonts/Font72x53rle.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #define nr_chrs_f72 96 4 | #define chr_hgt_f72 75 5 | #define baseline_f72 73 6 | #define data_size_f72 8 7 | #define firstchr_f72 32 8 | 9 | extern const unsigned char widtbl_f72[96]; 10 | extern const unsigned char* const chrtbl_f72[96]; 11 | -------------------------------------------------------------------------------- /docs/en/index.rst: -------------------------------------------------------------------------------- 1 | 2 | T-Wristband Programming Guide 3 | ============================== 4 | 5 | .. toctree:: 6 | :maxdepth: 2 7 | 8 | Get Started 9 | H/W Reference 10 | Examples 11 | Troubleshooting 12 | Copyrights 13 | -------------------------------------------------------------------------------- /libdeps/PCF8563_Library/library.properties: -------------------------------------------------------------------------------- 1 | name=PCF8563_Library 2 | version=1.0.0 3 | author=Lewis He 4 | maintainer=Lewis He 5 | sentence=Arduino library for NXP PCF8563 RTC chip. 6 | paragraph=Arduino library for NXP PCF8563 RTC chip. Tested with ESP32 7 | category=Communication 8 | url=https://github.com/lewisxhe/PCF8563_Library 9 | architectures=* -------------------------------------------------------------------------------- /libdeps/SparkFun_LSM9DS1_Arduino_Library/LICENSE.md: -------------------------------------------------------------------------------- 1 | License Information 2 | ------------------- 3 | 4 | The hardware is released under [Creative Commons Share-alike 3.0](http://creativecommons.org/licenses/by-sa/3.0/). 5 | 6 | All other code is open source so please feel free to do anything you want with it; you buy me a beer if you use this and we meet someday ([Beerware license](http://en.wikipedia.org/wiki/Beerware)). 7 | 8 | -------------------------------------------------------------------------------- /libdeps/Adafruit_DRV2605_Library/library.properties: -------------------------------------------------------------------------------- 1 | name=Adafruit DRV2605 Library 2 | version=1.1.0 3 | author=Adafruit 4 | maintainer=Adafruit 5 | sentence=Arduino library for Adafruit DRV2605L Haptic Controller Breakout 6 | paragraph=Arduino library for Adafruit DRV2605L Haptic Controller Breakout 7 | category=Device Control 8 | url=https://github.com/adafruit/Adafruit_DRV2605_Library 9 | architectures=* 10 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/README.txt: -------------------------------------------------------------------------------- 1 | This is a standalone library that contains both graphics functions 2 | and the TFT chip driver library. It supports the ESP8266, ESP32 and 3 | STM32 processors with performance optimised code. Other Arduino IDE 4 | compatible boards are also supported but the library then uses 5 | generic functions which will be slower. The library uses 32 bit 6 | variables extensively so this will affect performance on 8 and 16 7 | bit processors. 8 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/library.properties: -------------------------------------------------------------------------------- 1 | name=TFT_eSPI 2 | version=2.2.0 3 | author=Bodmer 4 | maintainer=Bodmer 5 | sentence=TFT graphics library for Arduino processors with performance optimisation for STM32, ESP8266 and ESP32 6 | paragraph=Supports TFT displays using drivers (ILI9341 etc) that operate with hardware SPI or 8 bit parallel. 7 | category=Display 8 | url=https://github.com/Bodmer/TFT_eSPI 9 | architectures=* 10 | includes=TFT_eSPI.h 11 | 12 | -------------------------------------------------------------------------------- /libdeps/PCF8563_Library/examples/simple.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include "pcf8563.h" 3 | 4 | PCF8563_Class rtc; 5 | 6 | void setup() 7 | { 8 | Serial.begin(115200); 9 | Wire.begin(21, 22); 10 | rtc.begin(); 11 | rtc.setDateTime(2019, 4, 1, 12, 33, 59); 12 | } 13 | 14 | void loop() 15 | { 16 | Serial.println(rtc.formatDateTime(PCF_TIMEFORMAT_YYYY_MM_DD_H_M_S)); 17 | delay(1000); 18 | } 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /libdeps/WiFiManager/library.properties: -------------------------------------------------------------------------------- 1 | name=WiFiManager 2 | version=2.0.11-beta 3 | author=tzapu 4 | maintainer=tablatronix 5 | sentence=WiFi Configuration manager with web configuration portal for Espressif ESPx boards, by tzapu 6 | paragraph=Library for configuring ESP8266/ESP32 modules WiFi credentials and custom parameters at runtime with captive portal. 7 | category=Communication 8 | url=https://github.com/tzapu/WiFiManager.git 9 | architectures=esp8266,esp32 10 | -------------------------------------------------------------------------------- /.readthedocs.yml: -------------------------------------------------------------------------------- 1 | # .readthedocs.yml 2 | # Read the Docs configuration file 3 | # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details 4 | 5 | # Required 6 | version: 2 7 | 8 | # Optionally build your docs in additional formats such as PDF and ePub 9 | formats: all 10 | 11 | # Optionally set the version of Python and requirements required to build your docs 12 | python: 13 | version: 3.7 14 | install: 15 | - requirements: docs/requirements.txt -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /libdeps/SparkFun_MAX3010x_Sensor_Library/.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /docs/zh_CN/index.rst: -------------------------------------------------------------------------------- 1 | .. zbhci documentation master file, created by 2 | sphinx-quickstart on Sat Dec 18 14:34:56 2021. 3 | You can adapt this file completely to your liking, but it should at least 4 | contain the root `toctree` directive. 5 | 6 | T-Wristband 编程指南 7 | ==================== 8 | 9 | .. toctree:: 10 | :maxdepth: 2 11 | 12 | 快速开始 13 | 硬件参考 14 | 示例 15 | 故障排除 16 | 版权 17 | -------------------------------------------------------------------------------- /libdeps/SparkFun_LSM9DS1_Arduino_Library/library.properties: -------------------------------------------------------------------------------- 1 | name=SparkFun LSM9DS1 IMU 2 | version=2.0.0 3 | author=SparkFun Electronics 4 | maintainer=Jim Lindblom 5 | sentence=A driver library for the LSM9DS1 IMU. 6 | paragraph=Communicates with the LSM9DS1 over either SPI or I2C, so you can painlessly integrate an accelerometer, magnetometer, and gyroscope into your project. 7 | category=Sensors 8 | url=https://www.sparkfun.com/products/13284 9 | architectures=* 10 | -------------------------------------------------------------------------------- /libdeps/SparkFun_MAX3010x_Sensor_Library/library.properties: -------------------------------------------------------------------------------- 1 | name=SparkFun MAX3010x Pulse and Proximity Sensor Library 2 | version=1.1.1 3 | author=SparkFun Electronics 4 | maintainer=SparkFun Electronics 5 | sentence=Library for the MAX30102 Pulse and MAX30105 Proximity Breakout 6 | paragraph=An Arduino Library for the MAX3015 particle sensor and MAX30102 Pulse Ox sensor 7 | category=Sensors 8 | url=https://github.com/sparkfun/SparkFun_MAX3010x_Sensor_Library 9 | architectures=* 10 | -------------------------------------------------------------------------------- /libdeps/Adafruit_DRV2605_Library/examples/audio/audio.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include "Adafruit_DRV2605.h" 3 | 4 | Adafruit_DRV2605 drv; 5 | 6 | void setup() { 7 | Serial.begin(9600); 8 | Serial.println("DRV2605 Audio responsive test"); 9 | drv.begin(); 10 | 11 | 12 | drv.setMode(DRV2605_MODE_AUDIOVIBE); 13 | 14 | // ac coupled input, puts in 0.9V bias 15 | drv.writeRegister8(DRV2605_REG_CONTROL1, 0x20); 16 | 17 | // analog input 18 | drv.writeRegister8(DRV2605_REG_CONTROL3, 0xA3); 19 | } 20 | 21 | 22 | void loop() { 23 | } 24 | -------------------------------------------------------------------------------- /examples/T-Wristband-DRV2605/quaternionFilters.h: -------------------------------------------------------------------------------- 1 | #ifndef _QUATERNIONFILTERS_H_ 2 | #define _QUATERNIONFILTERS_H_ 3 | 4 | #include 5 | 6 | void MadgwickQuaternionUpdate(float ax, float ay, float az, float gx, float gy, 7 | float gz, float mx, float my, float mz, 8 | float deltat); 9 | void MahonyQuaternionUpdate(float ax, float ay, float az, float gx, float gy, 10 | float gz, float mx, float my, float mz, 11 | float deltat); 12 | const float * getQ(); 13 | 14 | #endif // _QUATERNIONFILTERS_H_ 15 | -------------------------------------------------------------------------------- /examples/T-Wristband-MAX30208/quaternionFilters.h: -------------------------------------------------------------------------------- 1 | #ifndef _QUATERNIONFILTERS_H_ 2 | #define _QUATERNIONFILTERS_H_ 3 | 4 | #include 5 | 6 | void MadgwickQuaternionUpdate(float ax, float ay, float az, float gx, float gy, 7 | float gz, float mx, float my, float mz, 8 | float deltat); 9 | void MahonyQuaternionUpdate(float ax, float ay, float az, float gx, float gy, 10 | float gz, float mx, float my, float mz, 11 | float deltat); 12 | const float * getQ(); 13 | 14 | #endif // _QUATERNIONFILTERS_H_ 15 | -------------------------------------------------------------------------------- /examples/T-Wristband-MPU9250/quaternionFilters.h: -------------------------------------------------------------------------------- 1 | #ifndef _QUATERNIONFILTERS_H_ 2 | #define _QUATERNIONFILTERS_H_ 3 | 4 | #include 5 | 6 | void MadgwickQuaternionUpdate(float ax, float ay, float az, float gx, float gy, 7 | float gz, float mx, float my, float mz, 8 | float deltat); 9 | void MahonyQuaternionUpdate(float ax, float ay, float az, float gx, float gy, 10 | float gz, float mx, float my, float mz, 11 | float deltat); 12 | const float * getQ(); 13 | 14 | #endif // _QUATERNIONFILTERS_H_ 15 | -------------------------------------------------------------------------------- /libdeps/WiFiManager/.github/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## Contributing PRs and ISSUES 2 | 3 | The development branch is the active branch, no features or bugs will be fixed against master ( hotfixes may be considered ). 4 | 5 | Please test against development branch before submitting issues, issues against master will be closed, 6 | 7 | PRs against master may be kept open if provides something useful to other members. 8 | 9 | Please open issues before sumbitting PRs against development, as commits might be occuring very frequently. 10 | 11 | ### Documentation is in progress 12 | https://github.com/tzapu/WiFiManager/issues/500 13 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/TFT_Drivers/ST7789_2_Init.h: -------------------------------------------------------------------------------- 1 | 2 | // This is the command sequence that initialises the ST7789 driver 3 | 4 | // Configure ST7789 display 5 | 6 | { 7 | static const uint8_t PROGMEM 8 | st7789[] = { 9 | 8, 10 | TFT_SLPOUT, TFT_INIT_DELAY, 255, 11 | TFT_COLMOD, 1+TFT_INIT_DELAY, 0x55, 10, 12 | TFT_MADCTL, 1, 0x00, 13 | TFT_CASET, 4, 0x00, 0x00, 0x00, 0xF0, 14 | TFT_PASET, 4, 0x00, 0x00, 0x00, 0xF0, 15 | TFT_INVON, TFT_INIT_DELAY, 10, 16 | TFT_NORON, TFT_INIT_DELAY, 10, 17 | TFT_DISPON, TFT_INIT_DELAY, 255 18 | }; 19 | 20 | commandList(st7789); 21 | } 22 | // End of ST7789 display configuration -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/TFT_Drivers/EPD_Defines.h: -------------------------------------------------------------------------------- 1 | // Null set for ePaper 2 | #define TFT_WIDTH 1000 3 | #define TFT_HEIGHT 1000 4 | 5 | #define TFT_INIT_DELAY 0 6 | 7 | #define TFT_NOP 0x00 8 | #define TFT_SWRST 0x00 9 | 10 | #define TFT_CASET 0x00 11 | #define TFT_PASET 0x00 12 | #define TFT_RAMWR 0x00 13 | 14 | #define TFT_RAMRD 0x00 15 | #define TFT_IDXRD 0x00 16 | 17 | #define TFT_MADCTL 0x00 18 | #define TFT_MAD_MY 0x00 19 | #define TFT_MAD_MX 0x00 20 | #define TFT_MAD_MV 0x00 21 | #define TFT_MAD_ML 0x00 22 | #define TFT_MAD_BGR 0x00 23 | #define TFT_MAD_MH 0x00 24 | #define TFT_MAD_RGB 0x00 25 | 26 | #define TFT_INVOFF 0x00 27 | #define TFT_INVON 0x00 28 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/library.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "TFT_eSPI", 3 | "version": "2.2.0", 4 | "keywords": "Arduino, tft, ePaper, display, STM32, ESP8266, NodeMCU, ESP32, M5Stack, ILI9341, ST7735, ILI9163, S6D02A1, ILI9486, ST7789, RM68140", 5 | "description": "A TFT and ePaper SPI graphics library with optimisation for ESP8266, ESP32 and STM32", 6 | "repository": 7 | { 8 | "type": "git", 9 | "url": "https://github.com/Bodmer/TFT_eSPI" 10 | }, 11 | "authors": 12 | [ 13 | { 14 | "name": "Bodmer", 15 | "email": "bodmer@anola.net", 16 | "maintainer": true 17 | } 18 | ], 19 | "frameworks": "arduino", 20 | "platforms": "espressif8266, espressif32, ststm32" 21 | } 22 | -------------------------------------------------------------------------------- /libdeps/Adafruit_DRV2605_Library/examples/complex/complex.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include "Adafruit_DRV2605.h" 3 | 4 | Adafruit_DRV2605 drv; 5 | 6 | void setup() { 7 | Serial.begin(9600); 8 | Serial.println("DRV test"); 9 | drv.begin(); 10 | 11 | // I2C trigger by sending 'go' command 12 | drv.setMode(DRV2605_MODE_INTTRIG); // default, internal trigger when sending GO command 13 | 14 | drv.selectLibrary(1); 15 | drv.setWaveform(0, 84); // ramp up medium 1, see datasheet part 11.2 16 | drv.setWaveform(1, 1); // strong click 100%, see datasheet part 11.2 17 | drv.setWaveform(2, 0); // end of waveforms 18 | } 19 | 20 | void loop() { 21 | drv.go(); 22 | delay(1000); 23 | } 24 | -------------------------------------------------------------------------------- /docs/zh_CN/troubleshooting.rst: -------------------------------------------------------------------------------- 1 | 2 | 3 | ******** 4 | 故障排查 5 | ******** 6 | 7 | 硬件 8 | ===== 9 | 10 | .. _tft_issue: 11 | 12 | 新版本屏幕(有绿色标签)需要改变配置 13 | ------------------------------------- 14 | 15 | 因为供货的问题,新版本的屏幕与旧版本的屏幕的配置有所不同。目前(2022-09-05)出货均为新版本屏幕。 16 | 17 | .. image:: ../_static/readme/new_version_green_tag.png 18 | 19 | 对于不同版本的屏幕,需要更改 ``C:\\Documents\Arduino\libraries\TFT_eSPI\User_Setups\Setup26_TTGO_T_Wristband.h`` 中的宏定义: 20 | 21 | * 新版本屏幕(有绿色标签) 22 | 23 | .. image:: ../_static/readme/new_version.png 24 | 25 | * 旧版本屏幕 26 | 27 | .. image:: ../_static/readme/older_version.png 28 | 29 | 如何区分 LSM9DS1 与MPU9250 传感器? 30 | ----------------------------------- 31 | 32 | 请看下图板子的右上半部分,进行区分: 33 | 34 | .. image:: ../_static/readme/3.jpg 35 | -------------------------------------------------------------------------------- /docs/zh_CN/hw-reference/index.rst: -------------------------------------------------------------------------------- 1 | ********* 2 | 硬件参考 3 | ********* 4 | 5 | .. toctree:: 6 | :maxdepth: 1 7 | 8 | T-Wristband MPU9250版本原理图 (PDF) 9 | T-Wristband LSM9DS1版本原理图 (PDF) 10 | DRV2605 拓展模块原理图 (PDF) 11 | MAX30102 拓展模块原理图 (PDF) 12 | 外壳尺寸 (DXF) 13 | -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line, and also 5 | # from the environment for the first two. 6 | SPHINXOPTS ?= 7 | SPHINXBUILD ?= sphinx-build 8 | SOURCEDIR = en 9 | BUILDDIR = build/$(SOURCEDIR) 10 | 11 | # Put it first so that "make" without argument is like "make help". 12 | help: 13 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 14 | 15 | doxygen: 16 | doxygen 17 | 18 | .PHONY: help Makefile doxygen 19 | 20 | # Catch-all target: route all unknown targets to Sphinx using the new 21 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 22 | %: Makefile doxygen 23 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) -------------------------------------------------------------------------------- /libdeps/Adafruit_DRV2605_Library/README.md: -------------------------------------------------------------------------------- 1 | # Adafruit DRV2605 Library [![Build Status](https://travis-ci.com/adafruit/Adafruit_DRV2605_Library.svg?branch=master)](https://travis-ci.com/adafruit/Adafruit_DRV2605_Library) 2 | 3 | This is a library for the Adafruit DRV2605L Haptic Driver ----> http://www.adafruit.com/products/2305 4 | 5 | Check out the links above for our tutorials and wiring diagrams. 6 | 7 | This motor/haptic driver uses I2C to communicate. 8 | 9 | Adafruit invests time and resources providing this open source code, 10 | please support Adafruit and open-source hardware by purchasing 11 | products from Adafruit! 12 | 13 | Written by Limor Fried/Ladyada for Adafruit Industries. 14 | 15 | MIT license, all text above must be included in any redistribution. 16 | -------------------------------------------------------------------------------- /libdeps/WiFiManager/library.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "WiFiManager", 3 | "version": "2.0.11-beta", 4 | "keywords": "wifi,wi-fi,esp,esp8266,esp32,espressif8266,espressif32,nodemcu,wemos,arduino", 5 | "description": "WiFi Configuration manager with web configuration portal for ESP boards", 6 | "authors": 7 | [ 8 | { 9 | "name": "tzapu", 10 | "url": "https://github.com/tzapu" 11 | }, 12 | { 13 | "name": "tablatronix", 14 | "url": "https://github.com/tablatronix", 15 | "maintainer": true 16 | } 17 | ], 18 | "repository": 19 | { 20 | "type": "git", 21 | "url": "https://github.com/tzapu/WiFiManager.git" 22 | }, 23 | "frameworks": "arduino", 24 | "platforms": 25 | [ 26 | "espressif8266", 27 | "espressif32" 28 | ] 29 | } -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/User_Setups/Setup22_TTGO_T4_v1.3.h: -------------------------------------------------------------------------------- 1 | // Setup for the TTGO T4 v1.3 ESP32 board with 2.2" ILI9341 display 2 | 3 | #define ILI9341_DRIVER 4 | 5 | #define TFT_BACKLIGHT_ON HIGH 6 | #define TFT_BL 4 7 | 8 | #define TFT_MISO 12 9 | #define TFT_MOSI 23 10 | #define TFT_SCLK 18 11 | 12 | #define TFT_CS 27 13 | #define TFT_DC 32 14 | #define TFT_RST 5 15 | 16 | #define LOAD_GLCD 17 | #define LOAD_FONT2 18 | #define LOAD_FONT4 19 | #define LOAD_FONT6 20 | #define LOAD_FONT7 21 | #define LOAD_FONT8 22 | #define LOAD_GFXFF 23 | 24 | #define SMOOTH_FONT 25 | 26 | //#define SPI_FREQUENCY 27000000 27 | #define SPI_FREQUENCY 40000000 // Maximum for ILI9341 28 | 29 | #define USE_HSPI_PORT 30 | 31 | #define SPI_READ_FREQUENCY 6000000 // 6 MHz is the maximum SPI read speed for the ST7789V 32 | -------------------------------------------------------------------------------- /examples/T-Wristband-LSM9DS1/platformio.ini: -------------------------------------------------------------------------------- 1 | [platformio] 2 | src_dir = . 3 | lib_dir = ../../libdeps 4 | 5 | [env:old-screens] 6 | platform = espressif32 7 | framework = arduino 8 | platform_packages = framework-arduinoespressif32@https://github.com/espressif/arduino-esp32.git#2.0.3 9 | board = esp32dev 10 | 11 | [env:new-screens] 12 | platform = espressif32 13 | framework = arduino 14 | platform_packages = framework-arduinoespressif32@https://github.com/espressif/arduino-esp32.git#2.0.3 15 | board = esp32dev 16 | ; lib_deps = https://github.com/Bodmer/TFT_eSPI 17 | extra_scripts = pre:../../scripts/apply_patches.py 18 | ; post:../../scripts/clear_patches.py 19 | custom_patch_section = patch 20 | 21 | [patch] 22 | root_dir = ../.. 23 | patches = ../../libdeps/patches/0001-New-version-screens.patch -------------------------------------------------------------------------------- /examples/T-Wristband-MAX3010X/platformio.ini: -------------------------------------------------------------------------------- 1 | [platformio] 2 | src_dir = . 3 | lib_dir = ../../libdeps 4 | 5 | [env:old-screens] 6 | platform = espressif32 7 | framework = arduino 8 | platform_packages = framework-arduinoespressif32@https://github.com/espressif/arduino-esp32.git#2.0.3 9 | board = esp32dev 10 | 11 | [env:new-screens] 12 | platform = espressif32 13 | framework = arduino 14 | platform_packages = framework-arduinoespressif32@https://github.com/espressif/arduino-esp32.git#2.0.3 15 | board = esp32dev 16 | ; lib_deps = https://github.com/Bodmer/TFT_eSPI 17 | extra_scripts = pre:../../scripts/apply_patches.py 18 | ; post:../../scripts/clear_patches.py 19 | custom_patch_section = patch 20 | 21 | [patch] 22 | root_dir = ../.. 23 | patches = ../../libdeps/patches/0001-New-version-screens.patch 24 | -------------------------------------------------------------------------------- /examples/T-Wristband-MPU9250/platformio.ini: -------------------------------------------------------------------------------- 1 | [platformio] 2 | src_dir = . 3 | lib_dir = ../../libdeps 4 | 5 | [env:old-screens] 6 | platform = espressif32 7 | framework = arduino 8 | platform_packages = framework-arduinoespressif32@https://github.com/espressif/arduino-esp32.git#2.0.3 9 | board = esp32dev 10 | 11 | [env:new-screens] 12 | platform = espressif32 13 | framework = arduino 14 | platform_packages = framework-arduinoespressif32@https://github.com/espressif/arduino-esp32.git#2.0.3 15 | board = esp32dev 16 | ; lib_deps = https://github.com/Bodmer/TFT_eSPI 17 | extra_scripts = pre:../../scripts/apply_patches.py 18 | ; post:../../scripts/clear_patches.py 19 | custom_patch_section = patch 20 | 21 | [patch] 22 | root_dir = ../.. 23 | patches = ../../libdeps/patches/0001-New-version-screens.patch 24 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/User_Setups/Setup22_TTGO_T4.h: -------------------------------------------------------------------------------- 1 | // Setup for the TTGO T4 ("Bitcoin Tracker") ESP32 board with 2.2" ILI9341 display 2 | 3 | // See SetupX_Template.h for all options available 4 | 5 | #define ILI9341_DRIVER 6 | 7 | #define TFT_MISO 12 8 | #define TFT_MOSI 23 9 | #define TFT_SCLK 18 10 | 11 | #define TFT_CS 27 12 | #define TFT_DC 26 13 | #define TFT_RST 5 14 | 15 | #define LOAD_GLCD 16 | #define LOAD_FONT2 17 | #define LOAD_FONT4 18 | #define LOAD_FONT6 19 | #define LOAD_FONT7 20 | #define LOAD_FONT8 21 | #define LOAD_GFXFF 22 | 23 | #define SMOOTH_FONT 24 | 25 | //#define SPI_FREQUENCY 27000000 26 | #define SPI_FREQUENCY 40000000 // Maximum for ILI9341 27 | 28 | #define USE_HSPI_PORT 29 | 30 | #define SPI_READ_FREQUENCY 6000000 // 6 MHz is the maximum SPI read speed for the ST7789V 31 | -------------------------------------------------------------------------------- /examples/T-Wristband-MAX30208/platformio.ini: -------------------------------------------------------------------------------- 1 | [platformio] 2 | src_dir = . 3 | lib_dir = ../../libdeps 4 | 5 | [env:old-screens] 6 | platform = espressif32 7 | framework = arduino 8 | platform_packages = framework-arduinoespressif32@https://github.com/espressif/arduino-esp32.git#2.0.3 9 | board = esp32dev 10 | 11 | [env:new-screens] 12 | platform = espressif32 13 | framework = arduino 14 | platform_packages = framework-arduinoespressif32@https://github.com/espressif/arduino-esp32.git#2.0.3 15 | board = esp32dev 16 | ; lib_deps = https://github.com/Bodmer/TFT_eSPI 17 | extra_scripts = pre:../../scripts/apply_patches.py 18 | ; post:../../scripts/clear_patches.py 19 | 20 | custom_patch_section = patch 21 | 22 | [patch] 23 | root_dir = ../.. 24 | patches = ../../libdeps/patches/0001-New-version-screens.patch 25 | -------------------------------------------------------------------------------- /libdeps/WiFiManager/examples/Unique/cb/AnonymousCB.ino: -------------------------------------------------------------------------------- 1 | #include // https://github.com/tzapu/WiFiManager 2 | 3 | bool _enteredConfigMode = false; 4 | 5 | void setup(){ 6 | Serial.begin(115200); 7 | WiFiManager wifiManager; 8 | 9 | // wifiManager.setAPCallback([this](WiFiManager* wifiManager) { 10 | wifiManager.setAPCallback([&](WiFiManager* wifiManager) { 11 | Serial.printf("Entered config mode:ip=%s, ssid='%s'\n", 12 | WiFi.softAPIP().toString().c_str(), 13 | wifiManager->getConfigPortalSSID().c_str()); 14 | _enteredConfigMode = true; 15 | }); 16 | wifiManager.resetSettings(); 17 | if (!wifiManager.autoConnect()) { 18 | Serial.printf("*** Failed to connect and hit timeout\n"); 19 | ESP.restart(); 20 | delay(1000); 21 | } 22 | } 23 | 24 | void loop(){ 25 | 26 | } 27 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/TFT_Drivers/S6D02A1_Rotation.h: -------------------------------------------------------------------------------- 1 | 2 | // This is the command sequence that rotates the S6D02A1 driver coordinate frame 3 | 4 | rotation = m % 4; 5 | 6 | writecommand(TFT_MADCTL); 7 | switch (rotation) { 8 | case 0: 9 | writedata(TFT_MAD_MX | TFT_MAD_MY | TFT_MAD_BGR); 10 | _width = _init_width; 11 | _height = _init_height; 12 | break; 13 | case 1: 14 | writedata(TFT_MAD_MV | TFT_MAD_MY | TFT_MAD_BGR); 15 | _width = _init_height; 16 | _height = _init_width; 17 | break; 18 | case 2: 19 | writedata(TFT_MAD_BGR); 20 | _width = _init_width; 21 | _height = _init_height; 22 | break; 23 | case 3: 24 | writedata(TFT_MAD_MX | TFT_MAD_MV | TFT_MAD_BGR); 25 | _width = _init_height; 26 | _height = _init_width; 27 | break; 28 | } 29 | -------------------------------------------------------------------------------- /scripts/clear_patches.py: -------------------------------------------------------------------------------- 1 | from os.path import join, isfile 2 | import os 3 | 4 | Import("env") 5 | 6 | def post_program_action(source, target, env): 7 | project_dir = env['PROJECT_DIR'] 8 | patches_dir = join(project_dir, '..', '..', 'libdeps', 'patches') 9 | patch = join(project_dir, '..', '..', 'scripts', 'patch.py') 10 | for i in os.listdir(patches_dir): 11 | print("unpatching %s" % join(patches_dir, i)) 12 | env.Execute("$PYTHONEXE %s %s --debug -d %s --revert" % (patch, 13 | join(patches_dir, i), 14 | join(project_dir, '..', '..') 15 | ) 16 | ) 17 | 18 | env.AddPostAction("$PROGPATH", post_program_action) 19 | -------------------------------------------------------------------------------- /examples/T-Wristband-DRV2605/platformio.ini: -------------------------------------------------------------------------------- 1 | [platformio] 2 | src_dir = . 3 | lib_dir = ../../libdeps 4 | 5 | [env:old-screens] 6 | platform = espressif32 7 | framework = arduino 8 | platform_packages = framework-arduinoespressif32@https://github.com/espressif/arduino-esp32.git#2.0.3 9 | board = esp32dev 10 | 11 | [env:new-screens] 12 | platform = espressif32 13 | framework = arduino 14 | platform_packages = framework-arduinoespressif32@https://github.com/espressif/arduino-esp32.git#2.0.3 15 | board = esp32dev 16 | ; lib_deps = ../../libdeps/TFT_eSPI 17 | extra_scripts = pre:../../scripts/apply_patches.py 18 | ; post:../../scripts/clear_patches.py 19 | ; post:../../scripts/merge_bin.py 20 | custom_patch_section = patch 21 | 22 | [patch] 23 | root_dir = ../.. 24 | patches = ../../libdeps/patches/0001-New-version-screens.patch 25 | -------------------------------------------------------------------------------- /docs/en/hw-reference/index.rst: -------------------------------------------------------------------------------- 1 | ******************* 2 | Hardware Reference 3 | ******************* 4 | 5 | .. toctree:: 6 | :maxdepth: 1 7 | 8 | T-Wristband MPU9250 Version Schematic (PDF) 9 | T-Wristband LSM9DS1 Version Schematic (PDF) 10 | DRV2605 Vibration Module Schematic (PDF) 11 | MAX30102 Heart Rate Module Schematic (PDF) 12 | Shell Dimensions (DXF) 13 | -------------------------------------------------------------------------------- /libdeps/patches/0001-New-version-screens.patch: -------------------------------------------------------------------------------- 1 | diff --git a/libdeps/TFT_eSPI/User_Setups/Setup26_TTGO_T_Wristband.h b/libdeps/TFT_eSPI/User_Setups/Setup26_TTGO_T_Wristband.h 2 | index b6b546a..6bc5381 100644 3 | --- a/libdeps/TFT_eSPI/User_Setups/Setup26_TTGO_T_Wristband.h 4 | +++ b/libdeps/TFT_eSPI/User_Setups/Setup26_TTGO_T_Wristband.h 5 | @@ -14,8 +14,8 @@ 6 | 7 | #define TFT_BACKLIGHT_ON HIGH // HIGH or LOW are options 8 | 9 | -#define ST7735_GREENTAB160x80 // For 160 x 80 display (BGR, inverted, 26 offset) 10 | -//#define ST7735_REDTAB160x80 11 | +// #define ST7735_GREENTAB160x80 // For 160 x 80 display (BGR, inverted, 26 offset) 12 | +#define ST7735_REDTAB160x80 13 | 14 | #define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH 15 | #define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters 16 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/TFT_Drivers/HX8357D_Rotation.h: -------------------------------------------------------------------------------- 1 | // This is the command sequence that rotates the ILI9481 driver coordinate frame 2 | 3 | writecommand(TFT_MADCTL); 4 | rotation = m % 4; 5 | switch (rotation) { 6 | case 0: // Portrait 7 | writedata(TFT_MAD_MX | TFT_MAD_MY | TFT_MAD_RGB); 8 | _width = TFT_WIDTH; 9 | _height = TFT_HEIGHT; 10 | break; 11 | case 1: // Landscape (Portrait + 90) 12 | writedata(TFT_MAD_MV | TFT_MAD_MY | TFT_MAD_RGB); 13 | _width = TFT_HEIGHT; 14 | _height = TFT_WIDTH; 15 | break; 16 | case 2: // Inverter portrait 17 | writedata(TFT_MAD_RGB); 18 | _width = TFT_WIDTH; 19 | _height = TFT_HEIGHT; 20 | break; 21 | case 3: // Inverted landscape 22 | writedata(TFT_MAD_MX | TFT_MAD_MV | TFT_MAD_RGB); 23 | _width = TFT_HEIGHT; 24 | _height = TFT_WIDTH; 25 | break; 26 | } 27 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/TFT_Drivers/R61581_Rotation.h: -------------------------------------------------------------------------------- 1 | // This is the command sequence that rotates the R61581 driver coordinate frame 2 | 3 | writecommand(TFT_MADCTL); 4 | rotation = m % 4; 5 | switch (rotation) { 6 | case 0: // Portrait 7 | writedata(TFT_MAD_BGR | TFT_MAD_MX); 8 | _width = TFT_WIDTH; 9 | _height = TFT_HEIGHT; 10 | break; 11 | case 1: // Landscape (Portrait + 90) 12 | writedata(TFT_MAD_MV | TFT_MAD_BGR); 13 | _width = TFT_HEIGHT; 14 | _height = TFT_WIDTH; 15 | break; 16 | case 2: // Inverter portrait 17 | writedata(TFT_MAD_BGR | TFT_MAD_GS); 18 | _width = TFT_WIDTH; 19 | _height = TFT_HEIGHT; 20 | break; 21 | case 3: // Inverted landscape 22 | writedata(TFT_MAD_MV | TFT_MAD_BGR | TFT_MAD_MX | TFT_MAD_GS); 23 | _width = TFT_HEIGHT; 24 | _height = TFT_WIDTH; 25 | break; 26 | } 27 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/TFT_Drivers/ILI9481_Rotation.h: -------------------------------------------------------------------------------- 1 | // This is the command sequence that rotates the ILI9481 driver coordinate frame 2 | 3 | writecommand(TFT_MADCTL); 4 | rotation = m % 4; 5 | switch (rotation) { 6 | case 0: // Portrait 7 | writedata(TFT_MAD_BGR | TFT_MAD_SS); 8 | _width = TFT_WIDTH; 9 | _height = TFT_HEIGHT; 10 | break; 11 | case 1: // Landscape (Portrait + 90) 12 | writedata(TFT_MAD_MV | TFT_MAD_BGR); 13 | _width = TFT_HEIGHT; 14 | _height = TFT_WIDTH; 15 | break; 16 | case 2: // Inverter portrait 17 | writedata(TFT_MAD_BGR | TFT_MAD_GS); 18 | _width = TFT_WIDTH; 19 | _height = TFT_HEIGHT; 20 | break; 21 | case 3: // Inverted landscape 22 | writedata(TFT_MAD_MV | TFT_MAD_BGR | TFT_MAD_SS | TFT_MAD_GS); 23 | _width = TFT_HEIGHT; 24 | _height = TFT_WIDTH; 25 | break; 26 | } 27 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/TFT_Drivers/ILI9488_Rotation.h: -------------------------------------------------------------------------------- 1 | // This is the command sequence that rotates the ILI9488 driver coordinate frame 2 | 3 | writecommand(TFT_MADCTL); 4 | rotation = m % 4; 5 | switch (rotation) { 6 | case 0: // Portrait 7 | writedata(TFT_MAD_MX | TFT_MAD_BGR); 8 | _width = TFT_WIDTH; 9 | _height = TFT_HEIGHT; 10 | break; 11 | case 1: // Landscape (Portrait + 90) 12 | writedata(TFT_MAD_MV | TFT_MAD_BGR); 13 | _width = TFT_HEIGHT; 14 | _height = TFT_WIDTH; 15 | break; 16 | case 2: // Inverter portrait 17 | writedata(TFT_MAD_MY | TFT_MAD_BGR); 18 | _width = TFT_WIDTH; 19 | _height = TFT_HEIGHT; 20 | break; 21 | case 3: // Inverted landscape 22 | writedata(TFT_MAD_MX | TFT_MAD_MY | TFT_MAD_MV | TFT_MAD_BGR); 23 | _width = TFT_HEIGHT; 24 | _height = TFT_WIDTH; 25 | break; 26 | } 27 | -------------------------------------------------------------------------------- /libdeps/WiFiManager/.github/workflows/cpp_lint.yml: -------------------------------------------------------------------------------- 1 | name: cpplint 2 | 3 | on: 4 | push: 5 | paths-ignore: 6 | - '.github/workflows/compile_*.yml' 7 | pull_request: 8 | paths-ignore: 9 | - '.github/workflows/compile_*.yml' 10 | jobs: 11 | build: 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: actions/checkout@v2 15 | - name: cpplint 16 | uses: reviewdog/action-cpplint@master 17 | with: 18 | github_token: ${{ secrets.GITHUB_TOKEN }} 19 | reporter: github-pr-check 20 | flags: --linelength=100 21 | target: . 22 | filter: "-whitespace/tab\ 23 | ,-readability/braces\ 24 | ,-whitespace/braces\ 25 | ,-whitespace/comments\ 26 | ,-whitespace/indent\ 27 | ,-whitespace/newline\ 28 | ,-whitespace/operators\ 29 | ,-whitespace/parens\ 30 | " 31 | -------------------------------------------------------------------------------- /docs/make.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | 3 | pushd %~dp0 4 | 5 | REM Command file for Sphinx documentation 6 | 7 | if "%SPHINXBUILD%" == "" ( 8 | set SPHINXBUILD=sphinx-build 9 | ) 10 | set SOURCEDIR=en 11 | set BUILDDIR=build 12 | 13 | if "%1" == "" goto help 14 | 15 | %SPHINXBUILD% >NUL 2>NUL 16 | if errorlevel 9009 ( 17 | echo. 18 | echo.The 'sphinx-build' command was not found. Make sure you have Sphinx 19 | echo.installed, then set the SPHINXBUILD environment variable to point 20 | echo.to the full path of the 'sphinx-build' executable. Alternatively you 21 | echo.may add the Sphinx directory to PATH. 22 | echo. 23 | echo.If you don't have Sphinx installed, grab it from 24 | echo.http://sphinx-doc.org/ 25 | exit /b 1 26 | ) 27 | 28 | doxygen.exe 29 | 30 | %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% 31 | goto end 32 | 33 | :help 34 | %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% 35 | 36 | :end 37 | popd -------------------------------------------------------------------------------- /libdeps/Adafruit_DRV2605_Library/examples/realtime/realtime.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include "Adafruit_DRV2605.h" 3 | 4 | Adafruit_DRV2605 drv; 5 | 6 | void setup() { 7 | Serial.begin(9600); 8 | Serial.println("DRV test"); 9 | drv.begin(); 10 | 11 | // Set Real-Time Playback mode 12 | drv.setMode(DRV2605_MODE_REALTIME); 13 | } 14 | 15 | uint8_t rtp_index = 0; 16 | uint8_t rtp[] = { 17 | 0x30, 100, 0x32, 100, 18 | 0x34, 100, 0x36, 100, 19 | 0x38, 100, 0x3A, 100, 20 | 0x00, 100, 21 | 0x40, 200, 0x00, 100, 22 | 0x40, 200, 0x00, 100, 23 | 0x40, 200, 0x00, 100 24 | }; 25 | 26 | void loop() { 27 | 28 | if (rtp_index < sizeof(rtp)/sizeof(rtp[0])) { 29 | drv.setRealtimeValue(rtp[rtp_index]); 30 | rtp_index++; 31 | delay(rtp[rtp_index]); 32 | rtp_index++; 33 | } else { 34 | drv.setRealtimeValue(0x00); 35 | delay(1000); 36 | rtp_index = 0; 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /libdeps/WiFiManager/examples/NonBlocking/AutoConnectNonBlocking/AutoConnectNonBlocking.ino: -------------------------------------------------------------------------------- 1 | #include // https://github.com/tzapu/WiFiManager 2 | WiFiManager wm; 3 | 4 | void setup() { 5 | WiFi.mode(WIFI_STA); // explicitly set mode, esp defaults to STA+AP 6 | // put your setup code here, to run once: 7 | Serial.begin(115200); 8 | 9 | //reset settings - wipe credentials for testing 10 | //wm.resetSettings(); 11 | 12 | wm.setConfigPortalBlocking(false); 13 | wm.setConfigPortalTimeout(60); 14 | //automatically connect using saved credentials if they exist 15 | //If connection fails it starts an access point with the specified name 16 | if(wm.autoConnect("AutoConnectAP")){ 17 | Serial.println("connected...yeey :)"); 18 | } 19 | else { 20 | Serial.println("Configportal running"); 21 | } 22 | } 23 | 24 | void loop() { 25 | wm.process(); 26 | // put your main code here, to run repeatedly: 27 | } 28 | -------------------------------------------------------------------------------- /libdeps/Adafruit_DRV2605_Library/.travis.yml: -------------------------------------------------------------------------------- 1 | language: c 2 | sudo: false 3 | # Blacklist 4 | branches: 5 | except: 6 | - gh-pages 7 | cache: 8 | directories: 9 | - ~/arduino_ide 10 | - ~/.arduino15/packages/ 11 | git: 12 | depth: false 13 | quiet: true 14 | env: 15 | global: 16 | - ARDUINO_IDE_VERSION="1.8.7" 17 | - PRETTYNAME="Adafruit DRV2605 Library" 18 | # Optional, will default to "$TRAVIS_BUILD_DIR/Doxyfile" 19 | # - DOXYFILE: $TRAVIS_BUILD_DIR/Doxyfile 20 | 21 | before_install: 22 | - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/install.sh) 23 | 24 | script: 25 | - build_main_platforms 26 | 27 | # Generate and deploy documentation 28 | after_success: 29 | - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/library_check.sh) 30 | - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/doxy_gen_and_deploy.sh) 31 | -------------------------------------------------------------------------------- /docs/zh_CN/get-started/datasheet.inc: -------------------------------------------------------------------------------- 1 | 数据手册 2 | ======== 3 | 4 | * `ESP32-PICO-D4`_ (Datasheet) 5 | * `ST7735`_ (Datasheet) 6 | * `PCF8563`_ (Datasheet) 7 | * `LSM9DS1`_ (Datasheet) 8 | * `MPU9250`_ (Datasheet) 9 | * `DRV2605`_ (Datasheet) 10 | * `MAX30102`_ (Datasheet) 11 | * `MAX30208`_ (Datasheet) 12 | 13 | .. _ESP32-PICO-D4: https://www.espressif.com.cn/sites/default/files/documentation/esp32-pico-d4_datasheet_cn.pdf 14 | .. _ST7735: http://www.displayfuture.com/Display/datasheet/controller/ST7735.pdf 15 | .. _PCF8563: https://www.nxp.com.cn/docs/zh/data-sheet/PCF8563.pdf 16 | .. _LSM9DS1: https://www.st.com/resource/en/datasheet/lsm9ds1.pdf 17 | .. _MPU9250: https://invensense.tdk.com/wp-content/uploads/2015/02/PS-MPU-9250A-01-v1.1.pdf 18 | .. _DRV2605: https://www.ti.com/lit/ds/symlink/drv2605.pdf?ts=1662177472179&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FDRV2605 19 | .. _MAX30102: https://datasheets.maximintegrated.com/en/ds/MAX30102.pdf 20 | .. _MAX30208: https://datasheets.maximintegrated.com/en/ds/MAX30208.pdf 21 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/Tools/PlatformIO/Configuring options.txt: -------------------------------------------------------------------------------- 1 | PlatformIO User notes: 2 | 3 | It is possible to load settings from the calling program rather than modifying 4 | the library for each project by modifying the "platformio.ini" file. 5 | 6 | The User_Setup_Select.h file will not load the user setting header files if 7 | USER_SETUP_LOADED is defined. 8 | 9 | Instead of using #define, use the -D prefix, for example: 10 | 11 | [env:esp32dev] 12 | platform = https://github.com/platformio/platform-espressif32.git#feature/stage 13 | board = esp32dev 14 | framework = arduino 15 | upload_port = ESP32-Test-2481CE9C.local 16 | 17 | build_flags = 18 | -Os 19 | -DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG 20 | -DUSER_SETUP_LOADED=1 21 | -DILI9163_DRIVER=1 22 | -DTFT_WIDTH=128 23 | -DTFT_HEIGHT=160 24 | -DTFT_MISO=19 25 | -DTFT_MOSI=23 26 | -DTFT_SCLK=18 27 | -DTFT_CS=5 28 | -DTFT_DC=19 29 | -DTFT_RST=-1 30 | -DLOAD_GLCD=1 31 | -DSPI_FREQUENCY=27000000 32 | 33 | lib_extra_dirs = B:\Projects\ESP32\ESP32Lib 34 | -------------------------------------------------------------------------------- /docs/en/get-started/datasheet.inc: -------------------------------------------------------------------------------- 1 | Datasheet 2 | ========== 3 | 4 | * `ESP32-PICO-D4`_ (Datasheet) 5 | * `ST7735`_ (Datasheet) 6 | * `PCF8563`_ (Datasheet) 7 | * `LSM9DS1`_ (Datasheet) 8 | * `MPU9250`_ (Datasheet) 9 | * `DRV2605`_ (Datasheet) 10 | * `MAX30102`_ (Datasheet) 11 | * `MAX30208`_ (Datasheet) 12 | 13 | .. _ESP32-PICO-D4: https://www.espressif.com.cn/sites/default/files/documentation/esp32-pico-d4_datasheet_en.pdf 14 | .. _ST7735: http://www.displayfuture.com/Display/datasheet/controller/ST7735.pdf 15 | .. _PCF8563: https://www.nxp.com.cn/docs/en/data-sheet/PCF8563.pdf 16 | .. _LSM9DS1: https://www.st.com/resource/en/datasheet/lsm9ds1.pdf 17 | .. _MPU9250: https://invensense.tdk.com/wp-content/uploads/2015/02/PS-MPU-9250A-01-v1.1.pdf 18 | .. _DRV2605: https://www.ti.com/lit/ds/symlink/drv2605.pdf?ts=1662177472179&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FDRV2605 19 | .. _MAX30102: https://datasheets.maximintegrated.com/en/ds/MAX30102.pdf 20 | .. _MAX30208: https://datasheets.maximintegrated.com/en/ds/MAX30208.pdf 21 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/User_Setups/Setup25_TTGO_T_Display.h: -------------------------------------------------------------------------------- 1 | // Setup for the TTGO T4 ("Bitcoin Tracker") ESP32 board with 2.2" ILI9341 display 2 | 3 | // See SetupX_Template.h for all options available 4 | 5 | #define ST7789_DRIVER 6 | 7 | #define TFT_WIDTH 135 8 | #define TFT_HEIGHT 240 9 | 10 | #define CGRAM_OFFSET // Library will add offsets required 11 | 12 | //#define TFT_MISO -1 13 | 14 | #define TFT_MOSI 19 15 | #define TFT_SCLK 18 16 | #define TFT_CS 5 17 | #define TFT_DC 16 18 | #define TFT_RST 23 19 | 20 | #define TFT_BL 4 // Display backlight control pin 21 | 22 | #define TFT_BACKLIGHT_ON HIGH // HIGH or LOW are options 23 | 24 | #define LOAD_GLCD 25 | #define LOAD_FONT2 26 | #define LOAD_FONT4 27 | #define LOAD_FONT6 28 | #define LOAD_FONT7 29 | #define LOAD_FONT8 30 | #define LOAD_GFXFF 31 | 32 | #define SMOOTH_FONT 33 | 34 | //#define SPI_FREQUENCY 27000000 35 | #define SPI_FREQUENCY 40000000 // Maximum for ILI9341 36 | 37 | 38 | #define SPI_READ_FREQUENCY 6000000 // 6 MHz is the maximum SPI read speed for the ST7789V 39 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/320 x 240/TFT_Ellipse/TFT_Ellipse.ino: -------------------------------------------------------------------------------- 1 | /* 2 | Ellipse drawing example 3 | 4 | This sketch does not use any fonts. 5 | */ 6 | 7 | #include // Hardware-specific library 8 | #include 9 | 10 | TFT_eSPI tft = TFT_eSPI(); // Invoke custom library 11 | 12 | void setup(void) { 13 | tft.init(); 14 | 15 | tft.setRotation(1); 16 | 17 | } 18 | 19 | void loop() { 20 | 21 | tft.fillScreen(TFT_BLACK); 22 | 23 | // Draw some random ellipses 24 | for (int i = 0; i < 40; i++) 25 | { 26 | int rx = random(60); 27 | int ry = random(60); 28 | int x = rx + random(320 - rx - rx); 29 | int y = ry + random(240 - ry - ry); 30 | tft.fillEllipse(x, y, rx, ry, random(0xFFFF)); 31 | } 32 | 33 | delay(2000); 34 | tft.fillScreen(TFT_BLACK); 35 | 36 | for (int i = 0; i < 40; i++) 37 | { 38 | int rx = random(60); 39 | int ry = random(60); 40 | int x = rx + random(320 - rx - rx); 41 | int y = ry + random(240 - ry - ry); 42 | tft.drawEllipse(x, y, rx, ry, random(0xFFFF)); 43 | } 44 | 45 | delay(2000); 46 | } 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/480 x 320/TFT_Ellipse/TFT_Ellipse.ino: -------------------------------------------------------------------------------- 1 | /* 2 | Ellipse drawing example 3 | 4 | This sketch does not use any fonts. 5 | */ 6 | 7 | #include 8 | 9 | #include // Hardware-specific library 10 | 11 | TFT_eSPI tft = TFT_eSPI(); // Invoke custom library 12 | 13 | 14 | void setup(void) { 15 | tft.init(); 16 | 17 | tft.setRotation(1); 18 | 19 | } 20 | 21 | void loop() { 22 | 23 | tft.fillScreen(TFT_BLACK); 24 | 25 | // Draw some random circles 26 | for (int i = 0; i < 40; i++) 27 | { 28 | int rx = random(60); 29 | int ry = random(60); 30 | int x = rx + random(480 - rx - rx); 31 | int y = ry + random(320 - ry - ry); 32 | tft.fillEllipse(x, y, rx, ry, random(0xFFFF)); 33 | } 34 | 35 | delay(2000); 36 | tft.fillScreen(TFT_BLACK); 37 | 38 | for (int i = 0; i < 40; i++) 39 | { 40 | int rx = random(60); 41 | int ry = random(60); 42 | int x = rx + random(480 - rx - rx); 43 | int y = ry + random(320 - ry - ry); 44 | tft.drawEllipse(x, y, rx, ry, random(0xFFFF)); 45 | } 46 | 47 | delay(2000); 48 | } 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /libdeps/WiFiManager/keywords.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Syntax Coloring Map For WifiManager 3 | ####################################### 4 | 5 | ####################################### 6 | # Datatypes (KEYWORD1) 7 | ####################################### 8 | 9 | WiFiManager KEYWORD1 10 | WiFiManagerParameter KEYWORD1 11 | 12 | 13 | ####################################### 14 | # Methods and Functions (KEYWORD2) 15 | ####################################### 16 | autoConnect KEYWORD2 17 | getSSID KEYWORD2 18 | getPassword KEYWORD2 19 | getConfigPortalSSID KEYWORD2 20 | resetSettings KEYWORD2 21 | setConfigPortalTimeout KEYWORD2 22 | setConnectTimeout KEYWORD2 23 | setDebugOutput KEYWORD2 24 | setMinimumSignalQuality KEYWORD2 25 | setAPStaticIPConfig KEYWORD2 26 | setSTAStaticIPConfig KEYWORD2 27 | setAPCallback KEYWORD2 28 | setSaveConfigCallback KEYWORD2 29 | addParameter KEYWORD2 30 | getID KEYWORD2 31 | getValue KEYWORD2 32 | getPlaceholder KEYWORD2 33 | getValueLength KEYWORD2 34 | 35 | ####################################### 36 | # Constants (LITERAL1) 37 | ####################################### 38 | 39 | # LITERAL1 40 | -------------------------------------------------------------------------------- /docs/en/troubleshooting.rst: -------------------------------------------------------------------------------- 1 | **************** 2 | Troubleshooting 3 | **************** 4 | 5 | Hardware 6 | ========= 7 | 8 | .. _tft_issue: 9 | 10 | New version screens (with green labels) require configuration changes 11 | ---------------------------------------------------------------------- 12 | 13 | Due to supply problems, the new version of the screen and the old version of the screen configuration is different. The current (2022-09-05) shipments are all new version screens. 14 | 15 | .. image:: ../_static/readme/new_version_green_tag.png 16 | 17 | For different versions of the screen, you need to change the macro definition in ``C:\\Documents\Arduino\libraries\TFT_eSPI\User_Setups\Setup26_TTGO_T_Wristband.h``: 18 | 19 | * New version screen (with green label) 20 | 21 | .. image:: ../_static/readme/new_version.png 22 | 23 | * old version screen 24 | 25 | .. image:: ../_static/readme/older_version.png 26 | 27 | How to differentiate LSM9DS1 from MPU9250 sensor? 28 | -------------------------------------------------- 29 | 30 | Please see the upper right half of the board below to distinguish: 31 | 32 | .. image:: ../_static/readme/3.jpg 33 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/User_Setups/Setup23_TTGO_TM.h: -------------------------------------------------------------------------------- 1 | // Setup for the TTGO TM (Music) ESP32 board with 2.4" ST7789V display 2 | 3 | // See SetupX_Template.h for all options available 4 | 5 | #define ST7789_DRIVER 6 | 7 | #define TFT_SDA_READ // Read from display, it only provides an SDA pin 8 | 9 | #define TFT_MISO 19 // Must be defined even though it is not used 10 | #define TFT_MOSI 23 // Connected to display SDA line 11 | #define TFT_SCLK 18 12 | 13 | #define TFT_CS 05 14 | #define TFT_DC 16 15 | #define TFT_RST 17 16 | 17 | #define TFT_WIDTH 240 18 | #define TFT_HEIGHT 320 19 | 20 | //#define TFT_RGB_ORDER TFT_RGB // Colour order Red-Green-Blue 21 | #define TFT_RGB_ORDER TFT_BGR // Colour order Blue-Green-Red 22 | 23 | #define LOAD_GLCD 24 | #define LOAD_FONT2 25 | #define LOAD_FONT4 26 | #define LOAD_FONT6 27 | #define LOAD_FONT7 28 | #define LOAD_FONT8 29 | #define LOAD_GFXFF 30 | 31 | #define SMOOTH_FONT 32 | 33 | #define SPI_FREQUENCY 40000000 // This display also seems to work reliably at 80MHz 34 | #define SPI_FREQUENCY 80000000 35 | 36 | #define SPI_READ_FREQUENCY 6000000 // 6 MHz is the maximum SPI read speed for the ST7789V 37 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/160 x 128/TFT_Ellipse/TFT_Ellipse.ino: -------------------------------------------------------------------------------- 1 | /* 2 | Ellipse drawing example 3 | 4 | This sketch does not use any fonts. 5 | */ 6 | 7 | #include // Hardware-specific library 8 | #include 9 | 10 | TFT_eSPI tft = TFT_eSPI(); // Invoke custom library 11 | 12 | void setup(void) { 13 | tft.init(); 14 | 15 | tft.setRotation(1); 16 | 17 | } 18 | 19 | void loop() { 20 | 21 | tft.fillScreen(TFT_BLACK); 22 | 23 | // Draw some random filled elipses 24 | for (int i = 0; i < 20; i++) 25 | { 26 | int rx = random(40); 27 | int ry = random(40); 28 | int x = rx + random(160 - rx - rx); 29 | int y = ry + random(128 - ry - ry); 30 | tft.fillEllipse(x, y, rx, ry, random(0xFFFF)); 31 | } 32 | 33 | delay(2000); 34 | tft.fillScreen(TFT_BLACK); 35 | 36 | // Draw some random outline elipses 37 | for (int i = 0; i < 20; i++) 38 | { 39 | int rx = random(40); 40 | int ry = random(40); 41 | int x = rx + random(160 - rx - rx); 42 | int y = ry + random(128 - ry - ry); 43 | tft.drawEllipse(x, y, rx, ry, random(0xFFFF)); 44 | } 45 | 46 | delay(2000); 47 | } 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/TFT_Drivers/R61581_Defines.h: -------------------------------------------------------------------------------- 1 | // Change the width and height if required (defined in portrait mode) 2 | // or use the constructor to over-ride defaults 3 | #define TFT_WIDTH 320 4 | #define TFT_HEIGHT 480 5 | 6 | 7 | // Delay between some initialisation commands 8 | #define TFT_INIT_DELAY 0x80 // Not used unless commandlist invoked 9 | 10 | 11 | // Generic commands used by TFT_eSPI.cpp 12 | #define TFT_NOP 0x00 13 | #define TFT_SWRST 0x01 14 | 15 | #define TFT_SLPIN 0x10 16 | #define TFT_SLPOUT 0x11 17 | 18 | #define TFT_INVOFF 0x20 19 | #define TFT_INVON 0x21 20 | 21 | #define TFT_DISPOFF 0x28 22 | #define TFT_DISPON 0x29 23 | 24 | #define TFT_CASET 0x2A 25 | #define TFT_PASET 0x2B 26 | #define TFT_RAMWR 0x2C 27 | 28 | #define TFT_RAMRD 0x2E 29 | 30 | #define TFT_MADCTL 0x36 31 | 32 | #define TFT_MAD_MY 0x80 33 | #define TFT_MAD_MX 0x40 34 | #define TFT_MAD_MV 0x20 35 | #define TFT_MAD_ML 0x10 36 | #define TFT_MAD_RGB 0x00 37 | #define TFT_MAD_BGR 0x08 38 | #define TFT_MAD_MH 0x04 39 | #define TFT_MAD_SS 0x02 40 | #define TFT_MAD_GS 0x01 41 | 42 | #define TFT_IDXRD 0x00 // ILI9341 only, indexed control register read 43 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/TFT_Drivers/ILI9481_Defines.h: -------------------------------------------------------------------------------- 1 | // Change the width and height if required (defined in portrait mode) 2 | // or use the constructor to over-ride defaults 3 | #define TFT_WIDTH 320 4 | #define TFT_HEIGHT 480 5 | 6 | 7 | // Delay between some initialisation commands 8 | #define TFT_INIT_DELAY 0x80 // Not used unless commandlist invoked 9 | 10 | 11 | // Generic commands used by TFT_eSPI.cpp 12 | #define TFT_NOP 0x00 13 | #define TFT_SWRST 0x01 14 | 15 | #define TFT_SLPIN 0x10 16 | #define TFT_SLPOUT 0x11 17 | 18 | #define TFT_INVOFF 0x20 19 | #define TFT_INVON 0x21 20 | 21 | #define TFT_DISPOFF 0x28 22 | #define TFT_DISPON 0x29 23 | 24 | #define TFT_CASET 0x2A 25 | #define TFT_PASET 0x2B 26 | #define TFT_RAMWR 0x2C 27 | 28 | #define TFT_RAMRD 0x2E 29 | 30 | #define TFT_MADCTL 0x36 31 | 32 | #define TFT_MAD_MY 0x80 33 | #define TFT_MAD_MX 0x40 34 | #define TFT_MAD_MV 0x20 35 | #define TFT_MAD_ML 0x10 36 | #define TFT_MAD_RGB 0x00 37 | #define TFT_MAD_BGR 0x08 38 | #define TFT_MAD_MH 0x04 39 | #define TFT_MAD_SS 0x02 40 | #define TFT_MAD_GS 0x01 41 | 42 | #define TFT_IDXRD 0x00 // ILI9341 only, indexed control register read 43 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/TFT_Drivers/ILI9488_Defines.h: -------------------------------------------------------------------------------- 1 | // Change the width and height if required (defined in portrait mode) 2 | // or use the constructor to over-ride defaults 3 | #define TFT_WIDTH 320 4 | #define TFT_HEIGHT 480 5 | 6 | 7 | // Delay between some initialisation commands 8 | #define TFT_INIT_DELAY 0x80 // Not used unless commandlist invoked 9 | 10 | 11 | // Generic commands used by TFT_eSPI.cpp 12 | #define TFT_NOP 0x00 13 | #define TFT_SWRST 0x01 14 | 15 | #define TFT_SLPIN 0x10 16 | #define TFT_SLPOUT 0x11 17 | 18 | #define TFT_INVOFF 0x20 19 | #define TFT_INVON 0x21 20 | 21 | #define TFT_DISPOFF 0x28 22 | #define TFT_DISPON 0x29 23 | 24 | #define TFT_CASET 0x2A 25 | #define TFT_PASET 0x2B 26 | #define TFT_RAMWR 0x2C 27 | 28 | #define TFT_RAMRD 0x2E 29 | 30 | #define TFT_MADCTL 0x36 31 | 32 | #define TFT_MAD_MY 0x80 33 | #define TFT_MAD_MX 0x40 34 | #define TFT_MAD_MV 0x20 35 | #define TFT_MAD_ML 0x10 36 | #define TFT_MAD_RGB 0x00 37 | #define TFT_MAD_BGR 0x08 38 | #define TFT_MAD_MH 0x04 39 | #define TFT_MAD_SS 0x02 40 | #define TFT_MAD_GS 0x01 41 | 42 | #define TFT_IDXRD 0x00 // ILI9341 only, indexed control register read 43 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/TFT_Drivers/RM68140_Defines.h: -------------------------------------------------------------------------------- 1 | // Change the width and height if required (defined in portrait mode) 2 | // or use the constructor to over-ride defaults 3 | #define TFT_WIDTH 320 4 | #define TFT_HEIGHT 480 5 | 6 | 7 | // Delay between some initialisation commands 8 | #define TFT_INIT_DELAY 0x80 // Not used unless commandlist invoked 9 | 10 | 11 | // Generic commands used by TFT_eSPI.cpp 12 | #define TFT_NOP 0x00 13 | #define TFT_SWRST 0x01 14 | 15 | #define TFT_SLPIN 0x10 16 | #define TFT_SLPOUT 0x11 17 | 18 | #define TFT_INVOFF 0x20 19 | #define TFT_INVON 0x21 20 | 21 | #define TFT_DISPOFF 0x28 22 | #define TFT_DISPON 0x29 23 | 24 | #define TFT_CASET 0x2A 25 | #define TFT_PASET 0x2B 26 | #define TFT_RAMWR 0x2C 27 | 28 | #define TFT_RAMRD 0x2E 29 | 30 | #define TFT_MADCTL 0x36 31 | 32 | #define TFT_MAD_MY 0x80 33 | #define TFT_MAD_MX 0x40 34 | #define TFT_MAD_MV 0x20 35 | #define TFT_MAD_ML 0x10 36 | #define TFT_MAD_RGB 0x00 37 | #define TFT_MAD_BGR 0x08 38 | #define TFT_MAD_MH 0x04 39 | #define TFT_MAD_SS 0x02 40 | #define TFT_MAD_GS 0x01 41 | 42 | #define TFT_IDXRD 0x00 // ILI9341 only, indexed control register read 43 | -------------------------------------------------------------------------------- /libdeps/WiFiManager/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 tzapu 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /libdeps/PCF8563_Library/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 lewis he 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /libdeps/Adafruit_DRV2605_Library/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Adafruit Industries 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/TFT_Drivers/ILI9163_Rotation.h: -------------------------------------------------------------------------------- 1 | 2 | // This is the command sequence that rotates the ILI9163 driver coordinate frame 3 | 4 | rotation = m % 4; 5 | 6 | writecommand(TFT_MADCTL); 7 | switch (rotation) { 8 | case 0: 9 | writedata(TFT_MAD_MX | TFT_MAD_MY | TFT_MAD_BGR); 10 | _width = _init_width; 11 | _height = _init_height; 12 | #ifdef CGRAM_OFFSET 13 | colstart = 0; 14 | rowstart = 0; 15 | #endif 16 | break; 17 | case 1: 18 | writedata(TFT_MAD_MV | TFT_MAD_MY | TFT_MAD_BGR); 19 | _width = _init_height; 20 | _height = _init_width; 21 | #ifdef CGRAM_OFFSET 22 | colstart = 0; 23 | rowstart = 0; 24 | #endif 25 | break; 26 | case 2: 27 | writedata(TFT_MAD_BGR); 28 | _width = _init_width; 29 | _height = _init_height; 30 | #ifdef CGRAM_OFFSET 31 | colstart = 0; 32 | rowstart = 32; 33 | #endif 34 | break; 35 | case 3: 36 | writedata(TFT_MAD_MX | TFT_MAD_MV | TFT_MAD_BGR); 37 | _width = _init_height; 38 | _height = _init_width; 39 | #ifdef CGRAM_OFFSET 40 | colstart = 32; 41 | rowstart = 0; 42 | #endif 43 | break; 44 | } 45 | -------------------------------------------------------------------------------- /libdeps/WiFiManager/.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## PLEASE TRY DEVELOPMENT BRANCH before submitting bugs on release or master, in case they were already fixed. ## 2 | 3 | Issues without basic info will be ignored or closed! 4 | 5 | Please fill the info fields, it helps to get you faster support ;) 6 | 7 | if you have a stack dump decode it: 8 | https://github.com/esp8266/Arduino/blob/master/doc/Troubleshooting/stack_dump.rst 9 | 10 | for better debug messages: 11 | https://github.com/esp8266/Arduino/blob/master/doc/Troubleshooting/debugging.rst 12 | 13 | ----------------------------- Remove above ----------------------------- 14 | 15 | ### Basic Infos 16 | 17 | #### Hardware 18 | WiFimanager Branch/Release: Master 19 | 20 | Esp8266/Esp32: 21 | 22 | Hardware: ESP-12e, esp01, esp25 23 | 24 | Core Version: 2.4.0, staging 25 | 26 | ### Description 27 | 28 | Problem description 29 | 30 | ### Settings in IDE 31 | 32 | Module: NodeMcu, Wemos D1 33 | 34 | Additional libraries: 35 | 36 | ### Sketch 37 | 38 | ```cpp 39 | #BEGIN 40 | #include 41 | 42 | void setup() { 43 | 44 | } 45 | 46 | void loop() { 47 | 48 | } 49 | #END 50 | ``` 51 | 52 | ### Debug Messages 53 | 54 | ``` 55 | messages here 56 | ``` 57 | 58 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/TFT_Drivers/RM68140_Rotation.h: -------------------------------------------------------------------------------- 1 | // This is the command sequence that rotates the RM68140 driver coordinate frame 2 | 3 | 4 | writecommand(TFT_MADCTL); 5 | rotation = m % 4; 6 | switch (rotation) { 7 | case 0: // Portrait 8 | writedata(TFT_MAD_BGR); 9 | writecommand(0xB6); 10 | writedata(0); 11 | writedata(0x22); 12 | writedata(0x3B); 13 | _width = TFT_WIDTH; 14 | _height = TFT_HEIGHT; 15 | break; 16 | case 1: // Landscape (Portrait + 90) 17 | writedata(TFT_MAD_MV | TFT_MAD_BGR); 18 | writecommand(0xB6); 19 | writedata(0); 20 | writedata(0x02); 21 | writedata(0x3B); 22 | _width = TFT_HEIGHT; 23 | _height = TFT_WIDTH; 24 | break; 25 | case 2: // Inverter portrait 26 | writedata(TFT_MAD_BGR); 27 | writecommand(0xB6); 28 | writedata(0); 29 | writedata(0x42); 30 | writedata(0x3B); 31 | _width = TFT_WIDTH; 32 | _height = TFT_HEIGHT; 33 | break; 34 | case 3: // Inverted landscape 35 | writedata(TFT_MAD_MV | TFT_MAD_BGR); 36 | writecommand(0xB6); 37 | writedata(0); 38 | writedata(0x62); 39 | writedata(0x3B); 40 | _width = TFT_HEIGHT; 41 | _height = TFT_WIDTH; 42 | break; 43 | } 44 | 45 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Font_Demo_1/Notes.ino: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Information notes only: 4 | ====================== 5 | 6 | //These are the text plotting alignment (reference datum point) 7 | 8 | TL_DATUM = Top left (default) 9 | TC_DATUM = Top centre 10 | TR_DATUM = Top right 11 | 12 | ML_DATUM = Middle left 13 | MC_DATUM = Middle centre 14 | MR_DATUM = Middle right 15 | 16 | BL_DATUM = Bottom left 17 | BC_DATUM = Bottom centre 18 | BR_DATUM = Bottom right 19 | 20 | L_BASELINE = Left character baseline (Line the 'A' character would sit on) 21 | C_BASELINE = Centre character baseline 22 | R_BASELINE = Right character baseline 23 | 24 | // Basic colours already defined: 25 | 26 | TFT_BLACK 0x0000 27 | TFT_NAVY 0x000F 28 | TFT_DARKGREEN 0x03E0 29 | TFT_DARKCYAN 0x03EF 30 | TFT_MAROON 0x7800 31 | TFT_PURPLE 0x780F 32 | TFT_OLIVE 0x7BE0 33 | TFT_LIGHTGREY 0xC618 34 | TFT_DARKGREY 0x7BEF 35 | TFT_BLUE 0x001F 36 | TFT_GREEN 0x07E0 37 | TFT_CYAN 0x07FF 38 | TFT_RED 0xF800 39 | TFT_MAGENTA 0xF81F 40 | TFT_YELLOW 0xFFE0 41 | TFT_WHITE 0xFFFF 42 | TFT_ORANGE 0xFDA0 43 | TFT_GREENYELLOW 0xB7E0 44 | TFT_PINK 0xFC9F 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | */ 57 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Font_Demo_2/Notes.ino: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Information notes only: 4 | ====================== 5 | 6 | //These are the text plotting alignment (reference datum point) 7 | 8 | TL_DATUM = Top left (default) 9 | TC_DATUM = Top centre 10 | TR_DATUM = Top right 11 | 12 | ML_DATUM = Middle left 13 | MC_DATUM = Middle centre 14 | MR_DATUM = Middle right 15 | 16 | BL_DATUM = Bottom left 17 | BC_DATUM = Bottom centre 18 | BR_DATUM = Bottom right 19 | 20 | L_BASELINE = Left character baseline (Line the 'A' character would sit on) 21 | C_BASELINE = Centre character baseline 22 | R_BASELINE = Right character baseline 23 | 24 | // Basic colours already defined: 25 | 26 | TFT_BLACK 0x0000 27 | TFT_NAVY 0x000F 28 | TFT_DARKGREEN 0x03E0 29 | TFT_DARKCYAN 0x03EF 30 | TFT_MAROON 0x7800 31 | TFT_PURPLE 0x780F 32 | TFT_OLIVE 0x7BE0 33 | TFT_LIGHTGREY 0xC618 34 | TFT_DARKGREY 0x7BEF 35 | TFT_BLUE 0x001F 36 | TFT_GREEN 0x07E0 37 | TFT_CYAN 0x07FF 38 | TFT_RED 0xF800 39 | TFT_MAGENTA 0xF81F 40 | TFT_YELLOW 0xFFE0 41 | TFT_WHITE 0xFFFF 42 | TFT_ORANGE 0xFDA0 43 | TFT_GREENYELLOW 0xB7E0 44 | TFT_PINK 0xFC9F 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | */ 57 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Font_Demo_4/Notes.ino: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Information notes only: 4 | ====================== 5 | 6 | //These are the text plotting alignment (reference datum point) 7 | 8 | TL_DATUM = Top left (default) 9 | TC_DATUM = Top centre 10 | TR_DATUM = Top right 11 | 12 | ML_DATUM = Middle left 13 | MC_DATUM = Middle centre 14 | MR_DATUM = Middle right 15 | 16 | BL_DATUM = Bottom left 17 | BC_DATUM = Bottom centre 18 | BR_DATUM = Bottom right 19 | 20 | L_BASELINE = Left character baseline (Line the 'A' character would sit on) 21 | C_BASELINE = Centre character baseline 22 | R_BASELINE = Right character baseline 23 | 24 | // Basic colours already defined: 25 | 26 | TFT_BLACK 0x0000 27 | TFT_NAVY 0x000F 28 | TFT_DARKGREEN 0x03E0 29 | TFT_DARKCYAN 0x03EF 30 | TFT_MAROON 0x7800 31 | TFT_PURPLE 0x780F 32 | TFT_OLIVE 0x7BE0 33 | TFT_LIGHTGREY 0xC618 34 | TFT_DARKGREY 0x7BEF 35 | TFT_BLUE 0x001F 36 | TFT_GREEN 0x07E0 37 | TFT_CYAN 0x07FF 38 | TFT_RED 0xF800 39 | TFT_MAGENTA 0xF81F 40 | TFT_YELLOW 0xFFE0 41 | TFT_WHITE 0xFFFF 42 | TFT_ORANGE 0xFDA0 43 | TFT_GREENYELLOW 0xB7E0 44 | TFT_PINK 0xFC9F 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | */ 57 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Smooth Fonts/FLASH_Array/Font_Demo_1_Array/Notes.ino: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Information notes only: 4 | ====================== 5 | 6 | //These are the text plotting alignment (reference datum point) 7 | 8 | TL_DATUM = Top left (default) 9 | TC_DATUM = Top centre 10 | TR_DATUM = Top right 11 | 12 | ML_DATUM = Middle left 13 | MC_DATUM = Middle centre 14 | MR_DATUM = Middle right 15 | 16 | BL_DATUM = Bottom left 17 | BC_DATUM = Bottom centre 18 | BR_DATUM = Bottom right 19 | 20 | L_BASELINE = Left character baseline (Line the 'A' character would sit on) 21 | C_BASELINE = Centre character baseline 22 | R_BASELINE = Right character baseline 23 | 24 | // Basic colours already defined: 25 | 26 | TFT_BLACK 0x0000 27 | TFT_NAVY 0x000F 28 | TFT_DARKGREEN 0x03E0 29 | TFT_DARKCYAN 0x03EF 30 | TFT_MAROON 0x7800 31 | TFT_PURPLE 0x780F 32 | TFT_OLIVE 0x7BE0 33 | TFT_LIGHTGREY 0xC618 34 | TFT_DARKGREY 0x7BEF 35 | TFT_BLUE 0x001F 36 | TFT_GREEN 0x07E0 37 | TFT_CYAN 0x07FF 38 | TFT_RED 0xF800 39 | TFT_MAGENTA 0xF81F 40 | TFT_YELLOW 0xFFE0 41 | TFT_WHITE 0xFFFF 42 | TFT_ORANGE 0xFDA0 43 | TFT_GREENYELLOW 0xB7E0 44 | TFT_PINK 0xFC9F 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | */ 57 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Smooth Fonts/FLASH_Array/Font_Demo_2_Array/Notes.ino: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Information notes only: 4 | ====================== 5 | 6 | //These are the text plotting alignment (reference datum point) 7 | 8 | TL_DATUM = Top left (default) 9 | TC_DATUM = Top centre 10 | TR_DATUM = Top right 11 | 12 | ML_DATUM = Middle left 13 | MC_DATUM = Middle centre 14 | MR_DATUM = Middle right 15 | 16 | BL_DATUM = Bottom left 17 | BC_DATUM = Bottom centre 18 | BR_DATUM = Bottom right 19 | 20 | L_BASELINE = Left character baseline (Line the 'A' character would sit on) 21 | C_BASELINE = Centre character baseline 22 | R_BASELINE = Right character baseline 23 | 24 | // Basic colours already defined: 25 | 26 | TFT_BLACK 0x0000 27 | TFT_NAVY 0x000F 28 | TFT_DARKGREEN 0x03E0 29 | TFT_DARKCYAN 0x03EF 30 | TFT_MAROON 0x7800 31 | TFT_PURPLE 0x780F 32 | TFT_OLIVE 0x7BE0 33 | TFT_LIGHTGREY 0xC618 34 | TFT_DARKGREY 0x7BEF 35 | TFT_BLUE 0x001F 36 | TFT_GREEN 0x07E0 37 | TFT_CYAN 0x07FF 38 | TFT_RED 0xF800 39 | TFT_MAGENTA 0xF81F 40 | TFT_YELLOW 0xFFE0 41 | TFT_WHITE 0xFFFF 42 | TFT_ORANGE 0xFDA0 43 | TFT_GREENYELLOW 0xB7E0 44 | TFT_PINK 0xFC9F 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | */ 57 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Smooth Fonts/FLASH_Array/Font_Demo_4_Array/Notes.ino: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Information notes only: 4 | ====================== 5 | 6 | //These are the text plotting alignment (reference datum point) 7 | 8 | TL_DATUM = Top left (default) 9 | TC_DATUM = Top centre 10 | TR_DATUM = Top right 11 | 12 | ML_DATUM = Middle left 13 | MC_DATUM = Middle centre 14 | MR_DATUM = Middle right 15 | 16 | BL_DATUM = Bottom left 17 | BC_DATUM = Bottom centre 18 | BR_DATUM = Bottom right 19 | 20 | L_BASELINE = Left character baseline (Line the 'A' character would sit on) 21 | C_BASELINE = Centre character baseline 22 | R_BASELINE = Right character baseline 23 | 24 | // Basic colours already defined: 25 | 26 | TFT_BLACK 0x0000 27 | TFT_NAVY 0x000F 28 | TFT_DARKGREEN 0x03E0 29 | TFT_DARKCYAN 0x03EF 30 | TFT_MAROON 0x7800 31 | TFT_PURPLE 0x780F 32 | TFT_OLIVE 0x7BE0 33 | TFT_LIGHTGREY 0xC618 34 | TFT_DARKGREY 0x7BEF 35 | TFT_BLUE 0x001F 36 | TFT_GREEN 0x07E0 37 | TFT_CYAN 0x07FF 38 | TFT_RED 0xF800 39 | TFT_MAGENTA 0xF81F 40 | TFT_YELLOW 0xFFE0 41 | TFT_WHITE 0xFFFF 42 | TFT_ORANGE 0xFDA0 43 | TFT_GREENYELLOW 0xB7E0 44 | TFT_PINK 0xFC9F 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | */ 57 | -------------------------------------------------------------------------------- /examples/T-Wristband-MAX3010X/README_CN.rst: -------------------------------------------------------------------------------- 1 | ********* 2 | MAX3010X 3 | ********* 4 | 5 | .. note:: 6 | 7 | 使用之前,请先安装 :ref:`快速开始 <安装依赖库>` 。 8 | 9 | 概况 10 | ====== 11 | 12 | 本文档是 `T-Wristband-MAX3010X `_ 示例说明。用于指导用户如何使用 ``T-Wristband`` 的 MAX3010X 传感器。 13 | 14 | Arduino 15 | ======== 16 | 17 | 板子可以选择 ``ESP32 Dev Module``,其他设置可以保持默认。 18 | 19 | .. warning:: 20 | 21 | ``T-Wristband`` 没有使用 PSRAM,请勿开启 PSRAM,和调用 PSRAM 的功能函数。 22 | 23 | 更多心率示例请参考 `SparkFun_MAX3010x_Sensor_Library `_ 。 24 | 25 | 数据手册 26 | ========= 27 | 28 | * `ESP32-PICO-D4`_ (Datasheet) 29 | * `ST7735`_ (Datasheet) 30 | * `MAX30102`_ (Datasheet) 31 | 32 | .. _ESP32-PICO-D4: https://www.espressif.com.cn/sites/default/files/documentation/esp32-pico-d4_datasheet_cn.pdf 33 | .. _ST7735: http://www.displayfuture.com/Display/datasheet/controller/ST7735.pdf 34 | .. _MAX30102: https://datasheets.maximintegrated.com/en/ds/MAX30102.pdf 35 | 36 | 引脚定义 37 | ======== 38 | 39 | ============= ==== 40 | Name Pin 41 | ------------- ---- 42 | MAX3010X_SDA 15 43 | ------------- ---- 44 | MAX3010X_SCL 13 45 | ------------- ---- 46 | MAX3010X_IRQ 4 47 | ============= ==== 48 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/TFT_Drivers/ST7789_2_Rotation.h: -------------------------------------------------------------------------------- 1 | // This is the command sequence that rotates the ST7789 driver coordinate frame 2 | 3 | writecommand(TFT_MADCTL); 4 | rotation = m % 4; 5 | switch (rotation) { 6 | case 0: // Portrait 7 | #ifdef CGRAM_OFFSET 8 | colstart = 0; 9 | rowstart = 0; 10 | #endif 11 | writedata(TFT_MAD_COLOR_ORDER); 12 | 13 | _width = _init_width; 14 | _height = _init_height; 15 | break; 16 | 17 | case 1: // Landscape (Portrait + 90) 18 | #ifdef CGRAM_OFFSET 19 | colstart = 0; 20 | rowstart = 0; 21 | #endif 22 | writedata(TFT_MAD_MX | TFT_MAD_MV | TFT_MAD_COLOR_ORDER); 23 | 24 | _width = _init_height; 25 | _height = _init_width; 26 | break; 27 | 28 | case 2: // Inverter portrait 29 | #ifdef CGRAM_OFFSET 30 | colstart = 0; 31 | rowstart = 80; 32 | #endif 33 | writedata(TFT_MAD_MX | TFT_MAD_MY | TFT_MAD_COLOR_ORDER); 34 | 35 | _width = _init_width; 36 | _height = _init_height; 37 | break; 38 | case 3: // Inverted landscape 39 | #ifdef CGRAM_OFFSET 40 | colstart = 80; 41 | rowstart = 0; 42 | #endif 43 | writedata(TFT_MAD_MV | TFT_MAD_MY | TFT_MAD_COLOR_ORDER); 44 | 45 | _width = _init_height; 46 | _height = _init_width; 47 | break; 48 | } 49 | -------------------------------------------------------------------------------- /libdeps/WiFiManager/examples/NonBlocking/AutoConnectNonBlockingwParams/AutoConnectNonBlockingwParams.ino: -------------------------------------------------------------------------------- 1 | #include // https://github.com/tzapu/WiFiManager 2 | WiFiManager wm; 3 | WiFiManagerParameter custom_mqtt_server("server", "mqtt server", "", 40); 4 | 5 | void setup() { 6 | WiFi.mode(WIFI_STA); // explicitly set mode, esp defaults to STA+AP 7 | // put your setup code here, to run once: 8 | Serial.begin(115200); 9 | 10 | //reset settings - wipe credentials for testing 11 | //wm.resetSettings(); 12 | wm.addParameter(&custom_mqtt_server); 13 | wm.setConfigPortalBlocking(false); 14 | wm.setSaveParamsCallback(saveParamsCallback); 15 | 16 | //automatically connect using saved credentials if they exist 17 | //If connection fails it starts an access point with the specified name 18 | if(wm.autoConnect("AutoConnectAP")){ 19 | Serial.println("connected...yeey :)"); 20 | } 21 | else { 22 | Serial.println("Configportal running"); 23 | } 24 | } 25 | 26 | void loop() { 27 | wm.process(); 28 | // put your main code here, to run repeatedly: 29 | } 30 | 31 | void saveParamsCallback () { 32 | Serial.println("Get Params:"); 33 | Serial.print(custom_mqtt_server.getID()); 34 | Serial.print(" : "); 35 | Serial.println(custom_mqtt_server.getValue()); 36 | } 37 | -------------------------------------------------------------------------------- /libdeps/WiFiManager/examples/Old_examples/AutoConnectWithTimeout/AutoConnectWithTimeout.ino: -------------------------------------------------------------------------------- 1 | #include // https://github.com/tzapu/WiFiManager 2 | 3 | void setup() { 4 | // put your setup code here, to run once: 5 | Serial.begin(115200); 6 | 7 | //WiFiManager 8 | //Local intialization. Once its business is done, there is no need to keep it around 9 | WiFiManager wifiManager; 10 | //reset settings - for testing 11 | //wifiManager.resetSettings(); 12 | 13 | //sets timeout until configuration portal gets turned off 14 | //useful to make it all retry or go to sleep 15 | //in seconds 16 | wifiManager.setConfigPortalTimeout(180); 17 | 18 | //fetches ssid and pass and tries to connect 19 | //if it does not connect it starts an access point with the specified name 20 | //here "AutoConnectAP" 21 | //and goes into a blocking loop awaiting configuration 22 | if(!wifiManager.autoConnect("AutoConnectAP")) { 23 | Serial.println("failed to connect and hit timeout"); 24 | delay(3000); 25 | //reset and try again, or maybe put it to deep sleep 26 | ESP.restart(); 27 | delay(5000); 28 | } 29 | 30 | //if you get here you have connected to the WiFi 31 | Serial.println("connected...yeey :)"); 32 | 33 | } 34 | 35 | void loop() { 36 | // put your main code here, to run repeatedly: 37 | 38 | } 39 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/User_Setups/Setup12_M5Stack.h: -------------------------------------------------------------------------------- 1 | // See SetupX_Template.h for all options available 2 | 3 | #define ILI9341_DRIVER 4 | 5 | 6 | #define M5STACK 7 | 8 | 9 | #define TFT_MISO 19 10 | #define TFT_MOSI 23 11 | #define TFT_SCLK 18 12 | #define TFT_CS 14 // Chip select control pin 13 | #define TFT_DC 27 // Data Command control pin 14 | #define TFT_RST 33 // Reset pin (could connect to Arduino RESET pin) 15 | #define TFT_BL 32 // LED back-light 16 | 17 | 18 | #define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH 19 | #define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters 20 | #define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters 21 | #define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm 22 | #define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:. 23 | #define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-. 24 | #define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts 25 | 26 | #define SMOOTH_FONT 27 | 28 | 29 | #define SPI_FREQUENCY 27000000 30 | 31 | // Optional reduced SPI frequency for reading TFT 32 | #define SPI_READ_FREQUENCY 5000000 -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/User_Setups/Setup45_TTGO_T_Watch.h: -------------------------------------------------------------------------------- 1 | #define ST7789_DRIVER 2 | 3 | #define TFT_WIDTH 240 4 | #define TFT_HEIGHT 240 5 | 6 | #define TFT_MISO -1 7 | #define TFT_MOSI 19 8 | #define TFT_SCLK 18 9 | #define TFT_CS 5 10 | #define TFT_DC 27 11 | 12 | #define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH 13 | #define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters 14 | #define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters 15 | #define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm 16 | #define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:. 17 | #define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-. 18 | #define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts 19 | #define SMOOTH_FONT 20 | 21 | // #define SPI_FREQUENCY 1000000 22 | // #define SPI_FREQUENCY 5000000 23 | // #define SPI_FREQUENCY 10000000 24 | // #define SPI_FREQUENCY 20000000 25 | // #define SPI_FREQUENCY 27000000 // Actually sets it to 26.67MHz = 80/3 26 | #define SPI_FREQUENCY 40000000 27 | //#define SPI_FREQUENCY 80000000 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/User_Setups/Setup44_TTGO_CameraPlus.h: -------------------------------------------------------------------------------- 1 | 2 | #define ST7789_DRIVER 3 | 4 | #define TFT_WIDTH 240 5 | #define TFT_HEIGHT 240 6 | 7 | #define TFT_MOSI 19 8 | #define TFT_MISO 22 9 | #define TFT_SCLK 21 10 | #define TFT_CS 12 11 | #define TFT_DC 15 12 | #define TFT_RST -1 13 | 14 | #define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH 15 | #define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters 16 | #define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters 17 | #define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm 18 | #define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:-. 19 | #define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-. 20 | #define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts 21 | 22 | #define SMOOTH_FONT 23 | 24 | // #define SPI_FREQUENCY 1000000 25 | // #define SPI_FREQUENCY 5000000 26 | // #define SPI_FREQUENCY 10000000 27 | // #define SPI_FREQUENCY 20000000 28 | // #define SPI_FREQUENCY 27000000 // Actually sets it to 26.67MHz = 80/3 29 | #define SPI_FREQUENCY 40000000 // Maximum to use SPIFFS 30 | // #define SUPPORT_TRANSACTIONS 31 | -------------------------------------------------------------------------------- /libdeps/WiFiManager/examples/OnDemand/OnDemandWebPortal/onDemandWebPortal.ino: -------------------------------------------------------------------------------- 1 | /** 2 | * OnDemandWebPortal.ino 3 | * example of running the webportal (always NON blocking) 4 | */ 5 | #include // https://github.com/tzapu/WiFiManager 6 | 7 | // select which pin will trigger the configuration portal when set to LOW 8 | #define TRIGGER_PIN 0 9 | 10 | WiFiManager wm; 11 | 12 | bool portalRunning = false; 13 | 14 | void setup() { 15 | WiFi.mode(WIFI_STA); // explicitly set mode, esp defaults to STA+AP 16 | // put your setup code here, to run once 17 | Serial.begin(115200); 18 | Serial.println("\n Starting"); 19 | pinMode(TRIGGER_PIN, INPUT_PULLUP); 20 | } 21 | 22 | void loop() { 23 | checkButton(); 24 | // put your main code here, to run repeatedly: 25 | } 26 | 27 | void checkButton(){ 28 | // is auto timeout portal running 29 | if(portalRunning){ 30 | wm.process(); 31 | } 32 | 33 | // is configuration portal requested? 34 | if(digitalRead(TRIGGER_PIN) == LOW) { 35 | delay(50); 36 | if(digitalRead(TRIGGER_PIN) == LOW) { 37 | if(!portalRunning){ 38 | Serial.println("Button Pressed, Starting Portal"); 39 | wm.startWebPortal(); 40 | portalRunning = true; 41 | } 42 | else{ 43 | Serial.println("Button Pressed, Stopping Portal"); 44 | wm.stopWebPortal(); 45 | portalRunning = false; 46 | } 47 | } 48 | } 49 | } 50 | 51 | 52 | -------------------------------------------------------------------------------- /libdeps/WiFiManager/examples/Old_examples/AutoConnectWithReset/AutoConnectWithReset.ino: -------------------------------------------------------------------------------- 1 | #include // this needs to be first, or it all crashes and burns... 2 | #include // https://github.com/tzapu/WiFiManager 3 | 4 | void setup() { 5 | // put your setup code here, to run once: 6 | Serial.begin(115200); 7 | Serial.println(); 8 | 9 | //WiFiManager 10 | //Local intialization. Once its business is done, there is no need to keep it around 11 | WiFiManager wifiManager; 12 | 13 | //exit after config instead of connecting 14 | wifiManager.setBreakAfterConfig(true); 15 | 16 | //reset settings - for testing 17 | //wifiManager.resetSettings(); 18 | 19 | 20 | //tries to connect to last known settings 21 | //if it does not connect it starts an access point with the specified name 22 | //here "AutoConnectAP" with password "password" 23 | //and goes into a blocking loop awaiting configuration 24 | if (!wifiManager.autoConnect("AutoConnectAP", "password")) { 25 | Serial.println("failed to connect, we should reset as see if it connects"); 26 | delay(3000); 27 | ESP.restart(); 28 | delay(5000); 29 | } 30 | 31 | //if you get here you have connected to the WiFi 32 | Serial.println("connected...yeey :)"); 33 | 34 | 35 | Serial.println("local ip"); 36 | Serial.println(WiFi.localIP()); 37 | } 38 | 39 | void loop() { 40 | // put your main code here, to run repeatedly: 41 | 42 | 43 | } 44 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/160 x 128/TFT_SPIFFS_Jpeg/SPIFFS_functions.ino: -------------------------------------------------------------------------------- 1 | /*==================================================================================== 2 | This sketch contains support functions for the ESP6266 SPIFFS filing system 3 | 4 | Created by Bodmer 15th Jan 2017 5 | ==================================================================================*/ 6 | 7 | //==================================================================================== 8 | // Print a SPIFFS directory list (root directory) 9 | //==================================================================================== 10 | 11 | void listFiles(void) { 12 | Serial.println(); 13 | Serial.println("SPIFFS files found:"); 14 | 15 | fs::Dir dir = SPIFFS.openDir("/"); // Root directory 16 | String line = "====================================="; 17 | 18 | Serial.println(line); 19 | Serial.println(" File name Size"); 20 | Serial.println(line); 21 | 22 | while (dir.next()) { 23 | String fileName = dir.fileName(); 24 | Serial.print(fileName); 25 | int spaces = 25 - fileName.length(); // Tabulate nicely 26 | while (spaces--) Serial.print(" "); 27 | fs::File f = dir.openFile("r"); 28 | Serial.print(f.size()); Serial.println(" bytes"); 29 | } 30 | 31 | Serial.println(line); 32 | Serial.println(); 33 | delay(1000); 34 | } 35 | //==================================================================================== 36 | 37 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/User_Setups/Setup11_RPi_touch_ILI9486.h: -------------------------------------------------------------------------------- 1 | // See SetupX_Template.h for all options available 2 | #define RPI_DISPLAY_TYPE 3 | #define ILI9486_DRIVER // 20MHz maximum SPI 4 | 5 | #define TFT_MISO 19 6 | #define TFT_MOSI 23 7 | #define TFT_SCLK 18 8 | #define TFT_CS 15 // Chip select control pin 9 | #define TFT_DC 2 // Data Command control pin 10 | #define TFT_RST 4 // Reset pin (could connect to RST pin) 11 | //#define TFT_RST -1 // Set TFT_RST to -1 if display RESET is connected to ESP32 board RST 12 | 13 | #define TOUCH_CS 22 // Chip select pin (T_CS) of touch screen 14 | 15 | 16 | #define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH 17 | #define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters 18 | #define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters 19 | #define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm 20 | #define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:. 21 | #define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-. 22 | #define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts 23 | 24 | #define SMOOTH_FONT 25 | 26 | 27 | #define SPI_FREQUENCY 20000000 28 | 29 | #define SPI_TOUCH_FREQUENCY 2500000 30 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/User_Setups/Setup36_RPi_touch_ILI9341.h: -------------------------------------------------------------------------------- 1 | // See SetupX_Template.h for all options available 2 | 3 | #define RPI_DISPLAY_TYPE 4 | #define ST7796_DRIVER // 20MHz maximum SPI 5 | 6 | 7 | #define TFT_MISO 19 8 | #define TFT_MOSI 23 9 | #define TFT_SCLK 18 10 | #define TFT_CS 15 // Chip select control pin 11 | #define TFT_DC 2 // Data Command control pin 12 | #define TFT_RST 4 // Reset pin (could connect to RST pin) 13 | //#define TFT_RST -1 // Set TFT_RST to -1 if display RESET is connected to ESP32 board RST 14 | 15 | #define TOUCH_CS 22 // Chip select pin (T_CS) of touch screen 16 | 17 | 18 | #define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH 19 | #define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters 20 | #define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters 21 | #define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm 22 | #define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:. 23 | #define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-. 24 | #define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts 25 | 26 | #define SMOOTH_FONT 27 | 28 | 29 | #define SPI_FREQUENCY 40000000 30 | 31 | #define SPI_TOUCH_FREQUENCY 2500000 32 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/User_Setups/Setup5_RPi_ILI9486.h: -------------------------------------------------------------------------------- 1 | // See SetupX_Template.h for all options available 2 | 3 | #define RPI_ILI9486_DRIVER // 20MHz maximum SPI 4 | 5 | 6 | // For NodeMCU - use pin numbers in the form PIN_Dx where Dx is the NodeMCU pin designation 7 | #define TFT_CS PIN_D8 // Chip select control pin D8 8 | #define TFT_DC PIN_D3 // Data Command control pin 9 | #define TFT_RST PIN_D4 // Reset pin (could connect to NodeMCU RST, see next line) 10 | //#define TFT_RST -1 // Set TFT_RST to -1 if the display RESET is connected to NodeMCU RST or 3.3V 11 | 12 | 13 | #define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH 14 | #define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters 15 | #define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters 16 | #define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm 17 | #define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:. 18 | #define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-. 19 | #define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts 20 | 21 | #define SMOOTH_FONT 22 | 23 | 24 | #define SPI_FREQUENCY 20000000 25 | 26 | #define SPI_TOUCH_FREQUENCY 2500000 27 | 28 | 29 | // #define SUPPORT_TRANSACTIONS 30 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/User_Setups/Setup1_ILI9341.h: -------------------------------------------------------------------------------- 1 | // See SetupX_Template.h for all options available 2 | 3 | #define ILI9341_DRIVER 4 | 5 | 6 | #define TFT_CS PIN_D8 // Chip select control pin D8 7 | #define TFT_DC PIN_D3 // Data Command control pin 8 | #define TFT_RST PIN_D4 // Reset pin (could connect to NodeMCU RST, see next line) 9 | //#define TFT_RST -1 // Set TFT_RST to -1 if the display RESET is connected to NodeMCU RST or 3.3V 10 | 11 | 12 | #define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH 13 | #define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters 14 | #define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters 15 | #define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm 16 | #define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:. 17 | #define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-. 18 | #define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts 19 | 20 | 21 | #define SMOOTH_FONT 22 | 23 | 24 | // #define SPI_FREQUENCY 27000000 25 | #define SPI_FREQUENCY 40000000 26 | // #define SPI_FREQUENCY 80000000 27 | 28 | #define SPI_READ_FREQUENCY 20000000 29 | 30 | #define SPI_TOUCH_FREQUENCY 2500000 31 | 32 | 33 | // #define SUPPORT_TRANSACTIONS 34 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/User_Setups/Setup15_HX8357D.h: -------------------------------------------------------------------------------- 1 | // See SetupX_Template.h for all options available 2 | 3 | #define HX8357D_DRIVER 4 | 5 | 6 | // For NodeMCU - use pin numbers in the form PIN_Dx where Dx is the NodeMCU pin designation 7 | #define TFT_CS PIN_D8 // Chip select control pin D8 8 | #define TFT_DC PIN_D3 // Data Command control pin 9 | #define TFT_RST PIN_D4 // Reset pin (could connect to NodeMCU RST, see next line) 10 | //#define TFT_RST -1 // Set TFT_RST to -1 if the display RESET is connected to NodeMCU RST or 3.3V 11 | 12 | 13 | #define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH 14 | #define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters 15 | #define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters 16 | #define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm 17 | #define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:. 18 | #define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-. 19 | #define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts 20 | 21 | #define SMOOTH_FONT 22 | 23 | 24 | // #define SPI_FREQUENCY 20000000 25 | #define SPI_FREQUENCY 27000000 26 | // #define SPI_FREQUENCY 40000000 27 | 28 | #define SPI_TOUCH_FREQUENCY 2500000 29 | 30 | 31 | // #define SUPPORT_TRANSACTIONS 32 | -------------------------------------------------------------------------------- /libdeps/WiFiManager/examples/Old_examples/AutoConnectWithFeedback/AutoConnectWithFeedback.ino: -------------------------------------------------------------------------------- 1 | #include // https://github.com/tzapu/WiFiManager 2 | 3 | void configModeCallback (WiFiManager *myWiFiManager) { 4 | Serial.println("Entered config mode"); 5 | Serial.println(WiFi.softAPIP()); 6 | //if you used auto generated SSID, print it 7 | Serial.println(myWiFiManager->getConfigPortalSSID()); 8 | } 9 | 10 | void setup() { 11 | // put your setup code here, to run once: 12 | Serial.begin(115200); 13 | 14 | //WiFiManager 15 | //Local intialization. Once its business is done, there is no need to keep it around 16 | WiFiManager wifiManager; 17 | //reset settings - for testing 18 | //wifiManager.resetSettings(); 19 | 20 | //set callback that gets called when connecting to previous WiFi fails, and enters Access Point mode 21 | wifiManager.setAPCallback(configModeCallback); 22 | 23 | //fetches ssid and pass and tries to connect 24 | //if it does not connect it starts an access point with the specified name 25 | //here "AutoConnectAP" 26 | //and goes into a blocking loop awaiting configuration 27 | if(!wifiManager.autoConnect()) { 28 | Serial.println("failed to connect and hit timeout"); 29 | //reset and try again, or maybe put it to deep sleep 30 | ESP.restart(); 31 | delay(1000); 32 | } 33 | 34 | //if you get here you have connected to the WiFi 35 | Serial.println("connected...yeey :)"); 36 | 37 | } 38 | 39 | void loop() { 40 | // put your main code here, to run repeatedly: 41 | 42 | } 43 | -------------------------------------------------------------------------------- /libdeps/WiFiManager/examples/OnDemand/OnDemandConfigPortal/OnDemandConfigPortal.ino: -------------------------------------------------------------------------------- 1 | /** 2 | * OnDemandConfigPortal.ino 3 | * example of running the configPortal AP manually, independantly from the captiveportal 4 | * trigger pin will start a configPortal AP for 120 seconds then turn it off. 5 | * 6 | */ 7 | #include // https://github.com/tzapu/WiFiManager 8 | 9 | // select which pin will trigger the configuration portal when set to LOW 10 | #define TRIGGER_PIN 0 11 | 12 | int timeout = 120; // seconds to run for 13 | 14 | void setup() { 15 | WiFi.mode(WIFI_STA); // explicitly set mode, esp defaults to STA+AP 16 | // put your setup code here, to run once: 17 | Serial.begin(115200); 18 | Serial.println("\n Starting"); 19 | pinMode(TRIGGER_PIN, INPUT_PULLUP); 20 | } 21 | 22 | void loop() { 23 | // is configuration portal requested? 24 | if ( digitalRead(TRIGGER_PIN) == LOW) { 25 | WiFiManager wm; 26 | 27 | //reset settings - for testing 28 | //wm.resetSettings(); 29 | 30 | // set configportal timeout 31 | wm.setConfigPortalTimeout(timeout); 32 | 33 | if (!wm.startConfigPortal("OnDemandAP")) { 34 | Serial.println("failed to connect and hit timeout"); 35 | delay(3000); 36 | //reset and try again, or maybe put it to deep sleep 37 | ESP.restart(); 38 | delay(5000); 39 | } 40 | 41 | //if you get here you have connected to the WiFi 42 | Serial.println("connected...yeey :)"); 43 | 44 | } 45 | 46 | // put your main code here, to run repeatedly: 47 | } 48 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/User_Setups/Setup20_ILI9488.h: -------------------------------------------------------------------------------- 1 | // See SetupX_Template.h for all options available 2 | 3 | #define ILI9488_DRIVER 4 | 5 | 6 | // For NodeMCU - use pin numbers in the form PIN_Dx where Dx is the NodeMCU pin designation 7 | #define TFT_CS PIN_D8 // Chip select control pin D8 8 | #define TFT_DC PIN_D3 // Data Command control pin 9 | #define TFT_RST PIN_D4 // Reset pin (could connect to NodeMCU RST, see next line) 10 | //#define TFT_RST -1 // Set TFT_RST to -1 if the display RESET is connected to NodeMCU RST or 3.3V 11 | 12 | 13 | #define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH 14 | #define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters 15 | #define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters 16 | #define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm 17 | #define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:. 18 | #define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-. 19 | #define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts 20 | 21 | #define SMOOTH_FONT 22 | 23 | 24 | // #define SPI_FREQUENCY 20000000 25 | #define SPI_FREQUENCY 27000000 26 | // #define SPI_FREQUENCY 40000000 27 | 28 | 29 | #define SPI_TOUCH_FREQUENCY 2500000 30 | 31 | 32 | // #define SUPPORT_TRANSACTIONS 33 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Smooth Fonts/SPIFFS/Font_Demo_3/Notes.ino: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Information notes only: 4 | ====================== 5 | 6 | Note: it is best to use drawNumber() and drawFloat() for numeric values 7 | this reduces digit position movement when the value changes 8 | drawNumber() and drawFloat() functions behave like drawString() and are 9 | supported by setTextDatum() and setTextPadding() 10 | 11 | //These are the text plotting alignment (reference datum point) 12 | 13 | TL_DATUM = Top left (default) 14 | TC_DATUM = Top centre 15 | TR_DATUM = Top right 16 | 17 | ML_DATUM = Middle left 18 | MC_DATUM = Middle centre 19 | MR_DATUM = Middle right 20 | 21 | BL_DATUM = Bottom left 22 | BC_DATUM = Bottom centre 23 | BR_DATUM = Bottom right 24 | 25 | L_BASELINE = Left character baseline (Line the 'A' character would sit on) 26 | C_BASELINE = Centre character baseline 27 | R_BASELINE = Right character baseline 28 | 29 | // Basic colours already defined: 30 | 31 | TFT_BLACK 0x0000 32 | TFT_NAVY 0x000F 33 | TFT_DARKGREEN 0x03E0 34 | TFT_DARKCYAN 0x03EF 35 | TFT_MAROON 0x7800 36 | TFT_PURPLE 0x780F 37 | TFT_OLIVE 0x7BE0 38 | TFT_LIGHTGREY 0xC618 39 | TFT_DARKGREY 0x7BEF 40 | TFT_BLUE 0x001F 41 | TFT_GREEN 0x07E0 42 | TFT_CYAN 0x07FF 43 | TFT_RED 0xF800 44 | TFT_MAGENTA 0xF81F 45 | TFT_YELLOW 0xFFE0 46 | TFT_WHITE 0xFFFF 47 | TFT_ORANGE 0xFDA0 48 | TFT_GREENYELLOW 0xB7E0 49 | TFT_PINK 0xFC9F 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | */ 62 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/User_Setups/Setup21_ILI9488.h: -------------------------------------------------------------------------------- 1 | // See SetupX_Template.h for all options available 2 | 3 | #define ILI9488_DRIVER 4 | 5 | //#define TFT_INVERSION_OFF 6 | 7 | #define TFT_MISO 19 // (leave TFT SDO disconnected if other SPI devices share MISO) 8 | #define TFT_MOSI 23 9 | #define TFT_SCLK 18 10 | #define TFT_CS 15 // Chip select control pin 11 | #define TFT_DC 2 // Data Command control pin 12 | #define TFT_RST 4 // Reset pin (could connect to RST pin) 13 | 14 | 15 | #define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH 16 | #define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters 17 | #define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters 18 | #define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm 19 | #define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:. 20 | #define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-. 21 | #define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts 22 | 23 | #define SMOOTH_FONT 24 | 25 | 26 | // #define SPI_FREQUENCY 20000000 27 | #define SPI_FREQUENCY 27000000 28 | // #define SPI_FREQUENCY 40000000 29 | // #define SPI_FREQUENCY 80000000 30 | 31 | // Optional reduced SPI frequency for reading TFT 32 | #define SPI_READ_FREQUENCY 16000000 33 | 34 | #define SPI_TOUCH_FREQUENCY 2500000 35 | -------------------------------------------------------------------------------- /docs/en/COPYRIGHT.rst: -------------------------------------------------------------------------------- 1 | ************************ 2 | Copyrights and Licenses 3 | ************************ 4 | 5 | Software Copyrights 6 | ==================== 7 | 8 | All original source code in this repository is Copyright (C) 2022 LILYGO. 9 | 10 | Third Party 11 | ============ 12 | 13 | * `Adafruit_DRV2605_Library`_ Copyright (c) 2018 Adafruit Industries and licensed under the MIT license. 14 | * `PCF8563_Library`_ Copyright (c) 2019 lewis he and licensed under the MIT license. 15 | * `SparkFun_LSM9DS1_Arduino_Library`_ Copyright (c) SparkFun Electronics and licensed under Beerware license. 16 | * `SparkFun_MAX3010x_Sensor_Library`_ Copyright (c) 2016 SparkFun Electronics and licensed under the MIT license. 17 | * `TFT_eSPI`_ Copyright (c) 2022 Bodmer and licensed under FreeBSD License. 18 | * `WiFiManager`_ Copyright (c) 2015 tzapu and licensed under Beerware license. 19 | 20 | .. _Adafruit_DRV2605_Library: https://github.com/adafruit/Adafruit_DRV2605_Library 21 | .. _PCF8563_Library: https://github.com/lewisxhe/PCF8563_Library 22 | .. _SparkFun_LSM9DS1_Arduino_Library: https://github.com/sparkfun/SparkFun_LSM9DS1_Arduino_Library 23 | .. _SparkFun_MAX3010x_Sensor_Library: https://github.com/sparkfun/SparkFun_MAX3010x_Sensor_Library 24 | .. _TFT_eSPI: https://github.com/Bodmer/TFT_eSPI 25 | .. _WiFiManager: https://github.com/tzapu/WiFiManager.git 26 | 27 | Documentation 28 | ============== 29 | 30 | * HTML version of the T-Wristband Programming Guide uses the Sphinx theme sphinx_idf_theme, which is Copyright (c) 2013-2020 Dave Snider, Read the Docs. It is licensed under the MIT license. 31 | -------------------------------------------------------------------------------- /docs/zh_CN/COPYRIGHT.rst: -------------------------------------------------------------------------------- 1 | ************************ 2 | Copyrights and Licenses 3 | ************************ 4 | 5 | Software Copyrights 6 | ==================== 7 | 8 | All original source code in this repository is Copyright (C) 2022 LILYGO. 9 | 10 | Third Party 11 | ============ 12 | 13 | * `Adafruit_DRV2605_Library`_ Copyright (c) 2018 Adafruit Industries and licensed under the MIT license. 14 | * `PCF8563_Library`_ Copyright (c) 2019 lewis he and licensed under the MIT license. 15 | * `SparkFun_LSM9DS1_Arduino_Library`_ Copyright (c) SparkFun Electronics and licensed under Beerware license. 16 | * `SparkFun_MAX3010x_Sensor_Library`_ Copyright (c) 2016 SparkFun Electronics and licensed under the MIT license. 17 | * `TFT_eSPI`_ Copyright (c) 2022 Bodmer and licensed under FreeBSD License. 18 | * `WiFiManager`_ Copyright (c) 2015 tzapu and licensed under Beerware license. 19 | 20 | .. _Adafruit_DRV2605_Library: https://github.com/adafruit/Adafruit_DRV2605_Library 21 | .. _PCF8563_Library: https://github.com/lewisxhe/PCF8563_Library 22 | .. _SparkFun_LSM9DS1_Arduino_Library: https://github.com/sparkfun/SparkFun_LSM9DS1_Arduino_Library 23 | .. _SparkFun_MAX3010x_Sensor_Library: https://github.com/sparkfun/SparkFun_MAX3010x_Sensor_Library 24 | .. _TFT_eSPI: https://github.com/Bodmer/TFT_eSPI 25 | .. _WiFiManager: https://github.com/tzapu/WiFiManager.git 26 | 27 | Documentation 28 | ============== 29 | 30 | * HTML version of the T-Wristband Programming Guide uses the Sphinx theme sphinx_idf_theme, which is Copyright (c) 2013-2020 Dave Snider, Read the Docs. It is licensed under the MIT license. 31 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Smooth Fonts/FLASH_Array/Font_Demo_3_Array/Notes.ino: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Information notes only: 4 | ====================== 5 | 6 | Note: it is best to use drawNumber() and drawFloat() for numeric values 7 | this reduces digit position movement when the value changes 8 | drawNumber() and drawFloat() functions behave like drawString() and are 9 | supported by setTextDatum() and setTextPadding() 10 | 11 | //These are the text plotting alignment (reference datum point) 12 | 13 | TL_DATUM = Top left (default) 14 | TC_DATUM = Top centre 15 | TR_DATUM = Top right 16 | 17 | ML_DATUM = Middle left 18 | MC_DATUM = Middle centre 19 | MR_DATUM = Middle right 20 | 21 | BL_DATUM = Bottom left 22 | BC_DATUM = Bottom centre 23 | BR_DATUM = Bottom right 24 | 25 | L_BASELINE = Left character baseline (Line the 'A' character would sit on) 26 | C_BASELINE = Centre character baseline 27 | R_BASELINE = Right character baseline 28 | 29 | // Basic colours already defined: 30 | 31 | TFT_BLACK 0x0000 32 | TFT_NAVY 0x000F 33 | TFT_DARKGREEN 0x03E0 34 | TFT_DARKCYAN 0x03EF 35 | TFT_MAROON 0x7800 36 | TFT_PURPLE 0x780F 37 | TFT_OLIVE 0x7BE0 38 | TFT_LIGHTGREY 0xC618 39 | TFT_DARKGREY 0x7BEF 40 | TFT_BLUE 0x001F 41 | TFT_GREEN 0x07E0 42 | TFT_CYAN 0x07FF 43 | TFT_RED 0xF800 44 | TFT_MAGENTA 0xF81F 45 | TFT_YELLOW 0xFFE0 46 | TFT_WHITE 0xFFFF 47 | TFT_ORANGE 0xFDA0 48 | TFT_GREENYELLOW 0xB7E0 49 | TFT_PINK 0xFC9F 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | */ 62 | -------------------------------------------------------------------------------- /examples/T-Wristband-MAX3010X/README.rst: -------------------------------------------------------------------------------- 1 | ********* 2 | MAX3010X 3 | ********* 4 | 5 | .. note:: 6 | 7 | Before using it, please install :ref:`Get Started `. 8 | 9 | Introduction 10 | ============= 11 | 12 | This document is `T-Wristband-MAX3010X `_ example description. A MAX3010X sensor for instructing the user on how to use the ``T-Wristband``. 13 | 14 | Arduino 15 | ======== 16 | 17 | ``T-Wristband`` can choose ``ESP32 Dev Module``, and other settings can be kept as default. 18 | 19 | For more heart rate examples, please refer to `SparkFun_MAX3010x_Sensor_Library `_ . 20 | 21 | .. warning:: 22 | 23 | ``T-Wristband`` does not use PSRAM, please do not enable PSRAM, and call PSRAM functions. 24 | 25 | Datasheet 26 | ========== 27 | 28 | * `ESP32-PICO-D4`_ (Datasheet) 29 | * `ST7735`_ (Datasheet) 30 | * `MAX30102`_ (Datasheet) 31 | 32 | .. _ESP32-PICO-D4: https://www.espressif.com.cn/sites/default/files/documentation/esp32-pico-d4_datasheet_en.pdf 33 | .. _ST7735: http://www.displayfuture.com/Display/datasheet/controller/ST7735.pdf 34 | .. _MAX30102: https://datasheets.maximintegrated.com/en/ds/MAX30102.pdf 35 | 36 | Pinout 37 | =========== 38 | 39 | ============= ==== 40 | Name Pin 41 | ------------- ---- 42 | MAX3010X_SDA 15 43 | ------------- ---- 44 | MAX3010X_SCL 13 45 | ------------- ---- 46 | MAX3010X_IRQ 4 47 | ============= ==== 48 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/TFT_Drivers/ILI9486_Rotation.h: -------------------------------------------------------------------------------- 1 | // This is the command sequence that rotates the ILI9486 driver coordinate frame 2 | 3 | writecommand(TFT_MADCTL); 4 | rotation = m % 8; 5 | switch (rotation) { 6 | case 0: // Portrait 7 | writedata(TFT_MAD_BGR | TFT_MAD_MX); 8 | _width = _init_width; 9 | _height = _init_height; 10 | break; 11 | case 1: // Landscape (Portrait + 90) 12 | writedata(TFT_MAD_BGR | TFT_MAD_MV); 13 | _width = _init_height; 14 | _height = _init_width; 15 | break; 16 | case 2: // Inverter portrait 17 | writedata( TFT_MAD_BGR | TFT_MAD_MY); 18 | _width = _init_width; 19 | _height = _init_height; 20 | break; 21 | case 3: // Inverted landscape 22 | writedata(TFT_MAD_BGR | TFT_MAD_MV | TFT_MAD_MX | TFT_MAD_MY); 23 | _width = _init_height; 24 | _height = _init_width; 25 | break; 26 | case 4: // Portrait 27 | writedata(TFT_MAD_BGR | TFT_MAD_MX | TFT_MAD_MY); 28 | _width = _init_width; 29 | _height = _init_height; 30 | break; 31 | case 5: // Landscape (Portrait + 90) 32 | writedata(TFT_MAD_BGR | TFT_MAD_MV | TFT_MAD_MX); 33 | _width = _init_height; 34 | _height = _init_width; 35 | break; 36 | case 6: // Inverter portrait 37 | writedata( TFT_MAD_BGR); 38 | _width = _init_width; 39 | _height = _init_height; 40 | break; 41 | case 7: // Inverted landscape 42 | writedata(TFT_MAD_BGR | TFT_MAD_MV | TFT_MAD_MY); 43 | _width = _init_height; 44 | _height = _init_width; 45 | break; 46 | } 47 | 48 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/User_Setups/Setup6_RPi_Wr_ILI9486.h: -------------------------------------------------------------------------------- 1 | // See SetupX_Template.h for all options available 2 | 3 | #define RPI_ILI9486_DRIVER // 20MHz maximum SPI 4 | 5 | 6 | // For NodeMCU - use pin numbers in the form PIN_Dx where Dx is the NodeMCU pin designation 7 | #define TFT_CS PIN_D8 // Chip select control pin D8 8 | #define TFT_DC PIN_D3 // Data Command control pin 9 | #define TFT_RST PIN_D4 // Reset pin (could connect to NodeMCU RST, see next line) 10 | //#define TFT_RST -1 // Set TFT_RST to -1 if the display RESET is connected to NodeMCU RST or 3.3V 11 | 12 | #define TFT_WR PIN_D2 // Write strobe for modified Raspberry Pi TFT only 13 | 14 | 15 | #define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH 16 | #define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters 17 | #define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters 18 | #define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm 19 | #define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:. 20 | #define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-. 21 | #define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts 22 | 23 | #define SMOOTH_FONT 24 | 25 | 26 | #define SPI_FREQUENCY 20000000 27 | 28 | #define SPI_TOUCH_FREQUENCY 2500000 29 | 30 | 31 | // #define SUPPORT_TRANSACTIONS 32 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/User_Setups/Setup16_ILI9488_Parallel.h: -------------------------------------------------------------------------------- 1 | // See SetupX_Template.h for all options available 2 | 3 | #define ESP32_PARALLEL 4 | 5 | 6 | #define ILI9488_DRIVER 7 | 8 | 9 | // ESP32 pins used 10 | #define TFT_CS 33 // Chip select control pin 11 | #define TFT_DC 15 // Data Command control pin - must use a pin in the range 0-31 12 | #define TFT_RST 32 // Reset pin 13 | 14 | #define TFT_WR 4 // Write strobe control pin - must use a pin in the range 0-31 15 | #define TFT_RD 2 16 | 17 | #define TFT_D0 12 // Must use pins in the range 0-31 for the data bus 18 | #define TFT_D1 13 // so a single register write sets/clears all bits 19 | #define TFT_D2 26 20 | #define TFT_D3 25 21 | #define TFT_D4 17 22 | #define TFT_D5 16 23 | #define TFT_D6 27 24 | #define TFT_D7 14 25 | 26 | 27 | #define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH 28 | #define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters 29 | #define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters 30 | #define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm 31 | #define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:. 32 | #define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-. 33 | #define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts 34 | 35 | #define SMOOTH_FONT 36 | -------------------------------------------------------------------------------- /libdeps/WiFiManager/.github/workflows/compile_library.yml: -------------------------------------------------------------------------------- 1 | name: Compile Library 2 | 3 | on: 4 | push: 5 | paths-ignore: 6 | - '.github/workflows/cpp_lint.yml' 7 | - '.github/workflows/compile_examples.yml' 8 | - 'examples/**' 9 | pull_request: 10 | paths-ignore: 11 | - '.github/workflows/cpp_lint.yml' 12 | - '.github/workflows/compile_examples.yml' 13 | - 'examples/**' 14 | 15 | jobs: 16 | build: 17 | 18 | runs-on: ubuntu-latest 19 | strategy: 20 | fail-fast: false 21 | matrix: 22 | board: 23 | - "nodemcuv2" 24 | - "lolin32" 25 | 26 | steps: 27 | - uses: actions/checkout@v2 28 | - name: Cache pip 29 | uses: actions/cache@v2 30 | with: 31 | path: ~/.cache/pip 32 | key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} 33 | restore-keys: ${{ runner.os }}-pip- 34 | - name: Cache PlatformIO 35 | uses: actions/cache@v2 36 | with: 37 | path: ~/.platformio 38 | key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }} 39 | - name: Set up Python 40 | uses: actions/setup-python@v2 41 | - name: Install PlatformIO 42 | run: | 43 | python -m pip install --upgrade pip 44 | pip install --upgrade platformio 45 | 46 | - name: Create main file 47 | run: | 48 | echo "#include " >> main.ino 49 | echo "void setup() {}" >> main.ino 50 | echo "void loop() {}" >> main.ino 51 | 52 | - name: Run PlatformIO 53 | run: pio ci --board=${{ matrix.board }} . 54 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/User_Setups/Setup10_RPi_touch_ILI9486.h: -------------------------------------------------------------------------------- 1 | // See SetupX_Template.h for all options available 2 | 3 | #define RPI_DISPLAY_TYPE 4 | #define ILI9486_DRIVER // 20MHz maximum SPI 5 | 6 | // For NodeMCU - use pin numbers in the form PIN_Dx where Dx is the NodeMCU pin designation 7 | #define TFT_CS PIN_D2 // Chip select control pin D2 8 | #define TFT_DC PIN_D3 // Data Command control pin 9 | #define TFT_RST PIN_D4 // Reset pin (could connect to NodeMCU RST, see next line) 10 | //#define TFT_RST -1 // Set TFT_RST to -1 if the display RESET is connected to NodeMCU RST or 3.3V 11 | 12 | #define TOUCH_CS PIN_D1 // Chip select pin (T_CS) of touch screen 13 | 14 | 15 | #define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH 16 | #define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters 17 | #define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters 18 | #define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm 19 | #define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:. 20 | #define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-. 21 | #define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts 22 | 23 | #define SMOOTH_FONT 24 | 25 | 26 | #define SPI_FREQUENCY 16000000 27 | 28 | #define SPI_TOUCH_FREQUENCY 2500000 29 | 30 | 31 | // #define SUPPORT_TRANSACTIONS 32 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/User_Setups/Setup13_ILI9481_Parallel.h: -------------------------------------------------------------------------------- 1 | // See SetupX_Template.h for all options available 2 | 3 | #define ESP32_PARALLEL 4 | 5 | 6 | #define ILI9481_DRIVER 7 | 8 | 9 | // ESP32 pins used for UNO format board 10 | #define TFT_CS 33 // Chip select control pin 11 | #define TFT_DC 15 // Data Command control pin - must use a pin in the range 0-31 12 | #define TFT_RST 32 // Reset pin 13 | 14 | #define TFT_WR 4 // Write strobe control pin - must use a pin in the range 0-31 15 | #define TFT_RD 2 16 | 17 | #define TFT_D0 12 // Must use pins in the range 0-31 for the data bus 18 | #define TFT_D1 13 // so a single register write sets/clears all bits 19 | #define TFT_D2 26 20 | #define TFT_D3 25 21 | #define TFT_D4 17 22 | #define TFT_D5 16 23 | #define TFT_D6 27 24 | #define TFT_D7 14 25 | 26 | 27 | #define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH 28 | #define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters 29 | #define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters 30 | #define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm 31 | #define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:. 32 | #define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-. 33 | #define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts 34 | 35 | #define SMOOTH_FONT 36 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/User_Setups/Setup19_RM68140_Parallel.h: -------------------------------------------------------------------------------- 1 | // See SetupX_Template.h for all options available 2 | 3 | #define ESP32_PARALLEL 4 | 5 | 6 | #define RM68140_DRIVER 7 | 8 | 9 | // ESP32 pins used for UNO format board 10 | #define TFT_CS 33 // Chip select control pin 11 | #define TFT_DC 15 // Data Command control pin - must use a pin in the range 0-31 12 | #define TFT_RST 32 // Reset pin 13 | 14 | #define TFT_WR 4 // Write strobe control pin - must use a pin in the range 0-31 15 | #define TFT_RD 2 16 | 17 | #define TFT_D0 12 // Must use pins in the range 0-31 for the data bus 18 | #define TFT_D1 13 // so a single register write sets/clears all bits 19 | #define TFT_D2 26 20 | #define TFT_D3 25 21 | #define TFT_D4 17 22 | #define TFT_D5 16 23 | #define TFT_D6 27 24 | #define TFT_D7 14 25 | 26 | 27 | #define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH 28 | #define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters 29 | #define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters 30 | #define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm 31 | #define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:. 32 | #define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-. 33 | #define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts 34 | 35 | #define SMOOTH_FONT 36 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/User_Setups/Setup14_ILI9341_Parallel.h: -------------------------------------------------------------------------------- 1 | // See SetupX_Template.h for all options available 2 | 3 | #define ESP32_PARALLEL 4 | 5 | 6 | #define ILI9341_DRIVER 7 | 8 | 9 | // ESP32 pins used for the parallel interface TFT 10 | #define TFT_CS 33 // Chip select control pin 11 | #define TFT_DC 15 // Data Command control pin - must use a pin in the range 0-31 12 | #define TFT_RST 32 // Reset pin 13 | 14 | #define TFT_WR 4 // Write strobe control pin - must use a pin in the range 0-31 15 | #define TFT_RD 2 16 | 17 | #define TFT_D0 12 // Must use pins in the range 0-31 for the data bus 18 | #define TFT_D1 13 // so a single register write sets/clears all bits 19 | #define TFT_D2 26 20 | #define TFT_D3 25 21 | #define TFT_D4 17 22 | #define TFT_D5 16 23 | #define TFT_D6 27 24 | #define TFT_D7 14 25 | 26 | 27 | #define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH 28 | #define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters 29 | #define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters 30 | #define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm 31 | #define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:. 32 | #define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-. 33 | #define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts 34 | 35 | #define SMOOTH_FONT 36 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/Test and diagnostics/Test_Touch_Controller/Test_Touch_Controller.ino: -------------------------------------------------------------------------------- 1 | // This sketch is to test the touch controller, nothing is displayed 2 | // on the TFT. The TFT_eSPI library must be configured to suit your 3 | // pins used. Make sure both the touch chip select and the TFT chip 4 | // select are correctly defined to avoid SPI bus contention. 5 | 6 | // Make sure you have defined a pin for the touch controller chip 7 | // select line in the user setup file or you will see "no member" 8 | // compile errors for the touch functions! 9 | 10 | // It is a support and diagnostic sketch for the TFT_eSPI library: 11 | // https://github.com/Bodmer/TFT_eSPI 12 | 13 | // The "raw" (unprocessed) touch sensor outputs are sent to the 14 | // serial port. Touching the screen should show changes to the x, y 15 | // and z values. x and y are raw ADC readings, not pixel coordinates. 16 | 17 | #include 18 | #include 19 | TFT_eSPI tft = TFT_eSPI(); 20 | 21 | //==================================================================== 22 | 23 | void setup(void) { 24 | Serial.begin(115200); 25 | Serial.println("\n\nStarting..."); 26 | 27 | tft.init(); 28 | } 29 | 30 | //==================================================================== 31 | 32 | void loop() { 33 | 34 | uint16_t x, y; 35 | 36 | tft.getTouchRaw(&x, &y); 37 | 38 | Serial.printf("x: %i ", x); 39 | 40 | Serial.printf("y: %i ", y); 41 | 42 | Serial.printf("z: %i \n", tft.getTouchRawZ()); 43 | 44 | delay(250); 45 | 46 | } 47 | 48 | //==================================================================== 49 | 50 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/TFT_Drivers/ST7796_Rotation.h: -------------------------------------------------------------------------------- 1 | 2 | // This is the command sequence that rotates the ST7796 driver coordinate frame 3 | 4 | rotation = m % 8; // Limit the range of values to 0-7 5 | 6 | writecommand(TFT_MADCTL); 7 | switch (rotation) { 8 | case 0: 9 | writedata(TFT_MAD_MX | TFT_MAD_COLOR_ORDER); 10 | _width = _init_width; 11 | _height = _init_height; 12 | break; 13 | case 1: 14 | writedata(TFT_MAD_MV | TFT_MAD_COLOR_ORDER); 15 | _width = _init_height; 16 | _height = _init_width; 17 | break; 18 | case 2: 19 | writedata(TFT_MAD_MY | TFT_MAD_COLOR_ORDER); 20 | _width = _init_width; 21 | _height = _init_height; 22 | break; 23 | case 3: 24 | writedata(TFT_MAD_MX | TFT_MAD_MY | TFT_MAD_MV | TFT_MAD_COLOR_ORDER); 25 | _width = _init_height; 26 | _height = _init_width; 27 | break; 28 | // These next rotations are for bottom up BMP drawing 29 | case 4: 30 | writedata(TFT_MAD_MX | TFT_MAD_MY | TFT_MAD_COLOR_ORDER); 31 | _width = _init_width; 32 | _height = _init_height; 33 | break; 34 | case 5: 35 | writedata(TFT_MAD_MV | TFT_MAD_MX | TFT_MAD_COLOR_ORDER); 36 | _width = _init_height; 37 | _height = _init_width; 38 | break; 39 | case 6: 40 | writedata(TFT_MAD_COLOR_ORDER); 41 | _width = _init_width; 42 | _height = _init_height; 43 | break; 44 | case 7: 45 | writedata(TFT_MAD_MY | TFT_MAD_MV | TFT_MAD_COLOR_ORDER); 46 | _width = _init_height; 47 | _height = _init_width; 48 | break; 49 | 50 | } 51 | -------------------------------------------------------------------------------- /libdeps/WiFiManager/examples/Basic/Basic.ino: -------------------------------------------------------------------------------- 1 | #include // https://github.com/tzapu/WiFiManager 2 | 3 | 4 | void setup() { 5 | WiFi.mode(WIFI_STA); // explicitly set mode, esp defaults to STA+AP 6 | // it is a good practice to make sure your code sets wifi mode how you want it. 7 | 8 | // put your setup code here, to run once: 9 | Serial.begin(115200); 10 | 11 | //WiFiManager, Local intialization. Once its business is done, there is no need to keep it around 12 | WiFiManager wm; 13 | 14 | // reset settings - wipe stored credentials for testing 15 | // these are stored by the esp library 16 | wm.resetSettings(); 17 | 18 | // Automatically connect using saved credentials, 19 | // if connection fails, it starts an access point with the specified name ( "AutoConnectAP"), 20 | // if empty will auto generate SSID, if password is blank it will be anonymous AP (wm.autoConnect()) 21 | // then goes into a blocking loop awaiting configuration and will return success result 22 | 23 | bool res; 24 | // res = wm.autoConnect(); // auto generated AP name from chipid 25 | // res = wm.autoConnect("AutoConnectAP"); // anonymous ap 26 | res = wm.autoConnect("AutoConnectAP","password"); // password protected ap 27 | 28 | if(!res) { 29 | Serial.println("Failed to connect"); 30 | // ESP.restart(); 31 | } 32 | else { 33 | //if you get here you have connected to the WiFi 34 | Serial.println("connected...yeey :)"); 35 | } 36 | 37 | } 38 | 39 | void loop() { 40 | // put your main code here, to run repeatedly: 41 | } 42 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/User_Setups/Setup4_S6D02A1.h: -------------------------------------------------------------------------------- 1 | // See SetupX_Template.h for all options available 2 | 3 | #define S6D02A1_DRIVER 4 | 5 | 6 | // For NodeMCU - use pin numbers in the form PIN_Dx where Dx is the NodeMCU pin designation 7 | #define TFT_CS PIN_D8 // Chip select control pin D8 8 | #define TFT_DC PIN_D3 // Data Command control pin 9 | #define TFT_RST PIN_D4 // Reset pin (could connect to NodeMCU RST, see next line) 10 | //#define TFT_RST -1 // Set TFT_RST to -1 if the display RESET is connected to NodeMCU RST or 3.3V 11 | 12 | 13 | #define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH 14 | #define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters 15 | #define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters 16 | #define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm 17 | #define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:. 18 | #define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-. 19 | //#define LOAD_FONT8N // Font 8. Alternative to Font 8 above, slightly narrower, so 3 digits fit a 160 pixel TFT 20 | #define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts 21 | 22 | #define SMOOTH_FONT 23 | 24 | 25 | // #define SPI_FREQUENCY 20000000 26 | #define SPI_FREQUENCY 27000000 27 | // #define SPI_FREQUENCY 40000000 28 | 29 | #define SPI_TOUCH_FREQUENCY 2500000 30 | 31 | 32 | // #define SUPPORT_TRANSACTIONS 33 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/TFT_Drivers/ILI9163_Init.h: -------------------------------------------------------------------------------- 1 | 2 | // This is the command sequence that initialises the ILI9163 driver 3 | // 4 | // This setup information is in a format accecpted by the commandList() function 5 | // which reduces FLASH space, but on an ESP8266 there is plenty available! 6 | // 7 | // See ILI9341_Setup.h file for an alternative simpler format 8 | 9 | { 10 | // Initialization commands for ILI9163 screens 11 | static const uint8_t ILI9163_cmds[] PROGMEM = 12 | { 13 | 17, // 17 commands follow 14 | 0x01, 0 + TFT_INIT_DELAY, 120, // Software reset 15 | 0x11, 0 + TFT_INIT_DELAY, 5, // Exit sleep mode 16 | 0x3A, 1, 0x05, // Set pixel format 17 | 0x26, 1, 0x04, // Set Gamma curve 3 18 | 0xF2, 1, 0x01, // Gamma adjustment enabled 19 | 0xE0, 15, 0x3F, 0x25, 0x1C, 0x1E, 0x20, 0x12, 0x2A, 0x90, 20 | 0x24, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, // Positive Gamma 21 | 0xE1, 15, 0x20, 0x20, 0x20, 0x20, 0x05, 0x00, 0x15,0xA7, 22 | 0x3D, 0x18, 0x25, 0x2A, 0x2B, 0x2B, 0x3A, // Negative Gamma 23 | 0xB1, 2, 0x08, 0x08, // Frame rate control 1 24 | 0xB4, 1, 0x07, // Display inversion 25 | 0xC0, 2, 0x0A, 0x02, // Power control 1 26 | 0xC1, 1, 0x02, // Power control 2 27 | 0xC5, 2, 0x50, 0x5B, // Vcom control 1 28 | 0xC7, 1, 0x40, // Vcom offset 29 | 0x2A, 4, 0x00, 0x00, 0x00, 0x7F, // Set column address 30 | 0x2B, 4 + TFT_INIT_DELAY, 0x00, 0x00, 0x00, 0x9F, 250, // Set page address 31 | 0x36, 1, 0xC8, // Set address mode 32 | 0x29, 0, // Set display on 33 | }; 34 | 35 | commandList(ILI9163_cmds); 36 | 37 | #ifdef CGRAM_OFFSET 38 | colstart = 0; 39 | rowstart = 0; 40 | #endif 41 | } -------------------------------------------------------------------------------- /libdeps/SparkFun_MAX3010x_Sensor_Library/examples/Example1_Basic_Readings/Example1_Basic_Readings.ino: -------------------------------------------------------------------------------- 1 | /* 2 | MAX30105 Breakout: Output all the raw Red/IR/Green readings 3 | By: Nathan Seidle @ SparkFun Electronics 4 | Date: October 2nd, 2016 5 | https://github.com/sparkfun/MAX30105_Breakout 6 | 7 | Outputs all Red/IR/Green values. 8 | 9 | Hardware Connections (Breakoutboard to Arduino): 10 | -5V = 5V (3.3V is allowed) 11 | -GND = GND 12 | -SDA = A4 (or SDA) 13 | -SCL = A5 (or SCL) 14 | -INT = Not connected 15 | 16 | The MAX30105 Breakout can handle 5V or 3.3V I2C logic. We recommend powering the board with 5V 17 | but it will also run at 3.3V. 18 | 19 | This code is released under the [MIT License](http://opensource.org/licenses/MIT). 20 | */ 21 | 22 | #include 23 | #include "MAX30105.h" 24 | 25 | MAX30105 particleSensor; 26 | 27 | #define debug Serial //Uncomment this line if you're using an Uno or ESP 28 | //#define debug SerialUSB //Uncomment this line if you're using a SAMD21 29 | 30 | void setup() 31 | { 32 | debug.begin(9600); 33 | debug.println("MAX30105 Basic Readings Example"); 34 | 35 | // Initialize sensor 36 | if (particleSensor.begin() == false) 37 | { 38 | debug.println("MAX30105 was not found. Please check wiring/power. "); 39 | while (1); 40 | } 41 | 42 | particleSensor.setup(); //Configure sensor. Use 6.4mA for LED drive 43 | } 44 | 45 | void loop() 46 | { 47 | debug.print(" R["); 48 | debug.print(particleSensor.getRed()); 49 | debug.print("] IR["); 50 | debug.print(particleSensor.getIR()); 51 | debug.print("] G["); 52 | debug.print(particleSensor.getGreen()); 53 | debug.print("]"); 54 | 55 | debug.println(); 56 | } 57 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/User_Setups/Setup3_ILI9163.h: -------------------------------------------------------------------------------- 1 | // See SetupX_Template.h for all options available 2 | 3 | #define ILI9163_DRIVER 4 | 5 | 6 | #define TFT_WIDTH 128 7 | #define TFT_HEIGHT 160 8 | 9 | 10 | // For NodeMCU - use pin numbers in the form PIN_Dx where Dx is the NodeMCU pin designation 11 | #define TFT_CS PIN_D8 // Chip select control pin D8 12 | #define TFT_DC PIN_D3 // Data Command control pin 13 | #define TFT_RST PIN_D4 // Reset pin (could connect to NodeMCU RST, see next line) 14 | //#define TFT_RST -1 // Set TFT_RST to -1 if the display RESET is connected to NodeMCU RST or 3.3V 15 | 16 | 17 | #define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH 18 | #define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters 19 | #define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters 20 | #define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm 21 | #define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:. 22 | #define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-. 23 | //#define LOAD_FONT8N // Font 8. Alternative to Font 8 above, slightly narrower, so 3 digits fit a 160 pixel TFT 24 | #define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts 25 | 26 | #define SMOOTH_FONT 27 | 28 | 29 | // #define SPI_FREQUENCY 20000000 30 | #define SPI_FREQUENCY 27000000 31 | // #define SPI_FREQUENCY 40000000 32 | 33 | #define SPI_TOUCH_FREQUENCY 2500000 34 | 35 | 36 | // #define SUPPORT_TRANSACTIONS 37 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/User_Setups/Setup8_ILI9163_128x128.h: -------------------------------------------------------------------------------- 1 | // See SetupX_Template.h for all options available 2 | 3 | #define ILI9163_DRIVER 4 | 5 | 6 | #define TFT_WIDTH 128 7 | #define TFT_HEIGHT 128 8 | 9 | 10 | // For NodeMCU - use pin numbers in the form PIN_Dx where Dx is the NodeMCU pin designation 11 | #define TFT_CS PIN_D8 // Chip select control pin D8 12 | #define TFT_DC PIN_D3 // Data Command control pin 13 | #define TFT_RST PIN_D4 // Reset pin (could connect to NodeMCU RST, see next line) 14 | //#define TFT_RST -1 // Set TFT_RST to -1 if the display RESET is connected to NodeMCU RST or 3.3V 15 | 16 | 17 | #define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH 18 | #define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters 19 | #define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters 20 | #define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm 21 | #define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:. 22 | #define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-. 23 | //#define LOAD_FONT8N // Font 8. Alternative to Font 8 above, slightly narrower, so 3 digits fit a 160 pixel TFT 24 | #define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts 25 | 26 | #define SMOOTH_FONT 27 | 28 | 29 | // #define SPI_FREQUENCY 20000000 30 | #define SPI_FREQUENCY 27000000 // Actually sets it to 26.67MHz = 80/3 31 | 32 | #define SPI_TOUCH_FREQUENCY 2500000 33 | 34 | 35 | // #define SUPPORT_TRANSACTIONS 36 | -------------------------------------------------------------------------------- /libdeps/SparkFun_MAX3010x_Sensor_Library/examples/Example8_SPO2/License.ino: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. 2 | * 3 | * Permission is hereby granted, free of charge, to any person obtaining a 4 | * copy of this software and associated documentation files (the "Software"), 5 | * to deal in the Software without restriction, including without limitation 6 | * the rights to use, copy, modify, merge, publish, distribute, sublicense, 7 | * and/or sell copies of the Software, and to permit persons to whom the 8 | * Software is furnished to do so, subject to the following conditions: 9 | * 10 | * The above copyright notice and this permission notice shall be included 11 | * in all copies or substantial portions of the Software. 12 | * 13 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 14 | * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 15 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 16 | * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES 17 | * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 18 | * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 19 | * OTHER DEALINGS IN THE SOFTWARE. 20 | * 21 | * Except as contained in this notice, the name of Maxim Integrated 22 | * Products, Inc. shall not be used except as stated in the Maxim Integrated 23 | * Products, Inc. Branding Policy. 24 | * 25 | * The mere transfer of this software does not imply any licenses 26 | * of trade secrets, proprietary technology, copyrights, patents, 27 | * trademarks, maskwork rights, or any other form of intellectual 28 | * property whatsoever. Maxim Integrated Products, Inc. retains all 29 | * ownership rights. 30 | * 31 | */ 32 | -------------------------------------------------------------------------------- /libdeps/SparkFun_MAX3010x_Sensor_Library/examples/Example5_HeartRate/License.ino: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. 2 | * 3 | * Permission is hereby granted, free of charge, to any person obtaining a 4 | * copy of this software and associated documentation files (the "Software"), 5 | * to deal in the Software without restriction, including without limitation 6 | * the rights to use, copy, modify, merge, publish, distribute, sublicense, 7 | * and/or sell copies of the Software, and to permit persons to whom the 8 | * Software is furnished to do so, subject to the following conditions: 9 | * 10 | * The above copyright notice and this permission notice shall be included 11 | * in all copies or substantial portions of the Software. 12 | * 13 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 14 | * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 15 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 16 | * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES 17 | * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 18 | * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 19 | * OTHER DEALINGS IN THE SOFTWARE. 20 | * 21 | * Except as contained in this notice, the name of Maxim Integrated 22 | * Products, Inc. shall not be used except as stated in the Maxim Integrated 23 | * Products, Inc. Branding Policy. 24 | * 25 | * The mere transfer of this software does not imply any licenses 26 | * of trade secrets, proprietary technology, copyrights, patents, 27 | * trademarks, maskwork rights, or any other form of intellectual 28 | * property whatsoever. Maxim Integrated Products, Inc. retains all 29 | * ownership rights. 30 | * 31 | */ 32 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/User_Setups/Setup2_ST7735.h: -------------------------------------------------------------------------------- 1 | // See SetupX_Template.h for all options available 2 | 3 | #define ST7735_DRIVER 4 | 5 | 6 | #define TFT_WIDTH 128 7 | #define TFT_HEIGHT 160 8 | 9 | 10 | #define ST7735_REDTAB 11 | 12 | 13 | // For NodeMCU - use pin numbers in the form PIN_Dx where Dx is the NodeMCU pin designation 14 | #define TFT_CS PIN_D8 // Chip select control pin D8 15 | #define TFT_DC PIN_D3 // Data Command control pin 16 | #define TFT_RST PIN_D4 // Reset pin (could connect to NodeMCU RST, see next line) 17 | //#define TFT_RST -1 // Set TFT_RST to -1 if the display RESET is connected to NodeMCU RST or 3.3V 18 | 19 | 20 | #define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH 21 | #define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters 22 | #define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters 23 | #define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm 24 | #define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:. 25 | #define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-. 26 | //#define LOAD_FONT8N // Font 8. Alternative to Font 8 above, slightly narrower, so 3 digits fit a 160 pixel TFT 27 | #define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts 28 | 29 | #define SMOOTH_FONT 30 | 31 | 32 | // #define SPI_FREQUENCY 20000000 33 | #define SPI_FREQUENCY 27000000 34 | // #define SPI_FREQUENCY 40000000 35 | 36 | #define SPI_TOUCH_FREQUENCY 2500000 37 | 38 | 39 | // #define SUPPORT_TRANSACTIONS 40 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/User_Setups/Setup7_ST7735_128x128.h: -------------------------------------------------------------------------------- 1 | // See SetupX_Template.h for all options available 2 | 3 | #define ST7735_DRIVER 4 | 5 | 6 | #define TFT_WIDTH 128 7 | #define TFT_HEIGHT 128 8 | 9 | 10 | #define ST7735_GREENTAB128 // For 128 x 128 display 11 | 12 | 13 | // For NodeMCU - use pin numbers in the form PIN_Dx where Dx is the NodeMCU pin designation 14 | #define TFT_CS PIN_D8 // Chip select control pin D8 15 | #define TFT_DC PIN_D3 // Data Command control pin 16 | #define TFT_RST PIN_D4 // Reset pin (could connect to NodeMCU RST, see next line) 17 | //#define TFT_RST -1 // Set TFT_RST to -1 if the display RESET is connected to NodeMCU RST or 3.3V 18 | 19 | 20 | #define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH 21 | #define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters 22 | #define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters 23 | #define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm 24 | #define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:. 25 | #define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-. 26 | //#define LOAD_FONT8N // Font 8. Alternative to Font 8 above, slightly narrower, so 3 digits fit a 160 pixel TFT 27 | #define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts 28 | 29 | 30 | #define SMOOTH_FONT 31 | 32 | 33 | // #define SPI_FREQUENCY 20000000 34 | #define SPI_FREQUENCY 27000000 35 | 36 | #define SPI_TOUCH_FREQUENCY 2500000 37 | 38 | 39 | // #define SUPPORT_TRANSACTIONS 40 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/Fonts/GFXFF/license.txt: -------------------------------------------------------------------------------- 1 | This TFT_eSPI library has been developed from the Adafruit_GFX library: 2 | 3 | https://github.com/adafruit/Adafruit-GFX-Library 4 | 5 | It has been modified extensively to improve rendering speed on 6 | ESP8266 processors. There follows the original library license text. 7 | 8 | 9 | Original text follows: 10 | 11 | Software License Agreement (BSD License) 12 | 13 | Copyright (c) 2012 Adafruit Industries. All rights reserved. 14 | 15 | Redistribution and use in source and binary forms, with or without 16 | modification, are permitted provided that the following conditions are met: 17 | 18 | - Redistributions of source code must retain the above copyright notice, 19 | this list of conditions and the following disclaimer. 20 | - Redistributions in binary form must reproduce the above copyright notice, 21 | this list of conditions and the following disclaimer in the documentation 22 | and/or other materials provided with the distribution. 23 | 24 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 25 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 26 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 28 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 29 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 30 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 31 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 32 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 33 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 34 | POSSIBILITY OF SUCH DAMAGE. 35 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/TFT_Drivers/ILI9481_Init.h: -------------------------------------------------------------------------------- 1 | 2 | // This is the command sequence that initialises the ILI9481 driver 3 | // 4 | // This setup information uses simple 8 bit SPI writecommand() and writedata() functions 5 | // 6 | // See ST7735_Setup.h file for an alternative format 7 | 8 | 9 | // Configure ILI9481 display 10 | 11 | writecommand(TFT_SLPOUT); 12 | delay(20); 13 | 14 | writecommand(0xD0); 15 | writedata(0x07); 16 | writedata(0x42); 17 | writedata(0x18); 18 | 19 | writecommand(0xD1); 20 | writedata(0x00); 21 | writedata(0x07); 22 | writedata(0x10); 23 | 24 | writecommand(0xD2); 25 | writedata(0x01); 26 | writedata(0x02); 27 | 28 | writecommand(0xC0); 29 | writedata(0x10); 30 | writedata(0x3B); 31 | writedata(0x00); 32 | writedata(0x02); 33 | writedata(0x11); 34 | 35 | writecommand(0xC5); 36 | writedata(0x03); 37 | 38 | writecommand(0xC8); 39 | writedata(0x00); 40 | writedata(0x32); 41 | writedata(0x36); 42 | writedata(0x45); 43 | writedata(0x06); 44 | writedata(0x16); 45 | writedata(0x37); 46 | writedata(0x75); 47 | writedata(0x77); 48 | writedata(0x54); 49 | writedata(0x0C); 50 | writedata(0x00); 51 | 52 | writecommand(TFT_MADCTL); 53 | writedata(0x0A); 54 | 55 | writecommand(0x3A); 56 | writedata(0x55); 57 | 58 | writecommand(TFT_CASET); 59 | writedata(0x00); 60 | writedata(0x00); 61 | writedata(0x01); 62 | writedata(0x3F); 63 | 64 | writecommand(TFT_PASET); 65 | writedata(0x00); 66 | writedata(0x00); 67 | writedata(0x01); 68 | writedata(0xDF); 69 | 70 | delay(120); 71 | writecommand(TFT_DISPON); 72 | 73 | delay(25); 74 | // End of ILI9481 display configuration 75 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/TFT_Drivers/RM68140_Init.h: -------------------------------------------------------------------------------- 1 | 2 | // This is the command sequence that initialises the RM68140 driver 3 | // 4 | // This setup information uses simple 8 bit SPI writecommand() and writedata() functions 5 | // 6 | // See ST7735_Setup.h file for an alternative format 7 | 8 | 9 | // Configure RM68140 display 10 | 11 | writecommand(TFT_SLPOUT); 12 | delay(20); 13 | 14 | writecommand(0xD0); 15 | writedata(0x07); 16 | writedata(0x42); 17 | writedata(0x18); 18 | 19 | writecommand(0xD1); 20 | writedata(0x00); 21 | writedata(0x07); 22 | writedata(0x10); 23 | 24 | writecommand(0xD2); 25 | writedata(0x01); 26 | writedata(0x02); 27 | 28 | writecommand(0xC0); 29 | writedata(0x10); 30 | writedata(0x3B); 31 | writedata(0x00); 32 | writedata(0x02); 33 | writedata(0x11); 34 | 35 | writecommand(0xC5); 36 | writedata(0x03); 37 | 38 | writecommand(0xC8); 39 | writedata(0x00); 40 | writedata(0x32); 41 | writedata(0x36); 42 | writedata(0x45); 43 | writedata(0x06); 44 | writedata(0x16); 45 | writedata(0x37); 46 | writedata(0x75); 47 | writedata(0x77); 48 | writedata(0x54); 49 | writedata(0x0C); 50 | writedata(0x00); 51 | 52 | writecommand(TFT_MADCTL); 53 | writedata(0x0A); 54 | 55 | writecommand(0x3A); 56 | writedata(0x55); 57 | 58 | writecommand(TFT_CASET); 59 | writedata(0x00); 60 | writedata(0x00); 61 | writedata(0x01); 62 | writedata(0x3F); 63 | 64 | writecommand(TFT_PASET); 65 | writedata(0x00); 66 | writedata(0x00); 67 | writedata(0x01); 68 | writedata(0xDF); 69 | 70 | delay(120); 71 | writecommand(TFT_DISPON); 72 | 73 | delay(25); 74 | // End of RM68140 display configuration 75 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /libdeps/PCF8563_Library/keywords.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Syntax Coloring Map For Arduino library for NXP-PCF8563 By lewis He 3 | # github:https://github.com/lewisxhe 4 | ####################################### 5 | 6 | ####################################### 7 | # Datatypes (KEYWORD1) 8 | ####################################### 9 | RTC_Date KEYWORD1 10 | RTC_Alarm KEYWORD1 11 | PCF8563_Class KEYWORD1 12 | 13 | ####################################### 14 | # Methods and Functions (KEYWORD2) 15 | ####################################### 16 | 17 | begin KEYWORD2 18 | setDateTime KEYWORD2 19 | getDateTime KEYWORD2 20 | getAlarm KEYWORD2 21 | enableAlarm KEYWORD2 22 | disableAlarm KEYWORD2 23 | alarmActive KEYWORD2 24 | resetAlarm KEYWORD2 25 | setAlarm KEYWORD2 26 | setAlarmByWeekDay KEYWORD2 27 | setAlarmByHours KEYWORD2 28 | setAlarmByDays KEYWORD2 29 | setAlarmByMinutes KEYWORD2 30 | isTimerEnable KEYWORD2 31 | isTimerActive KEYWORD2 32 | enableTimer KEYWORD2 33 | disableTimer KEYWORD2 34 | setTimer KEYWORD2 35 | clearTimer KEYWORD2 36 | enableCLK KEYWORD2 37 | disableCLK KEYWORD2 38 | formatDateTime KEYWORD2 39 | getDayOfWeek KEYWORD2 40 | 41 | ####################################### 42 | # Instances (KEYWORD2) 43 | ####################################### 44 | 45 | 46 | ####################################### 47 | # Constants (LITERAL1) 48 | ####################################### 49 | PCF8563_CLK_32_768KHZ LITERAL1 50 | PCF8563_CLK_1024KHZ LITERAL1 51 | PCF8563_CLK_32HZ LITERAL1 52 | PCF8563_CLK_1HZ LITERAL1 53 | PCF_TIMEFORMAT_HM LITERAL1 54 | PCF_TIMEFORMAT_HMS LITERAL1 55 | PCF_TIMEFORMAT_YYYY_MM_DD LITERAL1 56 | PCF_TIMEFORMAT_MM_DD_YYYY LITERAL1 57 | PCF_TIMEFORMAT_DD_MM_YYYY LITERAL1 58 | PCF_TIMEFORMAT_YYYY_MM_DD_H_M_S LITERAL1 -------------------------------------------------------------------------------- /libdeps/WiFiManager/.travis.yml: -------------------------------------------------------------------------------- 1 | language: c 2 | sudo: false 3 | 4 | before_install: 5 | - "/sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_1.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :1 -ac -screen 0 1280x1024x16" 6 | - sleep 3 7 | - export DISPLAY=:1.0 8 | - wget http://downloads.arduino.cc/arduino-1.8.10-linux64.tar.xz 9 | - tar xf arduino-1.8.10-linux64.tar.xz 10 | - sudo mv arduino-1.8.10 /usr/local/share/arduino 11 | - sudo ln -s /usr/local/share/arduino/arduino /usr/local/bin/arduino 12 | 13 | install: 14 | - ln -s $PWD /usr/local/share/arduino/libraries/WiFiManager 15 | - arduino --pref "boardsmanager.additional.urls=http://arduino.esp8266.com/stable/package_esp8266com_index.json,http://dl.espressif.com/dl/package_esp32_index.json" --save-prefs 16 | - arduino --install-library "ArduinoJson:6.18.0" 17 | - arduino --install-boards esp8266:esp8266 18 | - arduino --pref "compiler.warning_level=all" --save-prefs 19 | # install esp32 20 | - arduino --install-boards esp32:esp32 21 | 22 | script: 23 | - "echo $PWD" 24 | - "echo $HOME" 25 | - "ls $PWD" 26 | - source $TRAVIS_BUILD_DIR/travis/common.sh 27 | - arduino --board esp8266:esp8266:generic:xtal=80,eesz=4M1M,FlashMode=qio,FlashFreq=80,dbg=Serial,lvl=CORE --save-prefs 28 | - build_examples 29 | - arduino --board esp32:esp32:esp32:FlashFreq=80,FlashSize=4M,DebugLevel=info --save-prefs 30 | # some examples fail (SPIFFS defines differ esp32 vs esp8266) so we exclude them 31 | - build_examples 32 | # - arduino -v --verbose-build --verify $PWD/examples/AutoConnect/AutoConnect.ino 33 | 34 | # no coverage generated, no need to run 35 | # 36 | #after_success: 37 | # - bash <(curl -s https://codecov.io/bash) 38 | 39 | notifications: 40 | email: 41 | on_success: change 42 | on_failure: change 43 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/TFT_Drivers/ILI9486_Init.h: -------------------------------------------------------------------------------- 1 | 2 | // This is the command sequence that initialises the ILI9486 driver 3 | // 4 | // This setup information uses simple 8 bit SPI writecommand() and writedata() functions 5 | // 6 | // See ST7735_Setup.h file for an alternative format 7 | 8 | { 9 | // From https://github.com/notro/fbtft/blob/master/fb_ili9486.c 10 | 11 | //writecommand(0x01); // SW reset 12 | //delay(120); 13 | 14 | writecommand(0x11); // Sleep out, also SW reset 15 | delay(120); 16 | 17 | writecommand(0x3A); 18 | writedata(0x55); 19 | 20 | writecommand(0xC2); 21 | writedata(0x44); 22 | 23 | writecommand(0xC5); 24 | writedata(0x00); 25 | writedata(0x00); 26 | writedata(0x00); 27 | writedata(0x00); 28 | 29 | writecommand(0xE0); 30 | writedata(0x0F); 31 | writedata(0x1F); 32 | writedata(0x1C); 33 | writedata(0x0C); 34 | writedata(0x0F); 35 | writedata(0x08); 36 | writedata(0x48); 37 | writedata(0x98); 38 | writedata(0x37); 39 | writedata(0x0A); 40 | writedata(0x13); 41 | writedata(0x04); 42 | writedata(0x11); 43 | writedata(0x0D); 44 | writedata(0x00); 45 | 46 | writecommand(0xE1); 47 | writedata(0x0F); 48 | writedata(0x32); 49 | writedata(0x2E); 50 | writedata(0x0B); 51 | writedata(0x0D); 52 | writedata(0x05); 53 | writedata(0x47); 54 | writedata(0x75); 55 | writedata(0x37); 56 | writedata(0x06); 57 | writedata(0x10); 58 | writedata(0x03); 59 | writedata(0x24); 60 | writedata(0x20); 61 | writedata(0x00); 62 | 63 | writecommand(0x20); // display inversion OFF 64 | 65 | writecommand(0x36); 66 | writedata(0x48); 67 | 68 | writecommand(0x29); // display on 69 | delay(150); 70 | } 71 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/TFT_Drivers/R61581_Init.h: -------------------------------------------------------------------------------- 1 | 2 | // This is the command sequence that initialises the R61581 driver 3 | // 4 | // This setup information uses simple 8 bit SPI writecommand() and writedata() functions 5 | // 6 | // See ST7735_Setup.h file for an alternative format 7 | 8 | 9 | // Configure R61581 display 10 | 11 | writecommand(TFT_SLPOUT); 12 | delay(20); 13 | 14 | writecommand(0xB0); 15 | writedata(0x00); 16 | 17 | writecommand(0xD0); 18 | writedata(0x07); 19 | writedata(0x42); 20 | writedata(0x18); 21 | 22 | writecommand(0xD1); 23 | writedata(0x00); 24 | writedata(0x07); 25 | writedata(0x10); 26 | 27 | writecommand(0xD2); 28 | writedata(0x01); 29 | writedata(0x02); 30 | 31 | writecommand(0xC0); 32 | writedata(0x12); 33 | writedata(0x3B); 34 | writedata(0x00); 35 | writedata(0x02); 36 | writedata(0x11); 37 | 38 | writecommand(0xC5); 39 | writedata(0x03); 40 | 41 | writecommand(0xC8); 42 | writedata(0x00); 43 | writedata(0x32); 44 | writedata(0x36); 45 | writedata(0x45); 46 | writedata(0x06); 47 | writedata(0x16); 48 | writedata(0x37); 49 | writedata(0x75); 50 | writedata(0x77); 51 | writedata(0x54); 52 | writedata(0x0C); 53 | writedata(0x00); 54 | 55 | writecommand(TFT_MADCTL); 56 | writedata(0x0A); 57 | 58 | writecommand(0x3A); 59 | writedata(0x55); 60 | 61 | writecommand(TFT_CASET); 62 | writedata(0x00); 63 | writedata(0x00); 64 | writedata(0x01); 65 | writedata(0x3F); 66 | 67 | writecommand(TFT_PASET); 68 | writedata(0x00); 69 | writedata(0x00); 70 | writedata(0x01); 71 | writedata(0xDF); 72 | 73 | delay(120); 74 | writecommand(TFT_DISPON); 75 | 76 | delay(25); 77 | // End of R61581 display configuration 78 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/examples/480 x 320/Touch_Controller_Demo/Touch_Controller_Demo.ino: -------------------------------------------------------------------------------- 1 | #include "FS.h" 2 | #include 3 | #include 4 | TFT_eSPI tft = TFT_eSPI(); 5 | 6 | #define CALIBRATION_FILE "/calibrationData" 7 | 8 | void setup(void) { 9 | uint16_t calibrationData[5]; 10 | uint8_t calDataOK = 0; 11 | 12 | Serial.begin(115200); 13 | Serial.println("starting"); 14 | 15 | tft.init(); 16 | 17 | tft.setRotation(3); 18 | tft.fillScreen((0xFFFF)); 19 | 20 | tft.setCursor(20, 0, 2); 21 | tft.setTextColor(TFT_BLACK, TFT_WHITE); tft.setTextSize(1); 22 | tft.println("calibration run"); 23 | 24 | // check file system 25 | if (!SPIFFS.begin()) { 26 | Serial.println("formating file system"); 27 | 28 | SPIFFS.format(); 29 | SPIFFS.begin(); 30 | } 31 | 32 | // check if calibration file exists 33 | if (SPIFFS.exists(CALIBRATION_FILE)) { 34 | File f = SPIFFS.open(CALIBRATION_FILE, "r"); 35 | if (f) { 36 | if (f.readBytes((char *)calibrationData, 14) == 14) 37 | calDataOK = 1; 38 | f.close(); 39 | } 40 | } 41 | if (calDataOK) { 42 | // calibration data valid 43 | tft.setTouch(calibrationData); 44 | } else { 45 | // data not valid. recalibrate 46 | tft.calibrateTouch(calibrationData, TFT_WHITE, TFT_RED, 15); 47 | // store data 48 | File f = SPIFFS.open(CALIBRATION_FILE, "w"); 49 | if (f) { 50 | f.write((const unsigned char *)calibrationData, 14); 51 | f.close(); 52 | } 53 | } 54 | 55 | tft.fillScreen((0xFFFF)); 56 | 57 | } 58 | 59 | void loop() { 60 | uint16_t x, y; 61 | static uint16_t color; 62 | 63 | if (tft.getTouch(&x, &y)) { 64 | 65 | tft.setCursor(5, 5, 2); 66 | tft.printf("x: %i ", x); 67 | tft.setCursor(5, 20, 2); 68 | tft.printf("y: %i ", y); 69 | 70 | tft.drawPixel(x, y, color); 71 | color += 155; 72 | } 73 | } 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/Fonts/GFXFF/print.txt: -------------------------------------------------------------------------------- 1 | #define TT1 TomThumb 2 | 3 | #define FF1 FreeMono9pt7b 4 | #define FF2 FreeMono12pt7b 5 | #define FF3 FreeMono18pt7b 6 | #define FF4 FreeMono24pt7b 7 | 8 | #define FF5 FreeMonoBold9pt7b 9 | #define FF6 FreeMonoBold12pt7b 10 | #define FF7 FreeMonoBold18pt7b 11 | #define FF8 FreeMonoBold24pt7b 12 | 13 | #define FF9 FreeMonoBoldOblique9pt7b 14 | #define FF10 FreeMonoBoldOblique12pt7b 15 | #define FF11 FreeMonoBoldOblique18pt7b 16 | #define FF12 FreeMonoBoldOblique24pt7b 17 | 18 | #define FF13 FreeMonoOblique9pt7b 19 | #define FF14 FreeMonoOblique12pt7b 20 | #define FF15 FreeMonoOblique18pt7b 21 | #define FF16 FreeMonoOblique24pt7b 22 | 23 | #define FF17 FreeSans9pt7b 24 | #define FF18 FreeSans12pt7b 25 | #define FF19 FreeSans18pt7b 26 | #define FF20 FreeSans24pt7b 27 | 28 | #define FF21 FreeSansBold9pt7b 29 | #define FF22 FreeSansBold12pt7b 30 | #define FF23 FreeSansBold18pt7b 31 | #define FF24 FreeSansBold24pt7b 32 | 33 | #define FF25 FreeSansBoldOblique9pt7b 34 | #define FF26 FreeSansBoldOblique12pt7b 35 | #define FF27 FreeSansBoldOblique18pt7b 36 | #define FF28 FreeSansBoldOblique24pt7b 37 | 38 | #define FF29 FreeSansOblique9pt7b 39 | #define FF30 FreeSansOblique12pt7b 40 | #define FF31 FreeSansOblique18pt7b 41 | #define FF32 FreeSansOblique24pt7b 42 | 43 | #define FF33 FreeSerif9pt7b 44 | #define FF34 FreeSerif12pt7b 45 | #define FF35 FreeSerif18pt7b 46 | #define FF36 FreeSerif24pt7b 47 | 48 | #define FF37 FreeSerifBold9pt7b 49 | #define FF38 FreeSerifBold12pt7b 50 | #define FF39 FreeSerifBold18pt7b 51 | #define FF40 FreeSerifBold24pt7b 52 | 53 | #define FF41 FreeSerifBoldItalic9pt7b 54 | #define FF42 FreeSerifBoldItalic12pt7b 55 | #define FF43 FreeSerifBoldItalic18pt7b 56 | #define FF44 FreeSerifBoldItalic24pt7b 57 | 58 | #define FF45 FreeSerifItalic9pt7b 59 | #define FF46 FreeSerifItalic12pt7b 60 | #define FF47 FreeSerifItalic18pt7b 61 | #define FF48 FreeSerifItalic24pt7b 62 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/User_Setups/Setup26_TTGO_T_Wristband.h: -------------------------------------------------------------------------------- 1 | #define ST7735_DRIVER 2 | 3 | #define TFT_WIDTH 80 4 | #define TFT_HEIGHT 160 5 | 6 | 7 | #define TFT_RST 26 // Set TFT_RST to -1 if the display RESET is connected to NodeMCU RST or 3.3V 8 | #define TFT_MISO -1 9 | #define TFT_MOSI 19 10 | #define TFT_SCLK 18 11 | #define TFT_CS 5 12 | #define TFT_DC 23 13 | #define TFT_BL 27 // Dispaly backlight control pin 14 | 15 | #define TFT_BACKLIGHT_ON HIGH // HIGH or LOW are options 16 | 17 | #define ST7735_GREENTAB160x80 // For 160 x 80 display (BGR, inverted, 26 offset) 18 | //#define ST7735_REDTAB160x80 19 | 20 | #define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH 21 | #define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters 22 | #define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters 23 | #define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm 24 | #define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:. 25 | #define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-. 26 | //#define LOAD_FONT8N // Font 8. Alternative to Font 8 above, slightly narrower, so 3 digits fit a 160 pixel TFT 27 | #define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts 28 | 29 | // Comment out the #define below to stop the SPIFFS filing system and smooth font code being loaded 30 | // this will save ~20kbytes of FLASH 31 | #define SMOOTH_FONT 32 | 33 | #define SPI_FREQUENCY 27000000 // Actually sets it to 26.67MHz = 80/3 34 | 35 | // #define SPI_FREQUENCY 40000000 // Maximum to use SPIFFS 36 | // #define SPI_FREQUENCY 80000000 37 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/User_Setups/User_Custom_Fonts.h: -------------------------------------------------------------------------------- 1 | 2 | // Custom "Adafruit" compatible font files can be added to the "TFT_eSPI/Fonts/Custom" folder 3 | // Fonts in a suitable format can be created using a Squix blog web based tool here: 4 | /* 5 | https://blog.squix.org/2016/10/font-creator-now-creates-adafruit-gfx-fonts.html 6 | */ 7 | 8 | // Note: At the time of writing there is a last character code definition bug in the 9 | // Squix font file format so do NOT try and print the tilda (~) symbol (ASCII 0x7E) 10 | // Alternatively look at the end of the font header file and edit: 0x7E to read 0x7D 11 | /* e.g. vvvv 12 | (uint8_t *)Orbitron_Light_32Bitmaps,(GFXglyph *)Orbitron_Light_32Glyphs,0x20, 0x7D, 32}; 13 | ^^^^ 14 | */ 15 | 16 | // When font files are placed in the Custom folder (TFT_eSPI\Fonts\Custom) then they must 17 | // also be #included here: 18 | 19 | // The CF_OL24 etc are a shorthand reference, but this is not essential to use the fonts 20 | 21 | #ifdef LOAD_GFXFF 22 | 23 | // New custom font file #includes 24 | #include // CF_OL24 25 | #include // CF_OL32 26 | #include // CF_RT24 27 | #include // CF_S24 28 | #include // CF_Y32 29 | 30 | #endif 31 | 32 | // Shorthand references - any coding scheme can be used, here CF_ = Custom Font 33 | // The #defines below MUST be added to sketches to use shorthand references, so 34 | // they are only put here for reference and copy+paste purposes! 35 | /* 36 | #define CF_OL24 &Orbitron_Light_24 37 | #define CF_OL32 &Orbitron_Light_32 38 | #define CF_RT24 &Roboto_Thin_24 39 | #define CF_S24 &Satisfy_24 40 | #define CF_Y32 &Yellowtail_32 41 | */ 42 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/TFT_Drivers/ST7789_Rotation.h: -------------------------------------------------------------------------------- 1 | // This is the command sequence that rotates the ST7789 driver coordinate frame 2 | 3 | writecommand(TFT_MADCTL); 4 | rotation = m % 4; 5 | switch (rotation) { 6 | case 0: // Portrait 7 | #ifdef CGRAM_OFFSET 8 | if (_init_width == 135) 9 | { 10 | colstart = 52; 11 | rowstart = 40; 12 | } 13 | else 14 | { 15 | colstart = 0; 16 | rowstart = 0; 17 | } 18 | #endif 19 | writedata(TFT_MAD_COLOR_ORDER); 20 | 21 | _width = _init_width; 22 | _height = _init_height; 23 | break; 24 | 25 | case 1: // Landscape (Portrait + 90) 26 | #ifdef CGRAM_OFFSET 27 | if (_init_width == 135) 28 | { 29 | colstart = 40; 30 | rowstart = 53; 31 | } 32 | else 33 | { 34 | colstart = 0; 35 | rowstart = 0; 36 | } 37 | #endif 38 | writedata(TFT_MAD_MX | TFT_MAD_MV | TFT_MAD_COLOR_ORDER); 39 | 40 | _width = _init_height; 41 | _height = _init_width; 42 | break; 43 | 44 | case 2: // Inverter portrait 45 | #ifdef CGRAM_OFFSET 46 | if (_init_width == 135) 47 | { 48 | colstart = 53; 49 | rowstart = 40; 50 | } 51 | else 52 | { 53 | colstart = 0; 54 | rowstart = 80; 55 | } 56 | #endif 57 | writedata(TFT_MAD_MX | TFT_MAD_MY | TFT_MAD_COLOR_ORDER); 58 | 59 | _width = _init_width; 60 | _height = _init_height; 61 | break; 62 | case 3: // Inverted landscape 63 | #ifdef CGRAM_OFFSET 64 | if (_init_width == 135) 65 | { 66 | colstart = 40; 67 | rowstart = 52; 68 | } 69 | else 70 | { 71 | colstart = 80; 72 | rowstart = 0; 73 | } 74 | #endif 75 | writedata(TFT_MAD_MV | TFT_MAD_MY | TFT_MAD_COLOR_ORDER); 76 | 77 | _width = _init_height; 78 | _height = _init_width; 79 | break; 80 | } 81 | -------------------------------------------------------------------------------- /scripts/apply_patches.py: -------------------------------------------------------------------------------- 1 | from os.path import join, abspath 2 | import logging 3 | 4 | Import("env") 5 | 6 | # try: 7 | # import patch 8 | # except ImportError: 9 | # env.Execute("$PYTHONEXE -m pip install git+https://github.com/liangyingy/python-patch.git") 10 | 11 | logging.basicConfig(level = logging.DEBUG, format='%(levelname)s %(message)s') 12 | logger = logging.getLogger('platformio-patch') 13 | 14 | project_dir = env['PROJECT_DIR'] 15 | patch_exe = join(project_dir, '..', '..', 'scripts', 'patch.py') 16 | 17 | section = env.GetProjectOption('custom_patch_section') 18 | config = env.GetProjectConfig() 19 | root_dir = abspath(config.get(section, 'root_dir', default=join(project_dir))) 20 | patches = config.get(section, 'patches', default="").splitlines() 21 | 22 | logger.info('root directory for applying patch: %s' % root_dir) 23 | logger.info('patch list:') 24 | for i in patches: 25 | logger.info(' %s' % i) 26 | 27 | for i in patches: 28 | logger.info("patching %s" % (abspath(i))) 29 | env.Execute("$PYTHONEXE %s %s --debug -d %s" % (patch_exe, 30 | abspath(i), 31 | root_dir 32 | ) 33 | ) 34 | 35 | def post_program_action(source, target, env): 36 | global root_dir 37 | global patches 38 | project_dir = env['PROJECT_DIR'] 39 | patch_exe = join(project_dir, '..', '..', 'scripts', 'patch.py') 40 | for i in patches: 41 | logger.info("unpatching %s" % abspath(i)) 42 | env.Execute("$PYTHONEXE %s %s --debug -d %s --revert" % (patch_exe, 43 | abspath(i), 44 | root_dir 45 | ) 46 | ) 47 | 48 | env.AddPostAction("$PROGPATH", post_program_action) 49 | -------------------------------------------------------------------------------- /libdeps/TFT_eSPI/Extensions/Button.h: -------------------------------------------------------------------------------- 1 | /*************************************************************************************** 2 | // The following button class has been ported over from the Adafruit_GFX library so 3 | // should be compatible. 4 | // A slightly different implementation in this TFT_eSPI library allows the button 5 | // legends to be in any font, allow longer labels and to adjust text positioning 6 | // within button 7 | ***************************************************************************************/ 8 | 9 | class TFT_eSPI_Button { 10 | 11 | public: 12 | TFT_eSPI_Button(void); 13 | // "Classic" initButton() uses center & size 14 | void initButton(TFT_eSPI *gfx, int16_t x, int16_t y, 15 | uint16_t w, uint16_t h, uint16_t outline, uint16_t fill, 16 | uint16_t textcolor, char *label, uint8_t textsize); 17 | 18 | // New/alt initButton() uses upper-left corner & size 19 | void initButtonUL(TFT_eSPI *gfx, int16_t x1, int16_t y1, 20 | uint16_t w, uint16_t h, uint16_t outline, uint16_t fill, 21 | uint16_t textcolor, char *label, uint8_t textsize); 22 | 23 | // Adjust text datum and x, y deltas 24 | void setLabelDatum(int16_t x_delta, int16_t y_delta, uint8_t datum = MC_DATUM); 25 | 26 | void drawButton(bool inverted = false, String long_name = ""); 27 | bool contains(int16_t x, int16_t y); 28 | 29 | void press(bool p); 30 | bool isPressed(); 31 | bool justPressed(); 32 | bool justReleased(); 33 | 34 | private: 35 | TFT_eSPI *_gfx; 36 | int16_t _x1, _y1; // Coordinates of top-left corner of button 37 | int16_t _xd, _yd; // Button text datum offsets (wrt center of button) 38 | uint16_t _w, _h; // Width and height of button 39 | uint8_t _textsize, _textdatum; // Text size multiplier and text datum for button 40 | uint16_t _outlinecolor, _fillcolor, _textcolor; 41 | char _label[10]; // Button text is 9 chars maximum unless long_name used 42 | 43 | bool currstate, laststate; // Button states 44 | }; 45 | -------------------------------------------------------------------------------- /libdeps/WiFiManager/extras/parse.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const fs = require('fs'); 4 | 5 | console.log('starting'); 6 | 7 | const inFile = 'WiFiManager.template.html'; 8 | const outFile = 'template.h'; 9 | 10 | const defineRegEx = //gm; 11 | console.log('parsing', inFile); 12 | 13 | fs.readFile(inFile, 'utf8', function (err,data) { 14 | if (err) { 15 | return console.log(err); 16 | } 17 | //console.log(data); 18 | 19 | let defines = data.match(defineRegEx); 20 | 21 | //console.log(defines); 22 | var stream = fs.createWriteStream(outFile); 23 | stream.once('open', function(fd) { 24 | for (const i in defines) { 25 | 26 | const start = defines[i]; 27 | const end = start.replace('