Link to PrettyPins PDF on GitHub.
There are two ways you can power the ESP32-C6 Feather, as well as other related pins.
- USB-C port - This is used for both powering and programming the board. You can power it with any USB C cable. When USB is plugged in it will charge the Lipoly battery.
- LiPoly connector/charger - You can plug in any 250mAh or larger 3.7/4.2V Lipoly battery into this JST 2-PH port to both power your Feather and charge the battery. The battery will charge from the USB power when USB is plugged in. If the battery is plugged in and USB is plugged in, the Feather will power itself from USB and it will charge the battery up.
- Chg LED - When the battery is charging, the yellow CHG LED will be lit. When charging is complete, the LED will turn off. If there's no battery plugged in, the CHD LED may blink rapidly - this is expected!
- GND - This is the common ground for all power and logic.
- BAT - This is the positive voltage to/from the 2-pin JST jack for the optional Lipoly battery.
- USB - This is the positive voltage to/from the USB C jack, if USB is connected.
- EN - This is the 3.3V regulator's enable pin. It's pulled up, so connect to ground to disable the 3.3V regulator.
- 3.3V - These pins are the output from the 3.3V regulator, they can supply 500mA peak.
On the back of the Feather is a jumper labeled Charger Disable. If you cut this jumper, you'll disable the LiPoly battery charging circuit. This means that you could use the JST-PH battery port with non-LiPoly batteries, such as AA or AAA battery packs.
This is the ESP32-C6 module. It is a 32-bit RISC-V single-core processor that operates at up to 160 MHz. This version of the module has 4MB of flash and no PSRAM. It supports WiFi 6 in a 2.4GHz band, Bluetooth 5, Zigbee 3.0, and Thread. It's pin-to-pin compatible with the ESP32-WROOM series module. With low-power consumption, it is an ideal choice for a variety of IoT projects!
The Adafruit MAX17048 LiPoly / LiIon Fuel Gauge and Battery Monitor reports the voltage and charge percent over I2C. Connect it to your Lipoly or LiIon battery and it will let you know the voltage of the cell, and it does the annoying math of decoding the non-linear voltage to get you a valid percentage as well!
The battery monitor is available over I2C on address 0x36.
Our Arduino or CircuitPython/Python library code allows you to read the voltage and percentage whenever you like. There is no pin on the ESP32-C6 Feather that returns battery voltage, but this I2C monitor makes it super simple to get that data!
These are the logic pins that can be used to connect FeatherWings, sensors, servos, LEDs and more!
There are three sets of shared pins on the Feather: Boot/NeoPixel/IO9, A2/IO6 and A3/IO5. Be careful when using these pins.
There are six analog pins:
- A0 thru A5 can also be analog inputs.
The ESP32-C6 Feather does not have a DAC, so you cannot do true analog out.
ESP32 chips allow for 'multiplexing' of almost all signals. There is support for SPI, UART, I2C, I2S, RMT, TWAI, and PWM on any pin. The Feather has a few specially designated pins for pin compatibility with FeatherWings and preexisting code:
The SPI pins:
- SCK - This is the SPI clock pin (IO21).
- MOSI - This is the SPI Microcontroller Out / Sensor In pin (IO22).
- MISO - This is the SPI Microcontroller In / Sensor Out pin (IO23).
The UART interface:
- RX - This is the UART receive pin (IO17). Connect to TX (transmit) pin on your sensor or breakout.
- TX - This is the UART transmit pin (IO16). Connect to RX (receive) pin on your sensor or breakout.
The I2C interface. This is shared by the STEMMA QT connector.
- SCL - This is the I2C clock pin (IO18). There is a 5k pullup on this pin.
- SDA - This is the I2C data pin (IO19). There is a 5k pullup on this pin.
-
In CircuitPython, you can use the STEMMA connector with
board.SCL
andboard.SDA
, orboard.STEMMA_I2C()
. In Arduino, you can access these pins withWire
. -
There is an I2C power pin (IO20) that needs to be pulled high for the STEMMA QT connector to work properly. CircuitPython and Arduino do this automatically. It is available in CircuitPython and Arduino as
NEOPIXEL_I2C_POWER
. This pin also controls the NeoPixel power.
The digital pins:
- IO0, IO5-IO9, IO12, IO15 - These are digital pins. IO9 is shared with the Boot button and onboard NeoPixel, IO6 is shared with A2 and IO5 is shared with A3.
Check the ESP32-C6 datasheet or the PrettyPins diagram above for more details on each pin if you need them!
There are two LEDs you can control in code.
-
NeoPixel LED - This addressable RGB NeoPixel LED, labeled Neo on the board, can be controlled with code. It does not act as a status LED in CircuitPython because it shares a pin with the Boot button (IO9). It is available in CircuitPython as
board.NEOPIXEL
, and in Arduino asPIN_NEOPIXEL
. - There is a NeoPixel power pin that needs to be pulled high for the NeoPixel to work. It is the same pin as the I2C power pin (IO20). This is done automatically by CircuitPython and Arduino. It is available in CircuitPython and Arduino as
NEOPIXEL_I2C_POWER
. -
Red LED - This little red LED, labeled 15 on the board, is on or blinks during certain operations (such as pulsing when in the bootloader), and is controllable in code. It is available in CircuitPython as
board.LED
, and in Arduino asLED_BUILTIN
or15
.
The NeoPixel and Boot button are both connected to IO9.
This JST SH 4-pin STEMMA QT connector breaks out I2C (SCL, SDA, 3.3V, GND). It allows you to connect to various breakouts and sensors with STEMMA QT connectors or to other things using assorted associated accessories. It works great with any STEMMA QT or Qwiic sensor/device. You can also use it with Grove I2C devices thanks to this handy cable.
There is a power pin (IO20) that must be pulled high for the STEMMA QT connector to work. This is done automatically in CircuitPython and Arduino. The pin is available in CircuitPython and Arduino as NEOPIXEL_I2C_POWER
. You can manually cut power to the QT port completely by setting this pin to an output and low. This will disable power to the connector for low power usage.
There are two buttons on the ESP32-C6 Feather.
- Reset button - This button restarts the board and helps enter the bootloader. You can click it once to reset the board without unplugging the USB cable or battery.
- The RST pin is can be used to reset the board. Tie to ground manually to reset the board.
-
Boot button - This button can be read as an input in code. It is connected to pin IO9, which is also broken out separately on the Feather. It is available as
board.BUTTON
in CircuitPython, and pin9
in Arduino. Simply set it to be an input with a pullup. This pin is shared with the onboard NeoPixel. This button can also be used to put the board into ROM bootloader mode. To enter ROM bootloader mode, hold down DFU button while clicking reset button mentioned above. When in the ROM bootloader, you can upload code and query the chip usingesptool
.
Text editor powered by tinymce.