Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
48a698a
Add SmallVM v346 stable base code
Vajnar Nov 23, 2025
6297d24
Add minimum NuttX /dev/ttyACM0 version for ESP32-C6
Vajnar Nov 23, 2025
83c8344
Make smallVM compilable on NuttX
Vajnar Nov 23, 2025
8d955a9
Set count = 5 to improve responsiveness of MicroBlocks IDE
Vajnar Nov 23, 2025
b04841b
Decrease memory footprint of smallVM
Vajnar Nov 23, 2025
0545c97
add TCP version of smallVM and make ttyATM0 default
Vajnar Nov 23, 2025
5f85c41
Make the serial connection faster
Vajnar Nov 23, 2025
5b0c670
Move smallVM to interpreters/smallvm directory and combine serial, TC…
Vajnar Nov 26, 2025
8e8d71e
Add application for transferring data between TCP socket and pseudo-TTY
Vajnar Nov 26, 2025
5a29c45
smallVM: use ppoll() to wait for events
Vajnar Apr 12, 2026
70e50cd
Add basic LED blinking MicroBlocks application
Vajnar Apr 12, 2026
f23a37b
smallvm: switch to ppoll() for recvBytes() and sendBytes()
Vajnar Apr 19, 2026
a5a710e
smallvm: pty2tcp: rewrite using ppoll()
Vajnar Apr 19, 2026
3f79d5a
smallvm: pty2tcp: Use blocking sockets
Vajnar Apr 20, 2026
165b5d5
smallvm: runtime.c: Drain receive buffer (process all outstanding mes…
Vajnar Apr 20, 2026
57507a7
smallvm: runtime.c: Fix handling of incomplete messages
Vajnar Apr 21, 2026
2a30473
smallvm: Update VM to v377
Vajnar Apr 22, 2026
6c8f450
smallvm: mem.h: fix redefinition warnings
Vajnar Apr 22, 2026
3d440fe
smallvm: runtime.c: Fix processing of messages in case of a timeout
Vajnar Apr 25, 2026
51e74a2
smallvm: runtime.c: call sendData() after processing each incoming me…
Vajnar Apr 25, 2026
d4764db
interpresters/smallvm: Add basic support for TFT display
Vajnar Jun 9, 2026
ae5e0d7
tftPrims: fix color order
Vajnar Jun 9, 2026
fe45c7a
tmp
Vajnar Jun 13, 2026
7356c55
Fix drawing of lines and improve initialization
Vajnar Jun 26, 2026
8e96fc3
Add Touch Screen module and add 2nd task
Vajnar Jun 26, 2026
e9edf6a
Improve drawing lines
Vajnar Jun 26, 2026
9422dac
smallvm: Add support for touchscreen input
Vajnar Jun 27, 2026
f9780a3
smallvm: Add support for USERLED
Vajnar Jun 28, 2026
c57b1ae
build(deps): bump actions/cache from 5 to 6
dependabot[bot] Jun 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -311,7 +311,7 @@ jobs:

- name: Restore Tools Cache
id: cache-tools
uses: actions/cache@v5
uses: actions/cache@v6
env:
cache-name: ${{ runner.os }}-cache-tools
with:
Expand Down
42 changes: 42 additions & 0 deletions interpreters/smallvm/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
config INTERPRETERS_SMALLVM
tristate "smallVM"
default n

if INTERPRETERS_SMALLVM

config INTERPRETERS_SMALLVM_PRIORITY
int "smallVM priority"
default 100

config INTERPRETERS_SMALLVM_STACKSIZE
int "smallVM stack size"
default 8192

choice
prompt "Communication with Microblocks IDE"
default INTERPRETERS_SMALLVM_SERIAL

config INTERPRETERS_SMALLVM_SERIAL
bool "Use serial line for communication"

config INTERPRETERS_SMALLVM_TCP
bool "Use TCP for communication"

endchoice

if INTERPRETERS_SMALLVM_SERIAL

config INTERPRETERS_SMALLVM_SERIAL_DEVICE
string "Serial device used for communication"
default "/dev/ttyACM0"

endif

if INTERPRETERS_SMALLVM_TCP

config INTERPRETERS_SMALLVM_TCP_PORT
int "Port number to listen on"
default 9876
endif

endif
3 changes: 3 additions & 0 deletions interpreters/smallvm/Make.defs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
ifneq ($(CONFIG_INTERPRETERS_SMALLVM),)
CONFIGURED_APPS += $(APPDIR)/interpreters/smallvm
endif
22 changes: 22 additions & 0 deletions interpreters/smallvm/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
include $(APPDIR)/Make.defs

CFLAGS += -DGNUBLOCKS -DNUTTX -Wno-strict-prototypes -Wno-shadow

CSRCS = dataPrims.c \
interp.c \
mem.c \
miscPrims.c \
persist.c \
runtime.c \
tinyJSON.c \
varPrims.c \
tftPrims.c

MAINSRC = nuttx.c

PROGNAME = smallvm
PRIORITY = $(CONFIG_INTERPRETERS_SMALLVM_PRIORITY)
STACKSIZE = $(CONFIG_INTERPRETERS_SMALLVM_STACKSIZE)
MODULE = $(CONFIG_INTERPRETERS_SMALLVM)

include $(APPDIR)/Application.mk
19 changes: 19 additions & 0 deletions interpreters/smallvm/blinking_LED.ubp
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
module main
author unknown
version 1 0
description ''

script 75 65 {
whenStarted
forever {
setUserLED true
waitMillis 500
setUserLED false
waitMillis 500
}
}

script 55 295 (boardType)

script 55 336 ('[misc:version]')

Loading
Loading