|
@ -1,45 +1,37 @@ |
|
|
#include "Arduino.h" |
|
|
#include "Arduino.h" |
|
|
|
|
|
|
|
|
//######################### INFOS #################################### |
|
|
//######################### INFOS #################################### |
|
|
/* This is a develboard-specific config-file for ESPuino complete with port-expander PCA9555. |
|
|
|
|
|
|
|
|
/* This is a config-file for ESPuino complete with port-expander PCA9555. |
|
|
PCB: tba |
|
|
PCB: tba |
|
|
Infos: tba |
|
|
Infos: tba |
|
|
Caveats: None |
|
|
Caveats: None |
|
|
Status: untested / unfinished |
|
|
|
|
|
|
|
|
Status: Test in progress... |
|
|
*/ |
|
|
*/ |
|
|
|
|
|
|
|
|
//################## GPIO-configuration ############################## |
|
|
//################## GPIO-configuration ############################## |
|
|
// Please note: GPIOs 34, 35, 36, 39 are input-only and don't have pullup-resistors. |
|
|
|
|
|
// So if connecting a button to these, make sure to add a 10k-pullup-resistor for each button. |
|
|
|
|
|
// Further infos: https://randomnerdtutorials.com/esp32-pinout-reference-gpios/ |
|
|
|
|
|
#ifdef SD_MMC_1BIT_MODE |
|
|
#ifdef SD_MMC_1BIT_MODE |
|
|
// uSD-card-reader (via SD-MMC 1Bit) |
|
|
// uSD-card-reader (via SD-MMC 1Bit) |
|
|
// |
|
|
// |
|
|
// SD_MMC uses fixed pins |
|
|
// SD_MMC uses fixed pins |
|
|
// MOSI 15 |
|
|
|
|
|
// SCK 14 |
|
|
|
|
|
// MISO 2 |
|
|
|
|
|
|
|
|
// (MOSI) 15 CMD |
|
|
|
|
|
// (SCK) 14 SCK |
|
|
|
|
|
// (MISO) 2 D0 |
|
|
#else |
|
|
#else |
|
|
// uSD-card-reader (via SPI) |
|
|
// uSD-card-reader (via SPI) |
|
|
#define SPISD_CS 15 // GPIO for chip select (SD) |
|
|
|
|
|
#ifndef SINGLE_SPI_ENABLE |
|
|
|
|
|
#define SPISD_MOSI 13 // GPIO for master out slave in (SD) => not necessary for single-SPI |
|
|
|
|
|
#define SPISD_MISO 16 // GPIO for master in slave ou (SD) => not necessary for single-SPI |
|
|
|
|
|
#define SPISD_SCK 14 // GPIO for clock-signal (SD) => not necessary for single-SPI |
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
// Not supported |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
// RFID (via SPI) |
|
|
// RFID (via SPI) |
|
|
#define RST_PIN 22 // Not necessary but has to be set anyway; so let's use a dummy-number |
|
|
|
|
|
|
|
|
#define RST_PIN 99 // Not necessary for RC522 but has to be set anyway; so let's use a dummy-number |
|
|
#define RFID_CS 21 // GPIO for chip select (RFID) |
|
|
#define RFID_CS 21 // GPIO for chip select (RFID) |
|
|
#define RFID_MOSI 23 // GPIO for master out slave in (RFID) |
|
|
#define RFID_MOSI 23 // GPIO for master out slave in (RFID) |
|
|
#define RFID_MISO 19 // GPIO for master in slave out (RFID) |
|
|
#define RFID_MISO 19 // GPIO for master in slave out (RFID) |
|
|
#define RFID_SCK 18 // GPIO for clock-signal (RFID) |
|
|
#define RFID_SCK 18 // GPIO for clock-signal (RFID) |
|
|
|
|
|
|
|
|
#ifdef RFID_READER_TYPE_PN5180 |
|
|
#ifdef RFID_READER_TYPE_PN5180 |
|
|
#define RFID_BUSY 16 // PN5180 BUSY PIN |
|
|
|
|
|
|
|
|
#define RFID_BUSY 32 // PN5180 BUSY PIN |
|
|
#define RFID_RST 22 // PN5180 RESET PIN |
|
|
#define RFID_RST 22 // PN5180 RESET PIN |
|
|
#define RFID_IRQ 39 // PN5180 IRQ PIN (only needed for low power card detection) |
|
|
|
|
|
|
|
|
#define RFID_IRQ 99 // PN5180 IRQ PIN (only needed for low power card detection) |
|
|
#endif |
|
|
#endif |
|
|
// I2S (DAC) |
|
|
// I2S (DAC) |
|
|
#define I2S_DOUT 25 // Digital out (I2S) |
|
|
#define I2S_DOUT 25 // Digital out (I2S) |
|
@ -49,8 +41,8 @@ |
|
|
// Rotary encoder |
|
|
// Rotary encoder |
|
|
#ifdef USEROTARY_ENABLE |
|
|
#ifdef USEROTARY_ENABLE |
|
|
#define ROTARYENCODER_CLK 35 // If you want to reverse encoder's direction, just switch GPIOs of CLK with DT (in software or hardware) |
|
|
#define ROTARYENCODER_CLK 35 // If you want to reverse encoder's direction, just switch GPIOs of CLK with DT (in software or hardware) |
|
|
#define ROTARYENCODER_DT 34 // Info: Lolin D32 / Lolin D32 pro 35 are using 35 for battery-voltage-monitoring! |
|
|
|
|
|
#define ROTARYENCODER_BUTTON 105 // (set to 99 to disable; 0->39 for GPIO; 100->115 for port-expander) |
|
|
|
|
|
|
|
|
#define ROTARYENCODER_DT 34 |
|
|
|
|
|
#define ROTARYENCODER_BUTTON 105 |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
// Amp enable (optional) |
|
|
// Amp enable (optional) |
|
@ -61,8 +53,8 @@ |
|
|
#define NEXT_BUTTON 102 // Button 0: GPIO to detect next |
|
|
#define NEXT_BUTTON 102 // Button 0: GPIO to detect next |
|
|
#define PREVIOUS_BUTTON 103 // Button 1: GPIO to detect previous |
|
|
#define PREVIOUS_BUTTON 103 // Button 1: GPIO to detect previous |
|
|
#define PAUSEPLAY_BUTTON 100 // Button 2: GPIO to detect pause/play |
|
|
#define PAUSEPLAY_BUTTON 100 // Button 2: GPIO to detect pause/play |
|
|
#define BUTTON_4 101 // Button 4: unnamed optional button |
|
|
|
|
|
#define BUTTON_5 104 // Button 5: unnamed optional button |
|
|
|
|
|
|
|
|
#define BUTTON_4 104 // Button 4: unnamed optional button |
|
|
|
|
|
#define BUTTON_5 101 // Button 5: unnamed optional button |
|
|
|
|
|
|
|
|
// Channels of port-expander can be read cyclic or interrupt-driven. It's strongly recommended to use the interrupt-way! |
|
|
// Channels of port-expander can be read cyclic or interrupt-driven. It's strongly recommended to use the interrupt-way! |
|
|
// Infos: https://forum.espuino.de/t/einsatz-des-port-expanders-pca9555/306 |
|
|
// Infos: https://forum.espuino.de/t/einsatz-des-port-expanders-pca9555/306 |
|
@ -95,20 +87,20 @@ |
|
|
|
|
|
|
|
|
// (optional) Monitoring of battery-voltage via ADC |
|
|
// (optional) Monitoring of battery-voltage via ADC |
|
|
#ifdef MEASURE_BATTERY_VOLTAGE |
|
|
#ifdef MEASURE_BATTERY_VOLTAGE |
|
|
#define VOLTAGE_READ_PIN 33 // GPIO used to monitor battery-voltage. Change to 35 if you're using Lolin D32 or Lolin D32 pro as it's hard-wired there! |
|
|
|
|
|
constexpr float referenceVoltage = 3.35; // Voltage between 3.3V and GND-pin at the develboard in battery-mode (disconnect USB!) |
|
|
|
|
|
constexpr float offsetVoltage = 0.1; // If voltage measured by ESP isn't 100% accurate, you can add an correction-value here |
|
|
|
|
|
|
|
|
#define VOLTAGE_READ_PIN 39 // GPIO used to monitor battery-voltage. |
|
|
|
|
|
constexpr float referenceVoltage = 3.3; // Voltage between 3.3V and GND-pin in battery-mode (disconnect USB!) |
|
|
|
|
|
constexpr float offsetVoltage = 0.0; // If voltage measured by ESP isn't 100% accurate, you can add an correction-value here |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
// (optional) For measuring battery-voltage a voltage-divider is necessary. Their values need to be configured here. |
|
|
// (optional) For measuring battery-voltage a voltage-divider is necessary. Their values need to be configured here. |
|
|
#ifdef MEASURE_BATTERY_VOLTAGE |
|
|
#ifdef MEASURE_BATTERY_VOLTAGE |
|
|
constexpr uint16_t rdiv1 = 100; // Rdiv1 of voltage-divider (kOhms) (measure exact value with multimeter!) |
|
|
|
|
|
constexpr uint16_t rdiv2 = 33; // Rdiv2 of voltage-divider (kOhms) (measure exact value with multimeter!) => used to measure voltage via ADC! |
|
|
|
|
|
|
|
|
constexpr uint16_t rdiv1 = 100; // Rdiv1 of voltage-divider (kOhms) |
|
|
|
|
|
constexpr uint16_t rdiv2 = 100; // Rdiv2 of voltage-divider (kOhms) => used to measure voltage via ADC! |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
// (Optional) remote control via infrared |
|
|
// (Optional) remote control via infrared |
|
|
#ifdef IR_CONTROL_ENABLE |
|
|
#ifdef IR_CONTROL_ENABLE |
|
|
#define IRLED_PIN 22 // GPIO where IR-receiver is connected (only tested with VS1838B) |
|
|
|
|
|
|
|
|
#define IRLED_PIN 0 // GPIO where IR-receiver is connected (only tested with VS1838B) |
|
|
#define IR_DEBOUNCE 200 // Interval in ms to wait at least for next signal (not used for actions volume up/down) |
|
|
#define IR_DEBOUNCE 200 // Interval in ms to wait at least for next signal (not used for actions volume up/down) |
|
|
|
|
|
|
|
|
// Actions available. Use your own remote control and have a look at the console for "Command=0x??". E.g. "Protocol=NEC Address=0x17F Command=0x68 Repeat gap=39750us" |
|
|
// Actions available. Use your own remote control and have a look at the console for "Command=0x??". E.g. "Protocol=NEC Address=0x17F Command=0x68 Repeat gap=39750us" |
|
|