You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Daniel Rieper 33d249ab13 5 Buttons , Build errors 4 years ago
..
Gerber Still renaming and deleting stuff... 4 years ago
Pictures Still renaming and deleting stuff... 4 years ago
README.md Introducing PCB for Lolin32 + PN5180 + SD_MMC 4 years ago

README.md

ESPuino-PCB based on Wemos' Lolin32 with SD_MCC + PN5180

Introduction

After providing PCBs based on RC522 / SD-SPI it was about time to integrate "the new stuff". New stuff means SD_MMC which leads to significant better performance when it comes to HTTP/FTP-transfer and PN5180 which shows up a much better sensitivity. And finally, as option being configurable by jumper, PN5180 can be used to wake up ESPuino from deepsleep.

Features

  • Fits Wemos Lolin32 (not Lolin D32, Lolin D32 pro or Lolin 32 lite!)
  • Outer diameter: 56 x 93mm (exactly like the first Lolin32-PCB)
  • JST-PH 2.0-connectors for buttons, rotary encoder, Neopixel, RFID, reset and battery (not 2.54mm pitch!)
  • 2.54mm-connectors for MAX98357a and µSD-card-reader.
  • Mosfet-circuit that switches off MAX98357a, Neopixel, headphone-pcb, RFID-reader and µSD-card-reader automatically when deepsleep is active.
  • All peripherals are solely driven at 3.3V! Keep this especially in mind when choosing µSD-reader. If in doubts use one without voltage-regulator (link below).
  • If headphone-pcb is used, MAX98357a is automatically muted when there's a headphone plugged in and vice versa.
  • If HEADPHONE_ADJUST_ENABLE is enabled and a headphone is plugged in, an alternative maximum volume is activated. I added this feature because headphone-pcb makes use of an amp that (probably) "allows" children to damage ears. This maximum volume can be set and re-adjusted via webgui.
  • Reset-pinheader
  • Serial-pinheader
  • Jumper to configure whether PN5180 is switched off in deepleep or not.

Prerequisites

  • If no headphone-pcb is connected, make sure HEADPHONE_ADJUST_ENABLE is disabled.
  • I used 130/130 kOhms-resistors as voltage-divider for MEASURE_BATTERY_VOLTAGE. However, make sure to use a multimeter to determine their exact values in order to achieve a better battery-measurement (was 129 kOhms in my case). They can be configured in settings-lolin32.h as rdiv1 and rdiv2.
  • In my tests, measured values were around 0.1 V too low. If you encounter such a difference you can adjust the offsetVoltage accordingly. But make sure to measure in battery-mode (disconnect USB!).
  • referenceVoltage is the voltage between 3.3 V and GND on the develboard in battery-mode
  • Make sure to edit settings.h (HAL=1) and settings-lolin32.h according your needs (see table below).
  • Enable SD_MMC_1BIT_MODE and RFID_READER_TYPE_PN5180.
  • If you want to wake up ESPuino from deepsleep via PN5180: PN5180_ENABLE_LPCD needs to be enabled as well.
  • Disable RFID_READER_TYPE_MFRC522_SPI and SINGLE_SPI_ENABLE.
  • Don't forget to add jumper for jp1! Connect the upper and the middle pin if you don't want to use LPCD. In this case PN5180 is switched off while deepsleep is active. Connect the middle and the lower pin in order to power PN5180 continously (which is mandatory for LPCD)
  • Make sure Pullup-resistor was removed for GPIO2/MISO.

PCB-Wiring (2 SPI-instances: PN5180 + SD_MMC)

Please refer Schematics for reference.

ESP32 (GPIO) Hardware Pin Comment
MFET 3.3V SD-reader 3.3V
GND SD-reader GND
xx SD-reader CS not necessary!
15 SD-reader MOSI
2 SD-reader MISO
14 SD-reader SCK
MFET 3.3V RFID-reader 5V
MFET 3.3V RFID-reader 3.3V
GND RFID-reader GND
21 RFID-reader NSS
23 RFID-reader MOSI
19 RFID-reader MISO
18 RFID-reader SCK
22 RFID-reader RST
16 RFID-reader BUSY
39 (VN) RFID-reader IRQ Used for LCPD
MFET 3.3V MAX98357 VIN
GND MAX98357 GND
25 MAX98357 DIN
27 MAX98357 BCLK
26 MAX98357 LRC
--- MAX98357 SD Info: if pulled down to GND amp will turn off
--- MAX98357 GAIN Pullup with 100k to 3.3V to reduce gain
34 Rotary encoder CLK Change CLK with DT if you want to change the direction of RE
35 Rotary encoder DT Change CLK with DT if you want to change the direction of RE
32 Rotary encoder BUTTON
3.3 V Rotary encoder +
GND Rotary encoder GND
4 Button (next)
GND Button (next)
36 (VP) Button (previous)
GND Button (previous)
5 Button (pause/play)
GND Button (pause/play)
MFET 3.3V Neopixel V
GND Neopixel G
12 Neopixel DI
17 N-channel Mosfet Gate
33 Voltage-divider / BAT Optional: voltage-divider to monitor battery-voltage
13 Headphone jack Optional: if pulled to GND, headphone-volume is set

Things to mention

  • In contrast to Lolin D32, Lolin32 doesn't feature an integrated voltage-divider. That's why on the lower left there's a JST-PH2.0-connector to connect the LiPo-battery. Make sure to connect (+) to the left und GND to the right. From there you need to solder two short wires (5cm or so) onto the pcb with a JST-PH2.0-connector attached on the other side. This one needs to be plugged into Lolin32 (see pictures-folder). Please note: Lolin's JST-PH2.0-connector needs (+) left side and GND right side. Don't be confused if black/red-colouring of the JST-wires used seems "weird" because is reversed (black => (+); red => GND).
  • Better don't solder Lolin32 directly to the PCB. I recommend to make use of female connectors (as socket) instead (link below).
  • When ordering a LiPo-battery, make sure to use one with deep discharge protection! This is really really really important!!!

Hardware-setup

The heart of my project is an ESP32 on a Wemos Lolin32 development-board. Make sure to install the drivers for the USB/Serial-chip (CP2102 e.g.).

Parts

  • 1x IRL3103 (N-channel MOSFET)
  • 1x NDP6020P (P-channel MOSFET)
  • 1x 1k resistor
  • 2x 10k resistor
  • 2x 100k resistor
  • 2x 130k resistor (can be replaced by 100k; don't use 390k+130k as printed in the circuit => use 2x130k instead!)
  • 5x JST-PH2.0-connector (2 Pins)
  • 1x JST-PH2.0-connector (3 Pins)
  • 1x JST-PH2.0-connector (5 Pins)
  • 1x JST-PH2.0-connector (10 Pins)
  • 1x Jumper (2.54 mm)
  • Female connector as socket for Lolin32
  • (optional for headphone-PCB) 1x IDC-connecor female (6pin)
  • (optional for headphone-PCB) 1x IDC-connecor male (6pin)
  • (optional) 1x 10 uF capacitor (2.0mm-pitch)

Where to order?

I ordered my PCBs at jlcpcb. You have to order at least 5 pcs, which is only at 2$ + shipping. It took two weeks to arrive. If you want to have a look at the PCBs first (without having KiCad installed), visit Gerberlook and upload gerber.zip from the Gerberfiles-folder.

Do I need to install KiCad?

Unless you don't want to change anything: no! All you need to provide are the gerberfiles (gerber.zip) to your manufactur (e.g. jlcpcb). However, all Kicad-files used are provided as well.