FORTH on the PicoCalc

zeptoforth 1.16.0 is out!

You can get this release from:

This release:

  • adds a PIO pool on the RP2040 and RP2350; this pool adds a convenient way to manage PIO’s and state machines in a centralized fashion so they can be practically shared by multiple applications simultaneously.
  • adds a convenient means of managing PIO memory as part of the PIO pool API.
  • adds a convenient means of setting a PIO state machine’s program as part of the PIO pool API.
  • updates the CYW43439 driver so it uses the PIO pool when the PIO block and state machine are passed in as -1, while maintaining backward compatibility with existing code that relies on explicitly specifying a PIO block and state machine.
  • updates the Neopixel driver so it uses the PIO pool when the PIO block and state machine are passed in as -1, while similarly maintaining compatibility with existing code.
  • updates the Pico W and Pico 2W networking examples to use the PIO pool for the CYW43439 SPI driver.
  • updates the Neopixel examples to use the PIO pool.
2 Likes

As a preview of a new feature of zeptoIP (both zeptoIPv4 and zeptoIPv6), the devel branch of zeptoforth now contains support for both resolving DNS names and assigning a DNS name in the .local domain via Multicast DNS.

For instance, for a zeptoIP interface my-interface one can enable Multicast DNS with:

true my-interface net::mdns-enabled!

Once one has done that, one can assign a DNS name, say myhostname.local via Multicast DNS with:

s" myhostname.local" my-interface net::mdns-hostname!

Note that the hostname is saved in a buffer, so the passed-in string need not stay valid after net::mdns-hostname! returns.

Passing in an empty string to net::mdns-hostname! disables assigning a DNS name via Multicast DNS and is equivalent to the state on initialization.

More:

There are now programs for downloading files over HTTP (not HTTPS) to your PicoCalc over IPv4 and IPv6, at zeptoforth/test/rp_common/pico_w_net_ipv4_http_to_file.fs at devel · tabemann/zeptoforth · GitHub and zeptoforth/test/rp_common/pico_w_net_ipv6_http_to_file.fs at devel · tabemann/zeptoforth · GitHub respectively.

2 Likes

zeptoforth 1.16.1 is out!

You can get this release from:

This release:

  • adds optional support by zeptoIPv4 and zeptoIPv6 for Multicast DNS, both for looking up hostnames over Multicast DNS and for assigning a hostname to one’s device with Multicast DNS.
  • optimizes multicore::test-set, used by slocks, to distribute usage of hardware spinlocks on the RP2040 and RP2350 across 16 spinlocks rather than only using one spinlock, reducing contention in multicore execution.
  • adds optional support for ILI9341-based displays, which the PicoCalc terminal emulator supports in both graphical and text-only variants.
  • adds friendlier zeptoIPv4 and zeptoIPv6-based applications that can be combined with one another.
  • adds optional bitmap literals.
1 Like

Thank you for yet another exciting edition of zeptoforth Travis!

You’re welcome!

Note that this release does not contain uf2loader support, which @cathiele is working on – hopefully this will make its way into a release soon. I just wanted to get some features that I had been sitting on such as Multicast DNS out the door rather than sitting on them longer. (I personally like Multicast DNS support a lot, as it enables assigning hostnames to devices on your local network in a decentralized fashion; e.g. this way I can communicate between my PicoCalc and my laptop without having to memorize their IP addresses.)

1 Like

zeptoforth 1.16.1.1 is out!

You can get this release from:

This release:

  • fixes a bug in float32::vfloor which caused it to misbehave for values in the interval (-1, 0).
  • fixes bugs in pio-pool::allocate-pio-sms-w-prog with regard to setting PIO program start and wrap addresses.
  • adds an RP2350 PicoCalc single-precision floating point graphing demo test/rp2350/picocalc_graph.fs.
2 Likes

I have created the following dedicated thread for zeptoforth here: