ESP32-S31
Posted by volemo 6 days ago
Comments
Comment by randomint64 6 days ago
RISC-V cores is a big deal for embedded systems because now compiling for SoCs is only a matter of `rustup target add riscv32imac-unknown-none-elf` instead of downloading half-broken proprietary toolchains and SDKs.
Take a look at https://kerkour.com/introduction-to-embedded-development-wit... and https://kerkour.com/rust-esp32-pentest to get started with modern (Rust ;) embedded development.
Comment by phkahler 6 days ago
Yes, but it looks like there is no hardware floating point. The description of the CORDIC module indicates fixed-point calculations, which is consistent with the lack of any reference to floating point.
I am happy the have CAN-FD and Motor PWM module, but nowhere did I see conversion times listed for the ADC. For motor control I demand 1uS conversion time or less, and in the last year I've switched from fixed point to floating point after holding off on that switch for ~15 years.
Comment by polpo 6 days ago
Comment by BenjiWiebe 6 days ago
Comment by BenjiWiebe 6 days ago
I don't know much about motor control, is it normal to need that fast of feedback?
Comment by phkahler 6 days ago
It's not that important if you use current sensors on the motor phases. But then you're looking at HALL sensors or a shunt with a very high gain amplifier with good common mode rejection - looking for mV signals on top of a +12V or +48V square wave at PWM frequency.
By using low-side shunts under each half-bridge you don't need the common mode rejection, but you can only measure phase current while the low side FET for that phase is on. That means limiting the PWM duty cycle to ensure that FET is on long enough to measure current, so we trade available voltage range for sample time.
I've also written code to measure all phase voltages with a single low-side current shunt under the whole 3-phase bridge. That requires careful phase shifting of the PWM signals and very fast conversion time, but you don't have to compromise available voltage range 0-100 percent duty cycle is possible.
Typically we run the control loop at PWM frequency, but the measurements need to be faster than that.
Comment by namibj 5 days ago
Comment by actionfromafar 6 days ago
Comment by topspin 6 days ago
Fast feedback loops are also necessary in SMPS, another area where precision, low latency MCU peripherals and software are actively displacing traditional approaches.
Comment by imtringued 5 days ago
Comment by namibj 5 days ago
Comment by tomcam 6 days ago
I’ll see myself out of the Internet now.
Comment by PowerElectronix 6 days ago
If the sensor has a limited bandwidth, you add the conversion delay and then the computation delay on top of that you end up with a max workable loop bandwidth in the low tens of kHz and anything higher will have overshoots, oscillations, etc.
Comment by topspin 6 days ago
Comment by mianos 5 days ago
Comment by topspin 5 days ago
Comment by mianos 4 days ago
Comment by GeorgeTirebiter 5 days ago
If one is trying to do some assembly line (max # of operations per second), the power requirements alone get hard to manage. And then you're managing back EMF, eddy currents, heck, air resistance!
My rule: have dedicated low-level hw provide smooth PID response, mostly on the P term; and have a higher-level control produce the setpoint. Faster response means less need to rely on I or D terms as much (just because delta-T is so relatively small).
Comment by nathanfries 6 days ago
Comment by greenavocado 6 days ago
Comment by andynerd 5 days ago
Comment by NooneAtAll3 6 days ago
Comment by amelius 6 days ago
Comment by nine_k 5 days ago
Comment by kelnos 5 days ago
Comment by jamesmunns 5 days ago
Comment by cassepipe 6 days ago
Comment by mentalpagefault 6 days ago
I = Base integer instruction set, 32-bit
M = Standard extension for integer multiplication and division
A = Standard extension for atomic instructions
C = Standard extension for compressed instructions
https://en.wikipedia.org/wiki/RISC-V#ISA_base_and_extensions
Comment by cassepipe 6 days ago
Comment by NekkoDroid 6 days ago
Comment by snvzz 6 days ago
Needn't use the long thing.
Comment by NekkoDroid 5 days ago
The point I wanted to make is that nowadays a lot of the extensions do not have such a nice (semi) easy to remember name.
Comment by sukuva 5 days ago
Comment by tux3 6 days ago
The non-single-letter extensions should make you feel more at home. Like the supervisor instructions. You have Smcntrpmf which helps with benchmarking by pausing perf counters during traps. I think Smcntrpmf just rolls off the tongue nicely.
Then there's a lot of extensions that start with Z followed by a sprinkling of random letters which is secretly an abbreviation you couldn't have guessed. For instance you have your SHA-2 instructions in Zvknha and Zvknhb, since that's the Vector Krypto NIST Hashes.
Comment by JdeBP 6 days ago
Comment by NooneAtAll3 6 days ago
Comment by taude 6 days ago
Something that combines: 3d printing; auto procurement of parts; custom software writing; maybe a robot arms or something, all in a nice box on my desk that I feed parts into like a mail slot. PROFIT.
Comment by all2 6 days ago
- PCB etching/engraving
- Solder placement
- component placement
- solder oven
This gets you one layer populated PCBs out the other side. Commercial systems like this exist in various forms, and open source projects for all of these also exist. It would be up to you to integrate them together.
As it stands, the frontier models are actually pretty ok at firmware dev at a high level. If you need max performance, they won't be any good at all (learning from the dregs of the internet isn't exactly helpful here). You'll also need to bring at least a willingness to learn about what is involved so you can debug the machine's mistakes.
Comment by ecesena 5 days ago
Comment by hugojan 5 days ago
Comment by nekiwo 5 days ago
https://bitbanksoftware.blogspot.com/2024/01/surprise-esp32-...
Comment by Havoc 6 days ago
Comment by ape4 6 days ago
Comment by moffkalast 6 days ago
Comment by Teknoman117 6 days ago
I place far, far more blame on companies like Qualcomm, Broadcom, Imagination Technologies (PowerVR), etc.
Go look at any of the non-microcontroller RISC-V based SoCs. It's not any better on any metric. Upstream software support is little to non-existent. Basically every RISC-V board needs a vendor kernel and they all have device tree and u-boot hell.
The SoC providers that make powerful chips are in the market of selling more chips - bad external support is a feature for them. Means that when they stop supporting the product you have to come buy a new chip. And if everyone does that, there's no better company to switch to because they all treat you the same.
About the only SoC vendor I have any respect for is Texas Instruments because they actually upstream a bunch of their code. Honestly I think this is because most of their parts are aimed industrial products and have support cycles >10 years.
I intentionally didn't say Rockchip because while they're in a bunch of hobby boards they don't really help with open source hardware work. They just take the position of "we won't stop you, but we're not going to help you".
Comment by tosh 6 days ago
Comment by bobmcnamara 6 days ago
But with the weird alignment thing fixed
Comment by andylinpersonal 5 days ago
Comment by throwaway81523 6 days ago
Comment by andynerd 5 days ago
Comment by alnwlsn 6 days ago
Kind of like how in every thread involving a Raspberry Pi Pico (RP2030/RP2350), there's always someone confusing it with the single board computer version.
The ESP32 (Classic, usually WROOM-32E) is still usually what comes to mind when I hear ESP32.
Comment by peteforde 6 days ago
There's not 10+ versions with different features. The word version strongly implies that there's an incremental progression over time, and they keep screwing up by adding and taking away modules. What jerks!
What's actually happening is that you have 4-5 different product lines that all share the same SDK, design philosophy, pricing structure, supply chain and support channels. Each one of these dimensions is extremely important to engineering teams designing products around them. It's not about hobbyists who are learning the ropes, although IMO they do a pretty good job of supporting those folks, too.
Within those lines (at this point, primarily S, C, H and P) you actually do have versions; for example, ESP32-S2 is no longer recommended for new designs because you should use ESP32-S3.
Ultimately, the lens you need to use to understand this stuff is: can I place an ESP32-labeled chip on my PCB and program it using the same SDK?
The same is true for the RP2XXX series of MCUs; if someone is confused by the difference between a microcontroller and a SBC then they might just be in the wrong place.
Bigger picture, some advice: when confronted by something like this, you will get further faster if you don't lead with the assumption that you have things figured out and everyone else is doing it wrong. Instead, keep an open mind and ask lots of questions. We're living in a golden era of enabling autodidacts but that's only true for folks who go long on humble curiosity.
Comment by alnwlsn 5 days ago
Espressif only have 312 SKUs [0]. You're telling me nobody could come up with a naming scheme where more than 2/3 of them don't have part numbers longer than 18 characters?
Doesn't really matter either way, but short part numbers do fit nicely in a BOM table without using really wide columns. (even though I usually find capacitors to have even longer names).
Comment by peteforde 5 days ago
Comment by alnwlsn 5 days ago
Part number was still just 15 characters, and that's enough to specify if you want the tape and reel version. Not that anyone's counting :).
I guess those long part numbers do get burned into your head after a while after all.
Comment by nancyminusone 6 days ago
Comment by peteforde 5 days ago
You're seeing either incompetence or conspiracy when the opposite is true.
Comment by reaperducer 6 days ago
They've been hanging around with Sony.
Apple: AirPods
Sony: WMDF559J649Q-1
Comment by volemo 6 days ago
Comment by pantalaimon 6 days ago
Comment by vitally3643 6 days ago
Comment by yonatan8070 6 days ago
Comment by randyrand 6 days ago
Comment by JCTheDenthog 6 days ago
Comment by 9rx 6 days ago
Comment by kelnos 5 days ago
(I don't have an issue with Espressif's ESP32-* naming scheme, but I don't think the ESP-IDF angle is a good argument for not changing it.)
Comment by 9rx 5 days ago
Comment by Etheryte 6 days ago
Comment by brokensegue 5 days ago
Comment by andrewstuart 6 days ago
Comment by asadm 6 days ago
Comment by frikk 6 days ago
My preferred controller platform is of the QuinLED line - comes with power distribution, voltage regulators, fat copper lines, configurable data-line resistors, and smart auxiliary hardware support all for an affordable $30-$50 per controller. (quinled.info)
<https://kno.wled.ge/> - WLED homepage and probably my favorite clever URL of all time.
Comment by wolvoleo 6 days ago
Comment by ssl-3 6 days ago
WS2812 with any ESP32 board is one way, and that's a perfectly fine way; individual addressable LEDs sure are neat as hell. Amazing stuff can be done with them. And as you already know, a Chinese ESP32 dev kit costing $2 is enough to do ~all the things with this on the controller side. :)
But there's other ways, too. At perhaps its simplest: Maybe RGB isn't your bag, and you just want groups (which could be strips or any other shape) of all one color that are smoothly-controllable with WLED.
This is electrically simpler: While individual WS2812 pixels each work as a little computer-brain repeater for a serial bus, a group of dumb LEDs can be as simple as just being a group of dumb LEDs. And that's easy; perhaps as easy as one PWM channel.
Or maybe it's more complex: Maybe the goal is something like a par can that shines RGBAW all in one direction. Now we need 5 PWM channels.
Anyway, the power electronics for doing PWM with dumb LEDs can be built or they can be bought, but they need to exist and to live somewhere.
QuinnLED sells devices with power electronics in packages ranging from bare boards, to complete units with metal housings that have power and real ethernet on one side of the box and LED outputs on the other side.
Since skillsets and willingness to go full-DIY vary, they present pretty nice range of options.
One box I just looked at, the QuinLED An-Penta-Plus: It's a box that has 5 channels of PWM, does up to 10A per channel, or up to 30A combined per box -- at up to 48VDC.
That's [up to] 30*48=1440 Watts of LED, which is getting in the realm of the silly. But environment/projects come in all sizes, people do silly things with LEDs sometimes, and that's all perfectly OK. WLED projects don't have to be small. :)
Comment by wolvoleo 5 days ago
My question was why use bare LEDs with a separate PWM controller like QuinnLED instead of WS2812. But yes size could be an issue. Long strings of WS2812 tend to get slow and if they all need to do the same thing at the same time it's ok.
Comment by ssl-3 5 days ago
Maybe my project involves developing automatically-adjustable color temperature indirect lighting for a semi-permanent exhibit space, where the color temperature is based on that of the light cascading in through the glass windows during the day and softening things to a low color temperature at night.
That space doesn't ever need to be colorful, but it does need to be bright. And while adjustable CT lighting does exist in the commercially-available form, perhaps there's nothing off-the-shelf that fits this space so I have to DIY parts of it.
And maybe doing good stuff with WLED is already a skill that I have, so I want to use WLED.
Hardware-wise, I can get there with dense parallel strips of warm and cool white LEDs with a good color rendering index from vendors like BTF. I'll already have a lot of work ahead of me with the design and installation challenges (like managing heat, power distribution, and diffusion). I can reduce the work required by driving it with a pre-fab controller from QuinnLED.
And no aspect of this project needs colors other than two shades of white that are carefully mixed together, and none of it needs things to be pixel-addressable. It's not that WS2812 is slow (nothing here needs to be fast); it's that the advantages of WS2812 aren't wanted or useful.
Including extra features detracts from the main goal, and isn't KISS. :)
So instead, dumb LEDs can make sense. They don't have to be smart.
---
Or: Maybe my project wants density, instead. Maybe it involves a carnival attraction, and wants aspects of something like an Atomic 3000 LED from Martin[1]: https://www.martin.com/en-US/products/atomic-3000-led
Those are easy-enough to buy, but they're ~$4,000 each and that's way out of my budget.
Besides, they talk DMX instead of WLED, and DMX is a very different universe. WS2812 is straight out, just because WS2812 in any form lacks the density required for the intensity desired.
So I'll have to come up with something -- maybe I can refit a Chinese "UFO light" that runs on 36 or 48VDC or something internally, if I can find one, so as to reduce it to being just a collection of dumb LEDs.
And then, again, I'll need a controller for whatever I come up with.
I may just buy a controller for those dumb LEDs from QuinnLED for $40 -- I certainly can't build a box like that for this kind of price.
[1]: I was in front of a row of these at a Nine Inch Nails concert several months ago. Their use was very conservative until the very end -- at which point I felt like the intensity of the strobe effects was melting a part of my brain. The flashes were the brightest white imaginable, but the after-images were a bizarre and murky background haze of red and blue that lacked a definite source. 10/10, don't try this at home.
Comment by gedy 6 days ago
Comment by wolvoleo 6 days ago
Comment by leptons 6 days ago
Comment by wolvoleo 6 days ago
It was probably my use of the word 'controller' that is a bit confusing.
Comment by leptons 5 days ago
Comment by gedy 6 days ago
Comment by wolvoleo 6 days ago
I just connect them to a microcontroller pin and be done with it. I power them separately off a power bank (my LEDs are almost always worn, if they are static I just use an off-the-shelf 5V supply).
Comment by poyu 6 days ago
Comment by wolvoleo 6 days ago
I use a few hundred at most and in those cases I just feed power at several points in the chain to reduce resistive losses in the wiring. But yeah I'm kinda interested what kind of huge installations would need that and how they work.
Comment by GitPushOrigin 5 days ago
Comment by stragies 6 days ago
Comment by redfast00 6 days ago
> Since bitwise operations can be relatively CPU-intensive and DMA is designed specifically to offload such work from the CPU, ESP32-S31 integrates two dedicated peripherals called BitScramblers. These modules are designed to transform data formats during transfers between memory and peripherals. One BitScrambler handles memory-to-peripheral (or memory-to-memory) transfers, while the other is dedicated to peripheral-to-memory transfers. While BitScramblers can handle the bitwise operations mentioned earlier, they are in fact flexible, programmable state machines capable of performing more advanced transformations as well.
Here's hoping that it's as useful as the Pi Pico's PIO
Comment by utopcell 6 days ago
Comment by oritron 6 days ago
If you're excited about the (relatively) speedy RISC-V cores and SIMD, look at the P4 which is available now. It has a slightly faster clock but no wireless: https://products.espressif.com/#/product-comparison?names=ES...
There's some cool work out there using the dsp functionality and built in image handling to crunch a lot of pixel data, which should work similarly on the S31: https://www.reddit.com/r/WLED/comments/1ry2jd7/wledmmp4_with...
Comment by jamwise 6 days ago
Comment by polpo 6 days ago
Comment by Aurornis 6 days ago
Although we lost the MIPI support that the P4 dual-core RISC-V line has.
Comment by apitman 6 days ago
Comment by tetris11 6 days ago
Comment by LeifCarrotson 6 days ago
A few SoCs provide integrated PHY transceivers, but usually it's an external chip.
[1]: https://www.ti.com/lit/ds/symlink/dp83867e.pdf
[2]: https://yageogroup.com/content/datasheet/asset/file/DATASHEE...
Comment by tetris11 5 days ago
Comment by BenjiWiebe 6 days ago
Comment by alnwlsn 6 days ago
Usually have to do this for any interface when the signals don't come in right at logic level, like CAN, RS-485...
although it's not always exactly 'just' logic level conversion.
Comment by jml7c5 6 days ago
Comment by volemo 6 days ago
Comment by jml7c5 4 days ago
Comment by einpoklum 6 days ago
https://github.com/eyalroz/printf/
I would like to make sure the library can be used on this SoC, and other RISC-V systems; which it probably can, but if there are any issues cross-compiling for it, or using the toolchain Espressif provides, please consider filing a bug report on GitHub at the link above. Same of course goes for any FOSS librar/tool that you're trying out.
Let's help foster a rich(er) ecosystem of software available on these babies!
Comment by lucamark 6 days ago
Comment by skybrian 6 days ago
What's the state of Bluetooth audio out on microcontrollers? Is low latency and high quality output possible?
Comment by oritron 6 days ago
If you want to really cut down latency and need wireless with hardware like this, you could use a second ESP32 and send your own bitstream between them.
Comment by timothyb89 6 days ago
Practical bandwidth limits are in the ~72kb/s range with Bluetooth and a custom wire protocol, and Opus voice-mode encoding can't run in realtime beyond complexity 3; music encoding can't run at all. Maybe there's a more compute-friendly audio codec I'm not aware of, but as far as I know these chips just aren't quite powerful enough for high-quality music encoding, unfortunately. I'm hoping the S31 might be a bit better fit here (decent CPU boost + better SIMD).
Latency is still a bit rough with BT overhead. There might be some new options with LE audio on the S31 but I haven't found a way to get below ~80ms with the existing ESP32-S3 stack.
tl;dr, high quality voice is doable today with okay latency, music probably less so, maybe the S31 will be better
Comment by oritron 6 days ago
ESP-NOW is another option to look at, which of course won't work to transmit to a phone directly but can do a point-to-point or multicast transmission between ESP32 devices. I've used it in some projects but not for audio, I couldn't tell you how much of a buffer would be needed to make that work smoothly.
Another option for OP, if the audio is being synthesized then the parameters could be transmitted rather than the audio samples themselves and do synthesizing on the receiving device.
Comment by bschwindHN 5 days ago
Code is here:
Comment by timothyb89 5 days ago
Comment by AshamedCaptain 5 days ago
What exactly did you try?
Comment by timothyb89 5 days ago
Comment by AshamedCaptain 5 days ago
Comment by bobmcnamara 6 days ago
Comment by tliltocatl 6 days ago
Comment by numpad0 6 days ago
Comment by skybrian 6 days ago
Comment by mrandish 6 days ago
Sorry, I don't know. I'm just responding to echo and expand on another reply that Bluetooth for anything related to serious music, from audio playback to MIDI input is a dumpster fire on Windows.
Several years ago I tried to set up a high-end Windows laptop for hobby DAW composition on the go. The real-world BT audio latency just from laptop to headphones/earbuds was unworkable and, separately, the input latency from BT midi controllers was unworkable. Stacked together the total lag was laughable.
At the time, the issues were widely known and much lamented. Some tech blogs (including one at MSFT) indicated there were issues at every level of the stack (drivers, firmware, silicon) and work was proceeding to address the end to end shit show. The only workable Windows solutions referenced online involved using specific non-Bluetooth wireless devices. Needing to have a dedicated USB dongle hanging off the laptop combined with having a choice of either one specific device or a receiver dongle to support all devices, is less appealing than just having a wire.
Since then I've looked again every year or so but have seen no reports yet of meaningful progress and there's even less discussion of work in progress. Very disappointing. And the situation on the BT audio quality side doesn't seem much better. If you don't want degraded audio quality it's either choosing very specific devices which support a proprietary BT codec or switching to non-BT wireless dongle hardware. At least there is talk of improvement on audio quality but no clear indication better baseline minimum audio quality will ever be mandated in the BT audio standard.
If anyone has info the baseline latency or quality (input or output) of standard BT devices in Windows configs will improve, I'd be delighted to hear it.
Comment by bobmcnamara 6 days ago
Comment by mrandish 6 days ago
It's been a few years since the last time I actually tried it myself, instead of just checking user reports. I do remember I followed the DAW company's FAQ, set a mode in the DAW, and switched something in Windows settings related to BT. The wired latency (MIDI in and audio out) was excellent but switching either to BT tanked it.
It's frustrating that it appears to not have improved at all in a decade. I get the whole "good, fast, cheap" triangle and that most of the BT ecosystem only cares about "cheap" while being just good enough 128Kbps MP3s don't sound too much worse on $50 cuff link-sized earbuds. But I can't help naively thinking that on decadal timescales, the rising tide should lift even the "cheapest" corner of the triangle enough to yield slightly better minimum baseline quality - especially when it's been stuck forever at barely usable. Even more surprising is that BT gaming controllers still have such high latency, most BT controllers also come with a proprietary wireless dongle. Talk about pointless COGS and landfill.
I guess maybe the reason is those who really care can go wired, use non-BT wireless dongles or lock themselves to a proprietary vendor who controls both ends of the stack. But it kind of nerfs the point of having a short range wireless "standard" if doesn't cut COGS, landfill waste and never improves more 'serious' use cases even a little.
Comment by bobmcnamara 4 days ago
Comment by AshamedCaptain 5 days ago
Comment by hackingonempty 6 days ago
Comment by orphea 6 days ago
Comment by topspin 6 days ago
Just appending 1 to S3 is odd though. This MCU is step change for Espressif. S4 or something would make more sense.
Comment by orphea 6 days ago
Comment by topspin 6 days ago
BTW, S3 has an RISC-V core in addition to the XTensa cores. That's the part that's running in deep sleep.
In practice, most Espressif users barely know or care what ISA is in play: they have ESP-IDF and the Espressif libraries papering over the difference for nearly all purposes.
Comment by topspin 6 days ago
"We actually never intended the CPU architecture to be part of the name, as for 99.9% of all users, it doesn’t matter: you write your code in C or some other language, and the compiler plasters over any difference in ISA. Available peripherals, supported radio protocols and CPU power and memory are more important."
Comment by rbanffy 5 days ago
Then I'd pack 16 of them, and build a tiny Connection Machine cube.
Not sure what I'd use a cluster of 512 very puny servers for though... I guess it'd be for learning how to manage clusters with unreasonable numbers of nodes.
Comment by rasz 4 days ago
Comment by Lerc 5 days ago
And yes the main goal is to figure out how to program the thing in a way that balances ease of use with performance.
I also like the idea of a PSRAM junction, so that every core gets a PSRAM, but neighbours can swap ownership.
I had wondered what happens to the wireless spectrum if you tried it with ESP32. 512 devices in a small space yelling at each other.
Comment by goodpoint 5 days ago
Comment by rbanffy 5 days ago
Comment by throwup238 5 days ago
ESP32 RGMII (32x) -> PHY (32x RTL8211F) -> Slave switch (6x RTL8367) -> master switch (1x) -> magnetics (for the external port). You’ll probably want a better IC for the master switch so I can’t name one of the top of my head but this would be a relatively simple, if large, PCB.
The hard part I think is verifying that all the PHYs and switches will work correctly without magnetics on a board to board connection.
Comment by rbanffy 5 days ago
I am way out of my depth here. I actively avoided analog design in college, and it kind of shows. :-(
Comment by throwup238 4 days ago
There isn’t much analog design here, except the high speed digital signals for which you can just follow some basic rules of thumb (and IC routing guidelines!). You need to length match the busses and correctly route the differential pairs between the PHY and switch. If you know how to use Altium (I assume Kicad has similar features) you can do pin and part swapping with some clever placement to route only a few of the busses as short as possible, then clone them as rooms until you’ve got the number of nodes you need. The last bit will be routing the master switch that connects the slave switches and the external port.
If you’ve never done it before I’d be realistic and try to hit 100mbit first, maybe gigabit interconnection between the switches. The routing you’ll need at those slower speeds will be a lot more forgiving.
Comment by mort96 6 days ago
Comment by swiftcoder 6 days ago
Comment by flowerthoughts 6 days ago
Anyway, the S31 has SHA, AES, ECC, RSA, and ECDSA accelerators, so that should be fine. https://documentation.espressif.com/esp32-s31_datasheet_en.p...
Comment by bobmcnamara 6 days ago
Comment by thot_experiment 6 days ago
Comment by dsign 5 days ago
Comment by andynerd 5 days ago
Comment by topspin 6 days ago
Also 4x MCPWM peripherals; that's a first for any Espressif MCU.
The additional GPIOs are very welcome as well. CAN-FD!
This device is going to be a big hit for Espressif.
Comment by thehk 6 days ago
Any way to know what kind of performance one could expect running e.g. a depth anything model on there?
Comment by porridgeraisin 6 days ago
Compute wise you can manage. You can do quantisation and run a small 10-15 layer CNN perhaps. Image classification is possible. Keep in mind the channel count and input resolution cannot be high since memory will be a problem. You can maybe do face _detection_, "is my cat on my keyboard" classification as well maybe.
Audio, you can do a lot more. Wake word detection happens on _much_ smaller accelerators inside iphones. In this one you can do slightly heavier classifications. Maybe speaker identification "which member of family" or maybe "which dog is barking"
Comment by mattalex 6 days ago
Even for small CNNs you often need to do some quite complex interleaving of layers (i.e. running parts of layer 1 and layer 2 in parallel interleaved to take advantage of the downsampling of CNNs) to keep performance and memory impact reasonable (see e.g. https://openreview.net/pdf?id=2O8qbyxH6X).
Think more "image classifier" less "run an image to image transformer". For depth anything, a single layer's activation is probably significantly larger than the available SRAM (I think it is (224/16)^2 patches each with activations [48, 96, 192, 384] for depth anything small: You aren't running this.)
Comment by otterdude 6 days ago
Unless they're not listing a major feature in their spec, a dual core 320Mhz microcontroller is not bad but youre not going to be running any kind of vision model on it, at least very fast.
Comment by kcb 6 days ago
Comment by asadm 6 days ago
Comment by v1ne 5 days ago
Comment by MrBuddyCasino 5 days ago
Comment by hart_russell 6 days ago
Comment by wiml 6 days ago
Comment by jon-wood 6 days ago
Comment by adamfeldman 6 days ago
Comment by jon-wood 5 days ago
Comment by mherkender 6 days ago
(at least in the US, not sure about other countries)
Comment by cyberax 6 days ago
And there are still just two suppliers of Z-Wave radios, as far as I know. I haven't bothered to re-check recently. Up until ~2022 there was just _one_ supplier, you could open any Z-Wave device and find exactly the same chip. Sometimes on a cute little daughter board.
Comment by Aurornis 6 days ago
Comment by wildekek 6 days ago
Comment by Imustaskforhelp 6 days ago
Could this theoretically be used as a router or wireguard vpn instance?
Comment by KZerda 6 days ago
Comment by jon-wood 6 days ago
Comment by KZerda 6 days ago
Comment by zuzululu 6 days ago
Also I want to dive into hardware stuff but I'm always clueless as to what I do afterwards when this would arrive? Are you using a generic board or are you ordering and designing PCBs to hook this up to?
What are you using it for ? How do I go from a prototype to mass production via kickstarter?
Comment by chrisco255 6 days ago
You can plug the dev board into sandwich board for easier prototyping. To go to mass production, you'll need to hand off your prototype spec to a custom PCB maker that you can order from, prices vary a lot based on volume and some shops specialize in low volume for early products.
Your end product should basically be a circuit board, case, battery, and any external components like LEDs or screens, then you assemble with plugs or wiring/soldering.
It is sometimes possible to make a product from the dev boards, especially the small ones, but your product still has to get a custom FCC certification (not a deal breaker, just a hoop to jump through), whether using dev board or custom.
Comment by zuzululu 6 days ago
Comment by cbdevidal 6 days ago
Course more PSRAM and hardware encoding would drive up the price...
Comment by rie_t 6 days ago
Comment by rasz 4 days ago
Comment by system2 6 days ago
Their product naming could be better; S3 is going to show S31 in the search results.
Comment by nancyminusone 6 days ago
Comment by nottorp 5 days ago
Comment by superloika 5 days ago
Comment by jeremywho 6 days ago
Comment by zimpenfish 6 days ago
[0] "ESP32-S31-Korvo-1 Development Board Espressif System AI Intelligent Multimedia Development Board Engineering Sample" for £54.79 from the (allegedly official) Espressif store at https://www.aliexpress.com/item/1005012333744553.html
Comment by Scene_Cast2 6 days ago
Comment by topspin 6 days ago
I didn't expect to see that for a while yet. Not the usual Espressif announce and wait a year+ pattern.
Comment by jareklupinski 5 days ago
finally i can make party mode home speaker arrays
Comment by MrBuddyCasino 5 days ago
Comment by jareklupinski 3 days ago
Comment by george_max 5 days ago
Comment by kjlldld 6 days ago
Comment by abdullahkhalids 6 days ago
We must constantly fight to have open source and audited chips and software made in commodity fashion.
Comment by alexisread 6 days ago
https://www.crowdsupply.com/baochip/dabao/updates/our-campai...
Probably the most open chip on the market, and sits between a pi and a pico
Comment by thenthenthen 6 days ago
Comment by chrisco255 6 days ago
Edit: I take it back on OS comment, they are not OS but some components of the SDK are:
https://zeus.ugent.be/blog/23-24/open-source-esp32-wifi-mac/
Comment by Retr0id 6 days ago
No they're not? Anyway I assume GP was asking due to procurement concerns, not security.
Comment by chrisco255 6 days ago
Comment by poulpy123 5 days ago
Comment by nubinetwork 6 days ago
Comment by thot_experiment 6 days ago
Comment by KZerda 6 days ago
Comment by bobmcnamara 6 days ago
Comment by mort96 6 days ago
Comment by gswdh 6 days ago