Udgivelsen af projektet PikaScript 1.8 er offentliggjort, som udvikler en kompakt motor til at skrive applikationer til mikrokontrollere i Python. PikaScript er ikke bundet til eksterne afhængigheder og kan køre på mikrokontrollere med 4 KB RAM og 32 KB Flash, såsom STM32G030C8 og STM32F103C8. Til sammenligning kræver MicroPython 16 KB RAM og 256 KB Flash, mens Snek kræver 2 KB RAM og 32 KB Flash. Projektets kode er skrevet på C og distribueres under MIT-licensen.
PikaScript tilbyder et subset af Python 3-sproget, der understøtter syntakselementer som kontrolstrukturer og løkker (if, while, for, else, elif, break, continue), grundlæggende operatorer (+ - * / ), moduler, inkapsling, arv, polymorfisme, klasser og metoder. Python-scripts køres på enheder efter forudgående kompilation — PikaScript konverterer først Python-koden til intern bytecode Pika Asm, som derefter køres på enheden i særlige virtuelle maskiner Pika Runtime. Der understøttes drift direkte på hardware eller i miljøerne RT-Thread, VSF (Versaloon Software Framework) og Linux.

Det skal bemærkes, at integrationen af PikaScript-scripts med C-kode er enkel — C-funktioner kan knyttes til koden, hvilket gør det muligt at bruge erfaringerne fra gamle projekter, der er skrevet i C, når PikaScript implementeres. Til udvikling af C-moduler kan eksisterende udviklingsmiljøer såsom Keil, IAR, RT-Thread Studio og Segger Embedded Studio bruges. Bindinger genereres automatisk under kompilationen; det er nok at definere API'en i Python-kodefilen, og bindingen af C-funktioner til Python-moduler vil blive opfyldt, når Pika Pre-compiler starter.

PikaScript erklærer støtte for 24 mikrokontrollere, herunder forskellige modeller af stm32g*, stm32f*, stm32h*, WCH ch582, ch32*, WinnerMicro w80*, Geehy apm32*, Bouffalo Lab bl-706, Raspberry Pico, ESP32C3 og Infineon TC264D. For hurtig start på udviklingen uden udstyr er der en simulator tilgængelig, eller en udviklerplade Pika-Pi-Zero baseret på mikrokontrolleren STM32G030C8T6 med 64 KB Flash og 8 KB RAM tilbydes, som understøtter standard perifere interfaces (GPIO, TIME, IIC, RGB, KEY, LCD, RGB). Udviklerne har også forberedt en online projektgenerator og PikaPackage-pakket manager.
I den nye version er der implementeret håndtering af hukommelse baseret på referenceoptælling, og der er tilføjet støtte til virtuelle konstruktører (factory method). Der er udført fejlfinding af hukommelsesproblemer ved hjælp af værktøjet valgrind. Der er tilføjet støtte til kompilering af Python pc-filer til bytekode og pakning i firmware. Det er nu muligt at bruge flere Python-filer i firmwaren uden behov for at anvende filsystemet.
Kilde: opennet.ru
