I want to use my Xbox controller in Jupyter environment. I initialized controller, there widget said press any button, then, widget started displaying all of my controls. as on Screenshot. 
However when i tried to subscribe with observe method but it didnt notify any at all, tried look into fields of axes, buttons, connectedit was empty and False. Perhaps i am using wrong interface or may be widget supports only one observer since all actions are displayed properly on widget display. I attach my code below.
#%%
import ipywidgets.widgets as widgets
from IPython.display import display
c = widgets.Controller(index=0)
display(c)
#%%
def on_change(change):
print("Axes:", c.axes)
print("Buttons:", c.buttons)
c.observe(on_change, names=['axes', 'buttons'])
print()isn't the best way these days to work with ipywidgets because unless you handle it well it goes to the Log console. And that is if you are lucky to be working with JupyterLab, which is best for working with ipywidgets at this time. See here, here and ...with output:as in my first example. As to this widget itself...Unfortunately I don't see many examples of this. This one is from 2017 and things were in flux, plus ipywidgets & Jupyter has dramatically changed in just the last few years. GitHub may have more recent, fleshed-out examples, see here.