There exist several FORTH programming languages for the P8X32A propeller micro controller. FORTH is ideally suited for “bit-banging”; that is, the micro controller provides pre-filtering and preprocessing for external hardware peripherals, such as I2C, SPI, or serial devices such as GPS, gyro, accelerometer, LED indicators, etc. The micro controller can provide a real-time / deterministic interface to the PC (in this case raspberry pi); where the PC would otherwise provide erratic (or “laggy”) response on its own.
The project I work with is PropForth. One feature is integrated communications with PC workstations OS (in this case Linux).
While all forth can communicate via a generic terminal program (minicom & picocom on Linux, TeraTerm on Windows, etc), propforth includes a serial communication program (goterm, written in GO language) with handles comms much more reliably than the “standard” RS-232 serial. The net result is that the P8X32a, with its 8 cpu cores (or “cogs”) see the Linux node as just another cog (that happens to have huge network, terminal, storage and memory resources); and the Linux box see the prop as just another bunch of tasks, which happen to run deterministically.
If anyone is interested in giving FORTH a try, the code is available on https://code.google.com/p/propforth/ and is also being put up on github, https://github.com/prof-braino/PropForth5.5 is my work-in-progress repository.
Please give me a shout if you are interested or have questions.
Cheers!