Many MCU/SoC-based embedded systems must communicate with programs running on a computer. These are devices for testing hardware, collecting data from sensors and executing desired outputs. Usually, the code running on the computer and the embedded firmware are written separately and communicate between each other. Debugging communication problems occur on two completely disparate platforms. A Chip Peripheral Forwarding(CPF) was born out of the desire to make working with custom electronics significantly simpler, faster, and cheaper. The CPF is an enabling technology that allows to map internal peripherals of various MCUs or SoCs to your PC as if these peripherals were a part of the computer. There is a straightforward tool that makes it easier to do it and to avoid writing additional code. REMCU Lib can be thought of as a bridge that links your computer with low-level MCU/SoC's peripherals such as GPIO, analog input, CAN Bus, PWM, LCD controller, etc without having to develop specific firmware, OS drivers and other additional software. You program gives access to all peripherals of a tethered chip using driver functions of SDK provided by MCU/SoC vendors or 3rd parties. You use the driver functions how you do it in firmware code. The REMCU Lib remotely executes them without the difficulties of writing a load of boilerplate code to serialize and transport your objects and invoke remote methods. Thereby a developer doesn't need to learn new tools but can just get right down to business. This approach provides a way to harness the work directly with chip's peripherals on our power PC while applying high-level languages(Python, Java, C# etc), frameworks/library(Qt, Boost etc.) and effective tools like Jupyter Notebook, Matlab, etc. The interactive Jupyter Notebook or Python makes it easier to research behaviour of a MCU device, providing you have the option of working with it interactively and watch its response in real-time. If before, each change of firmware logic means uploading fresh C code onto a MCU device and resetting the device. With REMCU Lib we're able to send new instructions without further uploads and resetting. Now we can dynamically reprogram our devices in real-time! These video demonstrates it:
For Windows OS:
For Unix-like/MacOS/Linux OS:
You can find the REMCU examples on GitHub: https://github.com/remotemcu/remcu_examples/
The REMCU gives you effortless interfacing to real peripherals and real hardware, a central element of any embedded project. It was designed to provide the absolute fastest and most flexible way to tackle your experiments, hobbies, and design projects, using code that you can always migrate to a real microcontroller. No time is wasted with test firmware development that takes time away from embedded engineers.