back
esr_

~/esr_technology

~/technology

Not business as usual. Our in-house innovations range from large-scale industry platforms and independent research projects to tools that help to write good code.

~/esr_technology/platforms

~/technology/platforms

~/esr_technology/tools

~/technology/tools

~/esr_technology/index

~/technology/index

A
Z

Filter

  • AI

    +

    ×

    AI is a very broad area of CS that deals with creating intelligent machines that are capable of reaching decisions that were not explicitly programmed and usually require human interaction. A typical AI analyzes its environment and takes actions that maximize its chance of success.

  • Android

    +

    ×

    Android is an operating system based on a modified version of the Linux kernel and other open source software. While initially designed for touchscreen mobile devices such as smartphones and tablets, it is a suitable OS for many embedded systems. Android is developed by a consortium of developers known as the Open Handset Alliance, with the main contributor and commercial marketer being Google.

  • Angular

    +

    ×

    Angular (commonly referred to as "Angular 2+" or "Angular v2 and above") is a TypeScript-based open-source web application framework led by the Angular Team at Google and by a community of individuals and corporations. Angular is a complete rewrite from the same team that built AngularJS.

  • Anomaly detection

    +

    ×

    In data mining, anomaly detection (also outlier detection) is the identification of rare items, events, or observations that raise suspicions by differing significantly from the majority of the data.

  • Apollo Auto

    +

    ×

    Apollo is a platform for building autonomous driving systems. It defines a high performance, flexible architecture which accelerates the development, testing, and deployment of Autonomous Vehicles

  • ARP

    +

    ×

    The Address Resolution Protocol (ARP) is a communication protocol used for discovering the link layer address, such as a MAC address, associated with a given internet layer address, typically an IPv4 address. This mapping is a critical function in the Internet protocol suite. ARP was defined in 1982 by RFC 826, which is Internet Standard STD 37. ARP has been implemented with many combinations of network and data link layer technologies, such as IPv4, Chaosnet, DECnet and Xerox PARC Universal Packet (PUP) using IEEE 802 standards, FDDI, X.25, Frame Relay and Asynchronous Transfer Mode (ATM). IPv4 over IEEE 802.3 and IEEE 802.11 is the most common usage.

  • ASIL

    +

    ×

    Automotive Safety Integrity Level (ASIL) is a risk classification scheme defined by the ISO 26262 - Functional Safety for Road Vehicles standard. This is an adaptation of the Safety Integrity Level used in IEC 61508 for the automotive industry. This classification helps defining the safety requirements necessary to be in line with the ISO 26262 standard. The ASIL is established by performing a risk analysis of a potential hazard by looking at the Severity, Exposure and Controllability of the vehicle operating scenario. The safety goal for that hazard in turn carries the ASIL requirements. There are four ASILs identified by the standard: ASIL A, ASIL B, ASIL C, ASIL D. ASIL D dictates the highest integrity requirements on the product and ASIL A the lowest. Hazards that are identified as QM do not dictate any safety requirements.

  • Assembly

    +

    ×

    In computer programming, assembly language (or assembler language), often abbreviated asm, is any low-level programming language in which there is a very strong correspondence between the instructions in the language and the architecture's machine code instructions. Because assembly depends on the machine code instructions, every assembler has its own assembly language which is designed for exactly one specific computer architecture. Assembly language may also be called symbolic machine code. Assembly code is converted into executable machine code by a utility program referred to as an assembler. The conversion process is referred to as assembly, as in assembling the source code. Assembly language usually has one statement per machine instruction (1:1), but comments and statements that are assembler directives, macros, and symbolic labels of program and memory locations are often also supported.

  • AssemblyScript

    +

    ×

    AssemblyScript compiles a strict subset of TypeScript (a typed superset of JavaScript) to WebAssembly using Binaryen. Its architecture differs from a JavaScript VM in that it compiles a program ahead of time, quite similar to other static compilers. On top of WebAssembly types, it provides both low-level built-ins to access WebAssembly features directly as well as a JavaScript-like standard library on top of a relatively small managed runtime enabling the creation of programs that look and feel much like TypeScript.

  • AutosarOS

    +

    ×

    An practical operating system that is often used in the automotive industry for embedded real-time systems.It has a small footprint and can be configured statically with deterministic ressource needs.

  • AVR

    +

    ×

    AVR is a family of microcontrollers developed since 1996 by Atmel, acquired by Microchip Technology in 2016. These are modified Harvard architecture 8-bit RISC single-chip microcontrollers. AVR was one of the first microcontroller families to use on-chip flash memory for program storage, as opposed to one-time programmable ROM, EPROM, or EEPROM used by other microcontrollers at the time. AVR microcontrollers find many applications as embedded systems. They are especially common in hobbyist and educational embedded applications, popularized by their inclusion in many of the Arduino line of open hardware development boards.

  • AWS

    +

    ×

    Amazon Web Services (AWS) is a subsidiary of Amazon that provides on-demand cloud computing platforms and APIs to individuals, companies, and governments, on a metered pay-as-you-go basis. In aggregate, these cloud computing web services provide a set of primitive abstract technical infrastructure and distributed computing building blocks and tools. One of these services is Amazon Elastic Compute Cloud, which allows users to have at their disposal a virtual cluster of computers, available all the time, through the Internet. AWS's version of virtual computers emulate most of the attributes of a real computer, including hardware central processing units (CPUs) and graphics processing units (GPUs) for processing; local/RAM memory; hard-disk/SSD storage; a choice of operating systems; networking; and pre-loaded application software such as web servers, databases, and customer relationship management (CRM).

  • Azure

    +

    ×

    Microsoft Azure (formerly Windows Azure /ˈæʒər/) is a cloud computing service created by Microsoft for building, testing, deploying, and managing applications and services through Microsoft-managed data centers. It provides software as a service (SaaS), platform as a service (PaaS) and infrastructure as a service (IaaS) and supports many different programming languages, tools and frameworks, including both Microsoft-specific and third-party software and systems.

  • BLE

    +

    ×

    Bluetooth Low Energy (Bluetooth LE, colloquially BLE, formerly marketed as Bluetooth Smart) is a wireless personal area network technology designed and marketed by the Bluetooth Special Interest Group (Bluetooth SIG) aimed at novel applications in the healthcare, fitness, beacons, security, and home entertainment industries. Compared to Classic Bluetooth, Bluetooth Low Energy is intended to provide considerably reduced power consumption and cost while maintaining a similar communication range. Mobile operating systems including iOS, Android, Windows Phone and BlackBerry, as well as macOS, Linux, Windows 8 and Windows 10, natively support Bluetooth Low Energy.

  • C

    +

    ×

    C as a language is still the lowest common denominator for building somewhat portable software for embedded systems. Compiler support is ample and performance can be outstanding. At the same time, maintainability of medium to large size projects can easily become a nightmare since C lacks a rigid type system.

  • C++

    +

    ×

    C++ combines the performance (and for the most part the portability) of C with much more expressive language semantics. The typesystem is a lot more sophisticated which allows for language support for composing bigger systems. At the same time, the complexity of the language is far greater which poses its own set of challenges.

  • Caffe

    +

    ×

    CAFFE (Convolutional Architecture for Fast Feature Embedding) is a deep learning framework. It is open-source, under a BSD license. It is written in C++, with a Python interface. Caffe is designed for many different types of deep learning architectures that are geared towards image classification and image segmentation. It supports CNN, RCNN, LSTM, and fully connected neural network designs.

  • CAN

    +

    ×

    A Controller Area Network (CAN bus) is a robust vehicle bus standard designed to allow microcontrollers and devices to communicate with each others' applications without a host computer. It is a message-based protocol, designed originally for multiplex electrical wiring within automobiles to save on copper, but can also be used in many other contexts. For each device the data in a frame is transmitted sequentially but in such a way that if more than one device transmits at the same time the highest priority device is able to continue while the others back off. Frames are received by all devices, including by the transmitting device.

  • Clang

    +

    ×

    A compiler front end for the C, C++, Objective-C and Objective-C++ programming languages. It uses the LLVM compiler infrastructure as its backend and hereby gains support for a lot of embedded targets. The quality of the compiled code is mostly impressive.

  • Cortex-A

    +

    ×

    The ARM Cortex-A is a group of 32-bit and 64-bit RISC ARM processor cores licensed by Arm Holdings. The cores are intended for application use. The group consists of 32-bit cores: ARM Cortex-A5, ARM Cortex-A7, ARM Cortex-A8, ARM Cortex-A9, ARM Cortex-A12, ARM Cortex-A15, ARM Cortex-A17 MPCore, and ARM Cortex-A32, and 64-bit cores: ARM Cortex-A35, ARM Cortex-A53, ARM Cortex-A55, ARM Cortex-A57, ARM Cortex-A72, ARM Cortex-A73, ARM Cortex-A75, ARM Cortex-A76 and ARM Cortex-A77. The 32-bit ARM Cortex-A cores, except for the Cortex-A32, implement the ARMv7-A profile of the ARMv7 architecture. The main distinguishing feature of the ARMv7-A profile, compared to the other two profiles, the ARMv7-R profile implemented by the ARM Cortex-R cores and the ARMv7-M profile implemented by most of the ARM Cortex-M cores, is that only the ARMv7-A profile includes a memory management unit (MMU). Many modern operating systems require a MMU to run.

  • Cortex-M

    +

    ×

    The ARM Cortex-M is a group of 32-bit RISC ARM processor cores licensed by Arm Holdings. They are intended for microcontroller use, and have been shipped in tens of billions of devices. The cores consist of the Cortex-M0, Cortex-M0+, Cortex-M1, Cortex-M3, Cortex-M4, Cortex-M7, Cortex-M23, Cortex-M33, Cortex-M35P. The Cortex-M4 / M7 / M33 / M35P cores have an FPU silicon option, and when included in the silicon these cores are known as "Cortex-Mx with FPU" or "Cortex-MxF", where 'x' is the core number.

  • CUDA

    +

    ×

    CUDA (Compute Unified Device Architecture) is a parallel computing platform and application programming interface (API) model created by Nvidia. It allows software developers to use the capabilities of modern GPUs for general purpose computations. The CUDA platform is a software layer that gives direct access to the GPU's virtual instruction set and parallel computational elements. It is accessible to software developers through CUDA-accelerated libraries, compiler directives such as OpenACC, and extensions to industry-standard programming languages including C and C++. C/C++ programmers can use 'CUDA C/C++', compiled with nvcc, Nvidia's LLVM-based C/C++ compiler.

  • Data Mining

    +

    ×

    Data mining is the process of discovering patterns in large data sets involving methods at the intersection of machine learning, statistics, and database systems. Data mining is an interdisciplinary subfield of computer science and statistics with an overall goal to extract information from a data set and transform the information into an understandable structure for further use. Aside from the raw analysis aspect, it also involves database and data management aspects, data pre-processing, model and inference considerations, interestingness metrics, complexity considerations, post-processing of discovered structures, visualization, and online updating.th

  • Deep Learning

    +

    ×

    Deep learning is part of a broader family of machine learning methods based on artificial neural networks. Deep learning architectures such as deep neural networks, recurrent neural networks, and convolutional neural networks have a multitude of applications: computer vision, speech recognition, natural language processing, audio recognition, etc.

  • DHCP

    +

    ×

    The Dynamic Host Configuration Protocol (DHCP) is a network management protocol used on Internet Protocol networks whereby a DHCP server dynamically assigns an IP address and other network configuration parameters to each device on a network so they can communicate with other IP networks. A DHCP server enables computers to request IP addresses and networking parameters automatically from the Internet service provider (ISP), reducing the need for a network administrator or a user to manually assign IP addresses to all network devices. In the absence of a DHCP server, a computer or other device on the network needs to be manually assigned an IP address, or to assign itself an APIPA address, which will not enable it to communicate outside its local subnet.

  • Diab

    +

    ×

    Windriver's Diab compiler is a C/C++ compiler that supports many embedded targets like PowerPC. It can produce very inefficient code and is very slow to support newer C++ standards. If possible we try to avoid it but it is still the defacto standard in the automotive industry for PowerPC architectures.

  • DLT

    +

    ×

    Diagnostic Log and Trace. Dlt provides a generic Logging and Tracing functionality for SW-Cs and the BSW modules RTE, Det and Dem.

  • Docker

    +

    ×

    Docker is containerization technology that enables the creation and use of Linux containers. This is realized by using OS-level virtualization to deliver software in packages called containers. Containers are isolated from one another and bundle their own software, libraries and configuration files; they can communicate with each other through well-defined channels. All containers are run by a single operating-system kernel and are thus more lightweight than virtual machines.

  • DoIP

    +

    ×

    Diagnostics over IP (DoIP). DoIP serves the first 4 layers of OSI Model, and on top of that, can either have UDS (ISO 14229), WWH-OBD (ISO 27145) or SAE J1939-73 to name a few of them. UDS and WWH-OBD (ISO 27145) is located on OSI layer 7, the application layer. SAE J1939-73 is on OSI layer 6, the presentation layer. Diagnostics over Internet Protocol runs over the TCP / IP protocol stack. TCP / UDP on OSI layer 4 is used as the transport protocol. IP serves as a switching protocol on OSI layer 3. Ethernet is the protocol that is used on the data link layer on OSI layer 2. The physical medium is a 100BASE-TX twisted-pair copper cable on OSI layer 1.

  • DSP

    +

    ×

    Digital signal processing (DSP) is the use of digital processing, such as by computers or more specialized digital signal processors, to perform a wide variety of signal processing operations. The digital signals processed in this manner are a sequence of numbers that represent samples of a continuous variable in a domain such as time, space, or frequency. In digital electronics, a digital signal is represented as a pulse train, which is typically generated by a MOSFET (metal–oxide–semiconductor field-effect transistor) switch.

  • Elasticsearch

    +

    ×

    Elasticsearch is a search engine based on the Lucene library. It provides a distributed, multitenant-capable full-text search engine with an HTTP web interface and schema-free JSON documents. Elasticsearch is developed in Java. Following an open-core business model, parts of the software are licensed under various open-source licenses (mostly the Apache License), while other parts fall under the proprietary (source-available) Elastic License. Official clients are available in Java, .NET (C#), PHP, Python, Apache Groovy, Ruby and many other languages. According to the DB-Engines ranking, Elasticsearch is the most popular enterprise search engine followed by Apache Solr, also based on Lucene.

  • Electron

    +

    ×

    Electron (formerly known as Atom Shell) is an open-source framework developed and maintained by GitHub. Electron allows for the development of desktop GUI applications using web technologies: It combines the Chromium rendering engine and the Node.js runtime. Electron is the main GUI framework behind several notable open-source projects including Atom, GitHub Desktop, Light Table, Visual Studio Code, and WordPress Desktop. Electron applications are composed of multiple processes. There is the "browser" process and several "renderer" processes. The browser process runs the application logic, and can then launch multiple renderer processes, rendering the windows that appear on a user's screen rendering HTML and CSS. Both the browser and renderer processes can run with Node.js integration if enabled. Most of Electron's APIs are written in C++ or Objective-C and then exposed directly to the application code through JS bindings.

  • Elliptic Curve Crypto

    +

    ×

    Elliptic-curve cryptography (ECC) is an approach to public-key cryptography based on the algebraic structure of elliptic curves over finite fields. ECC requires smaller keys compared to non-EC cryptography to provide equivalent security. Elliptic curves are applicable for key agreement, digital signatures, pseudo-random generators and other tasks.

  • Embedded Linux

    +

    ×

    Operating systems based on the Linux kernel are used in embedded systems such as consumer electronics (i.e. set-top boxes, smart TVs, personal video recorders (PVRs), in-vehicle infotainment (IVI), networking equipment (such as routers, switches, wireless access points (WAPs) or wireless routers), machine control, industrial automation, navigation equipment, spacecraft flight software, and medical instruments in general). Thanks to their versatility, operating systems based on the Linux kernel can be also found in mobile devices that are actually touchscreen-based embedded devices, such as smartphones and tablets, together with personal digital assistants (PDAs) and portable media players that also include a touchscreen. This is a challenge for most learners because their computer experience is mainly based on GUI (Graphical user interface) based interaction with the machine and high-level programming on the one hand and low-level programming of small microcontrollers on the other hand while the concept of command line interfaces is widely unknown.

  • Embedded Webserver

    +

    ×

    Embedded devices often come with stringent resource restrictions. In those scenarious we employ an embedded webserver that is completely static and does not require any runtime memory allocations on the heap.

  • Ethernet

    +

    ×

    Ethernet /ˈiːθərnɛt/ is a family of computer networking technologies commonly used in local area networks (LAN), metropolitan area networks (MAN) and wide area networks (WAN). It was commercially introduced in 1980 and first standardized in 1983 as IEEE 802.3. Ethernet has since retained a good deal of backward compatibility and has been refined to support higher bit rates, a greater number of nodes, and longer link distances. Over time, Ethernet has largely replaced competing wired LAN technologies such as Token Ring, FDDI and ARCNET.

  • Fibex

    +

    ×

    The ASAM MCD-2 NET standard (called FIBEX for Field Bus Exchange Format) is an XML-based standardized format used for representing the networks used in automobiles. It is being used by the automotive industry for its ease of data exchange. It has extensibility required by the various network protocols (like FlexRay, MOST, CAN, TTCAN, LIN, and Ethernet).

  • Franca IDL

    +

    ×

    Franca Interface Definition Language (Franca IDL) is a formally defined, text-based interface description language. It is part of the Franca framework, which is a framework for definition and transformation of software interfaces. Franca applies model transformation techniques to interoperate with various interface description languages (e.g., D-Bus Introspection language, Apache Thrift IDL, Fibex Services). Franca is a powerful framework for definition and transformation of software interfaces. It is used for integrating software components from different suppliers, which are built based on various runtime frameworks, platforms and IPC mechanisms. The core of it is Franca IDL(Interface Definition Language), which is a textual language for specification of APIs.

  • FreeRTOS

    +

    ×

    FreeRTOS is a real-time operating system kernel for embedded devices that has been ported to 35 microcontroller platforms. It is distributed under the MIT License. FreeRTOS is designed to be small and simple. The kernel itself consists of only three C files. To make the code readable, easy to port, and maintainable, it is written mostly in C, but there are a few assembly functions included where needed (mostly in architecture-specific scheduler routines).

  • Fuchsia

    +

    ×

    Fuchsia is an open source capability-based operating system currently being developed by Google. It first became known to the public when the project appeared on a self hosted form of git in August 2016 without any official announcement. The source documentation describes the reasoning behind the name as "Pink + Purple == Fuchsia (a new Operating System)", which is a reference to Pink (Apple's first effort at an object-oriented, microkernel based operating system), and Purple (the original iPhone's codename). In contrast to prior Google-developed operating systems such as Chrome OS and Android, which are based on the Linux kernel, Fuchsia is based on a new microkernel called Zircon, named after the mineral.

  • FUSI

    +

    ×

  • g++

    +

    ×

    A C++ compiler based on the gcc compiler suite. It offers support for C++ 14 and already a lot of the C++ 17 features. Thanks to the wide variety of systems gcc will compile to, it supports compiling C++ code for all those targets (including many embedded systems)

  • Go

    +

    ×

    Go, also known as Golang, is a statically typed, compiled programming language designed at Google by Robert Griesemer, Rob Pike, and Ken Thompson. Go is syntactically similar to C, but with memory safety, garbage collection, structural typing, and CSP-style concurrency.

  • HDL

    +

    ×

    In computer engineering, a hardware description language (HDL) is a specialized computer language used to describe the structure and behavior of electronic circuits, and most commonly, digital logic circuits. A hardware description language enables a precise, formal description of an electronic circuit that allows for the automated analysis and simulation of an electronic circuit. It also allows for the synthesis of a HDL description into a netlist (a specification of physical electronic components and how they are connected together), which can then be placed and routed to produce the set of masks used to create an integrated circuit. A hardware description language looks much like a programming language such as C; it is a textual description consisting of expressions, statements and control structures. One important difference between most programming languages and HDLs is that HDLs explicitly include the notion of time.

  • HiveMQ

    +

    ×

    HiveMQ is a MQTT broker and a client based messaging platform designed for the fast, efficient and reliable movement of data to and from connected IoT devices. It uses the MQTT protocol for instant, bi-directional push of data between your device and your enterprise systems.

  • HTTP

    +

    ×

    HTTP is increasingly also used on embedded systems. It is a client-server protocol that allows the fetching of resources, such as HTML documents. Used in a REST architecture we employ it to build APIs to reference remote data and work with it through http requests (GET, PUT, POST, DELETE).

  • I2C

    +

    ×

    I2C is a serial protocol for two-wire interface to connect low-speed peripherals in embedded systems. Such devices can be microcontrollers, EEPROMs and I/O interfaces. I2C means Inter-Integrated Circuit) and is a synchronous, multi-master, multi-slave, packet switched, single-ended, serial computer bus.

  • Infrastructure as Code

    +

    ×

    Infrastructure as Code (IaC) is a method to provision and manage IT infrastructure through the use of scripts and configuration files, rather than through standard operating procedures and manual processes.

  • IPSec

    +

    ×

    In computing, Internet Protocol Security (IPsec) is a secure network protocol suite that authenticates and encrypts the packets of data to provide secure encrypted communication between two computers over an Internet Protocol network. It is used in virtual private networks (VPNs). IPsec includes protocols for establishing mutual authentication between agents at the beginning of a session and negotiation of cryptographic keys to use during the session. IPsec can protect data flows between a pair of hosts (host-to-host), between a pair of security gateways (network-to-network), or between a security gateway and a host (network-to-host). IPsec uses cryptographic security services to protect communications over Internet Protocol (IP) networks. It supports network-level peer authentication, data-origin authentication, data integrity, data confidentiality (encryption), and replay protection.

  • Java

    +

    ×

    A workhorse language for which it is relatively easy to find good developers. Memory safe bye default since it is garbage collected. Very portable, Java is compiled to bytecode that in turn is run on a virtual machine, the portability of applications goes hand in hand with the availability of JVMs on a target architecture. Performance is mostly good with the caveat of unpredictible jitter due to garbage collection.

  • Keras

    +

    ×

    Keras is an open-source neural network library written in Python. It is capable of running on top of TensorFlow, Microsoft Cognitive Toolkit, R, Theano, or PlaidML. Designed to enable fast experimentation with deep neural networks, it focuses on being user-friendly, modular, and extensible. Keras contains numerous implementations of commonly used neural-network building blocks such as layers, objectives, activation functions, optimizers, and a host of tools to make working with image and text data easier to simplify the coding necessary for writing deep neural network code.

  • Kibana

    +

    ×

    Kibana is an open source data visualization dashboard for Elasticsearch. It provides visualization capabilities on top of the content indexed on an Elasticsearch cluster. Users can create bar, line and scatter plots, or pie charts and maps on top of large volumes of data.Kibana also provides a presentation tool, referred to as Canvas, that allows users to create slide decks that pull live data directly from Elasticsearch. The combination of Elasticsearch, Logstash, and Kibana, referred to as the "Elastic Stack" (formerly the "ELK stack"), is available as a product or service. Logstash provides an input stream to Elasticsearch for storage and search, and Kibana accesses the data for visualizations such as dashboards. Elastic also provides "Beats" packages which can be configured to provide pre-made Kibana visualizations and dashboards about various database and application technologies.

  • Kotlin

    +

    ×

    Kotlin is a cross-platform, statically typed, general-purpose programming language with type inference. Kotlin is designed to interoperate fully with Java, and the JVM version of its standard library depends on the Java Class Library, but type inference allows its syntax to be more concise. Kotlin mainly targets the JVM, but also compiles to JavaScript or native code (via LLVM). Language development costs are borne by JetBrains, while the Kotlin Foundation protects the Kotlin trademark.

  • Kubernetes

    +

    ×

    Kubernetes is a portable, extensible, open-source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It provides users with service discovery, load balancing, storage orchastration among other things. It has a large, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available.

  • Lauterbach

    +

    ×

    The lauterbach debugger is a powerful in-circuit emulator that is often used to debug software that is running on an embedded platform. The Trace32 is the most complete JTAG debug solution that support almost all arhitectures.

  • LIN

    +

    ×

    LIN (Local Interconnect Network) is a serial network protocol used for communication between components in vehicles. The need for a cheap serial network arose as the technologies and the facilities implemented in the car grew, while the CAN bus was too expensive to implement for every component in the car. European car manufacturers started using different serial communication technologies, which led to compatibility problems. In the late 1990s, the LIN Consortium was founded by five automakers (BMW, Volkswagen Group, Audi, Volvo Cars, Mercedes-Benz), with the technologies supplied (networking and hardware expertise) from Volcano Automotive Group and Motorola. The first fully implemented version of the new LIN specification (LIN version 1.3) was published in November 2002. In September 2003, version 2.0 was introduced to expand capabilities and make provisions for additional diagnostics features. LIN may be used also over the vehicle's battery power-line with a special LIN over DC power line (DC-LIN) transceiver SIG100.

  • LLVM

    +

    ×

    The LLVM compiler infrastructure project is a set of compiler and toolchain technologies, which can be used to develop a front end for any programming language and a back end for any instruction set architecture. LLVM is designed around a language-independent intermediate representation that serves as a portable, high-level assembly language that can be optimized with a variety of transformations over multiple passes.

  • LWIP

    +

    ×

    lwIP (lightweight IP) is a widely used open-source TCP/IP stack designed for embedded systems. lwIP was originally developed by Adam Dunkels at the Swedish Institute of Computer Science and is now developed and maintained by a worldwide network of developers. lwIP is used by many manufacturers of embedded systems. Examples include Altera (in the Nios II operating system), Analog Devices (for the Blackfin DSP chip), Xilinx, Honeywell (for some of their FAA certified avionics systems) and Freescale Semiconductor (Ethernet Streaming SW for Automotive microcontrollers).

  • Machine Learning

    +

    ×

    Machine learning is a discipline of artificial intelligence and describes the scientific study of algorithms and statistical models that computer systems use to perform a specific task without using explicit instructions. Instead, those systems rely on patterns and inference. Machine learning algorithms operate by building a mathematical model based on sample data, known as "training data," to make predictions or decisions without being explicitly programmed to perform the task. Machine learning algorithms are used in a wide variety of applications, such as email filtering and computer vision, where it is difficult or infeasible to develop a conventional algorithm for effectively performing the task.

  • MbedTLS

    +

    ×

    Mbed TLS (previously PolarSSL) is an implementation of the TLS and SSL protocols and the respective cryptographic algorithms and support code required. It is dual-licensed with the Apache License version 2.0 (with GPLv2 also available). Stated on the website is that Mbed TLS aims to be "easy to understand, use, integrate and expand". The core SSL library is written in the C programming language and implements the SSL module, the basic cryptographic functions and provides various utility functions. Unlike OpenSSL and other implementations of TLS, Mbed TLS is like wolfSSL in that it is designed to fit on small embedded devices, with the minimum complete TLS stack requiring under 60KB of program space and under 64KB of RAM. It is also highly modular: each component, such as a cryptographic function, can be used independently from the rest of the framework. Versions are also available for Microsoft Windows and Linux. Because Mbed TLS is written in the C programming language, without external dependencies, it works on most operating systems and architectures without any trouble.

  • MessagePack

    +

    ×

    MessagePack is a computer data interchange format. It is a binary form for representing simple data structures like arrays and associative arrays. MessagePack aims to be as compact and simple as possible. The official implementation is available in a variety of languages such as C, C++, C#, D, Erlang, Go, Haskell, Java, JavaScript, Lua, OCaml, Perl, PHP, Python, Ruby, Scala, Smalltalk, and Swift.

  • Mindroid

    +

    ×

    Mindroid is based on a highly-customized, optimized, and security-hardened Linux Kernel. To increase security, Mindroid applies a separation between executables and data. This means that the root file system is mounted read-only. The Linux user space is based on non GPL/LGPL licensed libraries to allow for easier and less tedious commercialization of systems built with Mindroid.

  • Mosquitto

    +

    ×

    Mosquitto is a lightweight open source implementation of a broker that supports the MQTT protocol.

  • MQTT

    +

    ×

    MQTT is a machine-to-machine connectivity protocol. It employes a lightweight, publish-subscribe network protocol that transports messages between devices. The protocol usually runs over TCP/IP; however, any network protocol that provides ordered, lossless, bi-directional connections can support MQTT. Extremely well suited for embedded devices since clients can be implemented very efficiently.

  • MSP430

    +

    ×

    The MSP430 is a mixed-signal microcontroller family from Texas Instruments. Built around a 16-bit CPU, the MSP430 is designed for low cost and, specifically, low power consumption embedded applications.

  • Neural Networks

    +

    ×

    A neural network is a network or circuit of neurons. Thus, artificial neural networks are composed of artificial neurons or nodes. The connections of the biological neuron are modeled as weights. These artificial networks may be used for predictive modeling, adaptive control, and applications where they can be trained via a dataset. Self-learning resulting from experience can occur within networks, which can derive conclusions from a complex and seemingly unrelated set of information.

  • NodeJS

    +

    ×

    Node.js is an open-source, cross-platform, JavaScript runtime environment that executes JavaScript code outside of a browser. Node.js lets developers use JavaScript to write command line tools and for server-side scripting—running scripts server-side to produce dynamic web page content before the page is sent to the user's web browser. Consequently, Node.js represents a "JavaScript everywhere" paradigm, unifying web-application development around a single programming language, rather than different languages for server- and client-side scripts.

  • NumPy

    +

    ×

    NumPy is a library for the Python programming language, adding support for large, multi-dimensional arrays and matrices, along with a large collection of high-level mathematical functions to operate on these arrays. The ancestor of NumPy, Numeric, was originally created by Jim Hugunin with contributions from several other developers. In 2005, Travis Oliphant created NumPy by incorporating features of the competing Numarray into Numeric, with extensive modifications. NumPy is open-source software and has many contributors.

  • Open3D

    +

    ×

    Open3D is an open-source library that supports the rapid development of software that deals with 3D data. The Open3D frontend exposes a set of carefully selected data structures and algorithms in both C++ and Python. The backend is highly optimized and is set up for parallelization. Open3D was developed from a clean slate with a small and carefully considered set of dependencies. It can be set up on different platforms and compiled from source with minimal effort. The code is clean, consistently styled, and maintained via a precise code review mechanism.

  • OpenCV

    +

    ×

    OpenCV (Open source computer vision) is a library of programming functions mainly aimed at real-time computer vision and machine learning software. It serves as a common infrastructure for computer vision applications and helps to accelerate the use of machine perception in commercial products. The library provides a comprehensive set of both classic and state-of-the-art computer vision and machine learning algorithms. In total, the number adds up to more than 2500 optimized algorithms.

  • OpenGL

    +

    ×

    Open Graphics Library (OpenGL) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardware-accelerated rendering. Although it is possible for the API to be implemented entirely in software, it is designed to be implemented mostly or entirely in hardware. In addition to being language-independent, OpenGL is also cross-platform. The specification says nothing on the subject of obtaining, and managing an OpenGL context, leaving this as a detail of the underlying windowing system. For the same reason, OpenGL is purely concerned with rendering, providing no APIs related to input, audio, or windowing.

  • OpenJDK

    +

    ×

    OpenJDK (Open Java Development Kit) is a free and open-source implementation of the Java Platform, Standard Edition (Java SE). It is the result of an effort Sun Microsystems began in 2006. The implementation is licensed under the GNU General Public License (GNU GPL) version 2 with a linking exception. Were it not for the GPL linking exception, components that linked to the Java class library would be subject to the terms of the GPL license. OpenJDK is the official reference implementation of Java SE since version 7.

  • OTA Update

    +

    ×

    Over-the-Air programming (OTA) refers to various methods of distributing new software, configuration settings, and even updating encryption keys to devices like mobile phones, set-top boxes or secure voice communication equipment (encrypted 2-way radios). One important feature of OTA is that one central location can send an update to all the users, who are unable to refuse, defeat, or alter that update, and that the update applies immediately to everyone on the channel. A user could "refuse" OTA but the "channel manager" could also "kick them off" the channel automatically. In the context of the mobile content world these include over-the-air service provisioning (OTASP), over-the-air provisioning (OTAP) or over-the-air parameter administration (OTAPA), or provisioning handsets with the necessary settings with which to access services such as WAP or MMS.

  • PPC

    +

    ×

    Pay-per-click (PPC), also known as cost per click (CPC), is an internet advertising model used to drive traffic to websites, in which an advertiser pays a publisher (typically a search engine, website owner, or a network of websites) when the ad is clicked. Pay-per-click is commonly associated with first-tier search engines (such as Google Ads and Bing Ads). With search engines, advertisers typically bid on keyword phrases relevant to their target market. In contrast, content sites commonly charge a fixed price per click rather than use a bidding system. PPC "display" advertisements, also known as "banner" ads, are shown on web sites with related content that have agreed to show ads and are typically not pay-per-click advertising. Social networks such as Facebook, Linkedin, Pinterest and Twitter have also adopted pay-per-click as one of their advertising models.

  • Protocol Buffers

    +

    ×

    Protocol buffers are a platform-neutral, extensible mechanism for serializing structured data. They are developed and heavily used by google and thus the code quality, developer experience and performance is outstanding.

  • PTP

    +

    ×

    The Precision Time Protocol (PTP) is a protocol used to synchronize clocks throughout a computer network. On a local area network, it achieves clock accuracy in the sub-microsecond range, making it suitable for measurement and control systems. PTP is currently employed to synchronize financial transactions, mobile phone tower transmissions, subsea acoustic arrays, and networks that require precise timing but lack access to satellite navigation signals. PTP was originally defined in the IEEE 1588-2002 standard, officially entitled "Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems" and published in 2002. In 2008, IEEE 1588-2008 was released as a revised standard; also known as PTP Version 2, it improves accuracy, precision and robustness but is not backward compatible with the original 2002 version.

  • Python

    +

    ×

    Another popular interpreted general purpose and scripting language. Used a lot in the AI domain since a lot of relevant technologies here are available through python interfaces. Performance can be quite good since most libraries we use rely on native code extensions.

  • PyTorch

    +

    ×

    PyTorch is an open source machine learning framework that accelerates the path from research prototyping to production deployment. It supports 2 high level features: Tensor computation (like NumPy) with strong GPU acceleration and deep neural networks built on a tape-based autograd system

  • QNX

    +

    ×

    QNX is a commercial Unix-like real-time operating system, aimed primarily at the embedded systems market. As a microkernel-based OS, QNX is based on the idea of running most of the operating system kernel in the form of a number of small tasks, known as Resource Managers. This differs from the more traditional monolithic kernel, in which the operating system kernel is a single very large program composed of a huge number of "parts" with special abilities. The use of a microkernel allows developers to turn off any functionality they do not require without having to change the OS itself; instead, those services will simply not run.

  • React

    +

    ×

    React is a JavaScript library for building user interfaces. It enables us to build performant and scalable web applications. React can be used as a base in the development of single-page or mobile applications.

  • RS-232

    +

    ×

    In telecommunications, RS-232, Recommended Standard 232 is a standard originally introduced in 1960 for serial communication transmission of data. It formally defines signals connecting between a DTE (data terminal equipment) such as a computer terminal, and a DCE (data circuit-terminating equipment or data communication equipment), such as a modem. The standard defines the electrical characteristics and timing of signals, the meaning of signals, and the physical size and pinout of connectors. The current version of the standard is TIA-232-F Interface Between Data Terminal Equipment and Data Circuit-Terminating Equipment Employing Serial Binary Data Interchange, issued in 1997. The RS-232 standard had been commonly used in computer serial ports and is still widely used in industrial communication devices.

  • Ruby

    +

    ×

    Our default scripting language choice. It's so beautifully simple to implement simple scripting logic that it makes development very fast. Every answer you might have can be found on StackOverflow. Performance is of course in another league but that hardly matters since most production systems only run compiled code anyway.

  • Rust

    +

    ×

    Rust is a multi-paradigm system programming language focused on safety, especially safe concurrency. Rust is syntactically similar to C++, but is designed to provide better memory safety while maintaining high performance. We use Rust in a growing number of projects with an emphasis on safety and performance.

  • SciPy

    +

    ×

    SciPy is a free and open-source Python library used for scientific computing and technical computing. SciPy contains modules for optimization, linear algebra, integration, interpolation, special functions, FFT, signal and image processing, ODE solvers and other tasks common in science and engineering. SciPy builds on the NumPy array object and is part of the NumPy stack which includes tools like Matplotlib, pandas and SymPy, and an expanding set of scientific computing libraries. This NumPy stack has similar users to other applications such as MATLAB, GNU Octave, and Scilab. The NumPy stack is also sometimes referred to as the SciPy stack.

  • SLAM

    +

    ×

    In navigation, robotic mapping, and odometry for virtual reality or augmented reality, simultaneous localization and mapping (SLAM) is the computational problem of constructing or updating a map of an unknown environment while simultaneously keeping track of an agent's location within it. Popular approximate solution methods include the particle filter, extended Kalman filter, Covariance intersection, and GraphSLAM. Popular applications of SLAM can be found in self-driving cars, unmanned aerial vehicles, autonomous underwater vehicles, planetary rovers, and newer domestic robots.

  • SomeIP

    +

    ×

    SOME/IP is an automotive middleware solution that can be used for control messages. It was designed from beginning on to fit devices of different sizes and different operating systems perfectly. This includes small devices like cameras, AUTOSAR devices, and up to head units or telematics devices. It was also made sure that SOME/IP supports features of the Infotainment domain as well as that of other domains in the vehicle, allowing SOME/IP to be used for MOST replacement scenarios as well as more traditional CAN scenarios.

  • SPI

    +

    ×

    The Serial Peripheral Interface (SPI) is a synchronous serial communication interface specification used for short-distance communication, primarily in embedded systems. The interface was developed by Motorola in the mid-1980s and has become a de facto standard. Typical applications include Secure Digital cards and liquid crystal displays. SPI devices communicate in full duplex mode using a master-slave architecture (alternate terminology being main and secondary) with a single master. The master device originates the frame for reading and writing. Multiple slave-devices are supported through selection with individual slave select (SS), sometimes called chip select (CS), lines.

  • Swift

    +

    ×

    Swift is a general-purpose, multi-paradigm, compiled programming language developed by Apple Inc. for iOS, iPadOS, macOS, watchOS, tvOS, Linux, and z/OS. Swift is designed to work with Apple's Cocoa and Cocoa Touch frameworks and the large body of existing Objective-C code written for Apple products. It is built with the open source LLVM compiler framework and has been included in Xcode since version 6, released in 2014. On Apple platforms, it uses the Objective-C runtime library which allows C, Objective-C, C++ and Swift code to run within one program.

  • Tensorflow

    +

    ×

    TensorFlow is a free and open-source software library for dataflow and differentiable programming. In other words, TensorFlow simplifies the process of acquiring data, training models, serving predictions, and refining future results. TensorFlow was developed by the Google Brain team and is now an open-source library for numerical computation and large-scale machine learning. Its basic functionality bundles together many machine learning and deep learning models and algorithms and makes them useful by applying a common metaphor. While TensorFlow uses Python to provide an easy front-end API for building applications, the execution of those applications happens in highly performant C++.

  • TFTP

    +

    ×

    Trivial File Transfer Protocol (TFTP) is a very simple and stripped down protocol for file transfer. One of its primary uses is in the early stages of nodes booting from a local area network. TFTP has been used for this application because it is very simple to implement. TFTP was first standardized in 1981 and the current specification for the protocol can be found in RFC 1350.

  • TLS

    +

    ×

    Transport Layer Security (TLS), and its now-deprecated predecessor, Secure Sockets Layer (SSL), are cryptographic protocols designed to provide communications security over a computer network. Several versions of the protocols find widespread use in applications such as web browsing, email, instant messaging, and voice over IP (VoIP). Websites can use TLS to secure all communications between their servers and web browsers.

  • Typescript

    +

    ×

    TypeScript is an open-source programming language developed and maintained by Microsoft. It is a strict syntactical superset of JavaScript, and adds optional static typing to the language. TypeScript is designed for development of large applications and transpiles to JavaScript. As TypeScript is a superset of JavaScript, existing JavaScript programs are also valid TypeScript programs. TypeScript may be used to develop JavaScript applications for both client-side and server-side execution (as with Node.js or Deno). There are multiple options available for compilation. Either the default TypeScript Checker can be used, or the Babel compiler can be invoked to convert TypeScript to JavaScript.

  • UDP

    +

    ×

    In computer networking, the User Datagram Protocol (UDP) is one of the core members of the Internet protocol suite. The protocol was designed by David P. Reed in 1980 and formally defined in RFC 768. With UDP, computer applications can send messages, in this case referred to as datagrams, to other hosts on an Internet Protocol (IP) network. Prior communications are not required in order to set up communication channels or data paths.

  • WASM

    +

    ×

    WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable target for compilation of high-level languages like C/C++/Rust, enabling deployment on the web for client and server applications.

  • ZeroMQ

    +

    ×

    ZeroMQ is a high-performance asynchronous messaging library, aimed at use in distributed or concurrent applications. It gives you sockets that carry atomic messages across various transports like in-process, inter-process, TCP, and multicast. Can be used in a lot of relevant languages and makes it easy to compose systems.

We use cookies to enable website functionality, understand the performance of our site and serve relevant content to you. More information: Privacy Policy and Cookie Policy.