Hacker News new | ask | show | jobs
by snvzz 1069 days ago
Based on a pre RISC-V ESP32.

Unfortunate.

5 comments

I’m going to say that people buying this product from Arduino for ostensibly using with the Arduino IDE is not going to care much about using a pre-RISC-V chip.
Frankly as a ESP32 + arduino software stack user if they do it right no one will really notice. I've not had a single instance where the ISA was even visible.

AKA its 100% C++ code sitting on top of arduino wrapping various open source libraries. The result is that it can run on multiple microcontrollers after carefully tweaking the C based interrupt registration and a couple other small bits.

I've sorta wanted to play with the Xtensa cores, but haven't found a reason to.

I wouldn't say this is necessarily a bad thing. The S3 is the most powerful ESP chip to date in terms of raw CPU power and even has AI and DSP instructions, esoteric things like direct CPU GPIO and more, I was kind of suprised to see such a powerhouse used for the Nano.
No, it's fortunate! RISC-V support is still a second-class citizen in ESP-IDF.

RISC-V support only just landed in ESP-IDF. Give it a couple more years imo to reach full feature parity.

Two issues with this:

* Arduino SDK does not rely on ESP-IDF, so this doesn't matter.

* Irrespective of when it landed, ESP-IDF already supports RISC-V ESP32 devices well, and will increasingly focus on RISC-V devices thereon, as Espressif is committed to RISC-V going forward.

What's the difference?
The OG ESP32 and successors esp32-S2 and ESP32-S3 use an ISA from company Tensilica called Xtensa LX6 (LX7 for the S3). The ESP32 C and H series use RISC-V. Xtensa is pretty well supported by compilers at this point, but RISC-V is on the rise and will have better support going forward. At this point in time, the S3 is the speediest ESP32 and is well supported, so it probably doesn't make a big difference.

ISA: https://en.wikipedia.org/wiki/Instruction_set_architecture

https://en.wikipedia.org/wiki/ESP32

It's not just this, but also that Espressif CEO's expressed their desire to focus on RISC-V[0].

Thus, a new Arduino platform is being created out of a deprecated family of MCUs, the Tensilica-based ESP32s.

0. https://www.eenewseurope.com/en/espressif-moves-exclusively-...

Deprecated in microcontroller land means you should probably move away sometime within the next 10 years or so. And being on the bleeding edge can be quite painful. So I think Xtensa based ESP32 was a good choice, for a first board. It will have the best support for at least another 3 years. And possibly way longer.

Also, arguably the entire Arduino brand started on a deprecated (and much less capable) platform, the Atmel AVR8. It was not an issue either.

Arduino’s decision process doesn’t make sense to me. The Uno R4 Wifi is another instance of selecting an ESP32-S3, but pretty much treating it as a dumb peripheral to a lower seed main MCU.
The move when using the IDF is quite smooth though.
What are the non-Espressif targets for an Xtensa compiler? Could be there's some other fun embedded chips to use with it
risc-v espressif can run rust now I think?
Rust can be compiled to most Espressif MCUs. The critical difference is if there is standard library support. ESP8266 is an older design but can still be a Rust no_std target [0]. Espressif did release a board [1] for use with Rust training designed for the board [2].

0. https://esp-rs.github.io/book/overview/index.html

1. https://github.com/esp-rs/esp-rust-board

2. https://esp-rs.github.io/std-training/

Also: https://github.com/esp-rs/awesome-esp-rust

Hey thanks for the links, you seem very knowledgable ;) I am actively looking for any good information or even good hacker communities using ESP32 for some hobby embedded things. Care to recommend any? Thanks again!
I’m just a beginner myself, learning slowly. There is so much out there that a recommendation would need more information about your goals. Something that I recommend elsewhere in this topic is Dronebot Workshop. That person has well done videos with an excellent companion website. One of the tricks is understanding what information is too old to be helpful.

A very accessible starter project that I would suggest is to use an Wemos Mini esp8266 and an 8x8 led panel. Desolder leads from the panel and solder the 5v, ground and d4 pin from the Wemos to it. Attach to computer via usb and open the WLED website below to load the firmware on the ESP. Then open the on-ESP website or use the WLED app to go wild with colors.

https://kno.wled.ge/

LED Panel: https://www.amazon.com/gp/aw/d/B01DC0IMRW

Wemos mini: https://www.amazon.com/Organizer-ESP8266-Internet-Developmen...

Nearly any Wemos Mini D1 clone will work.