MicroPython 1.8 Telah Rilis, Dukungan Pertama MicroPython untuk ESP8266

Yana Permana 17 Mei 2016

MicroPython 1.8 Telah Rilis, Dukungan Pertama MicroPython untuk ESP8266

Hai apa kabar antusias Internet of Things (IoT)? Kabar terbaru datang dari pengembang MicroPython yang telah merilis MicroPython 1.8. Rilis ini menandakan dukungan pertama untuk ESP8266 dengan basis kode MicroPython. Port untuk ESP8266 memiliki banyak peningkatan dan penambahan fitur, termasuk: modul websocket dan webrepl, mode deep-sleep, pembacaan UART, peningkatan dukungan I2C, peningkatan konfigurasi jaringan, melengkapkan script untuk start-up (built-in _boot.py, boot.py dan main.py), peningkatan filesystem dengan dukungan deteksi flash-size secara otomatis sebagaimana dokumentasi pada tutorial.

Isu yang sering disinggung pada port ESP8266 diantaranya:

  • Dukungan SSL tersedia, namun hanya bekerja dengan ukuran data yang kecil (beberapa kilobytes (kb) saja).
  • Implementasi WebREPL dengan SSL tidak didukung
  • Hanya beberapa sesi WebREPL yang bisa berjalan lancar pada saat sesi transfer file.
  • Tranfer file dengan WebREPL memiliki isu dengan file yang berukuran besar (lebih dari 10 kb)
  • Secara desain, hanya satu koneksi konkuren WebREPL yang didukung
  • Soft reset tidak bisa mereset stack jaringan.
Pada rilis ini, MicroPython1 1.8 membawa dukungan frozen bytecode yang bisa digunakan untuk mengkompilasi byte secara offline dan menautkannya ke dalam firmware, sehingga kebutuhan untuk kompilasi sudah dipenuhi tanpa harus menggunakan RAM pada runtime. Dukungan sintaks async/await juga telah dipenuhi dan qstrs sekarang bisa di bangkitkan secara otomatis pada proses build system.

Fitur apa saja sih yang disuguhkan di MicroPython 1.8? Ini dia.

py core

  • modbuiltins: Penambahan komentar pada pengaturan variabel spesial "_"
  • Penambahan sintaks async/await/async dan for/async
  • Perbaikan constant folding dan inline-asm agar bisa bekerja dengan sintaks baru async
extmod
  • Penambahan awalan modul framebuf
  • Penambahan class generic machine.I2C dengan bit-bang I2C
  • machine_i2c: Pembacaan I2C diperbaiki dengan mengirimkan ack/nack pada byte terakhir
lib
  • utils/printf: Mempekerjakan kembali fungsi DEBUG_printf()
  • utils/pyexec: Pemanggilan condition-out pada GC dari pyexec
  • utils/pyhelp: Mengekstrak implementasi help(obj) ke dalam fungsi library
drivers
  • Penambahan driver SSD1306 OLED dengan antarmuka I2C dan SPI
tools
  • mpy-tool.py: Alat baru yang digunakan untuk file berekstensi .mpy
  • mpy-tool.py: Penambahan dukungan untuk Python 2.7
tests
  • Penambahan 6 pengujian untuk async await/for/
  • Penambahan file berekstensi .exp untuk pengujian async sehingga pengguna bisa menjalankannya dengan Python 3.4
  • Perbaikan dict1.py sehingga tidak bergantung pada urutan elemen struktur data dict {}
minimal port
  • Penambahan contoh untuk frozen bytecode yang tetap (file berekstensi .mpy)
  • Penonaktifan sintaks async/await
unix port
  • Proses build bisa menggunakan MICROPY_PY_UHASHLIB_SHA1 jika axTLS sudah tersedia.
  • Memastikan proses build pada direktori ada sebelum pengaksesan dan pembekuan upip
  • Makefile: Agar instalasi bisa kompatibel dengan sistem operasi lain (BSD, etc.)
windows port
  • msvc: Implementasi pembangkitan qstr secara otomatis dengan makeqstrdefs
stmhal port
  • Implementasi dasar C-level pin HAL
  • Menggunakan objek generik I2C dalam modul machine
  • Pengaktifan modul framebuf
cc3200 port
  • Menggunakan fungsi pyhelp_print_obj
  • Merubah method i2c.scan() ke scan address 0x08-0x77
  • Penonaktifan sintaks async/await
esp8266 port
  • Pengaktifan modul websocket
  • modnetwork: .config(): Pemeriksaan antarmuka config bisa direquest
  • modnetwork: .config(): Penambahan paramter "authmode"
MicroPython 1.8 telah rilis dengan membawa banyak fitur baru dan peningkatan. Pada rilis ini, port ESP8266 memiliki banyak peningkatan dan penambahan fitur. Begitu juga dengan penambahan sintaks async untuk berbagai port. Untuk melihat catatan rilis yang lebih lengkap bisa mengunjungi akun Github MicroPython. (yp)

 

Referensi: https://www.kickstarter.com/projects/214379695/micropython-on-the-esp8266-beautifully-easy-iot/posts/1568461 Cover: learn.adafruit.com