Board Support Package¶
The connectivity drivers are supported in the BSP package of the board, Connectivity drivers include Ethernet, Wifi, GSM. You can use the bsp package to use the appropriate connectivity driver, without worrying about the driver type. (as long as the board has a conectivity chip on-board) For instance:
from bsp.drivers import wifi
wifi.init()
interface = wifi.interface()
interface.link("SSID",interface.WIFI_WPA2 ,"PASSWORD")
And these lines will automatically run on each board’s hardware, given that it has a wifi driver. For example, a Simple HTTP Time request:
# import streams
import streams
import json
# import the wifi interface
from bsp.drivers import wifi
# import the http module
import requests
streams.serial()
# init the wifi driver!
wifi.init()
interface = wifi.interface()
# use the wifi interface to link to the Access Point
# change network name, security and password as needed
print("Establishing Link...")
try:
# FOR THIS EXAMPLE TO WORK, "Network-Name" AND "Wifi-Password" MUST BE SET
# TO MATCH YOUR ACTUAL NETWORK CONFIGURATION
interface.link("SSID",interface.WIFI_WPA2 ,"PASSWORD")
except Exception as e:
print("ooops, something wrong while linking :(", e)
while True:
sleep(1000)
## let's try to connect to timeapi.org to get the current UTC time
for i in range(3):
try:
print("Trying to connect...")
# go get that time!
# url resolution and http protocol handling are hidden inside the requests module
response = requests.get("http://now.zerynth.com/")
# let's check the http response status: if different than 200, something went wrong
print("Http Status:",response.status)
# if we get here, there has been no exception, exit the loop
break
except Exception as e:
print(e)
try:
# check status and print the result
#if response.status==200:
print("Success!!")
print("-------------")
print("And the result is:",response.content)
print("-------------")
js = json.loads(response.content)
print("Date:",js["now"]["rfc2822"][:16])
print("Time:",js["now"]["rfc2822"][17:])
except Exception as e:
print("ooops, something very wrong! :(",e)
GSM and Ethernet could be used in the same way, For instance for the Ethernet:
from bsp.drivers import eth
eth.init()
interface = eth.interface()
interface.link()
GSM and Ethernet could be used in the same way, For instance for the GSM:
from bsp.drivers import gsm
gsm.init()
List of supported boards¶
board | Connectivity peripheral supported | ||
---|---|---|---|
Adafruit Feather Huzzah | Wifi and Ethernet | ||
Arduino MKR1000 | Wifi | ||
MXChip IoT DevKit AZ3166 | Wifi | ||
DOIT Esp32 DevKit v1 | Wifi and Ethernet | ||
ESP32 Azure IoT Kit | Wifi and Ethernet | ||
ESP32 DevkitC | Wifi and Ethernet | ||
ESP32 Ethernetkit | Wifi and Ethernet | ||
ESP32 Pico V4 | Wifi and Ethernet | ||
Firebeetle ESP32 | Wifi and Ethernet | ||
Helios Control Board v1 | Wifi and Ethernet | ||
Heltec Wi-Fi Kit 32 | Wifi and Ethernet | ||
AWS Hexagon v1 | Wifi and Ethernet | ||
NodeMCU ESP-32S | Wifi and Ethernet | ||
Oddwires IO | Wifi and Ethernet | ||
oddwires Proteus | Wifi and Ethernet | ||
Olimex Esp32 EVB | Wifi and Ethernet | ||
Olimex Esp32 Gateway | Wifi and Ethernet | ||
Polaris 2G | GSM | ||
Polaris 3G | GSM | ||
Polaris NB-IoT | GSM | ||
PSoC6 WiFi-Bt Pioneer | Wifi | ||
Pycom FiPy 1.0 | Wifi and Ethernet | ||
Pycom WiPy 3.0 | Wifi and Ethernet | ||
Riverdi IoT Display | Wifi and Ethernet | ||
Sparkfun ESP32 Thing | Wifi and Ethernet | ||
Wemos ESP32 OLED | Wifi and Ethernet | ||
XinaBox CW02 (ESP32) | Wifi and Ethernet | ||
xmc4700_relaxkit Y | Ethernet | ||
Infineon XMC4700 Relax | Ethernet |