Introducing the FeatherS2 Neo! The Blingy RGB ESP32-S2 Development Board in the Feather format!
FeatherS2 Neo Specs
- 32-bit 240 MHz single-core processor
- 4 MB SPI Flash
- 2 MB extra PSRAM
- 2.4 GHz Wi-Fi - 802.11b/g/n
- 3D antenna
- 700 mA 3.3 V LDO regulator
- Optimised power path for low-power battery usage
- LiPo battery management
- Power (red), Charge (orange) & IO13 (blue) LEDs
- 5x5 RGB LED matrix + User controller power
- 22x GPIO
- VBAT voltage sense on IO2
- VBUS detection om IO34
- RGB LED (PWR 39, DATA IO40)
- QWIIC/STEMMA connector
- Feather format
Packed with features
The FeatherS2 Neo has onboard LiPo battery charging, 4MBs of flash, an on-board RGB LED that can be shut down to reduce deep sleep current and a generous 700mA output 3.3V regulator.
It also comes with a 5x5 RGB LED Matrix that includes its own user controlled LDO so display content wont effect other 3.3V functionality of the board.
FeatherS2 Neo also has 2MB of extra PSRAM on top of the 320K SRAM and 22 GPIO broken out.
FeatherS2 Neo Pinout
Code & Schematic
Ships with CircuitPython pre-installed!
FeatherS2 Neo ships with a UF2 bootloader and the latest version of CircuitPython that supports the ESP32-S2.
Just plug your FeatherS2 Neo into your computer and it will appear in your filesystem as a USB flash drive! Just copy your code over, or edit your code directly on the drive. Coding a microcontroller has never been easier!
As newer versions of CircuitPython are released, you are able to update as you require from circuitpython.org
Code any way you like!
There is also early ESP-IDF and Arduino support if you prefer coding in C++ and there is an early MicroPython port available as well - use the links above to find out more about each development environment.
Click here for a full schematic
- The red power LED doesn't light up when running off battery
- That is by design! The power and charge LEDs and corresponding 2K resistors drain the battery, so they have been isolated to the 5V power domain, so they will only light up and draw power when the board is either being power by the USB plug, or by a 5V power source connected to the 5V header pin.
- The orange charge LED blinks when no battery is connected
- That is the correct behaviour! The charge IC can’t tell the difference between a full battery and no battery, so it cycles between trying to charge and not charge. You can disable the orange status LED by cutting the solder jumper on the back of the FeatherS2 Neo.
- Sometimes my battery doesn't start charging when I plug it in
- If you have 5V power connected to your FeatherS2 Neo before you plug your battery in, sometimes it might not start charging. Just unplug and re-plug in the 5V source and it should start charging correctly. This is a common issue with PMICs (Power Management ICs).
- How do I read the battery voltage?
- The FeatherS2 Neo can read an approximate voltage from a connected battery via IO2. If you are using CircuitPython, you can also read board.VBAT or use the FeatherS2 Neo helper provided.
- Can I check if there is 5V present?
- FeatherS2 Neo has the ability to check if a 5V power source is connected to the board by reading if IO34 or board.VBUS is high. This allows you to alter your code when running off battery when you have a 5V source present or not… pretty cool :)
- RX & TX pins are not coupled with the internal USB, what are they used for?
- RX & TX are connected to UART0, which will give you internal debug output when in download mode. Otherwise, you can use them as UART0 when connecting a module that uses serial, or use them as general IO, it's up to you.
- How can I flash my FeatherS2 Neo in Arduino?
If you currently have CircuitPython or MicroPython installed or have flashed your FeatherS2 Neo via the IDF and you would like to use your device in the Arduino IDE, you will need to put it into download mode by holding [BOOT], clicking [RESET] and then releasing [BOOT]. That will enable the CDC USB in ROM and you will be able to select the device port in the Arduino IDE tools menu.
This only needs to be done once, while you keep working in the Arduino IDE, so long as you have the FeatherS2 Neo board selected and you have CDC boot enabled selected in the menu.
- Can I switch between CircuitPython, MicroPython, IDF or even Arduino IDE?
- You can switch between each development environment, but each time you will need to put the FeatherS2 Neo into download mode by holding [BOOT], clicking [RESET] and then releasing [BOOT] and then flashing the respective firmware you require onto the board.
- How can I get my FeatherS2 Neo into UF2 bootloader mode?
To get your FeatherS2 Neo into UF2 bootloader mode (assuming you have not stomped your CircuitPython install with Arduino/IDF or MicroPython) you can click [RESET], then almost immediately click [BOOT] to get it into the UF2 bootloader mode. You will then see the RGB LED on your FeatherS2 Neo turn green once the filesystem is mounted,
A drive will appear in your filesystem called FS2NEOBOOT. From here you can re-flash the latest CircuitPython firmware by copying over the firmware.uf2 file for the version you want to install.
You will see the RGB flash a redish orange many times during the copy, and then the FeatherS2 Neo will automatically reboot itself and mount the new CircuitPython version.
- What voltage range can the 5V pin accept and is it input as and output?
The 5V pin on the FeatherS2 Neo is an in and out pin. As an input, it will accept a voltage range between 4.8V and 5.2V. Please do not connect any power source over 5.2V to the 5V pin and please do not connect your battery to the 5V pin. It is for a 5V power source only.
When USB power is connected, you will get approximately 4.9V out of the 5V pin. The voltage drop is due to the reverse USB power diode that allows the USB and 5V pin to be power inputs at the same time, and prevents back feeding power into the USB.
The use case for having both connected is when you want to power your FeatherS2 Neo from the 5V pin from an external 5V power source, but you also want to connect the USB to flash the board, or to get serial output.