Giter Club home page Giter Club logo

esp32-touchdown's Introduction

ESP32 TouchDown

Where to buy?

Available from:

FreeTouchDeck

Your ESP32 TouchDown comes with FreeTouchDeck pre-installed. Check out this simple start guide: With FreeTouchDeck pre-installed

ESP32 TouchDown

ESP32 TouchDown

While working on FreeTouchDeck, I really wanted to use capacitive touch. Unfortunately, most modules I could find were resistive touch and capacitive touch has a much nicer user experience. While I was designing, it made sense to put the ESP32 on the board itself, removing the need for an ESP32 Dev board. I wanted to take full advantage of the ESP32 wireless capabilities (Wifi, BLE) so I included a battery management circuit. ESP32 TouchDown can run off of a LiPo battery and also charge it. Here is a full list of the features:

  • ESP32-WROOM-32D
  • ILI9488 480*320 TFT screen in 4-wire SPI mode
  • FT62x6 Capacitive Touch Controller
  • APK2112 3.3V regulator (On V1.1 of the board an AP7365 is used, see changelog.txt)
  • MCP73831 battery management IC (On V1.1 of the board a Shouding SD8016 is used, see changelog.txt)
  • CP2102 USB-to-UART bridge
  • USB-C connector
  • microSD card holder
  • Battery voltage divider connected to GPIO35
  • Passive buzzer connected to GPIO26
  • 12 unused GPIO's broken out
  • Stemma / JST-PH I2C connector

ESP32 TouchDown works out of the box (as ESP32 Dev Module) with the Arduino IDE, providing you have installed the ESP32 Arduino Core. If you have not, this is where you can find it: https://github.com/espressif/arduino-esp32.

Documentation:

Documentation can be found in the Wiki.

TFT screen and touch controller

ESP32 TouchDown uses an 480x320 screen with an ILI9488 (datasheet) driver. There are numerous drivers out there, but I found TFT_eSPI by Bodmer the most versatile. https://github.com/Bodmer/TFT_eSPI.

Pins used by the TFT screen are:

  • GPIO2 -> DC_RS
  • GPIO4 -> TFT_RESET
  • GPIO15 -> TFT_CS
  • GPIO18 -> SPI Clock
  • GPIO23 -> SDI (MOSI)

The TFT backlight anode (positive supply) is selectable via a jumper on the back. You can either power it directly from 3.3V or use GPIO32. By default, the positive source is GPIO32. You can this pin and use PWM to control the backlight brightness.

Note: On V1.1 of the board the jumpers used are with bridged pads. So by default have no solder blob. See changelog.txt

TFT Backlight Select

The touch controller is a FocalTech FT62x6 (datasheet). The first batch uses an FT6236 and the second batch of boards has the FT6206. Both have the same I2C address of 0X38. I made an Arduino IDE library available here: https://github.com/DustinWatts/FT6236. This library also supports the FT6202.

Pins used by the FT62x6 are:

  • GPIO21 -> I2C data
  • GPIO22 -> I2C clock
  • GPIO27 -> IRQ

GPIO Breakout

The following GPIO's are broken out on the header:

  • GPIO 12
  • GPIO 13
  • GPIO 14
  • GPIO 16
  • GPIO 17
  • SCK (GPIO 18, used as SPI clock)
  • SDO (GPIO 19, used as SPI MOSI)
  • SDA (GPIO 21, used as I2C data)
  • SCL (GPIO 22, used as I2C clock)
  • SDI (GPIO 23, used as SPI MISO)
  • GPIO 33
  • GPIO 34 (note: INPUT only!)

SD Card

The following pins are used by the SD card holder:

  • GPIO 25 --> CD/DAT3
  • GPIO 23 --> CMD
  • GPIO 18 --> CLK
  • GPIO 19 --> DAT0

CD (card detect) DAT1 and DAT2 are not connected.

Speaker (buzzer)

  • GPIO 26

Uploading code to the ESP32 TouchDown

For FreeTouchDeck installation instructions see: https://github.com/DustinWatts/FreeTouchDeck/wiki/1.-Installation

For other code: The ESP32 TouchDown uses the same configuration as an ESP32 Dev Module. So you can use those board definitions to upload your own code to the ESP32 TouchDown: Arduino IDE board settings

Open Source

Everything about the ESP32 TouchDown is open source. This means I provide you will all the designs I make. In this repository, you will find the KiCad project, including schematic, and board layout. Also, the complete BOM is available to you. I have included the datasheets of all the hardware used.

License                   OSHW

Support Me

If you like what I am doing, there are a number of ways you can support me.

Platform Link
Twitter You can follow me on Twitter: @dustinwattsnl
YouTube You can subscribe to my channel on Youtube: /dustinWatts
Patreon You can support me by becoming a patron on Patreon: https://www.patreon.com/dustinwatts
PayPal.me You can make a one time donation using PayPal.me: https://www.paypal.me/dustinwattsnl

Help

For quick access to help you can join my Discord server where I have a dedicated #esp32-touchdown channel. https://discord.gg/RE3XevS

esp32-touchdown's People

Contributors

andrewkowal avatar bergdahl avatar dustinwatts avatar stopspazzing avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

esp32-touchdown's Issues

rotation or flip?

Hello!
Is there a way to set the rotation of the screen in the config? I have mine mounted in a stand that will require it to be flipped vertically.

Thanks!

not only keys

I like this keyboard klawiatura.wordpress.com/
because volume control, big knob/potenciometer is better than keys.
Is possible add virtual knob for wolume? of linear potenciometer too?

for example for tempest game knob or linear volume control or object 3d manipulation.

second idea from https://klawiatura.wordpress.com/wersja-mini/ is moving panel info to your keyboard.
Why not free up screen space? clock, ethernet indicator, whitch screen You use, network metter etc. Why not movit this information to keyboard?

Case models in STEP format?

Is there any chance the case models could be posted in STEP or IGES or perhaps Solidworks native format?

(Solidworks doesn't like working with STL files.) It's not a showstopper to have to start from scratch but it would be nice to have a starting point for designing a new case.

Please add BOM entry for the TFT

Thanks for sharing your design. I couldn't find the TFT you are using in the BOM. Can you please add it with model number or a link to a vendor?

(By TFT I mean the entire TFT subassembly, not just the TFT or touch controller ICs).

Thanks.

Screw size for mounting holes

Hey there, awesome project!

Sorry for the dumb question... but what is the recommended screw size for the four (4) mounting holes on the corners of the PCB (both diameter & length) when using the printable cases located within this repo?

I tried to find the info in this repo and on Tindie but wasn't able to find it anywhere 😢

Thx!

Other Screen Options

Hi, can we use other screen options like bigger higher resolution ones? are there a plug and play alternatives there for replacing ILI9488? Can we make the screen use a bit more abstract and interchangeable?

FLASH from PlatformIO requires BOOT+RESET buttons?

I am trying to load new firmware to the Touchdown using PlatformIO. I have not tested with Arduino IDE.

The only way I can get it to flash is to use the BOOT and RESET buttons. Is this normal / expected ?

Use R61529 instead of ILI9488

Using R61529 is a good alternative, it is compatible with ILI9481 code, supports RGB565 or RGB666, IPS screen, supports i80 interface 8-bit or 16-bit

IMG_20220423_200219

White Screen?

Hi Dustin,

love the design and the idea.

I bought all the products you recommended, pcb from pcbway ILI9488 screen and ESP32-WROOM-32D and ive followed your youtube tutorial https://www.youtube.com/watch?v=s2X4BQ9VmEU&t=515s&ab_channel=DustinWatts.

I've got an issue which im sure is on my end with my config.

I have a white screen it strobes a little bit my user_setup.h is exactly as the video any suggestions on how to fix?

Touch function not working

Hi Dustin. A while ago I bought your TouchDeck and it worked out of the box including touch control. I am now trying to install something else and have tested with ESP32_TouchDown_Drawing.ino and ESP32_TouchDown_Keyboard.ino. The sketches compile without errors and start up fine, but the touch function does not work. The touch library (https://github.com/DustinWatts/FT6236) is installed correctly so that shouldn't be a problem. Can you help me? Regards, Hans.

KiCad footprints folder is incomplete

Hi there,
Fantastic project! Due to worldwide product shortages, I would like to replace several hardware components and print a customized PCB using substitute parts which I have in stock. However KiCad folder only contains 4 of the 24+ total footprints in your PCB file:

Hirose_FH12-40S-0.5SH_1x40-1MP_P0.50mm_Horizontal_flipped.kicad_mod
INGHAi GSC1625YB-3V4000.kicad_mod
microSD_TF-01A-C91145.kicad_mod
TS-1088R-02526.kicad_mod

Would it be possible for you to update the following folder to include all KiCad footprints (.pretty folder)?

esp32-touchdown/Hardware/ESP32_TouchDown_Rev1/ESP32_TouchDown_lib.pretty/

Thank you and Kind Regards

SPI port configuration issues

I followed your tutorial to configure the pins of the Esptouchdown as follows :
#define TFT_BL 32 //TFT_LED
#define TFT_MISO 19 //SDO
#define TFT_MOSI 23 //SDI
#define TFT_SCLK 18 //SCK
#define TFT_CS 15 //TFT_CS
#define TFT_DC 2 //DC_RS
#define TFT_RST 4 //TFT_RESET
#define TOUCH_CS 21 //I2C SDA
#define SCL_I2C 22 //I2C SCL

I tried to install an example you attached to the repository, but it just comes up with a "gray screen" like in the picture.
So I tried to use the Arduino_GFX library which allows you to create a software SPI and the result does not change.
Where am I doing wrong ?

2023-02-16-104329

Where to buy aka Crowdfunding?

Hello,

are they any plans to make a batch of full function pcbs? or a crowdfunding project?

Not everyone have the skill to make a one board?

Problems using User_Setup.h

Hi Justin. Can you help me use your ESP32 TouchDown V1.0? I am unable to get any output on the screen, I am using version 2.5.34 of the TFT_eSPI library and in the library folder (../libraries/TFT_eSPI) I have replaced the file User_Setup.h with yours (see link below). Compilation runs without error messages but there is no output on the screen. I hope to hear from you.

https://raw.githubusercontent.com/DustinWatts/esp32-touchdown/main/Examples/TFT_eSPI%20Setup%20Example/User_Setup.h

Examples broken

The examples are broken due to the removal of
'''
#define TFT_BACKLIGHT_ON HIGH // Level to turn ON back-light (HIGH or LOW)
'''

Currently, the screen remains empty since the TFT_BL pin defaults to LOW. Maybe add a simple PWM function to give the user an idea of how to handle the brightness of the backlight such as:
'''
void TFT_SET_BL(uint8_t Value)
{
if (Value < 0 || Value > 100)
{
Serial.println("Error setting TFT Backlight level");
}
else
{
analogWrite(TFT_BL, Value * 2.55);
}
}
''' (Modified from Bodmer/TFT_eSPI#142)

Another solution would be to inform them that they are responsible for enabling the backlight.

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.