Adafruit ESP32 Feather boards

These are Adafruit's Feather-format boards based on the ESP32, a low-power microcontrollers with integrated Wi-Fi and dual-mode Bluetooth, developed by the Chinese company Espressif Systems. It's based on an Xtensa dual-core (or single-core) 32-bit LX6 microprocessor, operating at 160 or 240 MHz, and features 4 Mbyte of flash and 520 Kbytes of RAM.

The ESP32 version of uLisp uses some of the flash memory to emulate EEPROM, so as on other ESP32 boards you can save the workspace using (save-image).

Because the ESP32 doesn't include native USB the boards include a UART chip. Early boards featured the CP2102N, but due to supply issues current boards are shipping with the pin-compatible CH9102F which needs the installation of a driver from the Chinese manufacturer's website.

Boards

Adafruit ESP32 Feather V2

Adafruit ESP32 Feather

Installing uLisp from the Arduino IDE

Installing the ESP32 Arduino core

  • Install the ESP32 Arduino core.
  • Select ESP32 Arduino from the Board menu.
  • Select the Adafruit Feather ESP32 V2 or Adafruit Feather ESP32 board option, as appropriate.

You can leave all the other options at their defaults.

Upload uLisp

  • Download the latest ESP version of uLisp from the Download uLisp page.
  • Select the board's USB port from the Port menu
  • Upload uLisp to the board.

If you are having problems uploading, and you have the CH9102F version of the board, make sure you have installed the CH9102F driver (even on Mac); see Arduino IDE setup.

Putting the board into upload mode

If the upload fails you may need to put the board into upload mode first.

  • Press the RESET button.

Using uLisp

  • You may need to press the RESET button again.
  • Select Serial Monitor from the Tools menu.
  • Enter Lisp commands.

Adafruit ESP32 Feather V2

The ESP32 Adafruit ESP32 Feather V2 [1] is a new version of Adafruit's popular HUZZAH32 ESP32 Feather board. It has 8 Mbytes of flash, twice as much as the original board:

ESP32FeatherV2.jpg

The board also includes 2 Mbytes of PSRAM, and the latest release of uLisp allows you to use this for the Lisp workspace, giving a workspace of 260000 objects.

The board has the following additional features:

  • A NeoPixel RGB LED.
  • A Stemma QT connector giving access to the I2C port.
  • A user button.

It's available with a PCB antenna (as above), or a w.FL antenna.

Note that several of the pin numbers have changed from the original ESP32 feather board.

Pins

For details of the pin connections see Adafruit ESP32 Feather V2.

LEDs

The Adafruit ESP32 Feather V2 has a built-in red LED on :led-builtin (pin 13), and a NeoPixel on pin 0. The NeoPixel is driven by a separate 3.3V regulator, and to enable it you need to take pin 2 high.

Analogue inputs

The Adafruit ESP32 Feather V2 has 14 analogue inputs, on pins 4, 12 to 15, 25 to 27, 32 to 36, and 39:

A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13
25 26 34 39 36 4 14 32 15 33 27 12 13 35

There is also an analogue input to monitor the LiPo battery voltage on pin 35.

Analogue outputs

The Adafruit ESP32 Feather V2 has two DAC analogue outputs on pins 25 and 26.

Serial

The Adafruit ESP32 Feather V2 has one serial port, Serial1, on pin numbers 7 (RX) and 8 (TX). By default the baud rate is 9600.

SPI

The Adafruit ESP32 Feather V2 has one SPI port on pin numbers 21 (MISO), 19 (MOSI), and 5 (SCK), and 33 (SS).

I2C

The Adafruit ESP32 Feather V2 has one I2C port, Port 0, on pin numbers 22 (SDA) and 20 (SCL). It is also available on the STEMMA QT port. The 3.3V available on the STEMMA QT connector is from the NeoPixel driver, and to enable it you need to take pin 2 high.

Button

There is a user button on pin 38. There is a pullup on the board making it normally high; pressing it takes it low.

Adafruit ESP32 Feather

The Adafruit ESP32 Feather (HUZZAH32) [2] adopts the same format as Adafruit's other Feather boards, making it compatible with a number of their interface boards:

ESP32Feather.jpg

It's based on the ESP-WROOM-32 version of the ESP32, and uses the Silicon Labs CP2104 USB to serial chip for USB connectivity. A bonus is a JST connector for a Lipo battery, and a Lipo charger to allow the battery to be charged from the USB port.

For information about the I/O pins and interfaces see: Adafruit HUZZAH32 - ESP32 Feather Pinouts.

Installing uLisp from the Arduino IDE

  • Install the ESP32 Arduino core version 2.0.3 or later.
  • Select ESP32 Arduino from the Board menu.
  • Select the Adafruit ESP32 Feather board option.

You can leave the other options at their defaults.

LEDs

As is traditional for Arduino boards the Adafruit ESP32 Feather has a red LED connected to the digital pin 13 which you can flash with the following program:

(defun blink (x)
  (pinmode 13 t)
  (digitalwrite 13 x)
  (delay 1000)
  (blink (not x)))

Run it by typing:

(blink t)

Exit by entering ~.


  1. ^ Adafruit ESP32 Feather V2 on Adafruit.
  2. ^ Adafruit HUZZAH32 - ESP32 Feather Board on Adafruit.