Using BeagleConnect Greybus#
Note
This is still in development.
BeagleConnect wireless user experience#
Enable a Linux host with BeagleConnect#
 
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#
 
Initiate a connection between the host and devices by pressing the discovery button(s).
Device data shows up as files#
 
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#
Todo
Find a place for the following notes:
- 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