4
\$\begingroup\$

We are planning to add WiFi and BLE5 capabilities to our hardware and have narrowed down the module choices to ESP32_C3_MINI_1U and ESP32_C3_WROOM_02U. Unfortunately I lack any hands-on experience with ESP modules to make a final decision.

The only two differences between them seem to be packaging and flash, with MINI having it embedded into SoC and WROOM using in-module SPI chip. I'd prefer to use castellated WROOM package as easier for prototyping and PCB routing, however I am worried about performance difference when using external flash.

It is interesting that Technical reference does not mention embedded flash in its "internal memory" section at all. All the references to flash are made in a context of external SPI memory. Furthermore, the pinout in C3 datasheet has this note:

Ports of embedded flash correspond to pins of ESP32-C3FN4 and ESP32-C3FH4 as follows ... These pins are not recommended for other uses.

I think this means that the "embedded" flash is just a generic SPI flash die slapped onto SoC silicon and connected to SPI lines, which otherwise would be used by external chip. If this is the case then there should not be any real differences between the two.

Questions:

  1. Is there any performance difference between the chips with embedded and external flash?
  2. Is there any code difference, i.e. is code portable and do developers even care about this?
\$\endgroup\$
7
  • \$\begingroup\$ I rarely hear anything good about these ESP32. Why would you use some SoC instead of a proper microcontroller with memory-mapped peripherals? \$\endgroup\$
    – Lundin
    Commented Dec 15, 2021 at 7:34
  • \$\begingroup\$ @Lundin Umm... but it does have memory-mapped peripherals (at 0x6000_0000 .. 0x600D_0FFF), doesn't it? In any case, all our hardware is STM32L4 based. All we need is a BLE-5 bridge to Android app (for remote control) and SoftAP + basic web server (for configuration and DFU). These modules seem to satisfy the requirements and have tons of open source SW available to help reduce development time. \$\endgroup\$
    – Maple
    Commented Dec 15, 2021 at 7:49
  • \$\begingroup\$ @Lundin ... but if you have some better options to suggest for this task, I am all ears :) Oh, I also forgot to mention that it will be connected via CAN network. Not many WiFi modules support that, unfortunately. \$\endgroup\$
    – Maple
    Commented Dec 15, 2021 at 8:02
  • \$\begingroup\$ @Lundin I can say great things about the ESP32 series, for what it's worth. It is not right for all designs of course but I've found it very useful. \$\endgroup\$
    – TypeIA
    Commented Dec 15, 2021 at 9:03
  • \$\begingroup\$ CAN makes it more complicated indeed, I'm actually working on a similar project with CAN, no WiFi but sub-GHz propriety RF as well as BLE. Silabs have various MCUs with built-in RF parts but those MCUs don't come with a CAN controller. We ended up with a STM32 instead, with built-in CAN controller. Then separate RF parts using ICs from Silabs, no pre-made modules like ESP32. \$\endgroup\$
    – Lundin
    Commented Dec 15, 2021 at 9:05

2 Answers 2

1
\$\begingroup\$

I think this means that the "embedded" flash is just a generic SPI flash die slapped onto SoC silicon and connected to SPI lines, which otherwise would be used by external chip. If this is the case then there should not be any real differences between the two.

This is the correct assumption. ESP32­-C3-­MINI-­1(U) module features ESP32-C3F[HN]4 SoC integrated on a module, which differs from casual ESP32-C3 SoC (found on ESP32-C3-WROOM-02 module) by more integrated peripherals.

If you take a look at part 2 of the datasheet for MINI modules it explains the difference and you can see that the on-die flash memory are still connected on the SPI bus:

ESP32-C3F(HN)4 diagram

As opposed to ESP32-C3-WROOM-02 datasheet:

ESP32-C3 diagram

You can see even this one uses Quad SPI (QSPI) lines for the SPI flash so there shouldn't be any difference on the flash memory speed. Only difference are in the module sizes and integration levels. This answers your first question.

As for the second - it's a no too. There is no difference between code. ESP32 provides SDK called IDF. Code generated for ESP32-C3 or ESP32-C3-F[HN]4 will be the same as it features the same RISC-V core and peripherals.

\$\endgroup\$
1
  • 1
    \$\begingroup\$ After reading several times through all the available documentation I somehow missed "SPI" on that tiny block depicting embedded flash :( thanks! \$\endgroup\$
    – Maple
    Commented Dec 15, 2021 at 7:37
0
\$\begingroup\$

The only practical difference between ESP32_C3_MINI_1U and ESP32_C3_WROOM_02U is that ESP32_C3_MINI_1U is limited to 4MB of flash and there are no upgrade possible.

The ESP32_C3_WROOM_02U on the other hand is available with 4MB but also has an upgrade path to 8MB with the same footprint so you have the option to upgrade if you discover later that you need more flash memory.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.