FreeRTOS is a market-leading Real-Time Operating System (RTOS) for microcontrollers and small microprocessors. It includes a kernel and a growing set of libraries suitable for use across all industry sectors. FreeRTOS is built with an emphasis on reliability and ease of use.
Open source tools for the optimization and automation of the FPGA design flow, from Verilog to bitstream generation. These tools enable innovation by making FPGAs more accessible to a broader community.
Renode is a development framework that accelerates IoT and embedded systems development by letting you simulate physical hardware systems - including both the CPU, peripherals, sensors, environment and wired or wireless medium between nodes.
MicroPython is a lean and efficient implementation of the Python 3 programming language that includes a small subset of the Python standard library and is optimized to run on microcontrollers and in constrained environments.
Downloading Firmware eFPGA Binaries using TinyFPGA
Building the Eclipse Development Environment and importing your first Project
Neutral governance and active community participation
Built with safety and security in mind
Cross architecture with growing developer tool support
Complete, fully integrated, highly
configurable, modular for flexibility, better than roll-your-own
Cooperative and Pre-emptive Threading
Memory and Resources are typically statically allocated
Integrated device driver interface
Bluetooth® Low Energy (BLE 5.0) with both controller and host, BLE Mesh
Native, Fully featured and optimized networking stack
Permissively licensed – Apache 2.0
Broad ecosystem support
Tiny, power-saving kernel
IoT Reference Implementations
MIT licensed, with options
SymbiFlow enables new innovation, as well as optimization and automation of FPGA development workflows, to help make FPGAs more accessible to a broad community of software developers who might otherwise be discouraged by the closed and vendor-specific workflows of today.
Fully Open Source
Pluggable / Interchangeable
Using emulation, start developing software before hardware is ready.
Catch bugs in corner cases before it’s too late.
Fully Open Source
Deterministic and binary-compatible with target hardware
developer-oriented features such as state saving and replaying, fine-grained hooks and events, comprehensive tracing, multi-core debug
The core nMigen project provides an open-source toolchain for developing hardware based on synchronous digital logic using the Python programming language. It aims to be easy to learn and use, reduce or eliminate common coding mistakes, and simplify the design of complex hardware with reusable components.
The nMigen toolchain consists of the nMigen language, the standard library, the simulator, and the build system, covering all steps of a typical FPGA development workflow. At the same time, it does not restrict the designer’s choice of tools: existing industry-standard (System) Verilog or VHDL code can be integrated into an nMigen design flow, or, conversely, nMigen code can be integrated into an existing Verilog-based design flow.
MicroPython is packed full of advanced features such as an interactive prompt, arbitrary precision integers, closures, list comprehension, generators, exception handling and more. Yet it is compact enough to fit and run within just 256k of code space and 16k of RAM.
MicroPython aims to be as compatible with normal Python as possible to allow you to transfer code with ease from the desktop to a microcontroller or embedded system.
MicroPython implements the entire Python 3.4 syntax (including exceptions, with, yield from, etc., and additionally async/await keywords from Python 3.5). The following core datatypes are provided: str (including basic Unicode support), bytes, bytearray, tuple, list, dict, set, frozenset, array.array, collections.namedtuple, classes and instances. The built in modules include sys, time, and struct, etc. Select ports have support for _thread module (multithreading). Note that only a subset of Python 3 functionality is implemented for the data types and modules.
MicroPython can execute scripts in textual source form or from precompiled bytecode, in both cases either from an on-device filesystem or “frozen” into the MicroPython executable.