
The ESP32 has been released - cyptus
http://hackaday.com/2016/09/05/new-part-day-the-esp32-has-been-released/
======
dan1234
There’s a Technical Reference Manual[0], and a pinout[1] which show some of
the features (multiple analogue inputs, huzzah!)

[0][https://espressif.com/sites/default/files/documentation/esp3...](https://espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf)

[1][http://www.pighixxx.com/test/wp-
content/uploads/2015/12/ESP3...](http://www.pighixxx.com/test/wp-
content/uploads/2015/12/ESP32_Pinout_a1_3.png)

~~~
teraflop
That manual looks great, and probably should have been linked from the
Hackaday post.

I'm confused by this, on page 12:

> The capacity of Internal SRAM 1 is 128 KB. Either CPU can read and write
> this memory at addresses 0x3FFE_0000 ~ 0x3FFF_FFFF of the data bus, and also
> at addresses 0x400A_0000 ~ 0x400B_FFFF of the instruction bus. The address
> range accessed via the instruction bus is in reverse order (word-wise)
> compared to access via the data bus.

That word-reversed mapping seems like a slightly nutty design quirk, but I
find it hard to imagine how it could happen by accident. If it's a deliberate
feature, is there anything it would actually be useful for?

~~~
PinguTS
This seems to be very odd. May be someone wanted to make access easy and
fucked it up. Then they left it and defined it as feature.

The original feature is may be, that data access is byte wise, but as it is
32-bit CPU the instruction access is double-word wise. As it is also little
endian someone may wanted to make the access easy.

~~~
pjc50
It's weirder than that: within a word the bytes are in order, it appears that
"top" and "bottom" of memory have been exchanged. It's as if one address bus
is being fed through an inverter.

~~~
david-given
I don't think it's an inverter. It looks like a subtraction (which is even
weirder). Here's the example they give:

    
    
        0x3FFE_0000 accesses the least significant byte in the word accessed by 0x400B_FFFC.
        0x3FFE_0001 accesses the second least significant byte in the word accessed by 0x400B_FFFC.
        0x3FFE_0002 accesses the second most significant byte in the word accessed by 0x400B_FFFC.
        0x3FFE_0003 accesses the most significant byte in the word accessed by 0x400B_FFFC.
        0x3FFE_0004 accesses the least significant byte in the word accessed by 0x400B_FFF8.
        0x3FFE_0005 accesses the second least significant byte in the word accessed by 0x400B_FFF8.
        0x3FFE_0006 accesses the second most significant byte in the word accessed by 0x400B_FFF8.
        0x3FFE_0007 accesses the most significant byte in the word accessed by 0x400B_FFF8.
        ……
        0x3FFF_FFF8 accesses the least significant byte in the word accessed by 0x400A_0004.
        0x3FFF_FFF9 accesses the second least significant byte in the word accessed by 0x400A_0004.
        0x3FFF_FFFA accesses the second most significant byte in the word accessed by 0x400A_0004.
        0x3FFF_FFFB accesses the most significant byte in the word accessed by 0x400A_0004.
        0x3FFF_FFFC accesses the least significant byte in the word accessed by 0x400A_0000.
        0x3FFF_FFFD accesses the second most significant byte in the word accessed by 0x400A_0000.
        0x3FFF_FFFE accesses the second most significant byte in the word accessed by 0x400A_0000.
        0x3FFF_FFFF accesses the most significant byte in the word accessed by 0x400A_0000.

------
teraflop
TIL that Espressif (the manufacturer of the ESP8266 and ESP32) hired the guy
behind [http://spritesmods.com/](http://spritesmods.com/). That's a very
promising sign that they plan to keep their hobbyist/hacker user base in mind.

------
MrBuddyCasino
I'd love to see LLVM support for this so I can run Rust on it, someone wrote
that "it's about a month of a part-time work for a single developer" (see
[https://news.ycombinator.com/item?id=10994577](https://news.ycombinator.com/item?id=10994577)).

Is this realistic? A Kickstarter project might be a way to do this...

Update: also see [http://hackaday.com/2016/09/05/new-part-day-the-esp32-has-
be...](http://hackaday.com/2016/09/05/new-part-day-the-esp32-has-been-
released/#comment-3183545)

~~~
adrusi
It doesn't really have much RAM, I don't know how useful Rust would be for
anything but prototyping, I don't think there's been much focus on size
optimizations.

~~~
steveklabnik
We actually added a "optimize for size" flag pretty recently.

~~~
rofrol
Wow. How do you track that someone mentioned Rust. You are a machine Sir. :)

~~~
MrBuddyCasino
Mentioning Rust on HN inevitably summons Steve Klabnik. Its just the way it
works.

------
tostitos1979
I spent 30 mins reading about this chip and I still don't get it. I get why
the ESP8266 was awesome ... MCU + wifi for super cheap. Why is this chip so
exciting? Is it because it is supposed to be wifi+ARM (an ARM good enough to
emulate a sega mastersystem game as per a youtube video)+other goodies? I saw
rumors of other goodies being BLE. Is that confirmed or was that hot air :)

~~~
pi-rat
ESP8266 was awesome, but lacked many useful features:

\- ADC (Analog to Digital converter)

\- IPv6 (IoT-chip without IPv6, come on..)

\- Bluetooth BLE

\- Enough RAM to pull of talking many of the protocols you might want to use
over the internet.

\- etc.. etc..

ESP32 supports this.

~~~
Unklejoe
How can a chip support or not support IPv6 in this case? Isn't it a layer
below anything which would require direct hardware support? In other words,
wouldn't it be implemented in software. I should point out that I know nothing
about the ESP chips.

Or do you mean that the ESP8266 has hardware acceleration for IPv4 but not
IPv6?

~~~
pjc50
Probably the availability of enough code ROM and runtime RAM to support dual-
stack operation, if it simply didn't fit before.

~~~
revelation
Eh, probably they didn't bother with IPv6 when butchering random BSD code for
their hacked-together "SDK".

------
Quequau
I know that MicroPython was ported to the ESP8266, so presumably it will
eventually come to ESP32.

I suppose that's probably going to be easiest way to get things done with
it... or at least a really popular way.

~~~
m_eiman
It's already on the ESP32, kind of. This device:

[https://www.pycom.io/solutions/py-
boards/lopy/](https://www.pycom.io/solutions/py-boards/lopy/)

is based on ESP32 and is running Micropython; I don't know if their port will
be fully open source, though. They've said that they want to contribute as
much as possible back to the micropython project, I think?

Edit: here's some info on their contributions to Micropython:
[https://www.pycom.io/qa-micropython-multi-threading-
garbage-...](https://www.pycom.io/qa-micropython-multi-threading-garbage-
collector/)

------
semi-extrinsic
CAN-bus? Iiinteresting. Maybe we'll see a wave of wifi-controlled car hacks
(not as in malicious, as in HN) in the coming years?

~~~
evck
Yes, there will be :)

~~~
danellis
Like what? I've tried to do CAN stuff with cars before, and outside of a few
standard measurements it's almost impossible to find any documentation on what
commands do what.

------
jacquesm
270 mW is unfortunately too much to run on harvested energy, even for short
bursts but otherwise this is a very interesting chip.

~~~
antocv
What chip would you recommend to do IoT which can run on harvested energy?

What would be the upper limit which harvested energy could deliver? Do you
mean solar cells or harvesting microwaves from satellites, I could get about
1.5V or so from about a 60cm in diameter disk, have not measured the current
available.

It would be really sweet to run something which speaks wifi even for short
durations, if it recieves its energy from ephemeral radio.

~~~
jacquesm
I think bi-directional WiFi is out when running on harvested energy, the best
you could probably do is to send out a single UDP packet.

That's why IoT applications tend to use other, simpler and lower power radios
and protocols.

[https://en.wikipedia.org/wiki/IEEE_802.11ah](https://en.wikipedia.org/wiki/IEEE_802.11ah)

Is very interesting but I'm not aware of any SOC that supports it.

> It would be really sweet to run something which speaks wifi even for short
> durations, if it recieves its energy from ephemeral radio.

One interesting source of power is a simple coil-and-diode to harvest radio
waves, do this for a while until you have enough power to boot your device,
take a reading and send off a sample.

A few mW for a few seconds every couple of hours or so would be a good target.
100's to 1000's of mWs would take so long to harvest that you'd likely never
get there because of leakage.

And 'speaking' is the right term, I don't seen an easy way for such comms to
be bi-directional without a lot more power to be consumed.

~~~
y04nn
I wonder how much energy you can harvest from FM broadcast radios stations,
those signals are pretty strong.

Edit: I calculated a power flux density of 2.648µW/cm^2 from 3.16mV/m (70 dBµ)
which is the 'city-grade contour' in the US. There seem to exist a patent for
that, from a company called Freevolt
([http://www.getfreevolt.com/](http://www.getfreevolt.com/)).

~~~
jacquesm
Power law, so it's _very_ much dependent on your distance to the transmitter.

In NL some clever person figured out that he could power his fluorescent tubes
from the broadcasting tower across the street and promptly got sued for
theft...

~~~
haneefmubarak
Was the case ultimately decided against him? I mean, if they're radiating
energy into his property, I'd imagine he could do whatever he wants with it.

~~~
jacquesm
I think yes, but it's long ago that I read about it. I'll try to dig up some
info on this, it's interesting and now I want to know the exact details.

I've found another reference to this(dutch):

[http://www.philipsradios.nl/forum/index.php?mode=thread&id=1...](http://www.philipsradios.nl/forum/index.php?mode=thread&id=11835)

------
kfihihc
You can preorder an ESP32 module(with 4MB flash) from SeeedStudio[1] right
now.

[1]: [http://www.seeedstudio.com/ESP3212-Wifi-Bluetooth-Combo-
Modu...](http://www.seeedstudio.com/ESP3212-Wifi-Bluetooth-Combo-
Module-p-2706.html)

~~~
StavrosK
Does this have flash? I only see it mentioned ambiguously.

~~~
kfihihc
There are a Windbond flash onboard, pic is here:
[https://statics3.seeedstudio.com/product/2016-09/7.png](https://statics3.seeedstudio.com/product/2016-09/7.png)

Some description above the pic:

    
    
              • The size of ESP-3212 Wifi module is 16mm x 24mm x 3m.
    
              • The ESP-3212 deploys 4MB SPI Flash with WSOP－8 package. It also uses 3DBi PCB antenna on board.
    

ESP3212 is an module, ESP32 is the chip.

~~~
StavrosK
Ah, okay, that agrees with what I understood, but I wanted to be sure (I
didn't know if WSOP-8 is that footprint).

------
iN7h33nD
Where is a good place (or what is a good book) to learn what all of the
terminology in these comments and in the article mean?

~~~
steamer25
Do you have particular terminology you're interested in?

The general subject is Micro Controller Units (MCUs) (and to a lesser extent
System On Chip (SOC)s) which are becoming cheap ($5) and abundant enough to
fuel the so-called Internet of Things (IoT) . There are various tangential
topics such as:

* Computer architecture: e.g., "data bus", "SRAM", "Von Neumann architecture", "SPI flash", "Reduced Instruction Set Computing (RISC)", ARM, etc.

* Electrical engineering: e.g., "pulse trains", "servomotors", "Analog to Digital Converter (ADC) & vice versa (DAC)", "milliwatts (mW)", "milli-amp hours (mAh)", etc.

* Software engineering: "address spaces", "multi-threading", "stack", "Rust", "Low-Level Virtual Machine" (LLVM)", "[software build/compiler] toolchain", "Software Development Kit (SDK)", "GNU C Compiler (gcc)", etc.

* Network/Communication protocols: WiFi, "Bluetooth Low Energy (BLE)", "run-length-encoding", "little-endian", "Internet Protocol Version 6 (IPv6)", "Transport Layer Security (TLS)", etc.

Make magazine (especially their electronics and Arduino YouTube channels--see
below) might be a good info gateway for you.

Given the low prices already mentioned, I'd say that if you're interested in
learning more, a good way to go would be to order something like an AdaFruit
Trinket (link below) (or a fully-fledged Arduino or one of the ESP8266 or
ESP32 boards in this article) and seeing what you can accomplish with it.
Sparkfun also has some good tutorials if you're already confident on the
coding side.

[https://www.youtube.com/playlist?list=PLwhkA66li5vCOKe4Rx50f...](https://www.youtube.com/playlist?list=PLwhkA66li5vCOKe4Rx50fiW1ghQlpStY1)

[https://www.youtube.com/playlist?list=PLwhkA66li5vAmrRwrT8fO...](https://www.youtube.com/playlist?list=PLwhkA66li5vAmrRwrT8fOxpKE-D9ZsOLK)

[https://www.adafruit.com/products/1501](https://www.adafruit.com/products/1501)

[https://learn.sparkfun.com/](https://learn.sparkfun.com/)

------
owenversteeg
Do any good competitors to the ESP32 exist at this point? E.x. something small
with WiFi and Bluetooth that's usable by hobbyists?

Also, anyone know how to pay more to get one of these ASAP? Or is anyone who
has one willing to sell theirs?

~~~
antocv
Ive seen these being mentioned from nordic semiconductors,
[http://www.nordicsemi.com/eng/Products/2.4GHz-
RF](http://www.nordicsemi.com/eng/Products/2.4GHz-RF) and specifically
[http://www.nordicsemi.com/eng/Products/2.4GHz-
RF/nRF24L01](http://www.nordicsemi.com/eng/Products/2.4GHz-RF/nRF24L01) but
they're not quite in the same space as esp8266 or esp32 - they all just do
WiFi or Blutooth, with much less power required than esp8266, but do not have
any processor left over for doing anything else really, and memory is also
very little. These are more like components when you want to build more to
your wish.

Then you have this Realtek-RTL8710 which is ARM 32bit based, little less
flash, more memory, and a bit more pricy,
[http://www.instructables.com/id/Realtek-
RTL8710-Alternative-...](http://www.instructables.com/id/Realtek-
RTL8710-Alternative-to-ESP8266/) buy here
[http://www.aliexpress.com/item/RTL8710-serial-WIFI-model-
ESP...](http://www.aliexpress.com/item/RTL8710-serial-WIFI-model-
ESP-07-Authenticity-Guaranteed/32671501952.html) but it seems a bit more
expensive than esp8266, which for IoT does make a difference.

So Id say, no not really, there isnt an alternative still. I think it is due
to ARM requiring license costs which are higher than Xtensas so unit cost
doenst reach $1.95 yet. Then it is also really difficult to both design a CPU
and integrate the radio on it - with good power-management in such a small
form-factor.

~~~
jkestner
The Realtek is a competitor, the Nordics you mention are not. The nRF24L01
uses a proprietary radio. Some of the nRF chips are popular for Bluetooth Low
Energy especially given that they do have Cortex M processors that can be used
to run applications, but it ain't a competitor without WiFi.

------
TimGremalm
"As far as any new information regarding the ESP32 is concerned, don’t expect
much. It’s released, though, and in a month or so the work of documenting this
supposed wonderchip will begin."

~~~
sickbeard
If there's one thing they needed to work on it was documentation and they
failed at it.

~~~
mrb
They are really serious about providing good doc. Here is what sprite_tm (one
of their engineers) said:

 _" Also, keep in mind that documentation is very much a work-in-progress! The
techdoc as it is is basically the state of the art with regards to what we’ve
finished writing, editing etc. There’s still way more coming up, and the basic
idea is to document everything very well this time; apart from some sensitive
stuff (mostly the WiFi and BT RF interface) we’re trying to not have any
secrets._" Source: [http://hackaday.com/2016/09/05/new-part-day-the-esp32-has-
be...](http://hackaday.com/2016/09/05/new-part-day-the-esp32-has-been-
released/#comment-3183107)

------
fludlight
Love the Chrome autotranslation of the linked Taobao store:

"Sorry, this baby has the shelf temporarily, you can browse other baby"

------
lukashed
It looks like it still only has 2.4GHz wifi. Is there a reason?

~~~
jrockway
Only needs one antenna to also do Bluetooth. Compatible with all routers
except ones owned by techies that wish 2.4GHz would finally die.

------
gnyman
Anyone have a good idea on how it compared to for example the CHIP?
([https://getchip.com/pages/chip](https://getchip.com/pages/chip)). I saw the
announcement for ESP32 a few days ago but it looks like it's around $7 for one
which to me seemed expensive compared to $9 for the CHIP.

From my quick scanning, power peaks seems to be lower but if somebody with
better knowledge of these things can chip in that would be appreciated.

Mainly wondering if I should add these ESP32 to my collection or not (as I
already have 2 CHIP:s and a few ESP8266) :-)

------
Keyframe
As I've been dabbling only with PICs (lower numbers and asm only), I'm looking
forward to 'graduate' to something more like this!

------
dude8604
First ESP3212 breakout board immediately available (ESP3212 not included yet)
[https://www.tindie.com/products/dude8604/esp3212-breakout-
bo...](https://www.tindie.com/products/dude8604/esp3212-breakout-board-alpha/)

------
1024core
From the 'Applications' list on Seeed Studio:

    
    
             • Video streaming from camera
    

Can anyone tell me how you'd hook up a camera to this device?

~~~
gh02t
I assume they mean directly integrated into the camera hardware basically as a
wifi modem. So some main processor would be passing it frames over SPI and
it'd transmit them, not someone plugging in a webcam and streaming it.

------
dmritard96
Anyone have any idea on bulk costs. If buying 5-10K of the esp8266 modules,
its chhheeeapp. Would love to consider switching over but curious on costs.

~~~
azdle
Seems like these chips are unbelievably cheap too. The shop link[0] seems to
say that the bare chips are $0.19 (USD)[1] even in small quantities.

[0]
[https://world.taobao.com/item/537912657387.htm](https://world.taobao.com/item/537912657387.htm)

[1]
[https://www.wolframalpha.com/input/?i=%C2%A519.00](https://www.wolframalpha.com/input/?i=%C2%A519.00)

~~~
jimmies
I am not 100% sure about this, as I can't read Chinese, but this is likely not
19 Japanese Yen.

> ¥ is a currency sign used by the Chinese yuan (CNY) and the Japanese yen
> (JPY) currencies. This monetary symbol resembles a Latin letter Y with a
> double stroke.

It is much more likely that it is 19 Yuan, which is ~$3.

~~~
azdle
Heh, I guess I shouldn't have believed the unbelievable price after all.

Still, $3 for a chip that does 'everything' isn't bad. From what I've seen
everyone else wants 3x-10x more than that for chips (or, admittedly, sometimes
modules) that do less.

------
jschwartzi
This thing has I2S, meaning that you can hook up an audio codec to it. I
wonder if it could handle stereo audio without underrunning the output stream?

~~~
antocv
Yes, it has been done with ESP8266, it can produce shitty audio by itself and
when the sender is close to the device with no interference - otherwise you
need a dedicated DAC and it can be used as a simple webradio with mono audio
output device.

With this ESP32, my bet is it can handle stereo without any other dedicated
components and fluently.

Read more here
[https://github.com/espressif/ESP8266_MP3_DECODER](https://github.com/espressif/ESP8266_MP3_DECODER)

~~~
MrBuddyCasino
Yeah I built the ESP8266 version with SRAM and I2S codec, works well. The
ESP32 might have enough internal RAM to not need the external SPI RAM, and the
hardware pwms might be usable for audio out (or do we have a usable dac now?).

------
poseid
getting started with the esp8266 was mainly for ppl with some background in
soldering. also, flashing the esp8266 was not too easy (python script, some
system libs needed to be present iirc). for beginners, i found arduino, tessel
or espruino to be easier. also, espruino now runs on esp8266 - the ecosystem
that will evolve around the esp32 will be interesting to see

~~~
glenndebacker
You could also buy an NodeMCU
([http://nodemcu.com/index_en.html](http://nodemcu.com/index_en.html)) if you
don't like soldering. Personally without a formal electronics background or
great soldering skills, I had not a lot of problems with setting up the
ESP8266.

But I do agree that out of the box it's less "plug and play" as an Arduino.

~~~
maffydub
Agreed, although I prefer the D1 mini
([http://www.wemos.cc/Products/d1_mini.html](http://www.wemos.cc/Products/d1_mini.html))
- it's just a bit smaller (and cheaper?) than the NodeMCU.

The ESP-01 (which I started with) is quite painful to program, though - it
uses a bizarre baud rate (78k?) and shares its GPIO with its programming pins.

~~~
poseid
exactly, this is what i meant, for simple projects, the cheap costs vs time to
invest to get it running was not worth it

~~~
antocv
I dunno, I managed to get it running within a day or two, and had zero
experience in this kind of electronics before.

Used a raspberry pi to control it, with a button to switch it into programming
mode. No soldering, just wires and breadboard.

But now I use a d1 mini since its more comfortable/less breakage from
accidentally removing wires when cleaning.

------
david-given
Does it still have the built-in operating system? If so, is this required, or
can I replace it and run my own bare-metal firmware?

~~~
gh02t
It still has a built in RTOS like the 8266 and no I don't think you can
replace it. Not easily anyway, Espressif could probably do it but I don't
think users really are able to.

Your stuff _is_ running bare metal though - your code is linked directly into
the same binary payload as the RTOS. One of the major selling points of the
ESP32 though was that it is dual core, so that you can have one core dedicated
to servicing your code and the other to dealing with keeping the radio stack
alive and such.

------
dynofuz
im starting a company around these devices in boston. if anyone's interested
in joining, email me.

