5744

Transform your MiniRadio into a versatile RF tool by a RadioScripting interpreter language

The Si4732 based ATS Mini Radio is a fantastic, affordable receiver for those simply wanting to listen to the waves, … or even for more technical radio enthusiasts who would like to transform it into a versatile tool.

RadioScript is a new firmware that provides the receiver hardware with an interpreter-based programming language. This allows radio related scripts to be executed directly without compilation. Programs can be created, edited, and permanently stored on the radio via WiFi using a browser window. The language uses a MicroPython-like syntax, making the development of web interfaces basic and intuitive. 

The RadioScript interpreter runs entirely on the MiniRadio’s ESP32 and enables access to the SI4732 receiver chip, full control of the display, and querying of the rotary encoder. A particular highlight: through the scripting language, all registers, and functions documented in the official SI4732 programming interface are easily accessible and controllable.  

In addition to linear execution, the interpreter also supports event-based programming, so scripts can react directly to inputs, signals, or state changes. With support for HTML, AJAX, JavaScript, and CSS, it is possible to create dynamic, interactive web interfaces that are easy to use with a smartphone or tablet. This turns the MiniRadio into an open platform that combines classic radio technology with modern web interactivity, clear-text scripting, and flexible, event-driven responses.

RadioScript was created by H.J.Berndt also wrote a well-known alternative firmware for the ATS MiniReceiver. 

This scripting language needs a group of enthusiasts who want to use it a a versatile tool.

My first attempts with this language led to a short script that simply graphically logs the RSSI of an FM-frequency. 

The RadioScript firmware, documentation, and examples are at the German Website:
http://www.hjberndt.de/soft/espbasic/espRadioScript.html

English Translation via:
https://translate.google.com/translate?hl=&sl=de&tl=en&u=http://www.hjberndt.de/soft/espbasic/espRadioScript.html



 
img-8917.jpeg
img-8918.jpeg
img-9283.png
img-9284.png
My short example RadioScript :
'SIMPLE LOCAL RSSI PLOTTER for RadioScript   http://HJBERNDT.DE
'---------------------------------------DB9JG 10.2025---------------------------------------------- 
GUIOFF 'No need for HTML etc
W = 319
H = 169
x = 0
rssi = 0
rssi_o = 0
col = TFT.rgb(0, 255, 100)
TFT.cls()
TFT.fill(tft.rgb(30, 30, 25))
TTY.size 2,10,0,320,60 
RX 100.0    'Set FM radio   
f = 88.8    '88.8MHz WDR5
FREQUENCY f
VOLUME    50
timerCB 500,[PLOTTER] 
WAIT
'-------------------------------------------------------------- 
[PLOTTER]
if x==0 then gosub [GRID]
x = (x+1) % W
rssi = RX.RSSI() *2
TFT.line(x-1,H-rssi_o,x,H-rssi,col)
TTY CHR(10)&"Freq: "& STR(f)& "MHz RSSI: " & STR(rssi) & "dBuV" 
rssi_o = rssi
RETURN
'-------------------------------------------------------------- 
[GRID]
TFT.cls()
TFT.line(0,0,0,H,tft.rgb(200,200,200))
TFT.line(0,H,W,H,tft.rgb(200,200,200))
FOR y= H-1 to 0 step -10
tft.line(0,y,W,y,tft.rgb(40, 40, 40))
NEXT y
RETURN
'--------------------------------------------------------------