ANN: Soletta Project

Gustavo Sverzut Barbieri

Hi all,

I'm very glad to announce our project is now published as open source!

You're the perfect audience for this project and we hope you get some
time to check it out and test it. We hope it will be useful for people
creating embedded products, not only Linux products but also those in
the micro-controllers as it helps transitioning the knowledge (if not
the code) among different platforms. The main goal of this project is
to aid the developer to create "the device application" for his

It is a first public release and it's far from a stable "1.0" release.
We're sharing the code and want to receive as much feedback as
possible so future development can help more and more developers out
there. So report any problems and ideas, even if you want to bash it,
please share your ideas on how it should be so we can stop being
bashed in the future ;-)

The README is pretty extensive and covers a lot, but what I'd like to
highlight that we make developers lives easier by providing some
uniform way to access basic resources and delivering events. As you
may expect the new wave of developers coming to embedded to implement
IoT are not that experienced and handling multiple OS-specific bits
are error prone and cumbersome, things like getting GPIO events from
interruptions (ISR) or file descriptors (Linux)... This often hurts
portability and we're stuck with a single SoC, board or OS because
porting the software is so painful. Right now we support Linux, RIOT
and there is an ongoing work to support Contiki.

It also helps those that have to support other developers, be a
manufacturer that needs to publish a SDK, be a services company that
helps a customer to create their product or a company that have
independent teams that need to create software components that will be
later joined to create the final product.

The basic programming is done in C and there is a high-level domain
specific language (DSL) to express business logic. The idea behind
this is to be as flexible and efficient as possible while avoiding
errors due asynchronous event programming in C, with all those nasty
callbacks and data passing. The FBP is translated to efficient C
blocks so it can run on very constrained systems. For larger systems
we benefit from FBP by using it as a script language, so one can avoid
build cycles to create the business logic.

This is even more powerful when combined with the "platform conffiles"
so you give your components a name based on purpose and define at
compile or runtime what's the actual implementation, with that one can
use standard keyboard and console to create something on your desktop
(fast), then move it to your real board/OS with minimum effort, just
change the conffile to map the boolean keyboard inputs to your GPIO,
some gtk/slider to your Analog I/O reader and from console to your
servo-motor and you're good to go! All that matters is if the
components have the same ports (names and types).

Last but not least, the license is permissive BSD so it can be
compiled as a static binary or together with the OS for those

NOTE: as you may see this from the contributors list the project was
created inside Intel. But it is meant to be a true open source project
without a controlling company. We will be very glad if more
manufacturers join us to help the embedded and IoT ecosystem. Whenever
you want to have your devkit supported, let us know and we will help.

Gustavo Sverzut Barbieri
Mobile: +55 (19) 99225-2202

Join to automatically receive all group messages.