Connect Ra-01 module base on LoRaTM SX127x chip to ESP8266/ESP32 under MicroPython

February 9, 2018 ยท View on GitHub

Notes

  1. This is experimental example, not software product ready for use
  2. This this free and open source software
  3. Author: Alex Zorg azorg(at)mail.ru
  4. Licenced by GPLv3
  5. Some sources based on:

Download Micropython firmware

Go to:

  1. "Getting started with MicroPython on the ESP8266" http://docs.micropython.org/en/latest/esp8266/esp8266/tutorial/intro.html

  2. "Firmware for ESP8266/ESP32 boards" http://micropython.org/download

Install esptool.py - ESP8266 & ESP32 ROM Bootloader Utility

$ sudo apt-get install python-pip
$ sudo pip install esptool

OR

$ sudo apt-get install python-serial
$ sudo apt-get install python-ecdsa ecdsautils
$ sudo apt-get install python-slowaes
$ git clone https://github.com/espressif/esptool.git
$ cd esptool
$ sudo python setup.py install

Flash firmware on ESP8266/ESP32 board

ESP8266:

$ esptool.py --port /dev/ttyUSB0 erase_flash
$ esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash --flash_size=detect 0 firmware.bin

ESP32:

$ esptool.py --chip esp32 --port /dev/ttyUSB0 erase_flash
$ esptool.py --chip esp32 --port /dev/ttyUSB0 write_flash -z 0x1000 firmware.bin

Connect LoRa module to ESP8266/ESP32

GPIODOIT ESP32NodeMCU v3SignalSX1278 (color)
0-D3
2D2D4Blue LED
4D4D2IRQDIO0 (yellow)
5D5D1HARD RESETRESET (magenta)
9-S2?
10-S3/SK?
12D12D6MISOMISO (blue)
13D13D7MOSIMOSI (green)
14D14D5SCKSCK (white)
15D15D8CSNSS (grey)
16RX2D0DATA*DIO2* (brown)
---DCLK**DIO1** (orange)
3V33V3.3V3.3V (red)
GNDGGNDGND (black)

Note (*): DIO2(DATA) is optional and may used in continuous FSK/OOK mode

Note (**): DIO1(DCLK) unused

Build mpy-cross

$ sudo apt-get install build-essential libreadline-dev libffi-dev git

$ git clone --recurse-submodules https://github.com/micropython/micropython.git

$ cd ./micropython/ports/unix
$ make axtls
$ make
$ sudo cp ./micropython /usr/local/bin

$ cd ../../mpy-cross
$ make
$ sudo cp ./mpy-cross /usr/local/bin

Install ampy - Utility to interact with a MicroPython board over a serial connection

$ sudo pip install adafruit-ampy

OR

$ sudo apt-get install python-click
$ git clone https://github.com/adafruit/ampy.git
$ cd ampy
$ sudo python setup.py install

Read and edit "main.py" and "sx127x.py", compile "sx127x.py"

$ vim sx127x.py
$ vim main.py
$ mpy-cross -O3 sx127x.py

Load python examples to ESP module

$ ampy --port /dev/ttyUSB0 put sx127x.mpy
$ ampy --port /dev/ttyUSB0 put main.py

Run terminal (minicom, picocom or screen)

$ minicom -D /dev/ttyUSB0 -b 115200

$ picocom /dev/ttyUSB0 -b 115200

$ screen /dev/ttyUSB0 115200