openbalena
Last active 4 months ago
39 replies
7 views
- NI
openbalena
- NI
@mention let's continue our discussion about openBalena here. This discussion start to be really interesting!
- NI
I never used openBalena so I'm not really comfortable with it.
- NI
I think Luos could be a block and all the other one could use it to exchange informations with others.
- GO
The first question I have is are there other ways to interface with Luos than USB? For example: I2C?
- NI
Natively Luos use half duplex connection as network.
- NI
The USB is used to control a Luos network trough a computer.
- NI
I think you will ahve a better understanding with this demo : https://www.youtube.com/watch?v=KHHBjfBDEY&t=165s&abchannel=Luos
- NI
perhaps you already watched it…
- GO
Yes, I already watched the demo 🙂
It was actually all the demos that got me hooked.But if I understand correctly PC <-> Luos is over USB. Is this always the case or are there different options available to facilitate this M2M communication? I suspect PyLuos for example just emulates another device in the Luos network?
- NI
To be honest USB is massively used and we don't have other example available yet.
- NI
But Pyluos is already compatible with websocket.
- NI
So wifi or ethernet could work.
- NI
the only thing you have to change is the Pipe driver. Pipe allow any service on the network to send and receive information from any external communication way.
- NI
You you make a BLE Pipe or anything this will work.
- CO
Although I'd imagine writing an I2C driver might be a little tricker of a wrapper for Robus, right? Because there's limits on sending, you'd have to emulate an I2C address for the data, and isn't there a length limit for each address? (Been a while since I dug into the protocol side vs just using it)
You'd need one as a flag, unique on the I2C network for each node as a sort of 'flag' to swap out the chunk of data being read at a different unique address, with the next part of the string Robus generates (same for BLE, I'd think? Or just the attribute based Bluetooth)
- CO
Ah wait no it doesn't have a limit on data length that's just Bluetooth -
- CO
But still would need a unique address for each node
- CO
Ble has a 20byte limit
- CO
So that method I mentioned for I2C isn't needed, but might work for BLE 🙃
- CO
(I too have been making wrappers for protocols - Bluetooth serial is much easier 😅 )
- CO
NRF24 also has limitations on message size depending on a few variables so perhaps a dynamic wrapper/message chunker isn't a bad idea though
- NI
For I2C to avoid dealing with unique address we could use broadcast instead.
- NI
This is a hack but it could work on most of the hardware…
- CO
- CO
Wouldn't be so great in a multi-node network
- CO
Although some MCUs have multiple I2C lines, right?
- NI
yes probably.
- NI
Basically we have the same thing using serial every messages are broadcasted.
- NI
But we could optimise it a lot using ID for sure…
- CO
True, true - maybe no need for multiple IDs anyway, seeing you can't send data to multiple different addresses over the same line at once anyway
- CO
So it's like serial in that aspect anyway
- CO
Only thing non-broadcast does is save cycles in processing/filtering irrelevant data for each node not targeted.
- NI
yes exactly.
Also we could use the acknowledgement feature of I2C. - NI
ACK is the trickiest part of Robus because it's extremely time constrained…
- NI
anyway we are drifting, this thread is about OpenBalena 😉
- CO
- GO
The reason I ask it is that we’ve noticed the USB ports sometimes wear out causing all sorts of issues. But I suppose using a cm4 for example the usb bud can just be routed over the pcb.
- NI
I think USB is pretty good to wear out, but you could use industrial connection instead…
Last active 4 months ago
39 replies
7 views