Real-time frameworks/RTOS based on active objects & state machines
Real-time frameworks/RTOS for building responsive and modular real-time embedded software as systems of active objects (concurrent state machines). The QP family consists of QP/C, QP/C++, and QP-nano frameworks, which are all strictly quality controlled, superbly documented, and commercially licensable. The behavior of active objects (a.k.a. actors) is specified in QP by means of hierarchical state machines (UML statecharts). The frameworks support manual coding of UML state machines in C or C++ as well as automatic code generation by means of the free QM modeling tool. All QP frameworks can run on bare-metal MCUs, completely replacing a traditional RTOS. Ports and ready-to-use examples are provided for major embedded CPUs, such as ARM Cortex-M, ARM7/9, MSP430, as well as Arduino and mbed. QP/C and QP/C++ can also work with a traditional RTOS/OS, such as ThreadX, FreeRTOS, embOS, and uC/OS-II as well as Linux (POSIX), Windows.
ChibiOS/RT is a free and efficient RTOS designed for deeply embedded applications. It offers a comprehensive set of kernel primitives and supports many architectures: ARM7, Cortex-M0, Cortex-M3, Cortex-M4, PowerPC e200z, STM8, AVR, MSP430, ColdFire, H8S, x86.
Scientific/engineering firmware repurposing HP business calculators!
This project has created scientific firmware for the HP-20b and HP-30b business calculators. The WP 34S turns either of these calculators into a powerful keystroke programmable scientific device. According to our customers, it's the most powerful and fastest RPN scientific pocket calculator ever built. The WP 34S is alive and stable since 2011. We have succeeded in satisfying the most picky users - read about their experiences on http://www.hpmuseum.org/forum/forum-8.html. Find the Owner's Manual v3.2 at https://www.createspace.com/4106229 In 2014, we've updated the WP 34S to version 3.3. Our customers confirm its documentation is excellent and comprehensive (see feedback); an updated printed edition is available from https://www.createspace.com/6329314 since June 2016. We have also produced the WP 31S which is derived from the WP 34S source code. This is an entry-level scientific calculator. Its printed manual is available from https://www.createspace.com/4773370
Administration Remote Desktop Service - TSAdmin
Remote Desktop Service - User Profile Disks - TSAdmin Administration des terminaux légers dans un environnement RDS. Galinette cendrée est un outil destiné aux administrateurs d’architecture RDS Terminal Server. Sa fonction première est de gérer les sessions RDP/TSE des utilisateurs via une interface simple. Il permet de remplacer « TSAdmin » ou le « Gestionnaire de service de bureaux à distance ». - Gestion des sessions RDP pour un serveur Broker (Bureau à distance et Remote App) - Gestion profils VHD et VHDX pour un partage UPD. - Prise de contrôle via le mode Shadow Session - Prise de contrôle via un logiciel tiers installé sur le terminal (VNC…) - Intégration avec Active Directory - Interrogation LDAP des utilisateurs AD - Interrogation WMI du terminal - Gestion des processus pour un utilisateur - Envoyer des messages pour un serveur ou un utilisateur Galinette Password : Module de décryptage de mot de passe Thunderbird et Firefox
FlashForth is a standalone Forth system for the Microchip PIC 18, 24, 30, 33 and the Atmel Atmega series of microcontrollers. A Forth system with interpreter, compiler, assembler and multitasker is provided.
Bootloader for STM32, XMC, HCS12 and other microcontroller targets.
OpenBLT is mostly used as an STM32 bootloader, due to the popularity of STM32 microcontrollers. However, the bootloader’s architecture is such that it can work with any microcontroller and use any type of communication interface to perform firmware updates.
Turns the BeagleBone Black into a Nintendo-based retrogaming console.
The Beagle Entertainment System (BES) project is a complete filesystem image that turns the ARM-based BeagleBone Black single board computer into an embedded appliance capable of playing software for the SNES, NES, GBA, and Gameboy Color platforms. A full system image, ready to be written to a microSD card and used as-is, is available for download. Just connect your BES-enabled BeagleBone Black to your network and you can use BES's Node.js web interface to add or remove ROMs, configure gamepads, and edit ROM descriptions for the front-end GUI. There's no need to hand edit configuration files or manually copy ROM files onto the microSD card! BES source: https://github.com/hendersa/bes BES web interface: https://github.com/hendersa/bes-config-node BES kernel device tree: https://github.com/hendersa/bes-dtb-rebuilder
amforth is an extendible interpreter on microcontrollers
amforth is an extendable command interpreter running on AVR ATmega and TI MSP430 microcontrollers. Turnkey actions for fully autonomous operations are possible as well. The command language is close to the Forth 2012 standard.
Use Your favorite input method to play on PlayStation 4 and Xbox One
The goal of this project is to provide compact embedded systems with Game Input MultipleXer preinstalled. Currently supported platforms: Orangepi Zero, Raspberry Pi 0-3, x86. GIMX is an open source solution that allows using alternative input methods on most of modern gaming consoles like PlayStation 4, Xbox One, PlayStation 3, Xbox 360. Beside the software it requires to assemble DIY adapter from off the shelf parts to emulate original controllers and translate the input from serial port. Little or even no soldering required. With minimal knowledge one can build an advanced standalone alternative to comercial input mulitplexers for approximately 30$ at home. Complied GIMX binares can be found here: https://gimx.fr/wiki/index.php?title=Installation Project source code is availabe in Matlo's GitHub: https://github.com/matlo/GIMX
State machine framework for reactive embedded systems
RKH is a generic, flexible, modular, highly portable, ANSI-C compliant, and open-source development tool for implementing hierarchical state machines based on modern state machine concepts. This modern techniques are used to give an abstract description of the dynamic behavior of a system in a substantial manner. The RKH not implements neither entire UML specs. nor entire Statechart specs. Instead, the RKH intention is to support just enough basic concepts of that powerful tools to facilitate the reactive-system modeling holding a solid, and efficient implementation. Broadly speaking, the RKH implementation has been designed from the ground up to be used in 8-bits platforms but can be easily adapted to 16 or 32-bits platforms.
BASIC-like language interpreter for embedded systems
Terminal-BASIC is a BASIC-like language interpreter, works on a set of single board embedded systems (i.e. famous AVR uc based boards). Terminal-BASIC: * suports real numbers, multidimensional arrays and Darthmouth BASIC-style matrix operations; * written in C++11; * has modular structure (can save uc storage, instantiating only used modules); * works through different i/o devices, using vt100 commands; * on systems with multiple i/O devices can work as simple time-sharing system; * static Linux build for playing and debug;
An Open-Source Library for Low-Power Approximate Computing Modules
The “lpACLib” library contains the VHDL description of accurate and approximate versions of several arithmetic modules (like adders and multiplier of different bit-widths) and accelerators. Moreover, it also provides the corresponding software behavioral models/implementations developed in C and MATLAB to enable quality characterization. Besides our novel designs, it also contains implementations for several state-of-the-art arithmetic modules and their approximate versions. This open-source library facilitates research and development in approximate computing at higher abstraction levels, and to facilitate reproducible research and comparisons. In case of usage, please refer to our publication: Muhammad Shafique, Rehan Hafiz, Semeen Rehman, Walaa El-Harouni, Jörg Henkel, "Cross-Layer Approximate Computing: From Logic to Architectures", Design Automation Conference (DAC), 2016. Contributors: Authors, Vanshika Baoni, M. Abdullah Hanif http://ces.itec.kit.edu/lpACLib.php
Real Time Tcp/Ip Stack Library
IpWay/HOST is a real time tcp/ip stack library designed for embedded applications on 32bit microcontrollers ARM and PPC based (STM32Fx, SPC56x, SPC57x, SPC58x), where execution efficiency and compact code are important requirements. IpWay is characterized by high portability, compact size, copyless feature (also for TCP applications) and Checksum offload. Moreover, IpWay offers a 100% compatibility with AUTOSAR MCAL versions 4.13 and 4.2.x. IpWayStudio is a free ARM development environment based on Open Source tools and components. It has been created in order to support the development of IpWay itself and is now available as a free download. Everything is required to start working with IpWay is encapsulated in a single download. It takes just two minutes to have your development board working with IpWay.
Program NXP P89V51RD2 from your favorite Unix system
P89 Serial Programmer (p89pgm) is a simple command-line based serial In-System Programmer for Philips (NXP) P89V51RD2 microcontroller. This programmer is designed to be minimal, and has no external software dependency. Supported input formats are Intel HEX and raw binary file. This programmer is designed for GNU/Linux and Unix-like platforms; but it also runs on Microsoft Windows as well, thanks to Cygwin porting library.
PK2Aux is a library and suite of command-line utilities for using the Microchip PICkit2 programmer device for purposes other than programming (such as the generic pin controls, serial UART, and logic analyzer modes provided by the Windows software).
Recirculation infusion mash system library for Arduino
This library implement RIMS controls for home brewers. For definition of a RIMS, see https://tinyurl.com/j3lyuyc For me, an Arduino micro controller + a LCD Keypad shield was cheaper and a lot more customizable than a commercial PID controller. So, with this library, a commercial PID controller is unnecessary. Automatic PID tuning toolkit is also included. Temperature can be read with a thermistor, a resistance temperature detector (RTD) or any custom temperature probe. Heater is controlled with pulse-width modulation (PWM) of a solid-state relay (SSR).
Various snippets of programs
This project has demonstration purposes and contains various programming fragments. Perhaps this will be useful to someone.
Simple Home Automation solution with DIoTY Cloud MQTT broker
A Client (Arduino+Ethernet shield) module can control lights or whatever through connected relays and return temperature and humidity values. Configuration of the module is done through Serial console interface by sending JSON strings. Configuration is stored in Arduino AVR's EEPROM. Based on MQTT, an M2M/IoT connectivity protocol standardised by OASIS MQTT TC. Cloud MQTT broker and Android Application provided by DIoTY service (http://dioty.co/) Icon made by Freepik from www.flaticon.co
Smart Home Irrigation System
The project contains the following modules: * Main Controller Module which is responsible for scheduling and switching the water pumps, monitoring the water level and temperature, and reading the Soil Moisture Sensors. The module has a 4 line alphanumeric LCD that makes the system easy to use. * Sensor Controller Module is attached to the Main Controller Module via RS232 interface. This module is the master controller for the Soil Moisture Sensors and also contains a Dallas 1-Wire interface for temperature sensors. * Soil Moisure Sensors are responsible for sensing if the soil of irrigated flowers are wet or not. These sensors are attached to the Sensor Controller Module via slow speed I2C bus. The modules use 2-pin probes and drives them with 4 kHz square wave in order to avoid oxidating the probes. In my implementation I used these small water pumps from Conrad: http://www.conrad.hu/conrad.php?name=Products&pid=539090 The whole system is powered by a 12V / 4A SMPS.
ext2/3/4 library for microcontrollers
Code is also available on github: https://github.com/gkostka/lwext4 Feel free to contact me: firstname.lastname@example.org
MGSyn - Automatic Synthesis for Industrial Automation
MGSyn (Model, Game, Synthesis) is an open-source tool which integrates game-based synthesis into model-driven development for industrial control and automation. It is served for research and educational purposes. MGSyn has been originally developed by Department of Informatics (Unit 6), TU München and fortiss GmbH and is now maintained by fortiss GmbH. The software is released under the GNU General Public License Version 3.0 (GPLv3). Please download the tutorial for step-by-step instructions on installing and using the tool. It is advised to use 32-bit version (Eclipse) associated in the "MGSyn supplementary files", as the 64-bit version will by default demand huge memory, which may lead to Java exceptions.
A realtime-schedule generator for educational purposes
RT Schedule is a realtime-schedule generator to create and present simple and idealised RT schedules from task lists. The purpose is to compute the basic properties of a task set and create a schedule using the rate monotonic (RM), earliest deadline first (EDF) and least laxity first (LLF) algorithms. The program uses simple, idealised systems, since students must be able to schedule them manually. RT Schedule computes the data and generates clear graphs for lecture notes and exams.
Embedded by examples
Building of embedded systems from scratch including their cross-toolchain and using virtual and/or emulated machines as pratical examples.