I have not been so excited about seeing a software upgrade delivered as I have been this weekend. The LEGO Powered Up app has just been given a substantial bump up in its functionality.
Long time readers of the blog will know how I feel about LEGO Boost: a great set, and a simple way to automate any models that you might make. Since it was released 18 months ago, we have seen all sorts of creations, as well as ideas through the primary models in the set. But there are a few challenges: you need to work through the models to gain all functionality; and the hub itself is a little bulky for some applications, but certainly adds a lot of fun to some sets. In some ways, I see it as the natural successor to the early motor kits, used in the 60’s and 70’s to automate wheels models, and see them propelled under there own power. Unfortunately, despite sharing a plug system, it has not been compatible with other similarly plugged devices…until now.
Last year, we saw the introduction of the ‘Powered Up’ system. Initially applied to trains and a remote controlled bat mobile, it could be controlled by a remote control or an app. Unfortunately, in the first instance, it was limited in its functionality, if you are interested in pursuing your own builds: the ‘M’ motors in the Batmobile could only be controlled by the app if there were 2 motors present; and using the hand held controller, did not have variable speed – being a ‘bang-bang’ type of control, rather than being able to run at variable speed.
This somewhat curtailed my plans to motorise the Harry Potter Hogwarts Express using a motor powering the driving wheels, using the Powered Up System.
Of course, the system needed a chance to mature, and ensure things could just work ‘out of the box,’ especially while the development team were waiting for enough boxes to be out there to warrant increasing the functionality.
This has now changed!
The most recent update to the Powered up software has added significant functionality – INCLUDING the ability to used motors and sensors interchangeably on both the Move Hub(Boost Hub) and the Powered Up Hub (PU Hub). This is especially exciting, because, after a firmware update, you can now use a sensor in conjunction with the PU Hub, and the M-motor with the Boost Hub. And behaviours can be programmed.
So… my goal is to use the M-Motor to power my Hogwarts Express. While I cannot use a slider control to set an ‘M’ motor, and the controller only lets it run at full speed, perhaps we can use the new App to control it. I downloaded the upgrade to my phone and linked up with the PU Hub.
The first thing that happened was a firmware upgrade to the Hub, with took a couple of minutes.
I started to create a program: there are several levels of functionality in the programming environment, including the number of control blocks available. This is essentially the same programming environment as LEGO Boost, but without the need to complete any lessons to proceed. There are some elements missing, BUT the Powered Up App seems to start up faster to than the Boost App. Connections seem more robust that with the boost app as well.
Test One: Proof of Concept – M motor control
I connected my M motor and designed a simple program: run the motor at 50% for a few seconds, 100% and back to 50%, and then stop. It looked like this.
Test Two: Proof of concept: Train Motor control
I replaced the M Motor with the train motor included in the Powered up Passenger Train. The program required no adaptation. Just connection of the motor to the designated channel.
Test Three: Proof of Concept Servo Motor Control
Using the same set up and program, the Boost servo motor would also run. There is also the option to use specific Servo motor icons, which WILLL NOT allow the other motors to run.
Test Four: Proof of Concept Color Control
Given the absence of real time speed adjustment for the train, I wondered if coloured tiles could be used to determine some behaviours. I attached the Boost Color sensor, and set it to wait for a green brick to be presented to run the motor, and to stop when presented with a red brick. This worked for different shades of green, but red would be detected with red, magenta, medium lavender, bright orange and Reddish brown. If you are in the business of ballasting your tracks, you might need to be wary with these colours. Perhaps a complete comparison of colours vs what the sensor sees is in order.
Test Five: Proof of concept: Tiles on the track to control the speed.
I used Red, Green and Yellow tiles to run the engine at different speeds (red 20%, Yellow 35% and Green 50%). I set up different subroutines for each, attached to Flag 1. Running each subroutine in a loop in parallel means that they all look out for the appropriate color at all times. As the sensor can only sense one colour, the appropriate speed should be selected.
First I modified my passenger train engine to run using the regular motor, but with a sensor pointing at the ground, to detect coloured elements on top of the railway sleepers.
Test Six: Proof of concept: modelling more complex behaviours
In this test, a red tile is used to stop the train, pause for a few seconds and then start off again slowly, after blowing the Whistle. Other tiles are used to change the speed. On this occasion, I had problems with the train stopping at random places. I think this was due to a shifting sun and the red in the wood of the table registering as a stop signal.
Test 7: Back and Forth
Looking for a simple back and forth along the track? Here it is. I initially attempted to make it work using black and white, but they were unreliable – perhaps due to colours in the table. Green and yellow worked well as a combination. Occasionally the yellow was missed. Ultimately, it might be better to spread plates over multiple tiles.
Out of range/ phone in sleep mode
The Bluetooth connection demonstrated far more robust behaviour than that seen with the Boost app previously: if you switch out of the app, or the phone goes ‘to sleep’, the connection with the hub is maintained. If a program is running at the time, it pauses in its current state: a motor will keep going at its current pace, rather than stop completely. You can break the connection by touching in the ‘connection icon’ and deselecting your hub. Closing the app will break the connection, and stop the program.
If your controller moves out of range, the hub will keep running for a few seconds, attempting to reestablish the connection: if it succeeds, it will continue, if not it will stop. This seemed to work a little better if the app was on hold- eg the phone had gone to sleep, and so not trying to ‘run the program’ as well maintain the connection. As such, running a static display at a show might be a little more effective than with the previous version of the app. [NOTE: These behaviours were seen using the iPhone version of the App: I have no experience using the Android version]
I am excited by the potential provided in the new version of the Powered Up App. Tying together the best of Boost, Powered up elements and even WeDo sensors, as well as offering a variable level of complexity , in a unified platform is exciting. I am happy after running these tests that I should be able to control a train powered by a simple M motor running, being controlled using in line tiles. However, the actual colour of the running surface needs to be considered, as does the colours used in ballasting your line.
Perhaps the color registered by the sensor needs to be more clearly defined across the LEGO parts palette
I have not begun to touch on the levels of complexity that can be accessed, including tilt sensors, measuring /controlling the degree of rotation of the servo motor and so forth. But certainly, there re some limitations, particularly with the speed and accuracy of colour detection.
I am not a power user. I just want to make things go back and forth!
I am curious to see what we will see when the new Technic hub is released in August, with some new control elements. 7 ports on the hub will be interesting to work with, especially since one model will use two hubs in parallel. I presume it might be similar in appearance and nature as the new Spike system, also due in August, which I think offers some exciting opportunities.
As for now? Each incremental step in the new Powered Up App has increased the functionality, Now that Boost, Powered up and WeDo elements can be used to work together (note – only WeDo motors and sensors – the WeDo hub cannot have its firmware upgraded), we might almost be on the verge of reaching this potential. In the future I would to see the ability to share Powered Up code, between devices and people possibly via LEGO ID’s or LEGO Life IDs, as with the Boost App; as well as improved colour accuracy with the detector. I presume we will shortly see some new motors as the new system rolls out to Technic. I am excited to see how this might eventuate. In the meantime, I need to work our how to modify the Hogwarts express, and make it run autonomously on the track.
What do you think? Leave your comments below. and follow the Rambling Brick to see how we make it all come together in the fullness of time.
In the mean time,
Note: some of the code showed in the videos may have some flaws. The images above the videos have the correct ‘programs’