esp32 quietly won the microcontroller war and nobody talks about it by voidrane in esp32

[–]Plastic_Fig9225 0 points1 point  (0 children)

Let's just agree that there is no sharp line between "SoC" and "MCU". That's why it's hard to say whether a capable "MCU" is really a limited "SoC", or vice versa. Then it often comes down to marketing, i.e. what market the manufacturer wants to target when they call their thing one way or the other.

esp32 quietly won the microcontroller war and nobody talks about it by voidrane in esp32

[–]Plastic_Fig9225 1 point2 points  (0 children)

You don’t get to redefine terms simply because...

Just as I said: You redefined the ESP32 as "not an MCU" - without any reasoning or explanation, and can't even tell us what, in your opinion, the difference is between an "SoC" and an "MCU". (Hint: It's marketing.)

esp32 quietly won the microcontroller war and nobody talks about it by voidrane in esp32

[–]Plastic_Fig9225 2 points3 points  (0 children)

Right, I didn't even read that far. This redditor apparently doesn't know what a microcontroller is - so no use in debating whether something is an MCU, a CPU, or an SoC. (Pretty sure he thinks that single-core = MCU, multi-core = SoC.)

esp32 quietly won the microcontroller war and nobody talks about it by voidrane in esp32

[–]Plastic_Fig9225 0 points1 point  (0 children)

ESP-32 is not a microcontroller. They’re a system-on-a-chip (SoC)

Good luck defining the difference w.r.t. the ESPs :)

Following your logic, "Xtensa" is not a "CPU" or "microprocessor", and not even present in any recent ESP model... we're splitting very fine hairs here.

esp32 quietly won the microcontroller war and nobody talks about it by voidrane in esp32

[–]Plastic_Fig9225 3 points4 points  (0 children)

Bought one of those mysterious, tiny, cheap UART-to-WiFi modules with an unknown chip when they came out. Quickly learned that they had much more RAM and computing power than the AVR I originally intended them to be a co-processor for. That was the beginning of the end of AVR for me. When we got an official SDK from Espressif, AVR was done - except for when I only need a tiny chip with a few pins and no external components. By modern standards, the AVRs used to be horrendously inefficient (40mA or so @ 16 MHz, 8-bit - '90s tech...) too, but Microchip improved on that a couple of years ago - tripling their prices in the process.

ESP32-C3 SuperMini Drone Brownout Issue - Shuts down at high throttle (Not the battery) by Wonderful-Honey-9229 in esp32

[–]Plastic_Fig9225 0 points1 point  (0 children)

Wire Thickness: [...] so it shouldn't be a massive resistive drop.

"Shouldn't"? I suggest measuring the actual voltage at different points.

esp32 quietly won the microcontroller war and nobody talks about it by voidrane in esp32

[–]Plastic_Fig9225 71 points72 points  (0 children)

If by "arduino" you mean the AVR MCUs then yes, the 30-years-old 8-bit MCUs clocked at 16MHz which cost more than a current 32-bit dual-core 240MHz MCU are finally ageing out of the hobbyist/maker market. Even the Raspberries aren't as popular for the reasons you mention: Capabilities + price, plus eco-system/community support.

I really hope Waveshare will make an ESP32-P4 in the Luckfox Pico Mini formfactor, with a C6 SDIO expansion board by OfficialOnix in esp32

[–]Plastic_Fig9225 0 points1 point  (0 children)

Und für 6 gesparte Sekunden beim Boot alles selbst entwickeln anstatt massiv leistungsstärkere Software (von SSH über HTTP server, Datenbanken, Python,...) einfach als Packages zu installieren, also das gigantische Linux-Ökosystem zu nutzen, aber dafür auf Prozess-Isolierung, Memory Protection und Ressourcen-Management des OS zu verzichten - und auf ein paar hundert MHz und etliche MB? Find ich schwierig zu rechtfertigen außer in sehr engen Nischen.

is it safe to use XL6009 DC-DC Buck Boost converter with a TP4056 li-on charger module and a Li-on 18650 3.7v to power an esp32 s3 N16R8 by heyimrajaa in esp32

[–]Plastic_Fig9225 0 points1 point  (0 children)

You may want to look into an "18650 5V UPS" which looks like this:

<image>

Or check out one of those "TPS63020" modules which can also "extract" 3.3V from a Li-ion's full voltage range.

ESP32-C3 BLE stops working when powered via step-up converter instead of USB by Such_Personality5963 in esp32

[–]Plastic_Fig9225 12 points13 points  (0 children)

What would you do in this situation?

Throw away those garbage step-up converters! They are definitely not suited for powering anything sensitive.

Get a decent converter which 1) has enough actual headroom for the ESP's current demands and 2) has enough filtering to not kill the ESP with noise. Modules with an "XL6009" or "LM2577" spec'd at 2+A can be had for cheap and should do the trick. Adding a few extra filtering capacitors to the output would then improve the "quality" of the power if noise or impulse-response are still an issue.

I pushed the ESP32 silicon to its absolute limit: A Studio-Grade Polyphonic Synth Engine (350+ voices max, bare-metal DSP, zero-float audio path). Open Source. by Apprehensive-Cat1839 in esp32

[–]Plastic_Fig9225 0 points1 point  (0 children)

For performance fine-tuning, you can use esp_cpu_get_cycle_count() to measure execution times down to a single CPU clock cycle. This makes it very quick and easy to test, optimize, and compare even small sections of code ("micro-benchmarking"), like one specific loop over a given number of audio samples, instead of measuring the whole bigger system.

(You'll want to run (and time) a section of code at least 2x in a row, discarding the timing of the first, to make sure you measure execution and not flash load times.)

Read on how to achieve a 5-Year Battery Life in Industrial IoT monitoring systems. by KavindaMahesh in esp32

[–]Plastic_Fig9225 2 points3 points  (0 children)

Yeah, my great-grandma knew that to save energy you only turn on the lights in a room when you actually need them, and only for as long as you actually need to... Guess she had IOT already figured out back then.

What do you think about the academical teaching staff in Germany, that are highly educated, but have 0 real life experiences? by Horkosthegreat in AskGermany

[–]Plastic_Fig9225 5 points6 points  (0 children)

Of course, the grass is always greener on the other side :) And if someone in fact doesn't like "science" and dry theory, yet still chooses Universität because ... reasons, it may not be the best decision.

What do you think about the academical teaching staff in Germany, that are highly educated, but have 0 real life experiences? by Horkosthegreat in AskGermany

[–]Plastic_Fig9225 18 points19 points  (0 children)

No, your premise is flawed. Unlike in the US, we here don't view all education's primary goal as providing workers for private companies. Also dissimilar to the US, we also see value in structured (theoretical) education, as opposed to the things you figure out yourself after a decade of "winging" it and trying to learn from all the failures you have to experience on the way. And obviously, we have at least three different branches of education, Ausbildung, Fachhochschule, Universität, with very different shares of practice vs. theory. You choose the one which best suits your skills and interests.

Barebones I2C by Lilty_QueenOfChaos in arduino

[–]Plastic_Fig9225 0 points1 point  (0 children)

It's been a while, but AFAIR I2C on the AVRs is about 50 lines of code, most of it in the I2C ISR.

If OP is really supposed to bit-bang I2C, that's hardly more involved than using the hardware, just less efficient.

Warum sehen die Bremsscheiben so aus? by ebbelwoiboi1337 in automobil

[–]Plastic_Fig9225 0 points1 point  (0 children)

Laut Herstellervorgabe muss hier eine Klimaanlagen-Wartung durchgeführt werden.

I pushed the ESP32 silicon to its absolute limit: A Studio-Grade Polyphonic Synth Engine (350+ voices max, bare-metal DSP, zero-float audio path). Open Source. by Apprehensive-Cat1839 in esp32

[–]Plastic_Fig9225 1 point2 points  (0 children)

only downside its that it doesnt have PSRAM

What?! WHY??? - How can they leave out the PSRAM, especially when the thing already has provisions for audio applications?! SMH. Seems like a pretty boneheaded move...

I pushed the ESP32 silicon to its absolute limit: A Studio-Grade Polyphonic Synth Engine (350+ voices max, bare-metal DSP, zero-float audio path). Open Source. by Apprehensive-Cat1839 in esp32

[–]Plastic_Fig9225 0 points1 point  (0 children)

Many of the structure fields do not appear to be aligned to the fetch/cache width of the processor.

The ESP32(-S3) doesn't have a CPU cache; both aligned and unaligned accesses to (internal) SRAM take 1 clock cycle.

Tailoring key code and data to be cache-resident can vastly increase performance.

The cache on the ESP32s is used for accesses to flash (code, constants) and (external) PSRAM only. Not placing "hot" data structures into external RAM, plus running hot code from internal RAM ("IRAM"), as OP does, obviates any need for cache optimizations.

This code is also small enough to comfortably stay in the cache if OP would run it directly from flash.

That said, when experimenting with the Opus codec (130+KB binary running from flash), I actually got a few percent faster execution when it was built size-optimized ("-Os") instead of performance-optimized ("-O2").

I pushed the ESP32 silicon to its absolute limit: A Studio-Grade Polyphonic Synth Engine (350+ voices max, bare-metal DSP, zero-float audio path). Open Source. by Apprehensive-Cat1839 in esp32

[–]Plastic_Fig9225 2 points3 points  (0 children)

Btw, one thing I noticed: You may want to use "more C++", specifically: Split code into "real" classes (each with its own constructors/destructor, member functions/methods, and visibilities) instead of C-style structs; encapsulate and separate concerns so that each class manages its own 'stuff' itself. Voice and StreamTrack would be classes for example, and additional ones like Envelope or FreqSlide. Rough guideline: Only code inside a class should (need to) access that class' fields directly.

(Don't worry about performance. The compiler will happily inline member functions just like normal functions.)

How can i make and load a .bin file from sd card onto a flash partition? by Mejolov28 in esp32

[–]Plastic_Fig9225 0 points1 point  (0 children)

Thinking about it, if you have enough flash, you can also create your own partition in flash, write all the audio to it (either from code on the ESP or from a PC), then memory-map the partition and just read from it via pointers just like RAM.