Using BeagleConnect Greybus#

Note

This is still in development.

BeagleConnect wireless user experience#

Enable a Linux host with BeagleConnect#

ProvStep1

Log into a host system running Linux that is BeagleConnect™ enabled. Enable a Linux host with BeagleConnect™ by plugging a BeagleConnect™ gateway device into its USB port. You’ll also want to have a BeagleConnect™ node device with a sensor, actuator or indicator device connected.

Note

BeagleConnect™ Freedom can act as either a BeagleConnect™ gateway device or a BeagleConnect™ node device.

Important

The Linux host will need to run the BeagleConnect™ management software, most of which is incorporated into the Linux kernel. Support will be provided for BeagleBoard and BeagleBone boards, x86 hosts, and Raspberry Pi.

#TODO#: Clean up images

Connect host and device#

ProvStep2

Initiate a connection between the host and devices by pressing the discovery button(s).

Device data shows up as files#

ProvStep3

New streams of self-describing data show up on the host system using native device drivers.

High-level applications, like Node-RED, can directly read/write these high-level data streams (including data-type information) to Internet-based MQTT brokers, live dashboards, or other logical operations without requiring any sensor-specific coding. Business logic can be applied using simple if-this-then-that style operations or be made as complex as desired using virtually any programming language or environment.

Components#

BeagleConnect™ enabled host Linux computer, possibly single-board computer (SBC), with BeagleConnect™ management software and BeagleConnect™ gateway function. BeagleConnect™ gateway function can be provided by a BeagleConnect™ compatible interface or by connecting a BeagleConnect™ gateway device over USB.

Note

If the Linux host has BLE, the BeagleConnect™ gateway is optional for short distances

BeagleConnect™ Freedom Board, case, and wireless MCU with Zephyr based firmware for acting as either a BeagleConnect™ gateway device or BeagleConnect™ node device.

  • In BeagleConnect™ gateway device mode: Provides long-range, low-power wireless communications, Connects with the host via USB and an associated Linux kernel driver, and is powered by the USB connector.

  • In BeagleConnect™ node device mode: Powered by a battery or USB connector Provides 2 mikroBUS connectors for connecting any of hundreds of Click Board mikroBUS add-on devices Provides new Linux host controllers for SPI, I2C, UART, PWM, ADC, and GPIO with interrupts via Greybus

BeagleConnect gateway device#

Provides a BeagleConnect™ compatible interface to a host. This could be a built-in interface device or one connected over USB. BeagleConnect™ Freedom can provide this function.

BeagleConnect node device#

Utilizes a BeagleConnect™ compatible interface and TODO

BeagleConnect compatible interface#

Immediate plans are to support Bluetooth Low Energy (BLE), 2.4GHz IEEE 802.15.4, and Sub-GHz IEEE 802.15.4 wireless interfaces. A built-in BLE interface is suitable for this at short range, whereas IEEE 802.15.4 is typically significantly better at long ranges. Other wired interfaces, such as CAN and RS-485, are being considered for future BeagleConnect™ gateway device and BeagleConnect™ node device designs.

Greybus#

  • The device interfaces get exposed to the host via Greybus BRIDGED_PHY protocol

  • The I2C bus is probed for a an identifier EEPROM and appropriate device drivers are loaded on the host

  • Unsupported Click Boards connected are exposed via userspace drivers on the host for development

What’s different?#

So, in summary, what is so different with this approach?

  • No microcontroller code development is required by users

  • Userspace drivers make rapid prototyping really easy

  • Kernel drivers makes the support code collaborative parts of the Linux kernel, rather than cut-and-paste