LEGO has recently started selling the Boost Powered Up! components separately at LEGO.com, and earlier in the year I was sent a set of them to review.
I wasn't sure how to do so at first, given that on their own they are not terribly exciting, until I had the idea of creating a Great Ball Contraption (GBC) module that used them in some way.
I'm not the first to use the Boost hub for GBC but I've not seen much evidence of widespread use, probably for two reasons: you need a phone or tablet to be constantly connected to it, and because it's battery powered it's not really suitable for use at public displays over several days where machines are expected to run faultlessly non-stop in a circuit of continually flowing balls.
So, if I was to make use of it and create something that could be used at displays I'd have to solve the power problem first. Luckily, I'm adept at wielding a soldering iron so it turned out to be relatively easy.
Advisory: This article contains explicit images depicting mutilation and modification of LEGO pieces. If you are of a nervous disposition, do not read any further.
Modifying the Boost hub
If the GBC module was to run for more than an hour or so it would need to be powered from a mains-connected 9v transformer. Originally I intended to drill a hole in the side of the hub and mount a small power socket in it, but the smallest one available is still quite big, and the internals of the hub meant that this was impractical.
So, instead, I cut a 9v power cable in half, mounted it on the bottom, drilled a small hole in the base of the battery compartment and wired it to the battery connectors inside.
I drilled a few more holes through the sections of the battery box so the wires could be routed to the top.
There, I soldered them to the battery connectors, and also put a dab of Gorilla glue under the 9v connector on the bottom to prevent it being pulled off and potentially stretching or breaking the wires.
The form factor of the battery box remains the same so it can be neatly inserted back into the hub, leaving just the bottom connector as evidence of the modification.
With a standard 9v connector on the bottom my power options are now manifold...
Creating a power adapter
The hub could now be connected to a 9v train controller, like all other GBC modules, but that would not be particularly practical given the voltage can be adjusted and reversed, so instead I took the small power socket I mentioned earlier and made an adapter block using the other half of the 9v cable.
Two 2x2x2 thin wall panels are used to both mount the socket and conceal the wiring inside.
The hub can now be mains powered via the generic 9v transformer with interchangeable plugs that I bought on eBay.
The hub will expect the power to be presented at the right polarity, of course, and finding out what that is is a matter of trial and error. Luckily it is not damaged if it's reversed.
The GBC module
The boost hub has two internal motors and two input/output ports to which a colour/light/distance sensor and external motor can be connected.
I therefore elected to create a small module that uses the colour sensor to detect the colour of the balls and send them down one of two paths.
Here's the end result:
The red wheel is an established and reliable method of moving single balls out of an input hopper. It's powered by one of the hub's internal motors.
Th be brutally honest, the Boost hub is an ugly great thing and looks particularly unsightly tacked onto the side of the module. I could have attempted to mount it at ground level and use a series of gears to drive the red wheel but that would have introduced unnecessary complexity during this testing phase.
The external motor is mounted at the bottom and drives the mechanism that will send balls down one path or the other. The light sensor is directly above it.
The 'Y' shaped piece is connected to the motor underneath.
The light sensor is mounted above it. I added a brick or two around it to minimise the effect of ambient light which could affect the colour measurements.
The Boost program
This is what needs to happen:
- Start the red wheel moving to feed the balls to the sensor.
- When the sensor detects a orange ball, turn the external motor one way to send the ball down the right hand path
- When the sensor detects any other colour ball, turn it the other way to send it left.
I thought I'd also add functionality to count balls and calculate the flow rate, for which some variables are needed.
Here's the finished program. The main logic is in the middle thread:
- Set variable a to 1 (the colour reading provided by the sensor when there's no ball)
- Set variable b to 0 (count of orange balls)
- Set variable c to 0 (count of other colour balls)
- Set the internal motor running, power level 20, anticlockwise
- Read the colour sensor
- If the sensor reads red (close enough for orange balls)
- Turn the light on top of the sensor orange
- Rotate the external motor 120 degrees clockwise
- Increment b
- If the sensor reads a colour other than grey (a) (i.e. a white ball)
- Turn the light on top of the sensor white
- Rotate the external motor 120 degrees anticlockwise
- Increment c
- If the sensor reads grey, turn the light off
The thread at the bottom uses a variable d to count the number of seconds the program has been running, which will be used to calculate flow rate.
The thread at the top handles the display of the variables. Unfortunately only one value can be displayed at once, at the bottom of the screen, so it cycles through them:
- Number of orange balls that have passed (b)
- Number of white (or other) balls that have passed (c)
- Total number of balls that have passed (b+c)
- Length of time the program has been running, in minutes (d/60)
- Flow rate, in balls per second ((b+c) / d)
Does it work? See for yourself. Note that in the video the Boost hub is powered from a Power Functions rechargeable battery to save running cables to power sockets.
This has been a fun exercise, particularly given that I seem to spend every waking hour (when not running Brickset, of course) messing about with GBCs.
I wanted to see if it was practical to use Boost in a GBC module that's suitable for public display and I think I have done so. The prerequisite for this, powering it from the mains, is possible with a little modification.
Of course, I haven't solved the not insignificant issue of having to have an expensive piece of kit constantly tied up running the program: we will have to wait until the programmable hub in Spike Prime arrives to do that with the Powered Up! platform, but that will hardly be an inexpensive solution.
So far, the module has proved to be reliable in my test circuit but the real proof will be whether it is at my next public display, the Great Western Brick Show in Swindon, UK, 5/6 October. It's not the most exciting module by any means but it should entertain the public, who will no doubt ask how it works.
It does not quite meet the GBC standard of being able to handle 1 ball a second, although I could try speeding it up a bit in order to do so. However, in my experience that speed is rarely achieved for any length of time on a GBC circuit -- such a flow rate causes all sorts of problems -- so it's not really an issue.
I might also see if I can get the hub out of sight as base level given how ghastly it is!
If you'd like to see more articles like this, please like it and comment.
Thanks to LEGO for providing me with the Powered Up! components for this review, which is an expression of my own opinions.