Nothing new here, just my personal notes with the LEGO Hub from 51515 MINDSTORMS Robot Inventor Set.
Most of it based on this post by Jason Jurotich.
I have a LEGO 51515 set, thanks to the ROBOTMAK3RS community (and still not sure yet if I am willing to pay so much money for this set).
I have an Android Lenovo tablet and an Android Samsung phone. Installed LEGO MINDSTORMS App on both but only can managed to use it on the phone – the tablet doesn’t get Activities so I could not even make Charlie play the drums.
I also have a Ubuntu Linux laptop. It will have to work – last time I revived a Windows 10 virtual machine it took me a whole night just to update it in order to install LEGO App. No way!!
So tanks to Jason post I can connect my laptop to the Hub:
sudo rfcomm connect hci0 A8:E2:C1:96:5B:9A
this gives me a ‘/dev/rfcomm0’ serial device and I can access the REPL environment in 2 different ways:
directly through a terminal client like ‘picocom’:
picocom /dev/rfcomm0 -b 115200
with a more proper tool like ‘rshell‘:
rshell -p /dev/rfcomm0 repl
When accessing the REPL, the hub is sending values so we need to Ctrl+C to get the prompt.
I found out that accessing the REPL through ‘picocom’ lead to strange behaviors afer a while (like commands being executed but not returning to the prompt and after a while not being able to access again, like if the Hub was rebooting immediately after accessing it) so I am now using ‘rshell’.
I also installed Adafruit ‘ampy’ from pypi. This way I can send and execute a micropython script from my laptop without accessing the REPL:
ampy --port /dev/rfcomm0 run test.py
But since I know nothing about LEGO micropython environment I will use REPL a while more (before flashing Pybricks on it and probably forgetting LEGO firmware like I did with MINDTORMS EV3 original application once I discovered ev3dev).
When accessing the REPL environment this is the welcome message:
Welcome to MicroPython! For online help please visit http://micropython.org/help/. Quick overview of commands for the board: hub.info() -- print some general information hub.status() -- print sensor data Control commands: CTRL-A -- on a blank line, enter raw REPL mode CTRL-B -- on a blank line, enter normal REPL mode CTRL-C -- interrupt a running program CTRL-D -- on a blank line, do a soft reset of the board CTRL-E -- on a blank line, enter paste mode CTRL-F -- on a blank line, enter filetransfer mode
of course ‘hub.info()’ and ‘hub.status()’ only work after we ‘import hub’ library – something probably obvious for someone used to (micro)python and REPL but not so obvious for newcomers.
Other important methods in this library
‘hub.battery.info()’:
>>> hub.battery.info() {'temperature': 23.8, 'charge_voltage': 7591, 'charge_current': 251, 'charge_voltage_filtered': 7583, 'error_state': [0], 'charger_state': 0, 'battery_capacity_left': 80}
‘hub.repl_restart()’ – I had used this method a few times today… and I hate reboots!
‘hub.power_off()’
So lets find out if I can make Charlie play the drum with micropython.