Status of project and alternative communication protocols
Closed this issue · 6 comments
Hello!
I recently learned about Greybus on a hackaday story, and got pretty excited about it.
Since Google recently announced project Ara has been shut down and this repository didn't see commits for a few months, so I'd like to know if Greybus is still alive or will be abandoned.
Anyway, Greybus is quite similar to a personal project I've been working on, Expanduino, which also uses descriptors and class protocols to turn cheap microcontrollers into I/O expansions.
Obviously, Greybus is better than my project in every aspect, and I'd love to use it on my devices. The only catch is that Greybus is specified around UniPro, which is obviously not available on $2 microcontrollers.
Given that I'm not going to do anything fancy (high-bandwidth) on my devices, would it be doable to change the communication layer to something like Serial / SPI / I2C? What do you think about it?
As far as I can tell from the code, it should be quite simple, and would only require implementing my own gb_hd_driver
, right? Any guidelines on doing that? Would this feature be appreciated?
Yes, you can have Greybus run over any type of bus, it's been done using USB a couple of times, and even IP packets (a talk about that will be at the Embedded Linux Conference in a few weeks.)
And yes, all you need to do is implement a new gb_hd_driver. As for guidelines, I will be glad to help out, what type of bus do you want to use and I can knock up a quick framework driver for what would be needed.
Oh, and the project is not abandoned, it's still alive. We have a big update that should be pushed out soon, things got stopped here on the public repo for various reasons...
Sweet!
Those are all great news! Thanks for the quick reply.
I'll study it a bit more and give it a try in the next few days.
The device I've been working on talks on I2C, but for starting / prototyping, I'm considering to create a userspace bridge first (Something like UInput), what do you think?
What do you mean exactly by "userspace bridge"? Userspace talks to a device thinking it is a serial/i2c/gpio/pwm/etc device like it normally does, the greybus protocol is used from within the kernel to bridge over the hardware to the device on the other side that really is the serial/i2c/gpio/pwm/etc device. Where would a userspace bridge come in here?
Perhaps you are thinking about something like 'gbsim' in this project? It is a userspace emulator of the greybus protocol that you can run on a device like a beaglebone black to emulate the greybus device.
I had something like gbsim in mind.
I'll look more into it, thanks!
repo is now updated with all of the latest code, everything is now pushed out.
So I'm going to close this now, thanks.
Ok.
Thanks!