Need help with My-TTGO-Watch?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

sharandac
179 Stars 101 Forks GNU General Public License v2.0 590 Commits 13 Opened issues

Description

Firmware for a ttgo-watch2020-v1 smartwatch based on ESP32 from LilyGo.

Services available

!
?

Need anything else?

Contributors list

   


My-TTGO-Watch

A smartwatch based on ESP32 from LilyGo. Currently under development.

Telegram chatgroup

Telegram chatgroup is here: https://t.me/TTGO_Watch

Install

Clone this repository and open it with platformIO. Build and upload. On a terminal in vscode you can do it with

pio run -t upload

or simple press "build and upload" in platformIO.

known issues

  • the webserver crashes the ESP32 really often
  • the battery indicator is not accurate, rather a problem with the power management unit ( axp202 )
  • from time to time the esp32 crashes accidentally
  • and some other small things

how to use

weather app

On startup you see the main screen (time tile). It show the time and the current weather (if correct configure). Now you can swipe with you fingers up, down, left and right between the four main screens. The four screens are organized in time, apps, note and setup tile. For the weather app you need an openweather.com api-id. http://openweathermap.org/appid is a good starting point.

ir-remote

For customise your ir-codes, use WConfigurator.

bluetooth

The bluetooth notification work with gadgetbridge very well. But keep in mind, bluetooth in standby reduces the battery runtime. In connection with OsmAnd the watch can also be used for navigation. Please use the osmand app, otherwise a lot of messages will be displayed.

Forks that are recommended

FantasyFactory
NorthernDIY

for the programmers

For quick clock application development use the new QuickGLUI - high level API. See here.

Internal RAM is very limited, use PSRAM as much as possible. When you work with ArduinoJson, include this

#include "hardware/json_psram_allocator.h"

and create your json with

SpiRamJsonDocument doc( 1000 );

to move your json into PSRAM, here is enough RAM for all the crazy stuff you will do. And use

#include "hardware/alloc.h"

with

MALLOC( ... ); // repleace malloc or ps_malloc
CALLOC( ... ); // repleace calloc or ps_calloc
REALLOC( ... ); // repleace realloc or ps_realloc

as often as possible. It managed internal or PSRAM for you. And one very important thing: Do not talk directly to the hardware!

Sound

To play sounds from the inbuild speakers use

hardware/sound.h
:
#include "hardware/sound.h"
[...]
// MP3 from SPIFFS:
// void sound_play_spiffs_mp3( const char *filename );
// example:
sound_play_spiffs_mp3( "/sound.mp3" )

// or WAV from PROGMEM via //void sound_play_progmem_wav( const void *data, uint32_t len );

There is a configuration tile to enable/disable all sound output and set the global volume.

how to make a screenshot

In the display settings page 2 you can set what happens when the button is pressed for 2 seconds. This will normally takes you back to the main tile. If the option for a screenshot is activated, a screenshot is taken instead. This can be downloaded via the built-in FTP server (binary and passive mode, username: TTWatch and password: passord), if activated. The file name is screen.data.

Or the other way:

The firmware has an integrated webserver. Over this a screenshot can be triggered. The image has the format RGB565 and can be read with gimp. From bash it look like this

bash
wget x.x.x.x/shot ; wget x.x.x.x/screen.565

Interface

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

Contributors

Special thanks to the following people for their help:

5tormChild
bwagstaff
chrismcna
datacute
jakub-vesely
joshvito
JoanMCD
NorthernDIY
rnisthal
paulstueber
ssspeq

and the following projects:

ArduinoJson
AsyncTCP
ESP32SSDP
ESPAsyncWebServer
LVGL
TFT_eSPI
TTGOTWatchLibrary
ESP8266Audio
pubsubclient

Every Contribution to this repository is highly welcome! Don't fear to create pull requests which enhance or fix the project, you are going to help everybody.

If you want to donate to the author then you can buy me a coffee.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.