Close

(edited) Transcript for ESP32 HackChat

A event log for ESP32 HackChat

​@Sprite_tm will be leading this chat all about the ESP32. Bring your questions and ideas!

sophi-kravitzSophi Kravitz 02/04/2017 at 01:230 Comments

Jørgen Kragh Jakobsen says:16 minutes ago

Hi sprite

Sprite_tm says:14 minutes ago

So, I'm kinda new to these kind of chats... what's the idea, I just start answering the things in the spreadsheets? Or are you going to pelt me with questions live? I'm open to both options.

13 minutes ago

@Sprite_tm first intro yourself

jaren havell says:13 minutes ago

did you have to move to (china?) work for espressif or are you just there temporarily?

13 minutes ago

(aaaand people will just pelt you with questions ...:)

jaren havell says:12 minutes ago

eerps

Comedicles says:12 minutes ago

Is this question spreadsheet something we can see?

Sprite_tm says:12 minutes ago

Ah, thought the HaD people already did an excellent job in the HaD article announcing this :) but sure. I'm Sprite_tm, I started dabbling with electronics a fair few years ago, and at a certain point I decided to put the projects I finished up on Spritesmods.com.

jaren havell says:11 minutes ago

@Comedicles https://docs.google.com/spreadsheets/d/1pEbC2XjqSnPjdHMozo4-CP23rJcoWSDgEgfCA6AI92E/edit#gid=0

Sprite_tm says:10 minutes ago

Slightly less than two years ago, there was this mysterious 'WiFi to serial board' showing up on Aliexpress. I bought a few, and searched for the chip on it... it was an ESP8266 and it seemed programmable.

Sprite_tm says:9 minutes ago

Long story short: the Internet kicked in, the maker of the li'l chip was open to random hackers messing with the SDK and before long, people were developing programs for it. So was I. I developed a webserver and some other things. At a certain point, I got an invitation from the CEO: he lked my work and asked me if I would like to consult for Espressif, or maybe even come to Shanghai and work fulltime?

Scott says:8 minutes ago

Hi Everyone!

Sprite_tm says:7 minutes ago

Well, I chose the last option and haven't regretted it since. I have two titles at Espressif: I'm a Software Engineering Manager, and at a certain point I found a Technical Marketing Manager title sticking to the bottom of my shoe. In general, I'm more of a does-whatever-seems-interesting-or-useful guy, but we don't have a title for that :)

Nacht Ritter says:6 minutes ago

Prior to ESP8266, what did you dabble in?

Sprite_tm says:6 minutes ago

In that capacity, I worked on some ESP8266 projects, like the MP3 decoder, and when we started making the ESP32, I worked on some parts of the ROM, making FreeRTOS SMP-capable and general low-level esp-idf stuff.

mumi says:6 minutes ago

Hi Sprite_tm, thanks for being here today. Question: In terms of creating a shippable IOT product using the ESP-32, which are your preferred software stacks/dev setups? Does FreeRTOS rank well in this regard?

Sprite_tm says:5 minutes ago

I got my technical marketing title for allowing me to do random stuff as well: for example the NES emulator that runs on the ESP32 was developed with that hat on. If any, that's the type of 'marketing' I don't mind doing :)

Adam Fabio says:4 minutes ago

very cool!

Sprite_tm says:4 minutes ago

Nacht Ritter: See my site spritesmods.com. There's a whole slew of projects on there. For work, I used to be a software engineer at a broadcasting company, nothing too interesting I fear.

baoshi says:4 minutes ago

That's the way marketing should work I guess ;)

Youlian Troyanov says:4 minutes ago

when is the psram version coming?

Jørgen Kragh Jakobsen says:3 minutes ago

YEs @baoshi show dont tell

Sprite_tm says:2 minutes ago

mumi: Interesting question. I presume you mean FreeRTOS as opposite to Lua, MicroPython, Javascript, ...?

Sprite_tm says:2 minutes ago

We don't have a non-FreeRTOS C sdk for the ESP32, that's why I ask :)

limor says:2 minutes ago

@Sprite_tm Hi! Will Bluetooth classic be supported? It's mentioned in the datasheet, but not not clear if there is a timeline for support? And if so, would it support Bluetooth Audio and/or SPP? Thanks and keep up the great work!

Sprite_tm says:a minute ago

Youlian: We're waiting for the chips ourselves: they should be arriving from the fab very soon. I don't know an exact date, but they should arrive this month at the very least.

Youlian Troyanov says:a few seconds ago

awesome

Comedicles says:2 minutes ago

Hi Sprite_tm. Do you know the speed of the ADC?

Sprite_tm says:2 minutes ago

Kinda waiting for it myself: I couldn't port Doom to the previous silicon because of the PSRAM bug... actually, Doom was the first program to run into the bug :)

Nathan Brewer says:a minute ago

Doom!!! Yes!! that is awesome

mumi says:a minute ago

Correct, I meant as opposed to the Lua, MicroPython and Javascript. It seems FreeRTOS is the preferred dev system, but I was wondering how far people have gotten with the alternatives - and if they're comparable in any way - offering SSL libraries for example. A followup question would be: Are there any plans for uCLinux on the ESP32, or is that unrealistic?

MobileWill says:a few seconds ago

I have a simliar question as I would like to use another RTOS like ChibiOS

Nacht Ritter says:a few seconds ago

Saw the spritesmods.com site but didn't get a sense of what was pre-esp8266 vs post... I'm more curious what led you down the path to where you felt comfortable diving so deep into esp8266... SW engineer in general is an unusual path (IMHO)

Sprite_tm says:a few seconds ago

@limor: Yes, we're definitely planning on supporting that, although BTLE has some priority for now. Unfortunately, I don;t know the BT peoples timeline. I *think* we have an internal BT-audio driver, but I have no idea if that is releasable, both from a code as well as from a legal PoV. I'll ask.

Sprite_tm says:a few seconds ago

I'll put it on my list of things to bug my colleagues about :)

limor says:a few seconds ago

@Sprite_tm Awesome, thanks!

baoshi says:2 minutes ago

@Sprite_tm Is the future ESP32-WROVER module using the pinout and footprint as in the WROVER kit schematic?

Jose Marcelino says:a minute ago

Anyone working on supporting the Xtensa cores in LLVM yet?

Sprite_tm says:3 minutes ago

@Comedicles: Not off the top of my head, sorry... I can see if I can look it up if this chat eases up a little.

Ryder Sadlovsky says:3 minutes ago

What programming language does the ESP32 use?

Chris Pearson says:a minute ago

Bluetooth BLE libraries would be nice. BLE is difficult enough to work with. :-)

Sprite_tm says:a few seconds ago

mumi: I don't know if the other languages are already usable... I think MicroPython as used by Pycom already has some commercial implementations, but I don't follow the other ones.

Youlian Troyanov says:a few seconds ago

@Ryder Sadlovsky forth?

mumi says:a few seconds ago

Thanks Sprite! So it seems FreeRTOS is the place to be if writing C on the ESP-32.

Ryder Sadlovsky says:4 minutes ago

@Youlian Troyanov ?

Sprite_tm says:4 minutes ago

ucLinux may be an option to run on the ESP32, but I haven't looked into it... it may be a fair amount of work, given that there's no ucLinux for Xtensa yet that I know of.

mumi says:4 minutes ago

Awesome, thanks again.

murrij says:4 minutes ago

first of all, thank you Sprite_tm for your work. The amount of work being done on the sdk is huge compared to what was available for the esp8266 after its release. Regarding BLE, what would you recommend as far as environment to start working with ble? Or language?

jaren havell says:3 minutes ago

@mumii yaaas they have micropython for esp32 https://github.com/micropython/micropython-esp32

Sprite_tm says:3 minutes ago

Wrt other OSses: We do have the beginnings of an Aliyun port in-house, and I think there's a start of NuttX going on. We're not opposed to people porting other OSses to the chip, and up to a point, we're open to providing support and help for that.

Michael Welling says:3 minutes ago

musl is the replacement for uclinux

duff2013 says:3 minutes ago

what are the low power features of the esp32?

haydn jones says:3 minutes ago

Whats the most intresting aplication you've seen running on an esp32 at espressif?

tdicola says:3 minutes ago

i'm actually going to show loading esp32 micropython on adafruit's twitch channel after this hackchat :) will be up on youtube later too

Sprite_tm says:2 minutes ago

baoshi: I can't check from here, but I don't remember anyone warning about the boards not compatible with the devboards, so I suppose so.

MobileWill says:2 minutes ago

I am working with ChibiOS in a design for the main uC and will os likely use the ESP32 as a 2nd for interface and other tasks

MobileWill says:2 minutes ago

So would better if both ran the same RTOS

Michael Welling says:a few seconds ago

return -ETOOMANYRTOS;

Sprite_tm says:a minute ago

Jose: wrt llvm, I think iggr was thinking of getting llvm up and running, if any to support Rust. No work that I know of has been done in that direction, though. So much we want to do, only 24 hours in a day... you know the issue.

jaren havell says:a few seconds ago

is the arduino code running on top of something much more complex?

Sprite_tm says:a minute ago

duff2013: We have Deep Sleep, which is essentially the entire ESP32 powered down... but it can power up the ULP periodically, which is a state machine with just enough smarts to be called a microcontroller. So even while sipping power, you can still do some tasks.

Sprite_tm says:a few seconds ago

Aside from that, you have a range of options... nearly all the memories, peripherals, cores etc can be disabled for power saving.

duff2013 says:a few seconds ago

awesome thanks!

Comedicles says:a few seconds ago

What would you say is the data flow bottle neck or lowest common denominator, like WiFi data rate, off-chip communications, encryption, Flash access, RAM buffering. What craps out first as data rate goes up?

novirium says:a few seconds ago

(copied from the spreadsheet, but it looks like we're just asking here:) The SDIO interface brought out on the short side of the ESPWROOM32 looks suspiciously like it's meant for SDcard comms, but is also connected to the onboard flash - any indication that they might be able to work at the same time somehow? I'm running out of pins...

Sprite_tm says:a minute ago

haydn jones: Well, there's been some speech recognition stuff ported to the ESP32... it's very interesting how that's better at recognizing Chinese than I am. Just simple sentences like 'turn on light' though.

Sprite_tm says:a few seconds ago

Aside from that, I'm still waiting for the community to pull off some tricks like cnlohr did with the ESP8266 hardware... I'm sure at least low-speed USB is possible.

mumi says:a few seconds ago

Sprite_tm: Is the ESP-32 a reliable system to build a product around, in terms of availability and obsolescence?

Arsenijs says:a minute ago

If it's SDIO master, I assume you can do SD cards (don't know of licensing issues with SD folks). On #RPi WiFi, there's no problem when a Pi talks SDIO to the ESP8266, again, over the same lines that SPI flash occupies.

Sprite_tm says:a few seconds ago

jaren havell: Afaik is the Arduino layer just a stack of C++ libraries that are compiled together with esp-idf. You can even load the Arduino layer up as a component in esp-idf and (to a point) mix and match C and Arduino-apis.

Sprite_tm says:a few seconds ago

Comedicles: It very much depends on your app. For example, we have a lcd/camera interface in the ESP32; if you want to move data from there to WiFi, the WiFi will crap out first. If you want to do TCP at speed, you may run into slowdown because of memory issues. If you want to do some actual processing on the data, you may run into CPU issues.

baoshi says:a minute ago

I noticed libesphttpd had support for ESP32 but it has not been updated for a while. Is there any recommended webserver for ESP32 or we should roll our own on top of lwip?

Ryder Sadlovsky says:a few seconds ago

what language does the ESP32 use?

Jose Marcelino says:a few seconds ago

thanks, yes Rust would be awesome as well other LLVM things. Is Espressif hiring? :) How's life there! Do you speak 普通话

novirium says:a few seconds ago

@Arsenijs Ah, thanks. I was wondering how it'd go, considering the ESP32 is often running right off the flash. The available information on that interface in the ESP32 is still pretty sparse, and all the other examples I've seen of people using an SD card with it have used the other SDIO interface.

Sprite_tm says:a minute ago

novirium: In theory at least, you could multiplex the two... keep SD-card idle while accessing flash, keep flash idle while accessing SD-card. This hasn't been implemented in any driver, though.

Michael Welling says:a few seconds ago

@Ryder Sadlovsky binary

Sprite_tm says:a few seconds ago

Well, in the ESP8266-RPI example, they actually do not use the flash at all; they use SDIO to upload the firmware directly to RAM.

PointyOintment says:a few seconds ago

I'm wondering how well it'll perform when asked to do many somewhat demanding tasks simultaneously. Specifically, I want to do the following:

- Read six or seven analog sensors (at ~100 Hz, all 8 bits per channel) and two or three digital sensors (either 1-bit sensors at ~6 kHz or 8-bit I²C sensors at ~1 kHz)

- Record that sensor data to an SD card

- Stream that sensor data over Wi-Fi

- Run VoIP over Wi-Fi using either a wired headset or a Bluetooth headset

all simultaneously.

Would programming the two cores to do different tasks help here, or would it be better to use some kind of OS or other task scheduler?

Professor Fartsparkles says:a few seconds ago

@Sprite_tm I was wondering how fast the ESP32 can re-connect to wifi after coming up from deep sleep.

Sprite_tm says:a minute ago

novirium: In theory at least, you could multiplex the two... keep SD-card idle while accessing flash, keep flash idle while accessing SD-card. This hasn't been implemented in any driver, though.

Michael Welling says:a few seconds ago

@Ryder Sadlovsky binary

Sprite_tm says:a few seconds ago

Well, in the ESP8266-RPI example, they actually do not use the flash at all; they use SDIO to upload the firmware directly to RAM.

PointyOintment says:a few seconds ago

I'm wondering how well it'll perform when asked to do many somewhat demanding tasks simultaneously. Specifically, I want to do the following:

- Read six or seven analog sensors (at ~100 Hz, all 8 bits per channel) and two or three digital sensors (either 1-bit sensors at ~6 kHz or 8-bit I²C sensors at ~1 kHz)

- Record that sensor data to an SD card

- Stream that sensor data over Wi-Fi

- Run VoIP over Wi-Fi using either a wired headset or a Bluetooth headset

all simultaneously.

Would programming the two cores to do different tasks help here, or would it be better to use some kind of OS or other task scheduler?

Professor Fartsparkles says:a few seconds ago

@Sprite_tm I was wondering how fast the ESP32 can re-connect to wifi after coming up from deep sleep.

jaren havell says:2 minutes ago

wow, 12 years. what is the 8266 at?

MobileWill says:2 minutes ago

Awesome

Sprite_tm says:a minute ago

baoshi: Ah, I'd love to give some TLC to libesphttpd... it really cooperates with esp-idf nicely. Wrt your answer: we do have libhttp2 or something in esp-idf, which can do http/http2, but doesn't give a webserver as such. If you want to work on libesphttpd, feel free to send in patches. If they're small enough, I'll just merge them in.

Nathan Brewer says:a few seconds ago

do we have anything likewifi_send_pkt_freedom ? esp_wifi_internal_tx() on the ESP32 ? :)

Sprite_tm says:a few seconds ago

jaren: 2014, so 3 years at this point.

Paweł says:a few seconds ago

@Sprite_tm What way will developing of ESP follow?

PointyOintment says:a minute ago

I would also be interested in a product line roadmap, if that's something you can share

baoshi says:a few seconds ago

@Sprite_tm yap that's part of the plan

Sprite_tm says:a few seconds ago

PointyOintment: Depends on a fair few things, eg the codec you use and the amount of buffers you need for the sensors (SD-cards can be slow). I think you'd mostly run the risk of running out of memory, though.

PointyOintment says:6 minutes ago

Thanks!

Sprite_tm says:5 minutes ago

Professor Fartsparkles: Should be a few hundred ms; iirc for the esp32, it's mostly limited by how fast the ap responds. I have no experience with that, so my numbers are guesstimates, though.

Sprite_tm says:4 minutes ago

Jørgen Kragh Jakobsen: It most definitely is a real project, we've got a bunch of engineers working very hard at that one. It's not as open as e.g. esp-idf is; it's mostly aimed to be a solution for commercial parties.

PointyOintment says:4 minutes ago

@Arsenijs Where can we read more about using multiple peripherals on one SDIO bus? I checked the spec (https://members.sdcard.org/downloads/pls/simplified_specs/archive/partE1_100.pdf) and it does mention multiple electronic devices inside one physical peripheral (card) but it doesn't seem directly applicable to our stuff.

Sprite_tm says:3 minutes ago

@Nathan Brewer: Not yet. We're thinking of adding it, but t isn't that high on our priority list and we still need to discuss in what way.

Sprite_tm says:2 minutes ago

(At least, I think that was the addres... if not, consider finding the right one your first challenge)

Sprite_tm says:2 minutes ago

Ah, sorry, chat crapping out. lemme retry that:

Brian Krent says:a minute ago

@Ryder Sadlovsky

C/C++:

- ESP-IDF: https://github.com/espressif/esp-idf

- Arduino: https://github.com/espressif/arduino-esp32

MicroPython:

- MicroPython (official): https://github.com/micropython/micropython-esp32

- Pumbaa port: https://github.com/eerimoq/pumbaa/

- PyCom’s port: https://github.com/pycom/pycom-micropython/tree/master/esp32

JavaScript

- Espruino: https://github.com/espruino/Espruino/tree/ESP32

- Duktape: https://github.com/nkolban/duktape-esp32

Lua:

- LuaNode: https://github.com/Nicholas3388/LuaNode

- Lua RTOS: https://github.com/whitecatboard/Lua-RTOS-ESP32

Forth:

- cforth: https://github.com/MitchBradley/cforth

- further info: https://github.com/ForthHub/discussion/issues/39

BASIC:

- TinyBasic: http://hackaday.com/2016/10/27/basic-interpreter-hidden-in-esp32-silicon/

Arsenijs says:a minute ago

@PointyOintment haven't read about that a lot, but there's #SHABPi WiFi & SD Card Slot for Pi Zero and it has description of an unsuccessful attempt to do that, along with some links.

David William Price says:a few seconds ago

@Brian Krent thanks!

Ryder Sadlovsky says:a few seconds ago

Thanks @Brian Krent

Jørgen Kragh Jakobsen says:5 minutes ago

wrt to eps32 lyra - we will be more then happy to team on hardware /accustics evry thing from i2s to sound waves

Sprite_tm says:4 minutes ago

Someone asked if Espressif is hiring.. The answer is yes! Mail jobs@espressif.com if you're interested. Feel free to add that you know Jeroen/Sprite_tm, and they'll know who to talk to. (Email address off the top of my head, if it doesn't work, finding the right one will be your first challenge.)

jaren havell says:4 minutes ago

@jorgenKraghJ what producsts are your eximo / class D chips on?

Sprite_tm says:3 minutes ago

@Jørgen Kragh Jakobsen: Sounds interesting! Poke me at jeroen at espressif dot com and we'll discuss.

novirium says:3 minutes ago

http://esp32.net/ is pretty good for a concentrated blob of relevant links and info too. Also in C is https://github.com/eerimoq/simba

Nacht Ritter says:3 minutes ago

Thank you for sharing your time & knowledge, @Sprite_tm!

Sprite_tm says:3 minutes ago

Guys, it was fun but my VPN is crapping out every two minutes and I need breakfast, so I'm gonna call it quits.

jaren havell says:2 minutes ago

Happy Hacking!

MobileWill says:2 minutes ago

Thanks for taking the time to do this

David William Price says:2 minutes ago

Would love to see more educational use of ESP stuff-- too stuck in Arduino Unos out there.

PointyOintment says:2 minutes ago

Minor question: On the ESP8266, I seem to remember that taking I²S input using DMA required it to also send I²S output at the same time, even if that output was empty. Are there any similar bizarre-sounding requirements for the communication buses on the ESP32 (not necessarily to do with I²S)?

David William Price says:2 minutes ago

ok thanks for this!

Paweł says:2 minutes ago

@Sprite_tm thank you for your time!

Sprite_tm says:2 minutes ago

If you have more questions, feel free to ask them on esp32.com; I as well as other engineers regularily hang out around there to answer questions.

mumi says:2 minutes ago

@Sprite_tm Thanks for the answers. Super helpful.

novirium says:2 minutes ago

Thanks @Sprite_tm

baoshi says:2 minutes ago

@Sprite_tm Thanks, Awesome!

mumi says:a minute ago

@Sprite_tm: One more! What are you going to eat for breakfast?!

PK says:in a minute

Thanks @Sprite_tm !

PointyOintment says:a minute ago

Alright, thanks @Sprite_tm!

Paweł says:a minute ago

I hope in future there will be more time for another one, and chat will be more stable .

haydn jones says:a few seconds ago

thanks @Sprite_tm

a few seconds ago

thanks Sprite!

chane says:2 minutes ago

yes.. thanks for your time @Sprite_tm..

perhaps another chat in a couple of months :)

Sprite_tm says:2 minutes ago

Okay, I'm at a hotel atm, and breakfast here is typical Chinese... steamed buns, rice porridge, some veggies. I'd prefer a full English breakfast, but eh, it works with getting me started.

Sprite_tm says:a minute ago

Anyway, bye for now, and yes, we can do another chat later on.

Jørgen Kragh Jakobsen says:a minute ago

We are new on the block - Just released the device and we are a head on low power

Arsenijs says:a minute ago

Have a nice day, and thanks for all the questions!

Arsenijs says:a few seconds ago

*answers =)

Discussions