The Raspberry Pi is the poster child of the era of inexpensive and powerful SBCs we are living in. There are also fantastic software projects to make firmware, web, and graphics development open, enjoyable, affordable, and reliable.
DonkeyPi is a software effort to tackle some of the gaps in the available tooling in a minimalist, unpretentious, but opinionated way.
DonkeyPi consists of the following software components:
- A
runtime
to manage and interconnect process isolated applications - A
CLI tooling
to deploy, monitor, script, and shell into running applications - A
reactive
TUIlibrary
to quicky craft single-page style user interfaces
Although the DonkeyPi Runtime is UI agnostic and can manage applications leveraging other UI technologies or no UIs at all, DonkeyPi aims at bringing the text-based user interfaces
back to relevance for lean
focused projects where productivity
and simplicity
are higher values.
DonkeyPi will initially focus on supporting the official Raspberry Pi 3 and 4 complemented with their 800x480 Touch Screen for development and didactic purposes as well as some Compute Module based industrialized products with similar specs for production projects.
The background of the DonkeyPi development team is in industrial automation
as the use cases that will be initially put forward will clearly show. We are sure that more use cases will be identified as the community brings their own background and experience to the table.
There is a recurring metaphore in the industrial world (latam) to ask for a more affordable solution: "You are proposing a ferrari but what we want is a beetle". DonkeyPi name comes from the animalistic version of that figure of speech. DonkeyPi aims at being a humble hard working reliable donkey as opposed to a gorgeous stallion.
What can be built with the DonkeyPi?
Get the SDK.
defmodule HelloWorld do
use Dpi.React, app: true
use Dpi.Tui
def init(opts) do
{&main/1, opts}
end
defp main(%{cols: cols, rows: rows, title: title}) do
panel :main, size: {cols, rows} do
label(:title,
scale: 4,
align: :center,
size: {cols, rows},
text: title,
class: @dpi_logo_class
)
end
end
end