diff --git a/.gitbook/assets/Senet-logo-2.png b/.gitbook/assets/senet-logo-2.png similarity index 100% rename from .gitbook/assets/Senet-logo-2.png rename to .gitbook/assets/senet-logo-2.png diff --git a/.gitbook/assets/Senet-Logo.png b/.gitbook/assets/senet-logo.png similarity index 100% rename from .gitbook/assets/Senet-Logo.png rename to .gitbook/assets/senet-logo.png diff --git a/README.md b/README.md index 0c35b96..d7a3e50 100644 --- a/README.md +++ b/README.md @@ -5,9 +5,9 @@ Welcome to the Pycom documentation site. We recommend reading through all the se To get started, read through the Getting Started Guide then feel free to jump straight into the tutorials and examples in Tutorials & Examples to begin building your projects. * [Products](products.md) -* [Getting Started](gettingstarted/introduction.md) -* [Tutorials](tutorials/introduction.md) -* [Product Info](datasheets/introduction.md) -* [API Documentation](firmwareapi/introduction.md) +* [Getting Started](getting-started/introduction.md) +* [Tutorials](tutorials-and-examples/introduction.md) +* [Product Info](product-info/introduction.md) +* [API Documentation](firmware-and-api-reference/introduction.md) * [Pybytes](pybytes/introduction.md) diff --git a/SUMMARY.md b/SUMMARY.md index 59ad123..cc266b9 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -5,176 +5,176 @@ ## Getting Started -* [Introduction](gettingstarted/introduction.md) -* [Hardware Setup](gettingstarted/connection/README.md) - * [LoPy](gettingstarted/connection/lopy.md) - * [LoPy 4](gettingstarted/connection/lopy4.md) - * [SiPy](gettingstarted/connection/sipy.md) - * [GPy](gettingstarted/connection/gpy.md) - * [FiPy](gettingstarted/connection/fipy.md) - * [WiPy](gettingstarted/connection/wipy.md) -* [Software](gettingstarted/installation/README.md) - * [Drivers](gettingstarted/installation/drivers.md) - * [Updating Firmware](gettingstarted/installation/firmwaretool.md) - * [Pymakr](gettingstarted/installation/pymakr.md) -* [Programming the modules](gettingstarted/programming/README.md) - * [Introduction to MicroPython](gettingstarted/programming/micropython.md) - * [MicroPython Examples](gettingstarted/programming/examples.md) - * [Your first Pymakr project](gettingstarted/programming/first-project.md) - * [REPL](gettingstarted/programming/repl/README.md) - * [Serial USB \(UART\)](gettingstarted/programming/repl/serial.md) - * [Telnet REPL](gettingstarted/programming/repl/telnet.md) - * [FTP](gettingstarted/programming/ftp.md) - * [Safe boot](gettingstarted/programming/safeboot.md) -* [Device Registration](gettingstarted/registration/README.md) - * [Sigfox](gettingstarted/registration/sigfox.md) - * [Cellular](gettingstarted/registration/cellular.md) - * [LoRaWAN](gettingstarted/registration/lora/README.md) - * [The Things Network](gettingstarted/registration/lora/ttn.md) - * [Senet](gettingstarted/registration/lora/senet.md) +* [Introduction](getting-started/introduction.md) +* [Hardware Setup](getting-started/connection/README.md) + * [LoPy](getting-started/connection/lopy.md) + * [LoPy 4](getting-started/connection/lopy4.md) + * [SiPy](getting-started/connection/sipy.md) + * [GPy](getting-started/connection/gpy.md) + * [FiPy](getting-started/connection/fipy.md) + * [WiPy](getting-started/connection/wipy.md) +* [Software](getting-started/installation/README.md) + * [Drivers](getting-started/installation/drivers.md) + * [Updating Firmware](getting-started/installation/firmwaretool.md) + * [Pymakr](getting-started/installation/pymakr.md) +* [Programming the modules](getting-started/programming/README.md) + * [Introduction to MicroPython](getting-started/programming/micropython.md) + * [MicroPython Examples](getting-started/programming/examples.md) + * [Your first Pymakr project](getting-started/programming/first-project.md) + * [REPL](getting-started/programming/repl/README.md) + * [Serial USB \(UART\)](getting-started/programming/repl/serial.md) + * [Telnet REPL](getting-started/programming/repl/telnet.md) + * [FTP](getting-started/programming/ftp.md) + * [Safe boot](getting-started/programming/safeboot.md) +* [Device Registration](getting-started/registration/README.md) + * [Sigfox](getting-started/registration/sigfox.md) + * [Cellular](getting-started/registration/cellular.md) + * [LoRaWAN](getting-started/registration/lora/README.md) + * [The Things Network](getting-started/registration/lora/ttn.md) + * [Senet](getting-started/registration/lora/senet.md) ## Pymakr Plugin -* [Installation](pymakr/installation/README.md) - * [Atom](pymakr/installation/atom.md) - * [Visual Studio Code](pymakr/installation/vscode.md) -* [Tools/Features](pymakr/toolsfeatures.md) -* [Settings](pymakr/settings.md) +* [Installation](pymakr-plugin/installation/README.md) + * [Atom](pymakr-plugin/installation/atom.md) + * [Visual Studio Code](pymakr-plugin/installation/vscode.md) +* [Tools/Features](pymakr-plugin/toolsfeatures.md) +* [Settings](pymakr-plugin/settings.md) ## Pytrack, Pysense, Pyscan -* [Introduction](pytrackpysense/introduction.md) -* [Installing Software](pytrackpysense/installation/README.md) - * [Updating Firmware](pytrackpysense/installation/firmware.md) - * [Installing Drivers - Windows 7](pytrackpysense/installation/drivers.md) - * [Installing Libraries](pytrackpysense/installation/libraries.md) -* [API Reference](pytrackpysense/apireference/README.md) - * [Pytrack](pytrackpysense/apireference/pytrack.md) - * [Pysense](pytrackpysense/apireference/pysense.md) - * [Pyscan](pytrackpysense/apireference/pyscan.md) - * [Sleep](pytrackpysense/apireference/sleep.md) +* [Introduction](pytrack-pysense-pyscan/introduction.md) +* [Installing Software](pytrack-pysense-pyscan/installation/README.md) + * [Updating Firmware](pytrack-pysense-pyscan/installation/firmware.md) + * [Installing Drivers - Windows 7](pytrack-pysense-pyscan/installation/drivers.md) + * [Installing Libraries](pytrack-pysense-pyscan/installation/libraries.md) +* [API Reference](pytrack-pysense-pyscan/apireference/README.md) + * [Pytrack](pytrack-pysense-pyscan/apireference/pytrack.md) + * [Pysense](pytrack-pysense-pyscan/apireference/pysense.md) + * [Pyscan](pytrack-pysense-pyscan/apireference/pyscan.md) + * [Sleep](pytrack-pysense-pyscan/apireference/sleep.md) ## Tutorials & Examples -* [Introduction](tutorials/introduction.md) -* [All Pycom Device Examples](tutorials/all/README.md) - * [REPL](tutorials/all/repl.md) - * [WLAN](tutorials/all/wlan.md) - * [Bluetooth](tutorials/all/ble.md) - * [HTTPS](tutorials/all/https.md) - * [MQTT](tutorials/all/mqtt.md) - * [AWS](tutorials/all/aws.md) - * [ADC](tutorials/all/adc.md) - * [I2C](tutorials/all/i2c.md) - * [Onewire Driver](tutorials/all/owd.md) - * [Threading](tutorials/all/threading.md) - * [RGB LED](tutorials/all/rgbled.md) - * [Timers](tutorials/all/timers.md) - * [PIR Sensor](tutorials/all/pir.md) - * [Modbus](tutorials/all/modbus.md) - * [OTA update](tutorials/all/ota.md) - * [RMT](tutorials/all/rmt.md) -* [LoRa Examples](tutorials/lora/README.md) - * [LoRa-MAC \(Raw LoRa\)](tutorials/lora/lora-mac.md) - * [LoRaWAN with OTAA](tutorials/lora/lorawan-otaa.md) - * [LoRaWAN with ABP](tutorials/lora/lorawan-abp.md) - * [LoRa-MAC Nano-Gateway](tutorials/lora/lora-mac-nano-gateway.md) - * [LoPy to LoPy](tutorials/lora/module-module.md) - * [LoRaWAN Nano-Gateway](tutorials/lora/lorawan-nano-gateway.md) - * [RN2483 to LoPy](tutorials/lora/rn2483-to-lopy.md) -* [Sigfox Examples](tutorials/sigfox.md) -* [LTE Examples](tutorials/lte/README.md) - * [CAT-M1](tutorials/lte/cat-m1.md) - * [NB-IoT](tutorials/lte/nb-iot.md) - * [Module IMEI](tutorials/lte/imei.md) - * [Modem Firmware Update](tutorials/lte/firmware.md) -* [Pytrack Examples](tutorials/pytrack.md) -* [Pysense Examples](tutorials/pysense.md) -* [Pyscan Examples](tutorials/pyscan.md) +* [Introduction](tutorials-and-examples/introduction.md) +* [All Pycom Device Examples](tutorials-and-examples/all/README.md) + * [REPL](tutorials-and-examples/all/repl.md) + * [WLAN](tutorials-and-examples/all/wlan.md) + * [Bluetooth](tutorials-and-examples/all/ble.md) + * [HTTPS](tutorials-and-examples/all/https.md) + * [MQTT](tutorials-and-examples/all/mqtt.md) + * [AWS](tutorials-and-examples/all/aws.md) + * [ADC](tutorials-and-examples/all/adc.md) + * [I2C](tutorials-and-examples/all/i2c.md) + * [Onewire Driver](tutorials-and-examples/all/owd.md) + * [Threading](tutorials-and-examples/all/threading.md) + * [RGB LED](tutorials-and-examples/all/rgbled.md) + * [Timers](tutorials-and-examples/all/timers.md) + * [PIR Sensor](tutorials-and-examples/all/pir.md) + * [Modbus](tutorials-and-examples/all/modbus.md) + * [OTA update](tutorials-and-examples/all/ota.md) + * [RMT](tutorials-and-examples/all/rmt.md) +* [LoRa Examples](tutorials-and-examples/lora/README.md) + * [LoRa-MAC \(Raw LoRa\)](tutorials-and-examples/lora/lora-mac.md) + * [LoRaWAN with OTAA](tutorials-and-examples/lora/lorawan-otaa.md) + * [LoRaWAN with ABP](tutorials-and-examples/lora/lorawan-abp.md) + * [LoRa-MAC Nano-Gateway](tutorials-and-examples/lora/lora-mac-nano-gateway.md) + * [LoPy to LoPy](tutorials-and-examples/lora/module-module.md) + * [LoRaWAN Nano-Gateway](tutorials-and-examples/lora/lorawan-nano-gateway.md) + * [RN2483 to LoPy](tutorials-and-examples/lora/rn2483-to-lopy.md) +* [Sigfox Examples](tutorials-and-examples/sigfox.md) +* [LTE Examples](tutorials-and-examples/lte/README.md) + * [CAT-M1](tutorials-and-examples/lte/cat-m1.md) + * [NB-IoT](tutorials-and-examples/lte/nb-iot.md) + * [Module IMEI](tutorials-and-examples/lte/imei.md) + * [Modem Firmware Update](tutorials-and-examples/lte/firmware.md) +* [Pytrack Examples](tutorials-and-examples/pytrack.md) +* [Pysense Examples](tutorials-and-examples/pysense.md) +* [Pyscan Examples](tutorials-and-examples/pyscan.md) ## Firmware & API Reference -* [Introduction](firmwareapi/introduction.md) -* [Pycom Modules](firmwareapi/pycom/README.md) - * [machine](firmwareapi/pycom/machine/README.md) - * [ADC](firmwareapi/pycom/machine/adc.md) - * [DAC](firmwareapi/pycom/machine/dac.md) - * [I2C](firmwareapi/pycom/machine/i2c.md) - * [Pin](firmwareapi/pycom/machine/pin.md) - * [PWM](firmwareapi/pycom/machine/pwm.md) - * [RTC](firmwareapi/pycom/machine/rtc.md) - * [SPI](firmwareapi/pycom/machine/spi.md) - * [UART](firmwareapi/pycom/machine/uart.md) - * [WDT](firmwareapi/pycom/machine/wdt.md) - * [Timer](firmwareapi/pycom/machine/timer.md) - * [SD](firmwareapi/pycom/machine/sd.md) - * [CAN](firmwareapi/pycom/machine/can.md) - * [RMT](firmwareapi/pycom/machine/rmt.md) - * [network](firmwareapi/pycom/network/README.md) - * [WLAN](firmwareapi/pycom/network/wlan.md) - * [Server](firmwareapi/pycom/network/server.md) - * [Bluetooth](firmwareapi/pycom/network/bluetooth/README.md) - * [GATT](firmwareapi/pycom/network/bluetooth/gatt.md) - * [GATTCConnection](firmwareapi/pycom/network/bluetooth/gattcconnection.md) - * [GATTCService](firmwareapi/pycom/network/bluetooth/gattccservice.md) - * [GATTCCharacteristic](firmwareapi/pycom/network/bluetooth/gattccharacteristic.md) - * [GATTSService](firmwareapi/pycom/network/bluetooth/gattsservice.md) - * [GATTSCharacteristic](firmwareapi/pycom/network/bluetooth/gattscharacteristic.md) - * [LoRa](firmwareapi/pycom/network/lora.md) - * [Sigfox](firmwareapi/pycom/network/sigfox.md) - * [LTE](firmwareapi/pycom/network/lte.md) - * [AES](firmwareapi/pycom/aes.md) - * [pycom](firmwareapi/pycom/pycom.md) -* [MicroPython Modules](firmwareapi/micropython/README.md) - * [micropython](firmwareapi/micropython/micropython.md) - * [uctypes](firmwareapi/micropython/uctypes.md) - * [sys](firmwareapi/micropython/sys.md) - * [uos](firmwareapi/micropython/uos.md) - * [array](firmwareapi/micropython/array.md) - * [cmath](firmwareapi/micropython/cmath.md) - * [math](firmwareapi/micropython/math.md) - * [gc](firmwareapi/micropython/gc.md) - * [ubinascii](firmwareapi/micropython/ubinascii.md) - * [ujson](firmwareapi/micropython/ujson.md) - * [ure](firmwareapi/micropython/ure.md) - * [usocket](firmwareapi/micropython/usocket.md) - * [select](firmwareapi/micropython/select.md) - * [utime](firmwareapi/micropython/utime.md) - * [uhashlib](firmwareapi/micropython/uhashlib.md) - * [ussl](firmwareapi/micropython/ussl.md) - * [ucrypto](firmwareapi/micropython/ucrypto.md) - * [ustruct](firmwareapi/micropython/ustruct.md) - * [\_thread](firmwareapi/micropython/_thread.md) - * [Builtin](firmwareapi/micropython/builtin.md) -* [Notes](firmwareapi/notes.md) +* [Introduction](firmware-and-api-reference/introduction.md) +* [Pycom Modules](firmware-and-api-reference/pycom/README.md) + * [machine](firmware-and-api-reference/pycom/machine/README.md) + * [ADC](firmware-and-api-reference/pycom/machine/adc.md) + * [DAC](firmware-and-api-reference/pycom/machine/dac.md) + * [I2C](firmware-and-api-reference/pycom/machine/i2c.md) + * [Pin](firmware-and-api-reference/pycom/machine/pin.md) + * [PWM](firmware-and-api-reference/pycom/machine/pwm.md) + * [RTC](firmware-and-api-reference/pycom/machine/rtc.md) + * [SPI](firmware-and-api-reference/pycom/machine/spi.md) + * [UART](firmware-and-api-reference/pycom/machine/uart.md) + * [WDT](firmware-and-api-reference/pycom/machine/wdt.md) + * [Timer](firmware-and-api-reference/pycom/machine/timer.md) + * [SD](firmware-and-api-reference/pycom/machine/sd.md) + * [CAN](firmware-and-api-reference/pycom/machine/can.md) + * [RMT](firmware-and-api-reference/pycom/machine/rmt.md) + * [network](firmware-and-api-reference/pycom/network/README.md) + * [WLAN](firmware-and-api-reference/pycom/network/wlan.md) + * [Server](firmware-and-api-reference/pycom/network/server.md) + * [Bluetooth](firmware-and-api-reference/pycom/network/bluetooth/README.md) + * [GATT](firmware-and-api-reference/pycom/network/bluetooth/gatt.md) + * [GATTCConnection](firmware-and-api-reference/pycom/network/bluetooth/gattcconnection.md) + * [GATTCService](firmware-and-api-reference/pycom/network/bluetooth/gattccservice.md) + * [GATTCCharacteristic](firmware-and-api-reference/pycom/network/bluetooth/gattccharacteristic.md) + * [GATTSService](firmware-and-api-reference/pycom/network/bluetooth/gattsservice.md) + * [GATTSCharacteristic](firmware-and-api-reference/pycom/network/bluetooth/gattscharacteristic.md) + * [LoRa](firmware-and-api-reference/pycom/network/lora.md) + * [Sigfox](firmware-and-api-reference/pycom/network/sigfox.md) + * [LTE](firmware-and-api-reference/pycom/network/lte.md) + * [AES](firmware-and-api-reference/pycom/aes.md) + * [pycom](firmware-and-api-reference/pycom/pycom.md) +* [MicroPython Modules](firmware-and-api-reference/micropython/README.md) + * [micropython](firmware-and-api-reference/micropython/micropython.md) + * [uctypes](firmware-and-api-reference/micropython/uctypes.md) + * [sys](firmware-and-api-reference/micropython/sys.md) + * [uos](firmware-and-api-reference/micropython/uos.md) + * [array](firmware-and-api-reference/micropython/array.md) + * [cmath](firmware-and-api-reference/micropython/cmath.md) + * [math](firmware-and-api-reference/micropython/math.md) + * [gc](firmware-and-api-reference/micropython/gc.md) + * [ubinascii](firmware-and-api-reference/micropython/ubinascii.md) + * [ujson](firmware-and-api-reference/micropython/ujson.md) + * [ure](firmware-and-api-reference/micropython/ure.md) + * [usocket](firmware-and-api-reference/micropython/usocket.md) + * [select](firmware-and-api-reference/micropython/select.md) + * [utime](firmware-and-api-reference/micropython/utime.md) + * [uhashlib](firmware-and-api-reference/micropython/uhashlib.md) + * [ussl](firmware-and-api-reference/micropython/ussl.md) + * [ucrypto](firmware-and-api-reference/micropython/ucrypto.md) + * [ustruct](firmware-and-api-reference/micropython/ustruct.md) + * [\_thread](firmware-and-api-reference/micropython/_thread.md) + * [Builtin](firmware-and-api-reference/micropython/builtin.md) +* [Notes](firmware-and-api-reference/notes.md) ## Product Info -* [Introduction](datasheets/introduction.md) -* [Development Modules](datasheets/development/README.md) - * [WiPy 2.0](datasheets/development/wipy2.md) - * [WiPy 3.0](datasheets/development/wipy3.md) - * [LoPy](datasheets/development/lopy.md) - * [LoPy 4](datasheets/development/lopy4.md) - * [SiPy](datasheets/development/sipy.md) - * [GPy](datasheets/development/gpy.md) - * [FiPy](datasheets/development/fipy.md) -* [OEM Modules](datasheets/oem/README.md) - * [W01](datasheets/oem/w01.md) - * [L01](datasheets/oem/l01.md) - * [L04](datasheets/oem/l04.md) - * [G01](datasheets/oem/g01.md) - * [L01 OEM Baseboard Reference](datasheets/oem/l01_reference.md) - * [Universal OEM Baseboard Reference](datasheets/oem/universal_reference.md) -* [Expansion Boards and Shields](datasheets/boards/README.md) - * [Expansion Board 3.0](datasheets/boards/expansion3.md) - * [Pytrack](datasheets/boards/pytrack.md) - * [Pysense](datasheets/boards/pysense.md) - * [Pyscan](datasheets/boards/pyscan.md) - * [Expansion Board 2.0](datasheets/boards/expansion2.md) - * [Deep Sleep Shield](datasheets/boards/deepsleep/README.md) - * [Deep Sleep API](datasheets/boards/deepsleep/api.md) -* [Notes](datasheets/notes.md) +* [Introduction](product-info/introduction.md) +* [Development Modules](product-info/development/README.md) + * [WiPy 2.0](product-info/development/wipy2.md) + * [WiPy 3.0](product-info/development/wipy3.md) + * [LoPy](product-info/development/lopy.md) + * [LoPy 4](product-info/development/lopy4.md) + * [SiPy](product-info/development/sipy.md) + * [GPy](product-info/development/gpy.md) + * [FiPy](product-info/development/fipy.md) +* [OEM Modules](product-info/oem/README.md) + * [W01](product-info/oem/w01.md) + * [L01](product-info/oem/l01.md) + * [L04](product-info/oem/l04.md) + * [G01](product-info/oem/g01.md) + * [L01 OEM Baseboard Reference](product-info/oem/l01_reference.md) + * [Universal OEM Baseboard Reference](product-info/oem/universal_reference.md) +* [Expansion Boards and Shields](product-info/boards/README.md) + * [Expansion Board 3.0](product-info/boards/expansion3.md) + * [Pytrack](product-info/boards/pytrack.md) + * [Pysense](product-info/boards/pysense.md) + * [Pyscan](product-info/boards/pyscan.md) + * [Expansion Board 2.0](product-info/boards/expansion2.md) + * [Deep Sleep Shield](product-info/boards/deepsleep/README.md) + * [Deep Sleep API](product-info/boards/deepsleep/api.md) +* [Notes](product-info/notes.md) ## Pybytes @@ -190,18 +190,19 @@ ## Documentation Notes -* [Introduction](docnotes/introduction.md) -* [Syntax](docnotes/syntax.md) -* [REPL vs Scripts](docnotes/replscript.md) -* [Mesh Networks](docnotes/mesh-networks.md) +* [Introduction](documentation-notes/introduction.md) +* [Syntax](documentation-notes/syntax.md) +* [REPL vs Scripts](documentation-notes/replscript.md) +* [Mesh Networks](documentation-notes/mesh-networks.md) ## Advanced Topics -* [Firmware Downgrade](advance/downgrade.md) -* [CLI Updater](advance/cli.md) -* [SecureBoot and Encryption](advance/encryption.md) -* [License](license.md) +* [Firmware Downgrade](advanced-topics/downgrade.md) +* [CLI Updater](advanced-topics/cli.md) +* [SecureBoot and Encryption](advanced-topics/encryption.md) +* [License](advanced-topics/license.md) ## Have a question? * [Ask on the Forum](https://forum.pycom.io) + diff --git a/advance/cli.md b/advanced-topics/cli.md similarity index 99% rename from advance/cli.md rename to advanced-topics/cli.md index 75aaafd..e367c85 100644 --- a/advance/cli.md +++ b/advanced-topics/cli.md @@ -325,7 +325,7 @@ To restore your OTA block: `$pycom-fwtool-cli -p PORT ota -r -f backup.ota` #### lpwan -Get/Set LPWAN parameters saved to non-volatile storage. Please see [here](../firmwareapi/pycom/network/lora.md##loranvramsave) for more details. +Get/Set LPWAN parameters saved to non-volatile storage. Please see [here](../firmware-and-api-reference/pycom/network/lora.md##loranvramsave) for more details. ```text usage: pycom-fwtool-cli -p PORT lpwan [-h] [--region REGION] diff --git a/advance/downgrade.md b/advanced-topics/downgrade.md similarity index 100% rename from advance/downgrade.md rename to advanced-topics/downgrade.md diff --git a/advance/encryption.md b/advanced-topics/encryption.md similarity index 100% rename from advance/encryption.md rename to advanced-topics/encryption.md diff --git a/license.md b/advanced-topics/license.md similarity index 100% rename from license.md rename to advanced-topics/license.md diff --git a/docnotes/introduction.md b/documentation-notes/introduction.md similarity index 100% rename from docnotes/introduction.md rename to documentation-notes/introduction.md diff --git a/docnotes/mesh-networks.md b/documentation-notes/mesh-networks.md similarity index 100% rename from docnotes/mesh-networks.md rename to documentation-notes/mesh-networks.md diff --git a/docnotes/replscript.md b/documentation-notes/replscript.md similarity index 100% rename from docnotes/replscript.md rename to documentation-notes/replscript.md diff --git a/docnotes/syntax.md b/documentation-notes/syntax.md similarity index 100% rename from docnotes/syntax.md rename to documentation-notes/syntax.md diff --git a/firmwareapi/introduction.md b/firmware-and-api-reference/introduction.md similarity index 100% rename from firmwareapi/introduction.md rename to firmware-and-api-reference/introduction.md diff --git a/firmwareapi/micropython/README.md b/firmware-and-api-reference/micropython/README.md similarity index 100% rename from firmwareapi/micropython/README.md rename to firmware-and-api-reference/micropython/README.md diff --git a/firmwareapi/micropython/_thread.md b/firmware-and-api-reference/micropython/_thread.md similarity index 100% rename from firmwareapi/micropython/_thread.md rename to firmware-and-api-reference/micropython/_thread.md diff --git a/firmwareapi/micropython/array.md b/firmware-and-api-reference/micropython/array.md similarity index 100% rename from firmwareapi/micropython/array.md rename to firmware-and-api-reference/micropython/array.md diff --git a/firmwareapi/micropython/builtin.md b/firmware-and-api-reference/micropython/builtin.md similarity index 100% rename from firmwareapi/micropython/builtin.md rename to firmware-and-api-reference/micropython/builtin.md diff --git a/firmwareapi/micropython/cmath.md b/firmware-and-api-reference/micropython/cmath.md similarity index 100% rename from firmwareapi/micropython/cmath.md rename to firmware-and-api-reference/micropython/cmath.md diff --git a/firmwareapi/micropython/gc.md b/firmware-and-api-reference/micropython/gc.md similarity index 100% rename from firmwareapi/micropython/gc.md rename to firmware-and-api-reference/micropython/gc.md diff --git a/firmwareapi/micropython/math.md b/firmware-and-api-reference/micropython/math.md similarity index 100% rename from firmwareapi/micropython/math.md rename to firmware-and-api-reference/micropython/math.md diff --git a/firmwareapi/micropython/micropython.md b/firmware-and-api-reference/micropython/micropython.md similarity index 100% rename from firmwareapi/micropython/micropython.md rename to firmware-and-api-reference/micropython/micropython.md diff --git a/firmwareapi/micropython/select.md b/firmware-and-api-reference/micropython/select.md similarity index 100% rename from firmwareapi/micropython/select.md rename to firmware-and-api-reference/micropython/select.md diff --git a/firmwareapi/micropython/sys.md b/firmware-and-api-reference/micropython/sys.md similarity index 100% rename from firmwareapi/micropython/sys.md rename to firmware-and-api-reference/micropython/sys.md diff --git a/firmwareapi/micropython/ubinascii.md b/firmware-and-api-reference/micropython/ubinascii.md similarity index 100% rename from firmwareapi/micropython/ubinascii.md rename to firmware-and-api-reference/micropython/ubinascii.md diff --git a/firmwareapi/micropython/ucrypto.md b/firmware-and-api-reference/micropython/ucrypto.md similarity index 100% rename from firmwareapi/micropython/ucrypto.md rename to firmware-and-api-reference/micropython/ucrypto.md diff --git a/firmwareapi/micropython/uctypes.md b/firmware-and-api-reference/micropython/uctypes.md similarity index 100% rename from firmwareapi/micropython/uctypes.md rename to firmware-and-api-reference/micropython/uctypes.md diff --git a/firmwareapi/micropython/uhashlib.md b/firmware-and-api-reference/micropython/uhashlib.md similarity index 100% rename from firmwareapi/micropython/uhashlib.md rename to firmware-and-api-reference/micropython/uhashlib.md diff --git a/firmwareapi/micropython/ujson.md b/firmware-and-api-reference/micropython/ujson.md similarity index 100% rename from firmwareapi/micropython/ujson.md rename to firmware-and-api-reference/micropython/ujson.md diff --git a/firmwareapi/micropython/uos.md b/firmware-and-api-reference/micropython/uos.md similarity index 100% rename from firmwareapi/micropython/uos.md rename to firmware-and-api-reference/micropython/uos.md diff --git a/firmwareapi/micropython/ure.md b/firmware-and-api-reference/micropython/ure.md similarity index 100% rename from firmwareapi/micropython/ure.md rename to firmware-and-api-reference/micropython/ure.md diff --git a/firmwareapi/micropython/usocket.md b/firmware-and-api-reference/micropython/usocket.md similarity index 100% rename from firmwareapi/micropython/usocket.md rename to firmware-and-api-reference/micropython/usocket.md diff --git a/firmwareapi/micropython/ussl.md b/firmware-and-api-reference/micropython/ussl.md similarity index 100% rename from firmwareapi/micropython/ussl.md rename to firmware-and-api-reference/micropython/ussl.md diff --git a/firmwareapi/micropython/ustruct.md b/firmware-and-api-reference/micropython/ustruct.md similarity index 100% rename from firmwareapi/micropython/ustruct.md rename to firmware-and-api-reference/micropython/ustruct.md diff --git a/firmwareapi/micropython/utime.md b/firmware-and-api-reference/micropython/utime.md similarity index 100% rename from firmwareapi/micropython/utime.md rename to firmware-and-api-reference/micropython/utime.md diff --git a/firmwareapi/notes.md b/firmware-and-api-reference/notes.md similarity index 100% rename from firmwareapi/notes.md rename to firmware-and-api-reference/notes.md diff --git a/firmwareapi/pycom/README.md b/firmware-and-api-reference/pycom/README.md similarity index 100% rename from firmwareapi/pycom/README.md rename to firmware-and-api-reference/pycom/README.md diff --git a/firmwareapi/pycom/aes.md b/firmware-and-api-reference/pycom/aes.md similarity index 100% rename from firmwareapi/pycom/aes.md rename to firmware-and-api-reference/pycom/aes.md diff --git a/firmwareapi/pycom/machine/README.md b/firmware-and-api-reference/pycom/machine/README.md similarity index 100% rename from firmwareapi/pycom/machine/README.md rename to firmware-and-api-reference/pycom/machine/README.md diff --git a/firmwareapi/pycom/machine/adc.md b/firmware-and-api-reference/pycom/machine/adc.md similarity index 100% rename from firmwareapi/pycom/machine/adc.md rename to firmware-and-api-reference/pycom/machine/adc.md diff --git a/firmwareapi/pycom/machine/can.md b/firmware-and-api-reference/pycom/machine/can.md similarity index 100% rename from firmwareapi/pycom/machine/can.md rename to firmware-and-api-reference/pycom/machine/can.md diff --git a/firmwareapi/pycom/machine/dac.md b/firmware-and-api-reference/pycom/machine/dac.md similarity index 100% rename from firmwareapi/pycom/machine/dac.md rename to firmware-and-api-reference/pycom/machine/dac.md diff --git a/firmwareapi/pycom/machine/i2c.md b/firmware-and-api-reference/pycom/machine/i2c.md similarity index 100% rename from firmwareapi/pycom/machine/i2c.md rename to firmware-and-api-reference/pycom/machine/i2c.md diff --git a/firmwareapi/pycom/machine/pin.md b/firmware-and-api-reference/pycom/machine/pin.md similarity index 100% rename from firmwareapi/pycom/machine/pin.md rename to firmware-and-api-reference/pycom/machine/pin.md diff --git a/firmwareapi/pycom/machine/pwm.md b/firmware-and-api-reference/pycom/machine/pwm.md similarity index 100% rename from firmwareapi/pycom/machine/pwm.md rename to firmware-and-api-reference/pycom/machine/pwm.md diff --git a/firmwareapi/pycom/machine/rmt.md b/firmware-and-api-reference/pycom/machine/rmt.md similarity index 100% rename from firmwareapi/pycom/machine/rmt.md rename to firmware-and-api-reference/pycom/machine/rmt.md diff --git a/firmwareapi/pycom/machine/rtc.md b/firmware-and-api-reference/pycom/machine/rtc.md similarity index 100% rename from firmwareapi/pycom/machine/rtc.md rename to firmware-and-api-reference/pycom/machine/rtc.md diff --git a/firmwareapi/pycom/machine/sd.md b/firmware-and-api-reference/pycom/machine/sd.md similarity index 100% rename from firmwareapi/pycom/machine/sd.md rename to firmware-and-api-reference/pycom/machine/sd.md diff --git a/firmwareapi/pycom/machine/spi.md b/firmware-and-api-reference/pycom/machine/spi.md similarity index 100% rename from firmwareapi/pycom/machine/spi.md rename to firmware-and-api-reference/pycom/machine/spi.md diff --git a/firmwareapi/pycom/machine/timer.md b/firmware-and-api-reference/pycom/machine/timer.md similarity index 100% rename from firmwareapi/pycom/machine/timer.md rename to firmware-and-api-reference/pycom/machine/timer.md diff --git a/firmwareapi/pycom/machine/uart.md b/firmware-and-api-reference/pycom/machine/uart.md similarity index 100% rename from firmwareapi/pycom/machine/uart.md rename to firmware-and-api-reference/pycom/machine/uart.md diff --git a/firmwareapi/pycom/machine/wdt.md b/firmware-and-api-reference/pycom/machine/wdt.md similarity index 100% rename from firmwareapi/pycom/machine/wdt.md rename to firmware-and-api-reference/pycom/machine/wdt.md diff --git a/firmwareapi/pycom/network/README.md b/firmware-and-api-reference/pycom/network/README.md similarity index 100% rename from firmwareapi/pycom/network/README.md rename to firmware-and-api-reference/pycom/network/README.md diff --git a/firmwareapi/pycom/network/bluetooth/README.md b/firmware-and-api-reference/pycom/network/bluetooth/README.md similarity index 100% rename from firmwareapi/pycom/network/bluetooth/README.md rename to firmware-and-api-reference/pycom/network/bluetooth/README.md diff --git a/firmwareapi/pycom/network/bluetooth/gatt.md b/firmware-and-api-reference/pycom/network/bluetooth/gatt.md similarity index 100% rename from firmwareapi/pycom/network/bluetooth/gatt.md rename to firmware-and-api-reference/pycom/network/bluetooth/gatt.md diff --git a/firmwareapi/pycom/network/bluetooth/gattccharacteristic.md b/firmware-and-api-reference/pycom/network/bluetooth/gattccharacteristic.md similarity index 100% rename from firmwareapi/pycom/network/bluetooth/gattccharacteristic.md rename to firmware-and-api-reference/pycom/network/bluetooth/gattccharacteristic.md diff --git a/firmwareapi/pycom/network/bluetooth/gattcconnection.md b/firmware-and-api-reference/pycom/network/bluetooth/gattcconnection.md similarity index 100% rename from firmwareapi/pycom/network/bluetooth/gattcconnection.md rename to firmware-and-api-reference/pycom/network/bluetooth/gattcconnection.md diff --git a/firmwareapi/pycom/network/bluetooth/gattccservice.md b/firmware-and-api-reference/pycom/network/bluetooth/gattccservice.md similarity index 100% rename from firmwareapi/pycom/network/bluetooth/gattccservice.md rename to firmware-and-api-reference/pycom/network/bluetooth/gattccservice.md diff --git a/firmwareapi/pycom/network/bluetooth/gattscharacteristic.md b/firmware-and-api-reference/pycom/network/bluetooth/gattscharacteristic.md similarity index 100% rename from firmwareapi/pycom/network/bluetooth/gattscharacteristic.md rename to firmware-and-api-reference/pycom/network/bluetooth/gattscharacteristic.md diff --git a/firmwareapi/pycom/network/bluetooth/gattsservice.md b/firmware-and-api-reference/pycom/network/bluetooth/gattsservice.md similarity index 100% rename from firmwareapi/pycom/network/bluetooth/gattsservice.md rename to firmware-and-api-reference/pycom/network/bluetooth/gattsservice.md diff --git a/firmwareapi/pycom/network/lora.md b/firmware-and-api-reference/pycom/network/lora.md similarity index 100% rename from firmwareapi/pycom/network/lora.md rename to firmware-and-api-reference/pycom/network/lora.md diff --git a/firmwareapi/pycom/network/lte.md b/firmware-and-api-reference/pycom/network/lte.md similarity index 99% rename from firmwareapi/pycom/network/lte.md rename to firmware-and-api-reference/pycom/network/lte.md index 1a07057..460b521 100644 --- a/firmwareapi/pycom/network/lte.md +++ b/firmware-and-api-reference/pycom/network/lte.md @@ -12,7 +12,7 @@ The GPy and FiPy support both new LTE-M protocols: {% endhint %} {% hint style="info" %} -The Sequans modem used on Pycom's cellular enabled modules can only work in one of these modes at a time. In order to switch between the two protocols you need to flash a different firmware to the Sequans modem. Instructions for this can be found [here](../../../tutorials/lte/firmware.md). +The Sequans modem used on Pycom's cellular enabled modules can only work in one of these modes at a time. In order to switch between the two protocols you need to flash a different firmware to the Sequans modem. Instructions for this can be found [here](../../../tutorials-and-examples/lte/firmware.md). {% endhint %} ## AT Commands diff --git a/firmwareapi/pycom/network/server.md b/firmware-and-api-reference/pycom/network/server.md similarity index 100% rename from firmwareapi/pycom/network/server.md rename to firmware-and-api-reference/pycom/network/server.md diff --git a/firmwareapi/pycom/network/sigfox.md b/firmware-and-api-reference/pycom/network/sigfox.md similarity index 100% rename from firmwareapi/pycom/network/sigfox.md rename to firmware-and-api-reference/pycom/network/sigfox.md diff --git a/firmwareapi/pycom/network/wlan.md b/firmware-and-api-reference/pycom/network/wlan.md similarity index 100% rename from firmwareapi/pycom/network/wlan.md rename to firmware-and-api-reference/pycom/network/wlan.md diff --git a/firmwareapi/pycom/pycom.md b/firmware-and-api-reference/pycom/pycom.md similarity index 100% rename from firmwareapi/pycom/pycom.md rename to firmware-and-api-reference/pycom/pycom.md diff --git a/gettingstarted/connection/README.md b/getting-started/connection/README.md similarity index 100% rename from gettingstarted/connection/README.md rename to getting-started/connection/README.md diff --git a/gettingstarted/connection/fipy.md b/getting-started/connection/fipy.md similarity index 96% rename from gettingstarted/connection/fipy.md rename to getting-started/connection/fipy.md index 8c24c2f..aa368b4 100644 --- a/gettingstarted/connection/fipy.md +++ b/getting-started/connection/fipy.md @@ -13,7 +13,7 @@ {% endtab %} {% tab title="Exp Board 3.0" %} -* Before connecting your module to an Expansion Board 3.0, you should update the firmware on the Expansion Board 3.0. Instructions on how to do this can be found [here](../../pytrackpysense/installation/firmware.md). +* Before connecting your module to an Expansion Board 3.0, you should update the firmware on the Expansion Board 3.0. Instructions on how to do this can be found [here](../../pytrack-pysense-pyscan/installation/firmware.md). * When using the expansion board with a FiPy, you will need to remove the CTS and RTS jumpers as these interfere with communication with the cellular modem. * Look for the reset button on the module \(located at a corner of the board, next to the LED\). * Locate the USB connector on the expansion board. @@ -23,7 +23,7 @@ {% endtab %} {% tab title="Pytrack/Pysense/Pyscan" %} -* Before connecting your module to a Pysense/Pytrack/Pyscan board, you should update the firmware on the Pysense/Pytrack/Pyscan. Instructions on how to do this can be found [here](../../pytrackpysense/installation/firmware.md). +* Before connecting your module to a Pysense/Pytrack/Pyscan board, you should update the firmware on the Pysense/Pytrack/Pyscan. Instructions on how to do this can be found [here](../../pytrack-pysense-pyscan/installation/firmware.md). * Look for the reset button on the FiPy module \(located at a corner of the board, next to the LED\). * Locate the USB connector on the Pysense/Pytrack/Pyscan. * Insert the module on the Pysense/Pytrack/Pyscan with the reset button pointing towards the USB connector. It should firmly click into place and the pins should now no longer be visible.  @@ -96,7 +96,7 @@ If you intend on using the LTE CAT-M1 or NB-IoT connectivity of the FiPy you **m ### WiFi/Bluetooth \(optional\) -All Pycom modules, including the FiPy, come with a on-board WiFi antenna as well as a U.FL connector for an external antenna. The external antenna is optional and only required if you need better performance or are mounting the FiPy in such a way that the WiFi signal is blocked. Switching between the antennas is done via software, instructions for this can be found [here.](../../firmwareapi/pycom/network/wlan.md) +All Pycom modules, including the FiPy, come with a on-board WiFi antenna as well as a U.FL connector for an external antenna. The external antenna is optional and only required if you need better performance or are mounting the FiPy in such a way that the WiFi signal is blocked. Switching between the antennas is done via software, instructions for this can be found [here.](../../firmware-and-api-reference/pycom/network/wlan.md)  diff --git a/gettingstarted/connection/gpy.md b/getting-started/connection/gpy.md similarity index 96% rename from gettingstarted/connection/gpy.md rename to getting-started/connection/gpy.md index 69e7ee7..3df96b8 100644 --- a/gettingstarted/connection/gpy.md +++ b/getting-started/connection/gpy.md @@ -12,7 +12,7 @@ {% endtab %} {% tab title="Exp Board 3.0" %} -* Before connecting your module to an Expansion Board 3.0, you should update the firmware on the Expansion Board 3.0. Instructions on how to do this can be found [here](../../pytrackpysense/installation/firmware.md). +* Before connecting your module to an Expansion Board 3.0, you should update the firmware on the Expansion Board 3.0. Instructions on how to do this can be found [here](../../pytrack-pysense-pyscan/installation/firmware.md). * Look for the reset button on the module \(located at a corner of the board, next to the LED\). * Locate the USB connector on the expansion board. * Insert the GPy module on the Expansion Board with the reset button pointing towards the USB connector. It should firmly click into place and the pins should now no longer be visible. @@ -21,7 +21,7 @@ {% endtab %} {% tab title="Pytrack/Pysense/Pyscan" %} -* Before connecting your module to a Pysense/Pytrack/Pyscan board, you should update the firmware on the Pysense/Pytrack/Pyscan. Instructions on how to do this can be found [here](../../pytrackpysense/installation/firmware.md). +* Before connecting your module to a Pysense/Pytrack/Pyscan board, you should update the firmware on the Pysense/Pytrack/Pyscan. Instructions on how to do this can be found [here](../../pytrack-pysense-pyscan/installation/firmware.md). * Look for the reset button on the GPy module \(located at a corner of the board, next to the LED\). * Locate the USB connector on the Pysense/Pytrack/Pyscan. * Insert the module on the Pysense/Pytrack/Pyscan with the reset button pointing towards the USB connector. It should firmly click into place and the pins should now no longer be visible.  @@ -73,7 +73,7 @@ If you intend on using the LTE CAT-M1 or NB-IoT connectivity of the GPy you **mu ### WiFi/Bluetooth \(optional\) -All Pycom modules, including the GPy, come with a on-board WiFi antenna as well as a U.FL connector for an external antenna. The external antenna is optional and only required if you need better performance or are mounting the GPy in such a way that the WiFi signal is blocked. Switching between the antennas is done via software, instructions for this can be found [here.](../../firmwareapi/pycom/network/wlan.md) +All Pycom modules, including the GPy, come with a on-board WiFi antenna as well as a U.FL connector for an external antenna. The external antenna is optional and only required if you need better performance or are mounting the GPy in such a way that the WiFi signal is blocked. Switching between the antennas is done via software, instructions for this can be found [here.](../../firmware-and-api-reference/pycom/network/wlan.md)  diff --git a/gettingstarted/connection/lopy.md b/getting-started/connection/lopy.md similarity index 96% rename from gettingstarted/connection/lopy.md rename to getting-started/connection/lopy.md index e3b3ea0..7d07644 100644 --- a/gettingstarted/connection/lopy.md +++ b/getting-started/connection/lopy.md @@ -12,7 +12,7 @@ {% endtab %} {% tab title="Exp Board 3.0" %} -* Before connecting your module to an Expansion Board 3.0, you should update the firmware on the Expansion Board 3.0. Instructions on how to do this can be found [here](../../pytrackpysense/installation/firmware.md). +* Before connecting your module to an Expansion Board 3.0, you should update the firmware on the Expansion Board 3.0. Instructions on how to do this can be found [here](../../pytrack-pysense-pyscan/installation/firmware.md). * Look for the reset button on the module \(located at a corner of the board, next to the LED\). * Locate the USB connector on the expansion board. * Insert the LoPy module on the Expansion Board with the reset button pointing towards the USB connector. It should firmly click into place and the pins should now no longer be visible. @@ -21,7 +21,7 @@ {% endtab %} {% tab title="Pytrack/Pysense/Pyscan" %} -* Before connecting your module to a Pysense/Pytrack/Pyscan board, you should update the firmware on the Pysense/Pytrack/Pyscan. Instructions on how to do this can be found [here](../../pytrackpysense/installation/firmware.md). +* Before connecting your module to a Pysense/Pytrack/Pyscan board, you should update the firmware on the Pysense/Pytrack/Pyscan. Instructions on how to do this can be found [here](../../pytrack-pysense-pyscan/installation/firmware.md). * Look for the reset button on the LoPy module \(located at a corner of the board, next to the LED\). * Locate the USB connector on the Pysense/Pytrack/Pyscan. * Insert the module on the Pysense/Pytrack/Pyscan with the reset button pointing towards the USB connector. It should firmly click into place and the pins should now no longer be visible.  @@ -84,7 +84,7 @@ The LoPy only supports LoRa on the 868MHz or 915MHz bands. It does not support 4 ### WiFi/Bluetooth \(optional\) -All Pycom modules, including the LoPy, come with a on-board WiFi antenna as well as a U.FL connector for an external antenna. The external antenna is optional and only required if you need better performance or are mounting the LoPy in such a way that the WiFi signal is blocked. Switching between the antennas is done via software, instructions for this can be found [here.](../../firmwareapi/pycom/network/wlan.md) +All Pycom modules, including the LoPy, come with a on-board WiFi antenna as well as a U.FL connector for an external antenna. The external antenna is optional and only required if you need better performance or are mounting the LoPy in such a way that the WiFi signal is blocked. Switching between the antennas is done via software, instructions for this can be found [here.](../../firmware-and-api-reference/pycom/network/wlan.md)  diff --git a/gettingstarted/connection/lopy4.md b/getting-started/connection/lopy4.md similarity index 96% rename from gettingstarted/connection/lopy4.md rename to getting-started/connection/lopy4.md index d605442..fd5d7ba 100644 --- a/gettingstarted/connection/lopy4.md +++ b/getting-started/connection/lopy4.md @@ -12,7 +12,7 @@ {% endtab %} {% tab title="Exp Board 3.0" %} -* Before connecting your module to an Expansion Board 3.0, you should update the firmware on the Expansion Board 3.0. Instructions on how to do this can be found [here](../../pytrackpysense/installation/firmware.md). +* Before connecting your module to an Expansion Board 3.0, you should update the firmware on the Expansion Board 3.0. Instructions on how to do this can be found [here](../../pytrack-pysense-pyscan/installation/firmware.md). * Look for the reset button on the module \(located at a corner of the board, next to the LED\). * Locate the USB connector on the expansion board. * Insert the LoPy4 module on the Expansion Board with the reset button pointing towards the USB connector. It should firmly click into place and the pins should now no longer be visible. @@ -21,7 +21,7 @@ {% endtab %} {% tab title="Pytrack/Pysense/Pyscan" %} -* Before connecting your module to a Pysense/Pytrack/Pyscan board, you should update the firmware on the Pysense/Pytrack/Pyscan. Instructions on how to do this can be found [here](../../pytrackpysense/installation/firmware.md). +* Before connecting your module to a Pysense/Pytrack/Pyscan board, you should update the firmware on the Pysense/Pytrack/Pyscan. Instructions on how to do this can be found [here](../../pytrack-pysense-pyscan/installation/firmware.md). * Look for the reset button on the LoPy4 module \(located at a corner of the board, next to the LED\). * Locate the USB connector on the Pysense/Pytrack/Pyscan. * Insert the module on the Pysense/Pytrack/Pyscan with the reset button pointing towards the USB connector. It should firmly click into place and the pins should now no longer be visible.  @@ -80,7 +80,7 @@ If you intend on using the LoRa/Sigfox connectivity of the LoPy4 you **must** co ### WiFi/Bluetooth \(optional\) -All Pycom modules, including the LoPy4, come with a on-board WiFi antenna as well as a U.FL connector for an external antenna. The external antenna is optional and only required if you need better performance or are mounting the LoPy4 in such a way that the WiFi signal is blocked. Switching between the antennas is done via software, instructions for this can be found [here.](../../firmwareapi/pycom/network/wlan.md) +All Pycom modules, including the LoPy4, come with a on-board WiFi antenna as well as a U.FL connector for an external antenna. The external antenna is optional and only required if you need better performance or are mounting the LoPy4 in such a way that the WiFi signal is blocked. Switching between the antennas is done via software, instructions for this can be found [here.](../../firmware-and-api-reference/pycom/network/wlan.md)  diff --git a/gettingstarted/connection/sipy.md b/getting-started/connection/sipy.md similarity index 96% rename from gettingstarted/connection/sipy.md rename to getting-started/connection/sipy.md index 5ea83e3..a122cd3 100644 --- a/gettingstarted/connection/sipy.md +++ b/getting-started/connection/sipy.md @@ -12,7 +12,7 @@ {% endtab %} {% tab title="Exp Board 3.0" %} -* Before connecting your module to an Expansion Board 3.0, you should update the firmware on the Expansion Board 3.0. Instructions on how to do this can be found [here](../../pytrackpysense/installation/firmware.md). +* Before connecting your module to an Expansion Board 3.0, you should update the firmware on the Expansion Board 3.0. Instructions on how to do this can be found [here](../../pytrack-pysense-pyscan/installation/firmware.md). * Look for the reset button on the module \(located at a corner of the board, next to the LED\). * Locate the USB connector on the expansion board. * Insert the SiPy module on the Expansion Board with the reset button pointing towards the USB connector. It should firmly click into place and the pins should now no longer be visible. @@ -21,7 +21,7 @@ {% endtab %} {% tab title="Pytrack/Pysense/Pyscan" %} -* Before connecting your module to a Pysense/Pytrack/Pyscan board, you should update the firmware on the Pysense/Pytrack/Pyscan. Instructions on how to do this can be found [here](../../pytrackpysense/installation/firmware.md). +* Before connecting your module to a Pysense/Pytrack/Pyscan board, you should update the firmware on the Pysense/Pytrack/Pyscan. Instructions on how to do this can be found [here](../../pytrack-pysense-pyscan/installation/firmware.md). * Look for the reset button on the SiPy module \(located at a corner of the board, next to the LED\). * Locate the USB connector on the Pysense/Pytrack/Pyscan. * Insert the module on the Pysense/Pytrack/Pyscan with the reset button pointing towards the USB connector. It should firmly click into place and the pins should now no longer be visible.  @@ -80,7 +80,7 @@ If you intend on using the Sigfox connectivity of the SiPy you **must** connect ### WiFi/Bluetooth \(optional\) -All Pycom modules, including the FiPy, come with a on-board WiFi antenna as well as a U.FL connector for an external antenna. The external antenna is optional and only required if you need better performance or are mounting the FiPy in such a way that the WiFi signal is blocked. Switching between the antennas is done via software, instructions for this can be found [here.](../../firmwareapi/pycom/network/wlan.md) +All Pycom modules, including the FiPy, come with a on-board WiFi antenna as well as a U.FL connector for an external antenna. The external antenna is optional and only required if you need better performance or are mounting the FiPy in such a way that the WiFi signal is blocked. Switching between the antennas is done via software, instructions for this can be found [here.](../../firmware-and-api-reference/pycom/network/wlan.md)  diff --git a/gettingstarted/connection/wipy.md b/getting-started/connection/wipy.md similarity index 96% rename from gettingstarted/connection/wipy.md rename to getting-started/connection/wipy.md index ea60d46..b094b37 100644 --- a/gettingstarted/connection/wipy.md +++ b/getting-started/connection/wipy.md @@ -12,7 +12,7 @@ {% endtab %} {% tab title="Exp Board 3.0" %} -* Before connecting your module to an Expansion Board 3.0, you should update the firmware on the Expansion Board 3.0. Instructions on how to do this can be found [here](../../pytrackpysense/installation/firmware.md). +* Before connecting your module to an Expansion Board 3.0, you should update the firmware on the Expansion Board 3.0. Instructions on how to do this can be found [here](../../pytrack-pysense-pyscan/installation/firmware.md). * Look for the reset button on the module \(located at a corner of the board, next to the LED\). * Locate the USB connector on the expansion board. * Insert the WiPy module on the Expansion Board with the reset button pointing towards the USB connector. It should firmly click into place and the pins should now no longer be visible. @@ -21,7 +21,7 @@ {% endtab %} {% tab title="Pytrack/Pysense/Pyscan" %} -* Before connecting your module to a Pysense/Pytrack/Pyscan board, you should update the firmware on the Pysense/Pytrack/Pyscan. Instructions on how to do this can be found [here](../../pytrackpysense/installation/firmware.md). +* Before connecting your module to a Pysense/Pytrack/Pyscan board, you should update the firmware on the Pysense/Pytrack/Pyscan. Instructions on how to do this can be found [here](../../pytrack-pysense-pyscan/installation/firmware.md). * Look for the reset button on the WiPy module \(located at a corner of the board, next to the LED\). * Locate the USB connector on the Pysense/Pytrack/Pyscan. * Insert the module on the Pysense/Pytrack/Pyscan with the reset button pointing towards the USB connector. It should firmly click into place and the pins should now no longer be visible.  @@ -65,7 +65,7 @@ Please ensure you have the signal level of the UART adapter set to `3.3v` before ### WiFi/Bluetooth \(optional\) -All Pycom modules, including the WiPy, come with a on-board WiFi antenna as well as a U.FL connector for an external antenna. The external antenna is optional and only required if you need better performance or are mounting the WiPy in such a way that the WiFi signal is blocked. Switching between the antennas is done via software, instructions for this can be found [here.](../../firmwareapi/pycom/network/wlan.md) +All Pycom modules, including the WiPy, come with a on-board WiFi antenna as well as a U.FL connector for an external antenna. The external antenna is optional and only required if you need better performance or are mounting the WiPy in such a way that the WiFi signal is blocked. Switching between the antennas is done via software, instructions for this can be found [here.](../../firmware-and-api-reference/pycom/network/wlan.md)  diff --git a/gettingstarted/installation/README.md b/getting-started/installation/README.md similarity index 85% rename from gettingstarted/installation/README.md rename to getting-started/installation/README.md index 918a459..c8bdca9 100644 --- a/gettingstarted/installation/README.md +++ b/getting-started/installation/README.md @@ -2,7 +2,7 @@ To get you up and running, Pycom provides a suite of tools to assist with developing and programming your Pycom Devices: -1. [**Drivers:**](drivers.md) If you are using Microsoft Windows, you might be required to install drivers for our products to function correctly. +1. [**Drivers:**]() If you are using Microsoft Windows, you might be required to install drivers for our products to function correctly. 2. [**Pycom firmware update utility:**](firmwaretool.md) This tool automates the process of upgrading the firmware of your Pycom device. It is important that you use this tool before you attempt to use your device. Not only to ensure you have the most stable and feature packed firmware, but also to ensure all the functionality of your device is enable. E.g. this tool also activates your two year free sigfox connectivity. 3. [**Development Environment:**](pymakr.md) Pymakr is a plug-in for Atom and Visual Studio Code developed by Pycom to make development for Pycom modules super easy. It allows you to use your favourite text editor while simplifying the process of uploading code to the device. diff --git a/gettingstarted/installation/drivers.md b/getting-started/installation/drivers.md similarity index 91% rename from gettingstarted/installation/drivers.md rename to getting-started/installation/drivers.md index 9af6fc0..8713189 100644 --- a/gettingstarted/installation/drivers.md +++ b/getting-started/installation/drivers.md @@ -16,7 +16,7 @@ All our products will work out of the box for Windows 8/10/+. If using Windows 7 Please download the driver software from the link below. -[Pysense/Pytrack/Pyscan/Expansion Board 3.0 Serial Driver (save the file to your computer)](https://raw.githubusercontent.com/pycom/pycom-documentation/master/pytrackpysense/installation/pycom.inf) +[Pysense/Pytrack/Pyscan/Expansion Board 3.0 Serial Driver \(save the file to your computer\)](https://raw.githubusercontent.com/pycom/pycom-documentation/master/pytrackpysense/installation/pycom.inf) ### Installation diff --git a/gettingstarted/installation/firmwaretool.md b/getting-started/installation/firmwaretool.md similarity index 95% rename from gettingstarted/installation/firmwaretool.md rename to getting-started/installation/firmwaretool.md index adaaaf1..eaea79a 100644 --- a/gettingstarted/installation/firmwaretool.md +++ b/getting-started/installation/firmwaretool.md @@ -9,7 +9,7 @@ Here are the download links to the update tool. Please download the appropriate * [Linux](https://software.pycom.io/findupgrade?product=pycom-firmware-updater&type=all&platform=unix&redirect=true) \(requires `dialog` and `python-serial` package\) {% hint style="info" %} -Previous versions of firmware are available for download [**here**](../../advance/downgrade.md). +Previous versions of firmware are available for download [**here**](../../advanced-topics/downgrade.md). {% endhint %} ## Updating Device Firmware @@ -40,7 +40,7 @@ If you are having any issues, make sure the **TX and RX jumpers** are present on When using a Pysense/Pytrack/Pyscan/Expansion Board 3.0 to update your module you are not required to make a connection between `G23` and `GND`, the Pysense/Pytrack/Pyscan/Expansion Board 3.0 will do this automatically. {% endhint %} -1. Before connecting your module to a Pysense/Pytrack board, you should update the firmware on the Pysense/Pytrack. Instructions on how to do this can be found [here](../../pytrackpysense/installation/firmware.md). +1. Before connecting your module to a Pysense/Pytrack board, you should update the firmware on the Pysense/Pytrack. Instructions on how to do this can be found [here](../../pytrack-pysense-pyscan/installation/firmware.md). 2. Disconnect your device from your computer 3. Insert module into Expansion Board 4. Reconnect the board via USB to your computer diff --git a/gettingstarted/installation/pymakr.md b/getting-started/installation/pymakr.md similarity index 69% rename from gettingstarted/installation/pymakr.md rename to getting-started/installation/pymakr.md index 9c575af..a3cdb9c 100644 --- a/gettingstarted/installation/pymakr.md +++ b/getting-started/installation/pymakr.md @@ -6,7 +6,7 @@ To make it as easy as possible Pycom has developed a plugin for two popular text editors, called Pymakr. These plugins have been built and are available for the following platforms: -{% page-ref page="../../pymakr/installation/atom.md" %} +{% page-ref page="../../pymakr-plugin/installation/atom.md" %} -{% page-ref page="../../pymakr/installation/vscode.md" %} +{% page-ref page="../../pymakr-plugin/installation/vscode.md" %} diff --git a/gettingstarted/introduction.md b/getting-started/introduction.md similarity index 100% rename from gettingstarted/introduction.md rename to getting-started/introduction.md diff --git a/gettingstarted/programming/README.md b/getting-started/programming/README.md similarity index 100% rename from gettingstarted/programming/README.md rename to getting-started/programming/README.md diff --git a/gettingstarted/programming/examples.md b/getting-started/programming/examples.md similarity index 100% rename from gettingstarted/programming/examples.md rename to getting-started/programming/examples.md diff --git a/gettingstarted/programming/first-project.md b/getting-started/programming/first-project.md similarity index 95% rename from gettingstarted/programming/first-project.md rename to getting-started/programming/first-project.md index 442ceea..a606085 100644 --- a/gettingstarted/programming/first-project.md +++ b/getting-started/programming/first-project.md @@ -60,11 +60,11 @@ RGB-Blink For this example, you will just need to create a `main.py` file. -Now that the project structure is setup, you may wish to configure project specific settings for Pymakr e.g. Which serial port to use. On Atom you need to click the `^` button on the Pymakr pane, then click `Project Settings`. On Visual Studio Code you need to click the `All commands` button on the bottom of the windows, then click `Pymakr > Project Settings`. This creates a file called `pymakr.conf` inside your project and populates it with default settings copied over from your global settings. A detailed explanation of these settings can be found [here](../../pymakr/settings.md). +Now that the project structure is setup, you may wish to configure project specific settings for Pymakr e.g. Which serial port to use. On Atom you need to click the `^` button on the Pymakr pane, then click `Project Settings`. On Visual Studio Code you need to click the `All commands` button on the bottom of the windows, then click `Pymakr > Project Settings`. This creates a file called `pymakr.conf` inside your project and populates it with default settings copied over from your global settings. A detailed explanation of these settings can be found [here](../../pymakr-plugin/settings.md). ## Controlling the on-board LED -Now that you have setup and configured your project, we can move on to programming your module. The first thing we will need to do is import some libraries in order to interact with the on-board LED. The Pycom firmware comes with a large amount of libraries for standard functionality built-in. You can find out more about these in the [API documentation](../../firmwareapi/introduction.md). For this example you will need to open the `main.py` file and add the following code: +Now that you have setup and configured your project, we can move on to programming your module. The first thing we will need to do is import some libraries in order to interact with the on-board LED. The Pycom firmware comes with a large amount of libraries for standard functionality built-in. You can find out more about these in the [API documentation](../../firmware-and-api-reference/introduction.md). For this example you will need to open the `main.py` file and add the following code: ```python import pycom diff --git a/gettingstarted/programming/ftp.md b/getting-started/programming/ftp.md similarity index 91% rename from gettingstarted/programming/ftp.md rename to getting-started/programming/ftp.md index 97094b5..3b01383 100644 --- a/gettingstarted/programming/ftp.md +++ b/getting-started/programming/ftp.md @@ -8,7 +8,7 @@ The file system is accessible via the native FTP server running on each Pycom de * username: `micro` * password: `python` -See [network.server](../../firmwareapi/pycom/network/server.md) for information on how to change the defaults. The recommended clients are: +See [network.server](../../firmware-and-api-reference/pycom/network/server.md) for information on how to change the defaults. The recommended clients are: * macOS/Linux: default FTP client * Windows: Filezilla and FireFTP diff --git a/gettingstarted/programming/micropython.md b/getting-started/programming/micropython.md similarity index 100% rename from gettingstarted/programming/micropython.md rename to getting-started/programming/micropython.md diff --git a/gettingstarted/programming/repl/README.md b/getting-started/programming/repl/README.md similarity index 100% rename from gettingstarted/programming/repl/README.md rename to getting-started/programming/repl/README.md diff --git a/gettingstarted/programming/repl/serial.md b/getting-started/programming/repl/serial.md similarity index 88% rename from gettingstarted/programming/repl/serial.md rename to getting-started/programming/repl/serial.md index 0a06e6b..d8fd494 100644 --- a/gettingstarted/programming/repl/serial.md +++ b/getting-started/programming/repl/serial.md @@ -6,7 +6,7 @@ In order to connect to the REPL over USB serial, there are multiple methods. Det ## All platforms -By far the easiest way to access the USB UART REPL is via the our [Pymakr plug-in](../../../pymakr/installation/) for Atom and Visual Studio Code. This adds a pane to the bottom of the editors that allows you to directly access the REPL and any output from the device. Detailed instructions on how to setup Pymakr can be found [here](../../../pymakr/installation/). +By far the easiest way to access the USB UART REPL is via the our [Pymakr plug-in](../../../pymakr-plugin/installation/) for Atom and Visual Studio Code. This adds a pane to the bottom of the editors that allows you to directly access the REPL and any output from the device. Detailed instructions on how to setup Pymakr can be found [here](../../../pymakr-plugin/installation/). ## macOS and Linux diff --git a/gettingstarted/programming/repl/telnet.md b/getting-started/programming/repl/telnet.md similarity index 74% rename from gettingstarted/programming/repl/telnet.md rename to getting-started/programming/repl/telnet.md index 0252655..2f4d986 100644 --- a/gettingstarted/programming/repl/telnet.md +++ b/getting-started/programming/repl/telnet.md @@ -1,6 +1,6 @@ # Telnet REPL -Pycom devices also support a connection via `telnet`, using the device's on board WiFi/WLAN. Connect to the device's WiFi Access Point \(AP\) and using the following credentials to connect to the AP. The WiFi `SSID` will appear upon powering on a Pycom Device for the first time \(e.g. `lopy-`\). To re-enable this feature at a later date, please see [network.WLAN](../../../firmwareapi/pycom/network/wlan.md). +Pycom devices also support a connection via `telnet`, using the device's on board WiFi/WLAN. Connect to the device's WiFi Access Point \(AP\) and using the following credentials to connect to the AP. The WiFi `SSID` will appear upon powering on a Pycom Device for the first time \(e.g. `lopy-`\). To re-enable this feature at a later date, please see [network.WLAN](../../../firmware-and-api-reference/pycom/network/wlan.md). * password: `www.pycom.io` @@ -11,11 +11,11 @@ Additionally, to use the MircoPython REPL over telnet, further authentication is * username: `micro` * password: `python` -See [network.server](../../../firmwareapi/pycom/network/server.md) for info on how to change the default authentication. +See [network.server](../../../firmware-and-api-reference/pycom/network/server.md) for info on how to change the default authentication. ## All platforms -By far the easiest way to access the Telnet REPL is via the our [Pymakr plug-in](../../../pymakr/installation/) for Atom and Visual Studio Code. This adds a pane to the bottom of the editors that allows you to directly access the REPL and any output from the device. Detailed instructions on how to setup Pymakr can be found [here](../../../pymakr/installation/). +By far the easiest way to access the Telnet REPL is via the our [Pymakr plug-in](../../../pymakr-plugin/installation/) for Atom and Visual Studio Code. This adds a pane to the bottom of the editors that allows you to directly access the REPL and any output from the device. Detailed instructions on how to setup Pymakr can be found [here](../../../pymakr-plugin/installation/). ## macOS and Linux diff --git a/gettingstarted/programming/safeboot.md b/getting-started/programming/safeboot.md similarity index 100% rename from gettingstarted/programming/safeboot.md rename to getting-started/programming/safeboot.md diff --git a/gettingstarted/registration/README.md b/getting-started/registration/README.md similarity index 100% rename from gettingstarted/registration/README.md rename to getting-started/registration/README.md diff --git a/gettingstarted/registration/cellular.md b/getting-started/registration/cellular.md similarity index 100% rename from gettingstarted/registration/cellular.md rename to getting-started/registration/cellular.md diff --git a/gettingstarted/registration/lora/README.md b/getting-started/registration/lora/README.md similarity index 86% rename from gettingstarted/registration/lora/README.md rename to getting-started/registration/lora/README.md index d4c656b..021a492 100644 --- a/gettingstarted/registration/lora/README.md +++ b/getting-started/registration/lora/README.md @@ -24,19 +24,19 @@ The output will be a hex string like: `70B3D5499585FCA1`. Once you have this you #### OTAA -If you wish to connect via OTAA \(which is the recommended method\) the network will provide you with an `Application EUI` and `Application Key`. The former identifies what application your device is connecting to, the latter is a shared secret key unique to your device to generate the session keys that prove its identity to the network. Once you have these you can use the [LoRaWAN OTAA example](../../../tutorials/lora/lorawan-otaa.md) code to connect to the network. +If you wish to connect via OTAA \(which is the recommended method\) the network will provide you with an `Application EUI` and `Application Key`. The former identifies what application your device is connecting to, the latter is a shared secret key unique to your device to generate the session keys that prove its identity to the network. Once you have these you can use the [LoRaWAN OTAA example](../../../tutorials-and-examples/lora/lorawan-otaa.md) code to connect to the network. #### ABP -With ABP the encryption keys enabling communication with the network are preconfigured in the device. The network will need to provide you with a `Device Address`, `Network Session Key` and `Application Session Key`. Once you have these you can use the [LoRaWAN ABP example](../../../tutorials/lora/lorawan-abp.md) code to connect to the network. +With ABP the encryption keys enabling communication with the network are preconfigured in the device. The network will need to provide you with a `Device Address`, `Network Session Key` and `Application Session Key`. Once you have these you can use the [LoRaWAN ABP example](../../../tutorials-and-examples/lora/lorawan-abp.md) code to connect to the network. ### Networks -[](ttn.md) - -[](senet.md) +[](ttn.md) +[](senet.md) {% hint style="info" %} If you cannot find your favourite LoRaWAN network in the list above, please consider writing a tutorial for how to connect a Pycom module with it and contribute it to this documentation via a [GitHub pull request](https://github.com/pycom/pycom-documentation). {% endhint %} + diff --git a/getting-started/registration/lora/senet.md b/getting-started/registration/lora/senet.md new file mode 100644 index 0000000..7bfff66 --- /dev/null +++ b/getting-started/registration/lora/senet.md @@ -0,0 +1,76 @@ +# Senet + + + +## The Senet Developer Portal + +Connecting your device begins by creating an account on the Senet Developer Portal. This will grant you free access for up to 10 devices and 5 gateways to support application development activities. [Sign-Up](https://portal.senetco.io/) + +Complete Senet Developer Portal documentation is available on line at [Docs](https://docs.senetco.io/docs). + +Once your account has been activated, you may want to onboard a gateway, if Senet public network access in unavailable. Onboarding your device consists of registering the device through your portal account and then provisioning your device with the information provided at the completion of the registration process. Senet supports both Over-The-Air-Activation \(OTAA\) and Activation-By-Personalization \(ABP\). As ABP is useful only in a very narrow set of use-cases, this tutorial will walk you through OTAA registration and provisioning. + +## Device Identity and Security Elements + +All LoRaWAN 1.0.x end-devices require three provisioning elements to join a network. Devices typically come from the factory with a unique, 64-bit EUI \(called a DevEUI\) which is the device's globally unique identifier. In the case of the Senet Developer Portal, the two additional elements \(The Application EUI or AppEUI and Application Key or AppKey\) will be generated and provided to you after registration \(in typical production environments, these additional elements are also provided during manufacturing and provisioned into the network backend\). + +* Device EUI \(DevEUI\) +* Application EUI \(AppEUI\) +* Application Key \(AppKey\) + +### Device EUI + +This comes from the device itself and can be obtained from `lora.mac()`. +To obtain the required hexadecimal representation you can run the following code on your LoPy: + +```python +from network import LoRa +import ubinascii + +lora = LoRa() +print("DevEUI: %s" % (ubinascii.hexlify(lora.mac()).decode('ascii'))) +``` + +Use this value during the first step of device registration. + + + +### Application EUI and Application Key + +The Application EUI uniquely identifies the security broker \(called a Join Server in LoRaWAN terminology\) which is interogated by the network when the device attempts to join the network. The Application Key is the shared secret \(between the end-device and the Join-Server\) which forms the basis for LoRaWAN security and is used to generate the application and network session keys used for privacy and message integrity. + +At the completion of your device registration process on the Senet Developer Portal, you will be presented with the Application EUI and the Application Key which you will need to provision in your device. This information is always available after the fact in the device details screen. + + + +## Provisioning the LoPy or FiPy + +After device registration is complete, configure the device for optimal operation and provision the AppEUI and AppKey. + +```python +from network import LoRa +import socket +import time +import ubinascii + +# Initialise LoRa in LORAWAN mode. +# Please pick the region that matches where you are using the device: +# Asia = LoRa.AS923 +# Australia = LoRa.AU915 +# Europe = LoRa.EU868 +# United States = LoRa.US915 +lora = LoRa(mode=LoRa.LORAWAN, region=LoRa.US915) + +# create an OTAA authentication parameters +app_eui = ubinascii.unhexlify('00250C0000010001') +app_key = ubinascii.unhexlify('00112233445566778899AABBCCDDEEFF') + +# initialize LoRa +lora.init(mode=LoRa.LORAWAN, adr=True, public=True) + +# join a network using OTAA (Over the Air Activation) +lora.join(activation=LoRa.OTAA, auth=(app_eui, app_key), dr=0, timeout=0) +``` + +You are now ready to start sending messages from your device! Each device may be provisioned to stream the datagrams to the backend service of your choice in a variety of standard and custom formats. + diff --git a/gettingstarted/registration/lora/ttn.md b/getting-started/registration/lora/ttn.md similarity index 98% rename from gettingstarted/registration/lora/ttn.md rename to getting-started/registration/lora/ttn.md index c11198a..18e1271 100644 --- a/gettingstarted/registration/lora/ttn.md +++ b/getting-started/registration/lora/ttn.md @@ -38,7 +38,7 @@ Once the device has been added, change the `Activation Method` between `OTAA` an ## Register a Nano-Gateway -You can also setup your Pycom module to act as a gateway with The Things Network. The code required to do this can be found [here](../../../tutorials/lora/lorawan-nano-gateway.md). +You can also setup your Pycom module to act as a gateway with The Things Network. The code required to do this can be found [here](../../../tutorials-and-examples/lora/lorawan-nano-gateway.md). Inside the TTN Console, there are two options, `Applications` and `Gateways`. Select `Gateways` and then click on `register Gateway`. This will allow for the set up and registration of a new nano-gateway. diff --git a/gettingstarted/registration/sigfox.md b/getting-started/registration/sigfox.md similarity index 100% rename from gettingstarted/registration/sigfox.md rename to getting-started/registration/sigfox.md diff --git a/gettingstarted/registration/lora/senet.md b/gettingstarted/registration/lora/senet.md deleted file mode 100644 index c95ed2f..0000000 --- a/gettingstarted/registration/lora/senet.md +++ /dev/null @@ -1,73 +0,0 @@ - - - -# The Senet Developer Portal - -Connecting your device begins by creating an account on the Senet Developer Portal. This will grant you free access for up to 10 devices and 5 gateways to support application development activities. [Sign-Up](https://portal.senetco.io/) - -Complete Senet Developer Portal documentation is available on line at [Docs](https://docs.senetco.io/docs). - -Once your account has been activated, you may want to onboard a gateway, if Senet public network access in unavailable. Onboarding your device consists of registering the device through your portal account and then provisioning your device with the information provided at the completion of the registration process. Senet supports both Over-The-Air-Activation (OTAA) and Activation-By-Personalization (ABP). As ABP is useful only in a very narrow set of use-cases, this tutorial will walk you through OTAA registration and provisioning. - -# Device Identity and Security Elements - -All LoRaWAN 1.0.x end-devices require three provisioning elements to join a network. Devices typically come from the factory with a unique, 64-bit EUI (called a DevEUI) which is the device's globally unique identifier. In the case of the Senet Developer Portal, the two additional elements (The Application EUI or AppEUI and Application Key or AppKey) will be generated and provided to you after registration (in typical production environments, these additional elements are also provided during manufacturing and provisioned into the network backend). - -* Device EUI (DevEUI) -* Application EUI (AppEUI) -* Application Key (AppKey) - -## Device EUI - -This comes from the device itself and can be obtained from `lora.mac()`. -To obtain the required hexadecimal representation you can run the following code on your LoPy: - -```python -from network import LoRa -import ubinascii - -lora = LoRa() -print("DevEUI: %s" % (ubinascii.hexlify(lora.mac()).decode('ascii'))) -``` - -Use this value during the first step of device registration. - - - -## Application EUI and Application Key - -The Application EUI uniquely identifies the security broker (called a Join Server in LoRaWAN terminology) which is interogated by the network when the device attempts to join the network. The Application Key is the shared secret (between the end-device and the Join-Server) which forms the basis for LoRaWAN security and is used to generate the application and network session keys used for privacy and message integrity. - -At the completion of your device registration process on the Senet Developer Portal, you will be presented with the Application EUI and the Application Key which you will need to provision in your device. This information is always available after the fact in the device details screen. - - - -# Provisioning the LoPy or FiPy - -After device registration is complete, configure the device for optimal operation and provision the AppEUI and AppKey. - -```python -from network import LoRa -import socket -import time -import ubinascii - -# Initialise LoRa in LORAWAN mode. -# Please pick the region that matches where you are using the device: -# Asia = LoRa.AS923 -# Australia = LoRa.AU915 -# Europe = LoRa.EU868 -# United States = LoRa.US915 -lora = LoRa(mode=LoRa.LORAWAN, region=LoRa.US915) - -# create an OTAA authentication parameters -app_eui = ubinascii.unhexlify('00250C0000010001') -app_key = ubinascii.unhexlify('00112233445566778899AABBCCDDEEFF') - -# initialize LoRa -lora.init(mode=LoRa.LORAWAN, adr=True, public=True) - -# join a network using OTAA (Over the Air Activation) -lora.join(activation=LoRa.OTAA, auth=(app_eui, app_key), dr=0, timeout=0) -``` -You are now ready to start sending messages from your device! Each device may be provisioned to stream the datagrams to the backend service of your choice in a variety of standard and custom formats. diff --git a/datasheets/boards/README.md b/product-info/boards/README.md similarity index 100% rename from datasheets/boards/README.md rename to product-info/boards/README.md diff --git a/datasheets/boards/deepsleep/README.md b/product-info/boards/deepsleep/README.md similarity index 100% rename from datasheets/boards/deepsleep/README.md rename to product-info/boards/deepsleep/README.md diff --git a/datasheets/boards/deepsleep/api.md b/product-info/boards/deepsleep/api.md similarity index 100% rename from datasheets/boards/deepsleep/api.md rename to product-info/boards/deepsleep/api.md diff --git a/datasheets/boards/expansion2.md b/product-info/boards/expansion2.md similarity index 100% rename from datasheets/boards/expansion2.md rename to product-info/boards/expansion2.md diff --git a/datasheets/boards/expansion3.md b/product-info/boards/expansion3.md similarity index 95% rename from datasheets/boards/expansion3.md rename to product-info/boards/expansion3.md index 8297d3b..918eefa 100644 --- a/datasheets/boards/expansion3.md +++ b/product-info/boards/expansion3.md @@ -40,5 +40,5 @@ The specsheet of the Expansion Board is available as a PDF File. ## Troubleshooting -* If PIC stays in bootloader mode, the [`dfu-util` update](../../pytrackpysense/installation/firmware.md) should be performed +* If PIC stays in bootloader mode, the [`dfu-util` update](../../pytrack-pysense-pyscan/installation/firmware.md) should be performed diff --git a/datasheets/boards/pyscan.md b/product-info/boards/pyscan.md similarity index 92% rename from datasheets/boards/pyscan.md rename to product-info/boards/pyscan.md index f12e700..074b29e 100644 --- a/datasheets/boards/pyscan.md +++ b/product-info/boards/pyscan.md @@ -21,7 +21,7 @@ Libraries for the rest of the components will be added soon. ## Driver -The Windows 7 driver for Pyscan is located [here](../../pytrackpysense/installation/firmware.md). +The Windows 7 driver for Pyscan is located [here](../../pytrack-pysense-pyscan/installation/firmware.md). For other Operating Systems there's no driver required. diff --git a/datasheets/boards/pysense.md b/product-info/boards/pysense.md similarity index 100% rename from datasheets/boards/pysense.md rename to product-info/boards/pysense.md diff --git a/datasheets/boards/pytrack.md b/product-info/boards/pytrack.md similarity index 100% rename from datasheets/boards/pytrack.md rename to product-info/boards/pytrack.md diff --git a/datasheets/development/README.md b/product-info/development/README.md similarity index 100% rename from datasheets/development/README.md rename to product-info/development/README.md diff --git a/datasheets/development/fipy.md b/product-info/development/fipy.md similarity index 72% rename from datasheets/development/fipy.md rename to product-info/development/fipy.md index b8d3ecf..cad6b2f 100644 --- a/datasheets/development/fipy.md +++ b/product-info/development/fipy.md @@ -4,7 +4,7 @@ **Store**: [Buy Here](http://www.pycom.io/fipy) -**Getting Started:** [Click Here](../../gettingstarted/connection/fipy.md) +**Getting Started:** [Click Here](../../getting-started/connection/fipy.md) ## Pinout @@ -48,13 +48,13 @@ The AT commands for the Sequans Monarch modem on the FiPy are available in a PDF ## Tutorials -Tutorials on how to the FiPy module can be found in the [examples](../../tutorials/introduction.md) section of this documentation. The following tutorials might be of specific interest for the FiPy: +Tutorials on how to the FiPy module can be found in the [examples](../../tutorials-and-examples/introduction.md) section of this documentation. The following tutorials might be of specific interest for the FiPy: -* [WiFi connection](../../tutorials/all/wlan.md) -* [LoRaWAN node](../../tutorials/lora/lorawan-abp.md) -* [LoRaWAN nano gateway](../../tutorials/lora/lorawan-nano-gateway.md) -* [Sigfox](../../tutorials/sigfox.md) -* [LTE CAT-M1](../../tutorials/lte/cat-m1.md) -* [NB-IoT](../../tutorials/lte/nb-iot.md) -* [BLE](../../tutorials/all/ble.md) +* [WiFi connection](../../tutorials-and-examples/all/wlan.md) +* [LoRaWAN node](../../tutorials-and-examples/lora/lorawan-abp.md) +* [LoRaWAN nano gateway](../../tutorials-and-examples/lora/lorawan-nano-gateway.md) +* [Sigfox](../../tutorials-and-examples/sigfox.md) +* [LTE CAT-M1](../../tutorials-and-examples/lte/cat-m1.md) +* [NB-IoT](../../tutorials-and-examples/lte/nb-iot.md) +* [BLE](../../tutorials-and-examples/all/ble.md) diff --git a/datasheets/development/gpy.md b/product-info/development/gpy.md similarity index 79% rename from datasheets/development/gpy.md rename to product-info/development/gpy.md index aa09c18..ad8bb14 100644 --- a/datasheets/development/gpy.md +++ b/product-info/development/gpy.md @@ -4,7 +4,7 @@ **Store**: [Buy Here](http://www.pycom.io/gpy) -**Getting Started:** [Click Here](../../gettingstarted/connection/gpy.md) +**Getting Started:** [Click Here](../../getting-started/connection/gpy.md) ## Pinout @@ -48,10 +48,10 @@ The AT commands for the Sequans Monarch modem on the GPy are available in a PDF ## Tutorials -Tutorials on how to the GPy module can be found in the [examples](../../tutorials/introduction.md) section of this documentation. The following tutorials might be of specific interest for the GPy: +Tutorials on how to the GPy module can be found in the [examples](../../tutorials-and-examples/introduction.md) section of this documentation. The following tutorials might be of specific interest for the GPy: -* [WiFi connection](../../tutorials/all/wlan.md) -* [LTE CAT-M1](../../tutorials/lte/cat-m1.md) -* [NB-IoT](../../tutorials/lte/nb-iot.md) -* [BLE](../../tutorials/all/ble.md) +* [WiFi connection](../../tutorials-and-examples/all/wlan.md) +* [LTE CAT-M1](../../tutorials-and-examples/lte/cat-m1.md) +* [NB-IoT](../../tutorials-and-examples/lte/nb-iot.md) +* [BLE](../../tutorials-and-examples/all/ble.md) diff --git a/datasheets/development/lopy.md b/product-info/development/lopy.md similarity index 82% rename from datasheets/development/lopy.md rename to product-info/development/lopy.md index 8d3cbcb..5fa3d7f 100644 --- a/datasheets/development/lopy.md +++ b/product-info/development/lopy.md @@ -4,7 +4,7 @@ **Store**: [Buy Here](http://www.pycom.io/lopy) -**Getting Started:** [Click Here](../../gettingstarted/connection/lopy.md) +**Getting Started:** [Click Here](../../getting-started/connection/lopy.md) ## Pinout @@ -40,10 +40,10 @@ Due to a couple issues with the LoPy design the module draws more current than i ## Tutorials -Tutorials on how to the LoPy module can be found in the [examples](../../tutorials/introduction.md) section of this documentation. The following tutorials might be of specific interest for the LoPy: +Tutorials on how to the LoPy module can be found in the [examples](../../tutorials-and-examples/introduction.md) section of this documentation. The following tutorials might be of specific interest for the LoPy: -* [WiFi connection](../../tutorials/all/wlan.md) -* [LoRaWAN node](../../tutorials/lora/lorawan-abp.md) -* [LoRaWAN nano gateway](../../tutorials/lora/lorawan-nano-gateway.md) -* [BLE](../../tutorials/all/ble.md) +* [WiFi connection](../../tutorials-and-examples/all/wlan.md) +* [LoRaWAN node](../../tutorials-and-examples/lora/lorawan-abp.md) +* [LoRaWAN nano gateway](../../tutorials-and-examples/lora/lorawan-nano-gateway.md) +* [BLE](../../tutorials-and-examples/all/ble.md) diff --git a/datasheets/development/lopy4.md b/product-info/development/lopy4.md similarity index 71% rename from datasheets/development/lopy4.md rename to product-info/development/lopy4.md index 46bfb7d..53802c8 100644 --- a/datasheets/development/lopy4.md +++ b/product-info/development/lopy4.md @@ -4,7 +4,7 @@ **Store**: [Buy Here](http://www.pycom.io/lopy4) -**Getting Started:** [Click Here](../../gettingstarted/connection/lopy4.md) +**Getting Started:** [Click Here](../../getting-started/connection/lopy4.md) ## Pinout @@ -38,11 +38,11 @@ The `Vin` pin on the LoPy4 can be supplied with a voltage ranging from `3.5v` to ## Tutorials -Tutorials on how to the LoPy4 module can be found in the [examples](../../tutorials/introduction.md) section of this documentation. The following tutorials might be of specific interest for the LoPy4: +Tutorials on how to the LoPy4 module can be found in the [examples](../../tutorials-and-examples/introduction.md) section of this documentation. The following tutorials might be of specific interest for the LoPy4: -* [WiFi connection](../../tutorials/all/wlan.md) -* [LoRaWAN node](../../tutorials/lora/lorawan-abp.md) -* [LoRaWAN nano gateway](../../tutorials/lora/lorawan-nano-gateway.md) -* [Sigfox](../../tutorials/sigfox.md) -* [BLE](../../tutorials/all/ble.md) +* [WiFi connection](../../tutorials-and-examples/all/wlan.md) +* [LoRaWAN node](../../tutorials-and-examples/lora/lorawan-abp.md) +* [LoRaWAN nano gateway](../../tutorials-and-examples/lora/lorawan-nano-gateway.md) +* [Sigfox](../../tutorials-and-examples/sigfox.md) +* [BLE](../../tutorials-and-examples/all/ble.md) diff --git a/datasheets/development/sipy.md b/product-info/development/sipy.md similarity index 85% rename from datasheets/development/sipy.md rename to product-info/development/sipy.md index c9817a7..fd75f9e 100644 --- a/datasheets/development/sipy.md +++ b/product-info/development/sipy.md @@ -4,7 +4,7 @@ **Store**: [Buy Here](http://www.pycom.io/sipy) -**Getting Started:** [Click Here](../../gettingstarted/connection/sipy.md) +**Getting Started:** [Click Here](../../getting-started/connection/sipy.md) ## Pinout @@ -40,9 +40,9 @@ Due to a couple issues with the SiPy design the module draws more current than i ## Tutorials -Tutorials on how to the SiPy module can be found in the [examples](../../tutorials/introduction.md) section of this documentation. The following tutorials might be of specific interest for the SiPy: +Tutorials on how to the SiPy module can be found in the [examples](../../tutorials-and-examples/introduction.md) section of this documentation. The following tutorials might be of specific interest for the SiPy: -* [WiFi connection](../../tutorials/all/wlan.md) -* [Sigfox](../../tutorials/sigfox.md) -* [BLE](../../tutorials/all/ble.md) +* [WiFi connection](../../tutorials-and-examples/all/wlan.md) +* [Sigfox](../../tutorials-and-examples/sigfox.md) +* [BLE](../../tutorials-and-examples/all/ble.md) diff --git a/datasheets/development/wipy2.md b/product-info/development/wipy2.md similarity index 87% rename from datasheets/development/wipy2.md rename to product-info/development/wipy2.md index e818e05..3fed134 100644 --- a/datasheets/development/wipy2.md +++ b/product-info/development/wipy2.md @@ -4,7 +4,7 @@ **Store**: Discontinued, See [WiPy3](wipy3.md) -**Getting Started:** [Click Here](../../gettingstarted/connection/wipy.md) +**Getting Started:** [Click Here](../../getting-started/connection/wipy.md) ## Pinout @@ -40,8 +40,8 @@ Due to a couple issues with the WiPy2 design the module draws more current than ## Tutorials -Tutorials on how to the WiPy2 module can be found in the [examples](../../tutorials/introduction.md) section of this documentation. The following tutorials might be of specific interest for the WiPy2: +Tutorials on how to the WiPy2 module can be found in the [examples](../../tutorials-and-examples/introduction.md) section of this documentation. The following tutorials might be of specific interest for the WiPy2: -* [WiFi connection](../../tutorials/all/wlan.md) -* [BLE](../../tutorials/all/ble.md) +* [WiFi connection](../../tutorials-and-examples/all/wlan.md) +* [BLE](../../tutorials-and-examples/all/ble.md) diff --git a/datasheets/development/wipy3.md b/product-info/development/wipy3.md similarity index 82% rename from datasheets/development/wipy3.md rename to product-info/development/wipy3.md index aad4d97..c35a1f7 100644 --- a/datasheets/development/wipy3.md +++ b/product-info/development/wipy3.md @@ -4,7 +4,7 @@ **Store**: [Buy Here](http://www.pycom.io/wipy-3) -**Getting Started:** [Click Here](../../gettingstarted/connection/wipy.md) +**Getting Started:** [Click Here](../../getting-started/connection/wipy.md) ## Pinout @@ -45,8 +45,8 @@ The `Vin` pin on the WiPy3 can be supplied with a voltage ranging from `3.5v` to ## Tutorials -Tutorials on how to the WiPy3 module can be found in the [examples](../../tutorials/introduction.md) section of this documentation. The following tutorials might be of specific interest for the WiPy3: +Tutorials on how to the WiPy3 module can be found in the [examples](../../tutorials-and-examples/introduction.md) section of this documentation. The following tutorials might be of specific interest for the WiPy3: -* [WiFi connection](../../tutorials/all/wlan.md) -* [BLE](../../tutorials/all/ble.md) +* [WiFi connection](../../tutorials-and-examples/all/wlan.md) +* [BLE](../../tutorials-and-examples/all/ble.md) diff --git a/datasheets/introduction.md b/product-info/introduction.md similarity index 100% rename from datasheets/introduction.md rename to product-info/introduction.md diff --git a/datasheets/notes.md b/product-info/notes.md similarity index 100% rename from datasheets/notes.md rename to product-info/notes.md diff --git a/datasheets/oem/README.md b/product-info/oem/README.md similarity index 100% rename from datasheets/oem/README.md rename to product-info/oem/README.md diff --git a/datasheets/oem/g01.md b/product-info/oem/g01.md similarity index 73% rename from datasheets/oem/g01.md rename to product-info/oem/g01.md index e7b1154..7d64d47 100644 --- a/datasheets/oem/g01.md +++ b/product-info/oem/g01.md @@ -34,10 +34,10 @@ The AT commands for the Sequans Monarch modem on the G01 are available in a PDF ## Tutorials -Tutorials on how to the G01 module can be found in the [examples](../../tutorials/introduction.md) section of this documentation. The following tutorials might be of specific interest for the G01: +Tutorials on how to the G01 module can be found in the [examples](../../tutorials-and-examples/introduction.md) section of this documentation. The following tutorials might be of specific interest for the G01: -* [WiFi connection](../../tutorials/all/wlan.md) -* [LTE CAT-M1](../../tutorials/lte/cat-m1.md) -* [NB-IoT](../../tutorials/lte/nb-iot.md) -* [BLE](../../tutorials/all/ble.md) +* [WiFi connection](../../tutorials-and-examples/all/wlan.md) +* [LTE CAT-M1](../../tutorials-and-examples/lte/cat-m1.md) +* [NB-IoT](../../tutorials-and-examples/lte/nb-iot.md) +* [BLE](../../tutorials-and-examples/all/ble.md) diff --git a/datasheets/oem/l01.md b/product-info/oem/l01.md similarity index 66% rename from datasheets/oem/l01.md rename to product-info/oem/l01.md index b05797b..1ba0003 100644 --- a/datasheets/oem/l01.md +++ b/product-info/oem/l01.md @@ -28,10 +28,10 @@ Please note that the PIN assignments for UART1 \(TX1/RX1\), SPI \(CLK, MOSI, MIS ## Tutorials -Tutorials on how to the L01 module can be found in the [examples](../../tutorials/introduction.md) section of this documentation. The following tutorials might be of specific interest for the L01: +Tutorials on how to the L01 module can be found in the [examples](../../tutorials-and-examples/introduction.md) section of this documentation. The following tutorials might be of specific interest for the L01: -* [WiFi connection](../../tutorials/all/wlan.md) -* [LoRaWAN node](../../tutorials/lora/lorawan-abp.md) -* [LoRaWAN nano gateway](../../tutorials/lora/lorawan-nano-gateway.md) -* [BLE](../../tutorials/all/ble.md) +* [WiFi connection](../../tutorials-and-examples/all/wlan.md) +* [LoRaWAN node](../../tutorials-and-examples/lora/lorawan-abp.md) +* [LoRaWAN nano gateway](../../tutorials-and-examples/lora/lorawan-nano-gateway.md) +* [BLE](../../tutorials-and-examples/all/ble.md) diff --git a/datasheets/oem/l01_reference.md b/product-info/oem/l01_reference.md similarity index 100% rename from datasheets/oem/l01_reference.md rename to product-info/oem/l01_reference.md diff --git a/datasheets/oem/l04.md b/product-info/oem/l04.md similarity index 63% rename from datasheets/oem/l04.md rename to product-info/oem/l04.md index 6327180..6013844 100644 --- a/datasheets/oem/l04.md +++ b/product-info/oem/l04.md @@ -28,11 +28,11 @@ Please note that the PIN assignments for UART1 \(TX1/RX1\), SPI \(CLK, MOSI, MIS ## Tutorials -Tutorials on how to the L04 module can be found in the [examples](../../tutorials/introduction.md) section of this documentation. The following tutorials might be of specific interest for the L04: +Tutorials on how to the L04 module can be found in the [examples](../../tutorials-and-examples/introduction.md) section of this documentation. The following tutorials might be of specific interest for the L04: -* [WiFi connection](../../tutorials/all/wlan.md) -* [LoRaWAN node](../../tutorials/lora/lorawan-abp.md) -* [LoRaWAN nano gateway](../../tutorials/lora/lorawan-nano-gateway.md) -* [Sigfox](../../tutorials/sigfox.md) -* [BLE](../../tutorials/all/ble.md) +* [WiFi connection](../../tutorials-and-examples/all/wlan.md) +* [LoRaWAN node](../../tutorials-and-examples/lora/lorawan-abp.md) +* [LoRaWAN nano gateway](../../tutorials-and-examples/lora/lorawan-nano-gateway.md) +* [Sigfox](../../tutorials-and-examples/sigfox.md) +* [BLE](../../tutorials-and-examples/all/ble.md) diff --git a/datasheets/oem/universal_reference.md b/product-info/oem/universal_reference.md similarity index 100% rename from datasheets/oem/universal_reference.md rename to product-info/oem/universal_reference.md diff --git a/datasheets/oem/w01.md b/product-info/oem/w01.md similarity index 75% rename from datasheets/oem/w01.md rename to product-info/oem/w01.md index f83cb48..6548e2d 100644 --- a/datasheets/oem/w01.md +++ b/product-info/oem/w01.md @@ -28,8 +28,8 @@ Please note that the PIN assignments for UART1 \(TX1/RX1\), SPI \(CLK, MOSI, MIS ## Tutorials -Tutorials on how to the W01 module can be found in the [examples](../../tutorials/introduction.md) section of this documentation. The following tutorials might be of specific interest for the W01: +Tutorials on how to the W01 module can be found in the [examples](../../tutorials-and-examples/introduction.md) section of this documentation. The following tutorials might be of specific interest for the W01: -* [WiFi connection](../../tutorials/all/wlan.md) -* [BLE](../../tutorials/all/ble.md) +* [WiFi connection](../../tutorials-and-examples/all/wlan.md) +* [BLE](../../tutorials-and-examples/all/ble.md) diff --git a/products.md b/products.md index f69407c..92ef2d4 100644 --- a/products.md +++ b/products.md @@ -8,32 +8,103 @@ Below you will find tables of all Pycom products. These tables illustrate the fu | Module | WiFi | Bluetooth | LoRa | Sigfox | LTE CAT-M1NB-IoT | | :--- | :--- | :--- | :--- | :--- | :--- | -| [ WiPy 3.0](datasheets/development/wipy3.md) | ✔ | ✔ | | | | -| [SiPy](datasheets/development/sipy.md) | ✔ | ✔ | | ✔ | | -| [GPy](datasheets/development/gpy.md) | ✔ | ✔ | | | ✔ | -| [LoPy](datasheets/development/lopy.md) | ✔ | ✔ | ✔ | | | -| [LoPy4](datasheets/development/lopy4.md) | ✔ | ✔ | ✔ | ✔ | | -| [FiPy](datasheets/development/fipy.md) | ✔ | ✔ | ✔ | ✔ | ✔ | +| [ WiPy 3.0](product-info/development/wipy3.md) | ✔ | ✔ | | | | +| [SiPy](product-info/development/sipy.md) | ✔ | ✔ | | ✔ | | +| [GPy](product-info/development/gpy.md) | ✔ | ✔ | | | ✔ | +| [LoPy](product-info/development/lopy.md) | ✔ | ✔ | ✔ | | | +| [LoPy4](product-info/development/lopy4.md) | ✔ | ✔ | ✔ | ✔ | | +| [FiPy](product-info/development/fipy.md) | ✔ | ✔ | ✔ | ✔ | ✔ | | Antennas | [External WiFi/BT Antenna Kit](https://pycom.io/product/external-wifi-antenna/) | [External WiFi/BT Antenna Kit](https://pycom.io/product/external-wifi-antenna/) | [LoRa & Sigfox Antenna Kit](https://pycom.io/product/lora-antenna-kit/) | [LoRa & Sigfox Antenna Kit](https://pycom.io/product/lora-antenna-kit/) | [LTE-M Antenna Kit](https://pycom.io/product/lte-m-antenna-kit/) | ## Accessories -| Accessory | [Expansion Board](datasheets/boards/expansion3.md) | [Pysense](datasheets/boards/pysense.md) | [Pytrack](datasheets/boards/pytrack.md) | [Pyscan](datasheets/boards/pyscan.md) | -| :--- | :--- | :--- | :--- | :--- | -| [PyCase](https://pycom.io/product/pycase/) | ✔ | | | | -| [IP67 Case for Expansion Board](https://pycom.io/product/ip67-expansion-board-case/) | ✔ | | | | -| [IP67 Case for Pysense/Pytrack/Pyscan](https://pycom.io/product/ip67-case/) | | ✔ | ✔ | ✔ | -| [IP67 Case \(universal\)](https://pycom.io/product/universal-ip67-case/) | ✔ | ✔ | ✔ | ✔ | -| LiPo Battery \(user-supplied\) | ✔ | ✔ | ✔ | ✔ | -| Micro USB Cable Required \(user-supplied\) | ✔ | ✔ | ✔ | ✔ | -| Pyscan Modules[OLED Module](https://pycom.io/product/oled-screen/)[2MP Camera](https://pycom.io/product/2mp-camera/)[Barcode Reader](https://pycom.io/product/barcode-reader)[Fingerprint Scanner](https://pycom.io/product/fingerprint-scanner/)[IR Image Sensor](https://pycom.io/product/infared-image-sensor/) | | | | ✔ | +
| Accessory | +Expansion Board + | +Pysense + | +Pytrack + | +Pyscan + | +
|---|---|---|---|---|
| PyCase + | +✔ | ++ | + | + |
| IP67 Case for Expansion Board + | +✔ | ++ | + | + |
| IP67 Case for Pysense/Pytrack/Pyscan + | ++ | ✔ | +✔ | +✔ | +
| IP67 Case (universal) + | +✔ | +✔ | +✔ | +✔ | +
| LiPo Battery (user-supplied) | +✔ | +✔ | +✔ | +✔ | +
| Micro USB Cable Required (user-supplied) | +✔ | +✔ | +✔ | +✔ | +
|
+ Pyscan Modules + + + + + + |
+ + | + | + | ✔ | +