Giter VIP home page Giter VIP logo

my-ttgo-watch's Introduction

   


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
  • sound and webserver will not work at the same time ( cause cache crashes )
  • 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

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.

for the programmers

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

ps_malloc(), ps_calloc() and ps_realloc()

as often as possible. 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

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

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
TTGO_TWatch_Library
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.

my-ttgo-watch's People

Contributors

5tormchild avatar bwagstaff avatar chrismcna avatar datacute avatar jakub-vesely avatar joshvito avatar northerndiy avatar paulstueber avatar rnisthal avatar sharandac avatar ssspeq avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.