qpn-arduino - QP-nano real-time framework/RTOS for Arduino

  •        11

The QP-nano adaptation for Arduino is distributed in a single ZIP archive qpn-_arduino-1.8.x.zip, where stands for version of the QP-nano framework. You need to unzip the qpn-_arduino-1.8.x.zip archive into your Arduino-Sketchbook folder. To find out where your Sketchbook folder is, or to configure a different location for your Sketchbook folder, you need to open the Arduino IDE and select File | Preferences menu. The sketchbook location will be shown at the top of the Preferences dialog box. Once you identify the Sketchbook folder, you simply unzip the whole archive to your Sketchbook.

https://state-machine.com/arduino
https://github.com/QuantumLeaps/qpn-arduino

Tags
Implementation
License
Platform

   




Related Projects

QP Active Object (Actor) Frameworks

  •    C

Event-driven, RTOS-like, active object frameworks for microcontrollers

StatefulJ - Event Driven Finite State Machine (FSM)

  •    Java

StatefulJ is a lightweight, open source Java Event Driven Finite State Machine(FSM) and a complete Spring Data based framework which lets you easily define and integrate State Machines into your Applications. It is simple, dependency free, in memory implementation of an FSM with support for concurrency and non-deterministic transitions.

Arduino_FreeRTOS_Library - A FreeRTOS Library for all Arduino AVR Devices (Uno, Leonardo, Mega, etc)

  •    C

This is a fork of Richard Barry's freeRTOS, optimised for the Arduino AVR devices. It has been created to provide access to FreeRTOS capabilities, with full compatibility to the Arduino environment. It does this by keeping hands off almost everything, and only touching the minimum of hardware to be successful.

fsm-as-promised - A finite state machine library using ES6 promises

  •    Javascript

A minimalistic finite state machine library for browser and node implemented using promises. 📢 For Visual Studio Code users: checkout the UML visualization extension.

hiduino - :musical_keyboard: Native USB-MIDI on the Arduino

  •    C

The HIDUINO project provides firmwares, documentation, and example code for building a class-compliant USB-MIDI device from an Arduino UNO or Mega 2560. HIDUINO does not use middleware software to convert serial messages through a MIDI loopback port (like LoopBe1 on Windows or IAC on OSX). Instead, HIDUINO provides a true USB-MIDI device for plug-and-play compatibility on Windows, OSX, and Linux - just like a commercial MIDI controller. HIDUINO takes advantage of Arduino boards where a second AVR chip is used as the USB controller, so it won't work with single chip variants (e.g. Leonardo), nor older boards that use an FTDI chip as USB controller (e.g. Duemilanove). Many cheap Arduino knockoffs that pretend to be an Uno or Mega also might not work, since they tend to use the (slighly) cheaper FTDI chips.


Spring Statemachine - Framework for application developers to use state machine concepts with Spring

  •    Java

Spring Statemachine is a framework for application developers to use state machine concepts with Spring applications. Hierarchical state machine, Usage of triggers, transitions, guards and actions, Type safe configuration adapter, Distributed state machine based on a Zookeeper, State machine event listeners and lot more.

arduino-cli - Arduino command line interface

  •    Go

arduino-cli is an all-in-one solution that provides builder, boards/library manager, uploader, discovery and many other tools needed to use any Arduino compatible board and platforms. This software is currently in alpha state: new features will be added and some may be changed.

xstate - Functional, Stateless JS Finite State Machines and Statecharts

  •    TypeScript

Functional, stateless JavaScript finite state machines and statecharts. Statecharts are a formalism for modeling stateful, reactive systems. This is useful for declaratively describing the behavior of your application, from the individual components to the overall application logic.

TinyEKF - Lightweight C/C++ Extended Kalman Filter with Python for prototyping

  •    C

TinyEKF is a simple C/C++ implementation of the Extended Kalman Filter that is general enough to use on different projects. In order to make it practical for running on Arduino, STM32, and other microcontrollers, it uses static (compile-time) memory allocation (no "new" or "malloc"). The examples folder includes an Arduino example of sensor fusion. The extras/python folder includes an abstract Python class that you can use to prototype your EKF before implementing it in C/C++. The extrasc/c folder contains a "pure C" example from the literature. Arduino users can simply install or drag the whole TinyEKF folder into their Arduino libraries folder. The examples/SensorFusion folder contains a little sensor fusion example using a BMP180 barometer and LM35 temperature sensor. I have run this example on an Arduino Uno and a Teensy 3.2. The BMP180, being an I^2C sensor, should be connected to pins 4 (SDA) and 5 (SCL) of the Uno, or pins 18 (SDA) and 19 (SCL) of the Teensy. For other Arduino boards, consult the documentation on the Wire library. The analog output from the LM35 should go to the A0 pin of your Arduino or Teensy.

Finite State Kernel Creator

  •    Perl

The FSKC is a CASE tool that allows developers to specify all valid and invalid state-event combinations of a finite state machine (FSM) through a simple to use GUI. Functions called from the FSK can be coded and linked to form a complete FSM.

machina.js - js ex machina - finite state machines in JavaScript

  •    Javascript

Machina.js is a JavaScript framework for highly customizable finite state machines (FSMs). Many of the ideas for machina have been loosely inspired by the Erlang/OTP FSM behaviors. Finite state machines are a great conceptual model for many concerns facing developers – from conditional UI, connectivity monitoring & management to initialization and more. State machines can simplify tangled paths of asynchronous code, they're easy to test, and they inherently lend themselves to helping you avoid unexpected edge-case-state pitfalls. machina aims to give you the tools you need to model state machines in JavaScript, without being too prescriptive on the problem domain you're solving for.

grbl - An open source, embedded, high performance g-code-parser and CNC milling controller written in optimized C that will run on a straight Arduino

  •    C

Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328. The controller is written in highly optimized C utilizing every clever feature of the AVR-chips to achieve precise timing and asynchronous operation. It is able to maintain up to 30kHz of stable, jitter free control pulses.

Copycat - A novel implementation of the Raft consensus algorithm

  •    Java

Copycat is a fault-tolerant state machine replication framework. Built on the Raft consensus algorithm, it handles replication and persistence and enforces strict ordering of inputs and outputs, allowing developers to focus on single-threaded application logic. Its event-driven model allows for efficient client communication with replicated state machines, from simple key-value stores to wait-free locks and leader elections. You supply the state machine and Copycat takes care of the rest, making it easy to build robust, safe distributed systems.

ArgoUML - UML modeling tool

  •    Java

ArgoUML is the leading open source UML modeling tool and includes support for all standard UML 1.4 diagrams. It supports Class diagram, Statechart diagram, Activity diagram, Use Case diagram, Collaboration diagram, Deployment diagram and Sequence diagram. The diagram could be exported to GIF, PNG, PS, EPS, PGML and SVG. It generates code for Java, C++, C# and PHP. It also supports reverse engineering, generates code from diagram.

ufsm - UML Statechart library in C and XMI importer

  •    C

uFSM is a statechart library written in C. uFSM is designed without any external dependencies and uses no dynamic memory allocation or recursion. uFSM is designed with embedded applications in mind but can also be used in other environments.

django-fsm - Django friendly finite state machine support

  •    Python

django-fsm adds simple declarative states management for django models. Instead of adding some state field to a django model, and managing its values by hand, you could use FSMState field and mark model methods with the transition decorator. Your method could contain the side-effects of the state change.

django-fsm - Django friendly finite state machine support

  •    Python

django-fsm adds simple declarative states management for django models. Instead of adding some state field to a django model, and managing its values by hand, you could use FSMState field and mark model methods with the transition decorator. Your method could contain the side-effects of the state change.

PJON - PJON® is an open-source network protocol compatible with Arduino, ESP8266, STM32, Teensy, Raspberry Pi, Linux and Windows

  •    C++

PJON® (Padded Jittering Operative Network) is an Arduino compatible, multi-master, multi-media network protocol. It proposes a Standard, it is designed as a framework and implements a totally software emulated network protocol stack that can be easily cross-compiled on many architectures like ATtiny, ATmega, ESP8266, ESP32, STM32, Teensy, Raspberry Pi, Linux, Windows x86 and Apple machines. It is a valid tool to quickly and comprehensibly build a network of devices. Visit wiki and documentation to know more about the PJON Standard. Feel free to send a pull request sharing something you have made that could help. If you want to support us you can also try to solve an issue. Thank you for your support.

HoodLoader2 - 16u2 Bootloader to reprogram 16u2 + 328/2560 with Arduino IDE

  •    C

HoodLoader2 is a CDC BootLoader with self reprogramming and Fast USB-Serial function. An Arduino Uno/Mega board has two Microcontroller of which one(16u2) is normally used for USB-Serial translation. But we can also use it as standalone AVR Microcontroller with (or without) USB functions as well.

OBD-II for Arduino

  •    C++

This Arduino library is developed for the Arduino OBD-II UART adapter (http://www.arduinodev.com/hardware/obd-kit/) and works with all Arduino varients. Several sample sketches are provided for demonstrating the usage of the library. The aim is to provide Arduino vehicle connectivity via the OBD-II port with easy-to-use Arduino library so Arduino lovers can start play Arduino on their cars easily. Latest source code: https://github.com/stanleyhuangyc/ArduinoOBD