-
Notifications
You must be signed in to change notification settings - Fork 3.1k
ESP8266 ESP32 Compatibility
Rene K. Mueller edited this page Feb 19, 2018
·
18 revisions
This document reflects conflicts between NodeMCU/ESP8266 and NodeMCU/ESP32 and requirements to achieve larger degree of compatibility:
ESP8266:
-
adc.force_init_mode(node)
Checks and if necessary reconfigures the ADC mode setting in the ESP init data block.-
mode
:adc.INIT_ADC
adc.INIT_VDD33
-
-
adc.read()
Samples the ADC. -
adc.readvdd33()
Reads the system voltage.
ESP32:
-
adc.setup(adc_number,channel,atten)
-
adc_number
Onlyadc.ADC1
now -
channel
When using adc.ADC1: 0 to 7.0: GPIO36, 1: GPIO37, 2: GPIO38, 3: GPIO39, 4: GPIO32, 5: GPIO33, 6: GPIO34, 7: GPIO35
-
atten
One of following constants-
adc.ATTEN_0db
The input voltage of ADC will be reduced to about 1/1 (1.1V when VDD_A=3.3V) -
adc.ATTEN_2_5db
The input voltage of ADC will be reduced to about 1/1.34 (1.5V when VDD_A=3.3V) -
adc.ATTEN_6db
The input voltage of ADC will be reduced to about 1/2 (2.2V when VDD_A=3.3V) -
adc.ATTEN_11db
The input voltage of ADC will be reduced to about 1/3.6 (3.9V when VDD_A=3.3V, maximum voltage is limited by VDD_A)
-
-
-
adc.read()
Samples the ADC.
The object mode of file operations isn't implemented yet (file.read()
vs src = file.open() src:read()
) according dev-esp32 documentation.
ESP8266:
-
file.obj:close()
Closes the open file, if any. -
file.obj:flush()
Flushes any pending writes to the file system, ensuring no data is lost on a restart. -
file.obj:read()
Read content from the open file. -
file.obj:readline()
Read the next line from the open file. -
file.obj:seek()
Sets and gets the file position, measured from the beginning of the file, to the position given by offset plus a base specified by the string whence. -
file.obj:write()
Write a string to the open file. -
file.obj:writeline()
Write a string to the open file and append '\n' at the end.
ESP32:
- all above listed are missing according documentation
ESP8266:
-
gpio.mode(pin,type,pullup)
-
type
:gpio.INPUT
gpio.OUTPUT
gpio.OPENDRAIN
gpio.INT
-
pullup
:-
gpio.FLOAT
(default) -
gpio.PULLUP
enables the weak pull-up resistor
-
-
-
gpio.trig(pin,type,callback(level,when))
-
type
:"up", "down", "both", "low", "high"
-
ESP32:
-
gpio.config({gpio=..,dir=..,pull=..,opendrain=..})
-
dir
:gpio.IN
gpio.OUT
gpio.IN_OUT
-
pull
:-
gpio.FLOATING
disables both pull-up and -down -
gpio.PULL_UP
enables pull-up and disables pull-down -
gpio.PULL_DOWN
enables pull-down and disables pull-up -
gpio.PULL_UP_DOWN
enables both pull-up and -down
-
-
-
gpio.trig(pin,types,callback(pin,level))
-
type
:-
gpio.INTR_UP
for trigger on rising edge -
gpio.INTR_DOWN
for trigger on falling edge -
gpio.INTR_UP_DOWN
for trigger on both edges -
gpio.INTR_LOW
for trigger on low level -
gpio.INTR_HIGH
for trigger on high level
-
-
ESP8266:
-
node.info()
return 8 elements:- majorVer (number)
- minorVer (number)
- devVer (number)
- chipid (number)
- flashid (number)
- flashsize (number)
- flashmode (number)
- flashspeed (number)
-
node.chipid()
returns an integer (last 3 bytes of the station MAC address)
ESP32:
-
node.info()
missing -
node.chipid()
returns hex string with '0x' as prefix and 7 bytes whereas the last byte of the MAC address is dropped (risk of 256 identical chipids)
ESP8266:
-
tmr.now()
returns microseconds -
tmr.time()
time in seconds since boot (uptime)
ESP32:
-
tmr.now()
missing -
tmr.time()
missing
ESP8266 and ESP32 differ a lot:
ESP8266
- events are captured via
wifi.eventmon.*
:-
wifi.eventmon.register(event[, function(T)])
wifi.eventmon.STA_CONNECTED
wifi.eventmon.STA_DISCONNECTED
wifi.eventmon.STA_AUTHMODE_CHANGE
wifi.eventmon.STA_GOT_IP
wifi.eventmon.STA_DHCP_TIMEOUT
wifi.eventmon.AP_STACONNECTED
wifi.eventmon.AP_STADISCONNECTED
wifi.eventmon.AP_PROBEREQRECVED
-
ESP32:
- events are captured via
wifi.on()
-
wifi.ap.on(event, callback)
-
event
:-
start
: no additional info -
stop
: no additional info -
sta_connected
: information about the client that connected: -
mac
: the MAC address -
id
: assigned station id (AID) -
disconnected
: information about disconnecting client -
mac
: the MAC address -
probe_req
: information about the probing client -
from
: MAC address of the probing client -
rssi
: Received Signal Strength Indicator value
-
-
-