Giter Club home page Giter Club logo

esp32picoremote's Introduction

ESP32PicoD4_TFT_Remote

WiFi remote based on ESP32 Pico D4 MCU and a beautiful 160x80 pixels mini TFT display. Additionally there is a I2C temperature & humidity sensor as well as an accelerometer on board.

Assembling video is on my Youtube.

The power latching circuit ensures that the ESP32 Pico D4 don't need to be in deep sleep mode while in OFF state. This puts it down to around 3µA during 'sleep', due to the battery protection. It can be woke up only by the middle button. The battery protection occupies reverse voltage protection through the mosfet. Overdischarge voltage of the XB5353A is 2.4volts, which is only for safety reasons. The battery voltage should always be checked with the voltage divider, which gives you an estimation of the battery state.

Main components are:

  • ESP32 Pico D4
  • CP2102N USB to serial bridge
  • 160x80px ST7735 13pin TFT display
  • HDC1080 temperature and humidity sensors
  • LIS3DHTR accelerometer
  • WS2812 LEDs
  • XB5353A battery protection
  • SE7401U polarity
  • MCP73831 charging
  • RT9193 regulator
  • Molex 3D antenna

Circuit & PCB

pico32_remote_v1.0 was the initial schematic of this PCB. Unfortunately it occupies a few mistakes:

  • Button two is connected to the ESP32 directly behind the button, which gives VCC directly to one of the GPIOs of the MCU - meh. The 1k resistor should be between the pulldown and the button.
  • Furthermore the footprint of the LIS3DHTR is mirrored (not visible in the schematics).
  • Last but not least the VUSB of the USB-C connector and the power selection circuit wasn't connected properly because the VUSB on one side was just a label and not the name of connection itself - shame on me.

All these mistakes are fixed in version 1.1. Additionally I have added a USB activation diode, which enables the latching circuit ones a USB cable is plugged into the board. This is nice to have if you want to visualize battery charging. Another advantage is that one of the buttons don't have to be pressed during firmware upload.

Code

Check out the code in the 'code' section. It is used in PlatformIO, but can be shifted to Arduino IDE easily. The code is exactly the same.

The ST7735 display can be used easily with the TFT_eSPI library by Bodmer. This library comes with a User_Setup.h to setup the dedicated display you are using. I have attached this file for this specific board in the code section of this repo.

Another nice library to play little GIFs on that tiny display is the AnimatedGIF library by Larry Bank. He shared a nice tool for converting GIFs to a code array as well.

Milled case

It is not yet optimized but the bottom part is looking great. The top part should move left and right while pushing the buttons, unfortunately it doesn't due to the small holes in PCB and bottom part. An easy solution would be to use two elongated holes in the top part (the screw heads would be visible on the top part).

When you have questions then feel free to ask.

Have fun! :)

esp32picoremote's People

Contributors

makermoekoe avatar morkoen 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

esp32picoremote's Issues

Auto RESET USB

Hi!
Thanks for posting a good project!
On Instagram, you wrote about the problem of automatic firmware management via USB
In your circuit, there are no resistors in a pair of transistors.
They are present in the official scheme of NodeMСU.
Maybe this is the problem?

image
image

Buttons

Hey!
Could you please tell me what do you mean by “ It can be woke up only by the middle button.”?

As the schematic shows it should be powered on by both of the buttons or if not then which one is the middle button?

Thank you!

What about PMIC?

Have you thought about replacing all the power supply controls with a microcircuit PMIC (Power Management IC)?

Example: X-Powers AXP173
It already contains:

  • Power Path (Power selection BAT/USB)
  • 2 DC/DC
  • 4 LDO
  • Charge control
  • Gas Gauge (how much charge is left in the battery)
  • Button On/Off
  • QFN-32

Using PMIС would greatly simplify the circuit :)

Clarify license

Hi @makermoekoe, thanks for sharing your sources. I saw your video and was inspired, and thought I could "steal" some of your design for my work.

However, stealing is not nice, so I'd rather work with permission. It would be very neat if you could provide a license for your work, such that it becomes easy to get inspired by take some parts of it, and create more awesome stuff.

If you don't want to bother with this legal stuff and just want to allow everything, consider CC-0 as a license. Otherwise, the other CC licenses are usually a good choice for this kind of work.

Thanks!

Edit: I just found this awesome new wizard for choosing a CC license. Of course, alternatives to CC would also be very nice, see for example choosealicense.com.

Latching Circuit

Hi Sir,
thanks for your sharing such excellent project.
I have a question about the latching circuit. How does it works, could you explain it please? I can find some basic work flow of it.

  • while USB insert, EN_LDO high, it will enable the LDO.
  • Button 1 or Button 2 pushed, EN_LDO high, it will enable the LDO.
  • LATCH low, power off LDO, right?

Why there are tow button, how about just one button?

Two question (USB-C and Battery)

Hello all,

Thanks for creating such an awesome project! I really learn a lot from looking at the schematics and code.

For a project I am working on I wanted to use the USB-C part from your schematics. However I find many different variants of the USB-C, some with just 6 pins, up to 32 with many options in between. In your schematic you use one that only shows 7 pins, do you maybe have the exact component name of the USB-C you have used?

About the battery part I had also a question, you use the XB5353A (protection) and MCP73831 (charge) to manage the LiPo battery, I'm wondering if these IC's allow the battery to be discharged at the same time it's charged? The TP4056 for example does not allow this, since this can result in an overcharge failure detection, but I'm unable to find anything about it in the IC datasheets you have used.

Thanks for any help :)

Porting compilation problem

Hello, I encountered "No hardware SPI pins defined. All SPI access will default to bitbanged output" when I was porting to arduino. Is there any impact on this?

Battery protection circuit

Hello sir , i saw your work its awesome. I am little confused about the battery protection circuit. Its a P channel mosfet you used there and gate connected with the Gnd. Can you please explain me how it works because protection ic have its own VM which also connected to Gnd. I really want to know how this circuit work's

Does the latching circuit send higher voltage to MCU?

Greetings!
This is so neat product :)

Does the latching circuit send higher voltage to MCU?
BUTTON and BUTTON2 are only connected with 1K, 5.1K resistor,
so VCC(4.2V) divides to 3.51V, is it okay for the 3.3V MCU GPIO?

Thank you so much

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.