We've improved our open-source developer tooling ("Jaguar") for the ESP32 with support for dynamically installing or updating drivers and services without reflashing or rebooting your devices.
As an example, you can install an NTP-based time synchronization service on your device through:
Code: Select all
$ jag container install ntp examples/ntp/ntp.toit
Code: Select all
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:320
load:0x40078000,len:13216
load:0x40080400,len:2964
entry 0x400805c8
[toit] INFO: starting <v2.0.0-alpha.22>
[jaguar] INFO: container 'ntp' started
[wifi] DEBUG: connecting
[wifi] DEBUG: connected
[wifi] INFO: network address dynamically assigned through dhcp {ip: 192.168.86.34}
[jaguar] INFO: running Jaguar device 'possible-teaching' on 'http://192.168.86.34:9000'
[ntp] INFO: synchronized {adjustment: 461886h45m59.639723406s, time: 2022-09-10T06:46:02}
...
Code: Select all
$ jag container install cellular-bg96 quectel-cellular/src/bg96.toit \
-D cellular.uart.tx=17 \
-D cellular.uart.rx=16 \
-D cellular.apn=soracom.io
Code: Select all
import cellular
import http
main:
network := cellular.open
client := http.Client network
host := "www.google.com"
response := client.get host "/"
bytes := 0
while data := response.body.read: bytes += data.size
print "Read $bytes bytes from http://$host/ via cellular!"
Regards,
Kasper