Skip to content
async state machines for micropython
Branch: master
Clone or download
Latest commit a826eb5 Feb 1, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples Fixed time constants in examples Feb 2, 2019
ufarc Fixes to run on micropython Feb 2, 2019
LICENSE Renamed farc to ufarc. Updated README, LICENSE Jan 29, 2019 Updated README Feb 2, 2019 Favor ahsm/AHSM over act/Actor Jan 29, 2019


ufarc is a fork and rewrite of farc in order to run on MicroPython.

Known Issue: Some examples fail due to

  File "/Users/dwhall/.micropython/lib/ufarc/", line 513, in run_forever
  File "/Users/dwhall/.micropython/lib/ufarc/", line 532, in stop
  File "uasyncio/", line 183, in stop
  File "uasyncio/", line 48, in call_soon
IndexError: full


Framework for Asyncio AHSM Run-to-completion Concurrency written in Python3. In other words, a cheap knock-off of QP ( that uses coroutines instead of threads. This book describes QP and how to program hierarchical state machines.

This framework has fewer than 1000 LOC. It allows the programmer to create highly-concurrent programs by using a message-passing system and run-to-completion message handlers within a state-machine architecture. With these tools, complex, asynchronous operations are decomposed into manageable chunks of code.

Code Repository

Release History

2019/01/28 Initialized repo by forking farc at b9db67b56099b463cc079bdcf83d3530f305cd1b

You can’t perform that action at this time.