Flipper Allows You Build Embbeded Applications with Any Programming Language
With the rise of Arduino, Raspberry Pi and others; embedded platform has been known to be programmed with a relatively few languages. Languages like C and C++ has been the tradition for embedded platforms, and others like Python and maybe Javascript are beginning to see some limelight with the advent of the Rasberry Pi SBC and increase the open hardware movement.
The quest to allow programming hardware with several programming languages has been one daring challenge some makers and designers have taken upon themselves. The likes of the Johnny-Five framework and Espruino have given programmers extra options by providing options for programming the Arduino with Javascript and this will not end here. Flipper is one of such platforms that offers much more, is an embedded development board that can be controlled from any programming language.
Flipper is a unique embedded development platform that enables makers to create their own applications using whatever language they want and interestingly open-source with a growing community. Flipper completely rethinks the traditional embedded programming model, you can either build with the flipper board or interact flipper with other awesome hardware.
Flipper can be thought of as a hardware that acts like a software library, so all you just have to do now is call the library in your existing language project. According to Flipper’s designer George Morgan,
“I wanted to create an embedded development platform that could be used from any language, on any platform, and from the tools familiar to the user of the platform.”
The Flipper: Carbon board is powered by an Atmel ATSAM4S16B Arm Cortex-M4 SoC, which featured 1MB of Flash Memory, 128KB of SRAM and it allows up to 8Mb of external Flash storage. Just like every other board, it provides support for up to 32 GPIO, I2C, SPI, USART, ADC and a 8-bit DAC. It comes with one ATMega32U2 that handles the code uploading from USB to the main MCU.
The board is not totally 5V tolerant, most of the pins are only 3.3v compatible and any 5V passed through those might likely damage the board.
Flipper development board is designed to interact with a host device like a PC, a powerful SBC (Single Board Computer), and others. This strategy allows most of the heavy work to be done on the host device and then passed off to the embedded system. The Flipper board can be controlled in three main ways:
- Programmed directly like the way we have seen on Arduino and the code runs directly on the hardware.
- Programmed indirectly from a Host device, where the code runs on a PC for example and the information are sent in real time to the board.
- Combining both options; in this case, some codes run directly on the board while others on the host.
The possibility of programming with several languages is possible due to the Flipper API. The MCUs on the board come pre-installed with a custom real-time operating system called Osmium that enables the device to talk to a variety of higher-level libraries written in a variety of programming languages. These libraries contain API that can control the device’s hardware peripherals. For example, if you’re writing an iOS or macOS app, you can simply drag and drop the .framework into your Xcode project and get started.
Flipper is still under development and already has bindings for the following languages:
- C/C++
- Objective-C/Swift
- Rust
- Python
- Java
- Javascript
- Haskel
Flipper is special because it lets anyone control devices in the real world from applications written in any programming language, on any platform, with absolutely zero headache. Developers simply drag and drop our software library into their applications and start hacking. Everything works right out of the box using tools the developer is already familiar with. There is no need to learn how to use a new IDE, no need to learn a new programming language, and no need to focus on what doesn’t matter.
The Flipper board is available for purchase on tinder at a price of $49.49. More information about the Flipper platform is available on their Github page and the team behind the flipper is also looking for more contributions.
So irrespective of what hardware you want to build, the chances of building it with any language of your choice is now possible with the Flipper platform.