Adafruit MagTag (2024)

ESP32-S2 Bugs & Limitations

Save Subscribe

New Subscription

Please sign in to subscribe to this guide.

You will be redirected back to this guide once you sign in, and can then subscribe to this guide.

Nobody likes bugs, but all nontrivial software and hardware has some. The master list of problems is the Issues list on github.

I2C at 100 kHz bus frequency runs slowly

The default I2C bus clock speed is 100 kHz (100000) . At that rate, the ESP32-S2 will leave 10ms gaps between I2C transactions. This can slow down your I2C interactions considerably, such as when you are controlling a stepper motor with a PCA9685 controller.

Raising the I2C bus frequency to 125 kHz (125000) or higher fixes this problem. If your I2C peripheral can handle higher frequencies, you can use 400 kHz (400000) or even in some cases 1 MHz (1000000).

Note that board.I2C() creates an I2C bus that runs at 100 kHz. The bus frequency cannot be changed.. To create an I2C bus on the default I2C pins that runs at a different frequency, you must use busio.I2C(board.SCL, board.SDA, frequency=).

No DAC-based audio output

Current versions of the ESP-IDF SDK do not have the required APIs for DAC-based audio output. Once a future version of ESP-IDF that adds it, it will be possible to implement DAC-based AudioOut in CircuitPython.

Workaround: PWMOut can create tones and buzzes.

Workaround: I2SOut audio is currently being developed and will work with boards such as the I2S 3W Class D Amplifier Breakout - MAX98357A.

Deep Sleep & Wake-up sources

ESP32-S2 has hardware limitations on what kind of "pin alarms" can wake it. The following combinations are possible:

  • EITHER one or two pins that wake from deep sleep when they are pulled LOW
  • OR an arbitrary number of pins that wake from deep sleep when they are pulled HIGH, and optionally one pin that wakes from deep sleep when pulled LOW

This means that "wake" buttons should be wired so that pressing them pulls HIGH and a pull DOWN resistor is used with the pin. However, in some hardware designs including the original MagTag, the integrated buttons are pulled LOW when pressed and so only 1 or 2 buttons can be selected to wake the MagTag.

This guide was first published on Nov 10, 2020. It was lastupdated on Mar 26, 2024.

This page (ESP32-S2 Bugs & Limitations) was last updated on Mar 08, 2024.

Text editor powered by tinymce.

Related Guides

Adafruit MagTag (2024)
Top Articles
Latest Posts
Article information

Author: Frankie Dare

Last Updated:

Views: 6251

Rating: 4.2 / 5 (53 voted)

Reviews: 84% of readers found this page helpful

Author information

Name: Frankie Dare

Birthday: 2000-01-27

Address: Suite 313 45115 Caridad Freeway, Port Barabaraville, MS 66713

Phone: +3769542039359

Job: Sales Manager

Hobby: Baton twirling, Stand-up comedy, Leather crafting, Rugby, tabletop games, Jigsaw puzzles, Air sports

Introduction: My name is Frankie Dare, I am a funny, beautiful, proud, fair, pleasant, cheerful, enthusiastic person who loves writing and wants to share my knowledge and understanding with you.