I've been working on something along those lines for IoT management
and networking. Here's my laundry list of architectural and
implementation pieces:

1. authentication: (a) tie devices to owner/user (b) authenticate
users against third parties (via OIDC/SAML2, etc), (c) let the
authenticated user provide the credentials to authenticate and use
their devices via a namespace that follows an established convention
(e.g. /joe/iot/0/secret).
2. device and capability discovery is a bootstrapping process,
starting with a namespace that describes the availability of devices
and features (analogous to '#c/drivers')
3. namespace to discover how to present the data from a particular
source (e.g. a steam gauge widget would need to understand the
namespace exported by a pressure sensor)
4. 9p libraries including fan-in, fan-out capability (i.e. mount,
9pserve) for FreeRTOS, Mbed OS,  ThreadX, Zephyr
5. libraries to localize user↔device 9p traffic, while keeping
authentication centralized (e.g. how @tailscale works)

Initially IoT's would 9p-enable the SPI, I²C, etc. sensors and
actuators, until standards and conventions are established.

For hardware, targeting things like SAMD21 boards seem more
appropriate; they're cheap (e.g. Seeed XIAO). Even things like Nordic
nRF52840 boards are below $10 and include the hardware to establish
root-of-trust.


On Thu, Jan 27, 2022 at 2:58 PM Bakul Shah <ba...@iitbombay.org> wrote:
> 
> The idea:
> - make it very easy to create hardware gadgets by
>   providing a firmware/hardware building block that
>   talks 9p on the host interface side & interfaces
>   with device specific hardware.
> 
> - use a "universal" 9p driver on the host side that
>   allows access to any such 9p device even from a shell.
> 
> - provide a standard way to find out device capabilities.
> 
> - together they provide a plug-and-play setup.
> 
> Example: connect an LED and a current sensor to this
> 9p device, other necessary hardware, add a few config
> bits and plug this device kn]]into a host. Now you should
> be able to turn on/off the light or sense its state.
> 
> Similarly you should be able to control a stepper motor
> servo, cameras, microphones, other actuators, sensors,
> IO etc. Eventually you should be able to snap together
> enough of these components to build larger assemblies
> such as a 3D printer.
> 
> Another example: a "hub" to multiplex such downstream
> devices and make them available to a host.
> 
> This will probably have to ride on USB first. A verilog
> implementation would be useful in an FPGA!
> 
> Would this be a useful component? If such a thing were
> available, what would you want to build with it?
> 
> Do you think 9p is the right protocol for this?
> 
> Ideally
> - connect anything to anything
> - authenticated connections
> - drive the device through a shell script
> - no new low level drivers
> - self-identifying devices with help and command syntax
> - signicantly eases the task of creating new h/w devices.

------------------------------------------
9fans: 9fans
Permalink: 
https://9fans.topicbox.com/groups/9fans/Ta4e584a373b05553-M79ef31466316e414d50336d2
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription

Reply via email to