Turning your Raspberry Pi 4 into an Edge Gateway (Part I)

Galem KAYO

on 26 November 2019

Developers get new opportunities to innovate with the emergence of edge computing. However, to unleash this innovation, form factors and software stacks suitable for hacking edge applications need to be made accessible. Canonical has enabled Ubuntu on the Raspberry Pi 4 for this purpose. Furthermore,  popular edge and IoT platforms are available and easily deployable from the Snap Store.

When it comes to IoT edge, EdgeX Foundry is a feature-rich platform for accelerated development. Not only is EdgeX Foundry open source, but it also puts a strong accent on interoperability. These factors combine to catalyse an ecosystem of components federating the IoT space. The platform thereby accelerates the development of IoT solutions across various industrial and enterprise use cases.

This blog showcases an entry-level stack for IoT edge hacking. Prerequisite for this tutorial is a Raspberry Pi 4, with Ubuntu installed. We will see how to make an IoT edge gateway with EdgeX Foundry.

Quick install of EdgeX Foundry with Snap

With Ubuntu 19.10 installed on the Raspberry Pi 4, the EdgeX Foundry snap can be installed in a single command:

$ sudo snap install edgexfoundry

This simple command, installs all services required to run EdgeX. The services are also launched in the background. Services that come bundled with the edgexfoundry snap can be listed by issuing the snap services command.

$ sudo snap services edgexfoundry

The snap services command also shows if existing services are enabled and active.

Enabling Services

Upon installation, the following services are automatically enabled:

  • cassandra (persistent storage for Kong)
  • consul (aka ‘the registry’)
  • core-command
  • core-config-seed
  • core-data
  • core-metadata
  • edgexproxy
  • kong-daemon
  • mongod
  • mongo-worker
  • pkisetup
  • sys-mgmt-agent
  • vault
  • vault-worker

The following services are disabled by default:

  • support-notifications
  • support-logging
  • support-scheduler
  • export-client
  • export-distro
  • device-virtual
  • device-random

Any disabled service can be enabled and started as follows:

$ sudo snap set edgexfoundry support-notifications=on

Installing the Management Client

EdgeX instances can be conveniently managed in a web browser from a desktop. Management tasks like pairing devices to a gateway, creating device profiles, or visualising data can be carried out through the web UI. The edgex-ui-go snap delivers this interface. To install, run the following:

sudo snap install edgex-ui-go --channel=latest/beta

The web UI for gateway and device management will become available in the browser at  http://localhost:4000. The default user credentials are username: admin / password:admin.

Provisioning the Edge Gateway

After login, the user will be redirected to the gateway management page. To provision the Raspberry Pi 4 device as a gateway, a user will add it through the web UI. A name, a description and the network IP address of the board (obtained via command: hostname -I) will be required.

Resources

Next steps

In the second part of this tutorial, the gateway will be connected to virtual devices. We will then explore both the Southbound (from device to gateway), and the Northbound (gateway to cloud)  data transmission through the gateway.

Internet of Things

From home control to drones, robots and industrial systems, Ubuntu Core and Snaps provide robust security, app stores and reliable updates for all your IoT devices.

Newsletter signup

Select topics you’re
interested in

In submitting this form, I confirm that I have read and agree to Canonical’s Privacy Notice and Privacy Policy.

Related posts

Updated images of Ubuntu for the Raspberry Pi 2, 3 and 4

Updated 32-bit and 64-bit images of Ubuntu for the Raspberry Pi family of devices have just been released. Innovators around the world can now download 32-bit...

Roadmap for Ubuntu official support for the Raspberry Pi 4

With 19.10 release of Ubuntu Server, Canonical announced official support for the Raspberry Pi 4. The latest board from the Raspberry Pi Foundation sports a...

Ubuntu 19.10 delivers Kubernetes at the edge, multi-cloud infrastructure economics and an integrated AI/ML developer experience

17th October 2019: Canonical today announced the release of Ubuntu 19.10 with a focus on accelerating developer productivity in AI/ML, new edge capabilities...