Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pushbot Protocol mixup #1520

Closed
Christian-B opened this issue Dec 18, 2024 · 3 comments
Closed

Pushbot Protocol mixup #1520

Christian-B opened this issue Dec 18, 2024 · 3 comments

Comments

@Christian-B
Copy link
Member

A number of the PushBot Ethernet classes are using MunichIoSpiNNakerLinkProtocol and not MunichIoEthernetProtocol

a simple attmept to just change the class failed.
See #1519

And especially the mypy report.

This needs a proper review ideally by someone with a Pushbot

@Christian-B
Copy link
Member Author

Christian-B commented Dec 19, 2024

PushBotEthernetRetinaDevice( init was declared to take a MunichIoEthernetProtocol
but this is then passed into PushBotTranslator which expects a MunichIoSpiNNakerLinkProtocol

https://github.com/SpiNNakerManchester/PyNNExamples/blob/master/examples/external_devices_examples/pushbot_ethernet_example.py
Passes in a MunichIoSpiNNakerLinkProtocol

@rowleya
Copy link
Member

rowleya commented Dec 19, 2024

So in general, the Pushbot is represented by an ExternalDeviceLifControl. This is a Population of neurons which, instead of spiking, send multicast messages periodically based on their membrane voltage. The "Devices" of that Population control what each of the neurons does - that is, the multicast key they send, whether they send the voltage directly, minimum and maximum values and how often they send the message (could be every timestep, but could be less often to not overload)

If the Pushbot is connected to the SpiNNaker link, the devices are each themselves virtual vertices, and the ExternalDeviceLifControl then has edges from it to each of them.

If the Pushbot is connected via Ethernet, the ExternalDeviceLifControl connects to a LivePacketGather instead. But note that the same commands are sent. On the host, these are received by a Translator which decodes them and sends messages to the PushBot using a different protocol, using the WiFi connection directly.

Image

Basically the laptop becomes the equivalent of the Munich IO board - it translates the multicast packets into Ethernet packets.

@Christian-B
Copy link
Member Author

It looks like the code and examples are correct even if a little confusing.

The few cases where the type in the doc differs from what the super class, code or example uses will be fixed in the typing pr.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants