Skip to content

Commit

Permalink
initial checkin for new project
Browse files Browse the repository at this point in the history
  • Loading branch information
geeksville committed Mar 3, 2019
1 parent c4687ea commit a71a530
Show file tree
Hide file tree
Showing 41 changed files with 2,027 additions and 0 deletions.
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
.pio
.pioenvs
.piolibdeps
.clang_complete
.gcc-*.json
private-env.sh

67 changes: 67 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# Continuous Integration (CI) is the practice, in software
# engineering, of merging all developer working copies with a shared mainline
# several times a day < https://docs.platformio.org/page/ci/index.html >
#
# Documentation:
#
# * Travis CI Embedded Builds with PlatformIO
# < https://docs.travis-ci.com/user/integration/platformio/ >
#
# * PlatformIO integration with Travis CI
# < https://docs.platformio.org/page/ci/travis.html >
#
# * User Guide for `platformio ci` command
# < https://docs.platformio.org/page/userguide/cmd_ci.html >
#
#
# Please choose one of the following templates (proposed below) and uncomment
# it (remove "# " before each line) or use own configuration according to the
# Travis CI documentation (see above).
#


#
# Template #1: General project. Test it using existing `platformio.ini`.
#

# language: python
# python:
# - "2.7"
#
# sudo: false
# cache:
# directories:
# - "~/.platformio"
#
# install:
# - pip install -U platformio
# - platformio update
#
# script:
# - platformio run


#
# Template #2: The project is intended to be used as a library with examples.
#

# language: python
# python:
# - "2.7"
#
# sudo: false
# cache:
# directories:
# - "~/.platformio"
#
# env:
# - PLATFORMIO_CI_SRC=path/to/test/file.c
# - PLATFORMIO_CI_SRC=examples/file.ino
# - PLATFORMIO_CI_SRC=path/to/test/directory
#
# install:
# - pip install -U platformio
# - platformio update
#
# script:
# - platformio ci --lib="." --board=ID_1 --board=ID_2 --board=ID_N
4 changes: 4 additions & 0 deletions .vscode/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
.browse*
c_cpp_properties.json
launch.json
settings.json
7 changes: 7 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
// See http://go.microsoft.com/fwlink/?LinkId=827846
// for the documentation about the extensions.json format
"recommendations": [
"platformio.platformio-ide"
]
}
83 changes: 83 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# This project is in alpha-test

You probably don't want it yet.

# Supported hardware notes

## T-Gallery

Seems undocumented so far.

## 4 button 2.4" screen <https://github.com/LilyGO/TTGO-TM-ESP32>

Not yet tested, but should be easy to support. Web resources:

<https://github.com/moononournation/ESP32_BiJin_ToKei>
ESP32_TFT_Library can support ILI9341, ILI9488, ST7789V and ST7735. This time I am using a 2.4" ST7789V LCD, model number JLX240-00302-BN. This model is designed for SPI only, so it only have 10 pins (actually 9 pins). It can help the soldering work easier.
<https://github.com/loboris/ESP32_TFT_library>

## TTGO wifi \$10 1306 OLED 128x64 with battery

Works well
board type W in my arch
https://www.banggood.com/Wemos-TTGO-WiFi-Bluetooth-Battery-ESP32-0_96-Inch-OLED-Development-Tool-p-1213497.html?rmmds=myorder&cur_warehouse=CN
There is an integrated blue LED on digital pin 16
deep sleep works well on this board, but the sleep current draw is 10mA due to something buzzing on the board (regulator?)

## epaper TTGO T5_V2.3 250x122 2.13"

Works well
GDE0213B1 display
LED on IO19

## epaper TTGO T5s V1.9 264x176 2.7"

sleep works if a nasty workaround is done to wake every 25 seconds for 200ms and draw about 100mA.
Current draw while CPU running and wifi on: about 100mA
Current draw while asleep 10mA (probably the LEDs and audio amp)

Also my wife reads Chinese and she helped me read the IP5306 datasheet (it shuts down if it doesn't see at least 150ms of >45mA power consumption in any 32s window). The hack I used in sw to keep it from killing the board was to wake the CPU from deep sleep every 30 seconds have it burn 100mAish of power for 200ms and then go back to sleep (ugly, but no soldering needed).

LED from IO22 is blue.
AKK-BEV is the 16 pin chip next to audio in and speaker pins, I assume it is the audio amp. If it is like the T4 audio comes from IO25

SPH0645LM4H (little metal can) chip used for the mic input per https://github.com/LilyGO/TTGO-T5S-Epaper/blob/master/ESP32_MEMSMic/ESP32_MEMSMic.ino . To save power make pin 32 held high or low during sleep

i2s_pin_config_t pin_config = {
.bck_io_num = 32, //this is BCK pin OUT
.ws_io_num = 33, // this is LRCK pin OUT
.data_out_num = I2S_PIN_NO_CHANGE, // this is DATA output pin
.data_in_num = 27 //DATA IN
};

Uses good display b/w/r panel: GDEW027C44
<https://github.com/LilyGO/TTGO-T5S-Epaper>
<https://github.com/LilyGO/TTGO-T5S-Epaper/tree/master/epd2in7-demo>
waveshare makes sw for these screens: <https://www.waveshare.com/w/upload/4/4a/E-Paper_ESP32_Driver_Board_user_manual_en.pdf>
<https://www.waveshare.com/wiki/File:E-Paper_ESP32_Driver_Board_Code.7z>
<https://www.waveshare.com/wiki/2.7inch_e-Paper_HAT> &lt;- seems to be the display

## 3 button oled TTGO T4 1.1 240x320 ILI9341 screen

Works well
ID code O
<https://www.banggood.com/Wemos-TTGO-BTC-Ticker-ESP32-Module-For-Arduino-Source-Bitcoin-Price-Ticker-Program-4-MB-SPI-Flash-p-1303223.html?cur_warehouse=CN>
<https://github.com/LilyGO/TTGO-T4-DEMO>

## 3 botton TFT with case, battery, 4MB PSRAM

Same as TTGO T4
(sold as BTC ticker: https://www.aliexpress.com/item/TTGO-T-Watcher-BTC-Ticker-ESP32-for-Arduino-Bitcoin-Price-Ticker-Program-4-MB-SPI-Flash/32890756907.html?spm=a2g0s.9042311.0.0.26fc4c4d51EXTe)

# TTGO-Camera

This board looks interesting: https://github.com/LilyGO/esp32-camera-bme280
I haven't tried it but

# Hardware to avoid

## early versions of the TTGO T5 seem to have issues with staying alive on battery

Anything below v1.2 of this board you probably don't want.
https://www.rogerclark.net/ttgo-t5-eink-display-update/
btw - they seem to have a 1.2 version of this board out and based on the schematic I found they seem to have a much better charge controller.
18 changes: 18 additions & 0 deletions build-publish-all.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
set -e

./incbuild.sh
export PLATFORMIO_BUILD_FLAGS="-DBOARD_TTGO_T4 -DAUTOBUILD"
pio run # -v
./publish-firmware.sh R

export PLATFORMIO_BUILD_FLAGS="-DBOARD_TTGO_T5s -DAUTOBUILD"
pio run # -v
./publish-firmware.sh M

export PLATFORMIO_BUILD_FLAGS="-DBOARD_TTGO_T5_23 -DAUTOBUILD"
pio run # -v
./publish-firmware.sh L

export PLATFORMIO_BUILD_FLAGS="-DBOARD_TTGO_O -DAUTOBUILD"
pio run # -v
./publish-firmware.sh O
Binary file added doc/EA3036_1.1_2015_Jan.pdf
Binary file not shown.
Binary file added doc/INJOINIC-IP5306_C181692.pdf
Binary file not shown.
Binary file added doc/NS4148 audio amp.pdf
Binary file not shown.
Binary file added doc/T5V1.2.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/T5_V1.2_Schematic.pdf
Binary file not shown.
Binary file added doc/TP4054-chargectl.pdf
Binary file not shown.
Binary file added doc/TTGO T4.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file added doc/TTGO wifi oled battery.pdf
Binary file not shown.
Binary file added doc/adafruit-eink-display-breakouts.pdf
Binary file not shown.
Binary file added doc/audio-in.PDF
Binary file not shown.
Binary file added doc/btc-alibabba.pdf
Binary file not shown.
Binary file added doc/btc2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/cp2102n-usb-serial-datasheet.pdf
Binary file not shown.
Binary file added doc/eink-IL91874.pdf
Binary file not shown.
Binary file added doc/t5-mechanical.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/t5s-case-render.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/ttgo-t5.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions incbuild.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
set -e

echo incrementing build number
awk -F " " '{printf("#define VERSION_NUM %d\n", $3+1)}' include/buildnum.h >/tmp/newbuild.h
mv /tmp/newbuild.h include/buildnum.h
39 changes: 39 additions & 0 deletions include/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@

This directory is intended for project header files.

A header file is a file containing C declarations and macro definitions
to be shared between several project source files. You request the use of a
header file in your project source file (C, C++, etc) located in `src` folder
by including it, with the C preprocessing directive `#include'.

```src/main.c

#include "header.h"

int main (void)
{
...
}
```

Including a header file produces the same results as copying the header file
into each source file that needs it. Such copying would be time-consuming
and error-prone. With a header file, the related declarations appear
in only one place. If they need to be changed, they can be changed in one
place, and programs that include the header file will automatically use the
new version when next recompiled. The header file eliminates the labor of
finding and changing all the copies as well as the risk that a failure to
find one copy will result in inconsistencies within a program.

In C, the usual convention is to give header files names that end with `.h'.
It is most portable to use only letters, digits, dashes, and underscores in
header file names, and at most one dot.

Read more about using header files in official GCC documentation:

* Include Syntax
* Include Operation
* Once-Only Headers
* Computed Includes

https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html
Loading

0 comments on commit a71a530

Please sign in to comment.