JopieK

Powered Up - A tear down...

Recommended Posts

5 hours ago, Jetro said:

See my article on the HispaBrick Magazine blog about that. About halfway through I discuss this option:

https://www.hispabrickmagazine.com/blog-en/blog-en.php?id=7546

Very nice article and thank you for your reply. :)

Ok, so it's possible to connect 2 remotes.
But what happens if you connect 2 of them to a Move/Boost hub and press the green button on one remote to switch from controlling Output A+B to C+D?

Will the second remote then also control C+D, or still A+B?

In other words, can I build a controller out of 2 remotes to be able to control all 4 outputs of the Boost hub at the same time?

Share this post


Link to post
Share on other sites

:pir_laugh2:

4 hours ago, kbalage said:

Well the thing is - this is the only relevant thread for advanced Powered Up-related discussions on Eurobricks

I see. I did not know that - I did notice though a bit more of reluctance to switch from PF to PUp in the Technic forum than here in TrainTech. As far as I am concerned, the latter greater interest in PUp resulted from ample home-brew solutions as well as from the initiatives of many to "break the BLE firmware code", way before LWP3.0 was "thrown" into the public domain by TLG. And certainly also the development of train dedicated software by folks around here.

4 hours ago, kbalage said:

because they think Control+ and Powered Up [...]

Well, we did not see that one coming, huh? :pir-skel::pir-laugh: This is in my opinion really the result of the way PUp was introduced by TLG. Rather than focussing on the umbrella theme - PUp - all sorts of things popped up; sometimes it was a new piece of hardware (hub) getting a fancy name instead of a semi-systematic one (which less appealing to the folks in marketing of course) - the same for any piece of PUp software. And then: one specific app for one specific model - or better mode reflecting the model's configuration. I know: There are the programming apps as well. Oh well. I would have done that in the first place and then blown out the special apps. But time does tick differently in different corporate departments ... products are launched before programmers even heard it was - with some pre-alpha testing code that was compiled for some interns to check it out ... at least this is how it sometimes seems to the case with companies I am working with.    

Back then when I spent some time in Oxford/GB my boss there told me once to "un-f*ck" the mess I made in the lab ... I would not know how to do this here. This thread is certainly not the best place with now more then 30 pages to turn ...

Best regards,
Thorsten 

Edited by Toastie
un-f*cked text :)))

Share this post


Link to post
Share on other sites

  I welcome any and all manner of discussion about the PU platform.  Recently I just received my first PU hub component, a Technic Hub, and this only because I was buying other stuff from a particular BrickLink seller and they had one for a very fair price.  Otherwise I might have put more thought into choosing a hub in these 'early days' of the platform.

  Yesterday I sat down to the challenge of simply getting a single motor working with variable speed.  First thing was figuring out what software it was compatible with if I wanted to code myself and not build an 'official' model.  My preferred choice would have been using a Windows 10 computer, but the official software option is Powered Up app which only runs on mobile OS for whatever reason.  (Android emulators are not an option because of lack of bluetooth support.)  Not interested in fumbling with a tiny phone screen for custom block coding, I had to resort to dusting off the only Android tablet I own, which was shelved because it is an awful slow turd - The RCA Maven Pro.  But it met the minimum requirement, Android 5.0 amazingly, and as a bonus has a keyboard and trackpad.  Hours later, after having to recharge it from dead, Play Store broke while updating, got that fixed, and finished numerous other pending updates, finally got Powered Up installed.  Started the app, but got hung-up enabling bluetooth permissions, had to restart the app.

  Finally got to the point where the app was running and connected to the hub - now what?  With no formal documentation, I had to pour over whatever the community had discovered and elected to post on the internet, including some YouTube videos.  Many hours into this process already and finally I figured out how to turn a motor on at full speed by starting a program and turning it off by cancelling the program.  No interactive control yet, however I cheer because it feels like a major accomplishment.

  It took a while and a lot of reading, but I finally learned about the existence of the motor block type which does not have to run inside a play-loop structure.  Why this is tucked away at the far right end of the block listing, I have no idea.  With this I finally figure out how to use a virtual button in the on-screen control window to turn the motor on/off in bang-bang style.  Progress, but not what I wanted.  Then I spent another couple hours trying to reverse-engineer an ugly section of code from a YouTube video, which apparently is required to allow sequential speed step control in a sense.  The example used a slider, but I wanted to use single discreet button widgets (not the two-way button or directional pad widgets).  With much trial and error I eventually reached a basic understanding about what each sub-component block element was actually meant to do, and to some extent how variables work.  With that in hand, I was able at long last to make sequential speed control with discreet buttons.

  There doesn't seem to be an effective way to have the speed decrease to zero without the use of a stop button if you want the speed to start at a minimum step.  Also, not wanting the speed to cross zero into reverse when slowing down, as frequently happens with the old PF Train Remote, I eventually managed to code-in a limit which would only decrement the speed to zero and not beyond into the negative.  But then how to effect a direction change?  I spent a while trying a bunch of other messy logic, at this point having been farting around on this project for the entire day, but arrived at no satisfactory solution.  With the hub having been actively connected to the computer with bluetooth all day, even though it spent very little time actually doing anything, the poor batteries finally gave out and the hub shut down.

  How anyone is supposed to pick up this product line uninitiated and accomplish anything is quite beyond me.  No child would have even begun to figure this out.  I had to spend forever on a real PC scouring the internet so simultaneously I could keep the PU app on-screen on the tablet the entire time.  Why other official apps are available for a Windows computer, but not this one, is also quite beyond me.  Why is there no USB port on the Technic Hub, and no rechargeable battery (as of yet) or external power supply?  Not to mention that the size of the hub cannot be reduced by detaching the battery, since the outer walls of the compartment are the full dimension of the hub.  No matter what, the Technic Hub isn't fitting in a train, so this hub will be most likely relegated to bench-test duty only, and I will order the USB power injector for it from PV Productions so it stops eating batteries.  Why is there no coding documentation, not even basic 'hover text' or hints on blocks (even the text entry box on this forum has 'hover text' hints), nor pre-defined sections of assembled code blocks with explanations to start working from for common functions?  I feel like I could have made better progress using an open source text-based coding language project, but I'm not a coding expert and can only store so much in my brain while I'm simultaneously trying to also learn the basics of Arduino, EV3, and Control Lab Logo (not to mention my adventures hacking DCC into LEGO trains).  Plus, that wasn't the point of this exercise - to learn this the 'official' route.  Why is every corporate sub-project of the complete PU family siloed in a way that stifles compatibility and confuses everyone even from a basic naming convention standpoint?

  Maybe I'm missing something, but that was my first experience with the Powered Up system, in which I dove into the pool head-first but came away feeling like it was the shallow end of the pool I dove into (ouch!).  Basically, I feel lucky to have made anything work at all.  I also feel lucky that the particular motors I had on hand, none of which are from the Technic sub-line, had no problem with firmware/software compatibility and could be used as "basic motors" on the coding blocks.  This is not a "power on and go" environment, even with the benefit of third-party apps.  At least third-party development has brought us the prospect of loading an autonomous program to firmware.  (How many write cycles before the flash chip is shot though?)  It feels like LEGO decided it was better to rip the UI and storage parts of the computer out of the EV3 and leave the hub part helpless/nearly brainless on its own.  I am left stunned that in 2021 I accomplished far more in a shorter period of time, and with less effort/research/frustration, starting from scratch learning and installing an RCX and the Dacta Interface B along with their required relatively ancient computers and software environments.

  So this is supposed to be "Power Functions the Next Generation"?  If original Power Functions were like a car - put in gas, insert key and turn, press pedals, go, Powered Up feels like they sent you a kit of parts without a user manual.  It's like the steering wheel and other controls are not-preattached, you have to program the linkages from scratch with no information, and they don't even tell you what a steering wheel is to begin with.  Powered Up is more like Mindstorms Education, but without any tutorials, and much like how EV3 used the same connectors as NXT but confusingly didn't support all the previous accessories (at least initially for some of them).  Will everything in Powered Up ever be fully unified through official channels?  No, at least for the WeDo 'prototype', yet another ill-advised silo project.  The rest remains to be seen.

  LEGO, if you're listening - my number-one ask for Powered Up - documentation/examples for block coding (I really don't want to have to learn Python). My number-two ask, but almost as important - Windows 10 app, or integration with the Spike Prime or Robot Inventor apps.  If I, as someone who has been using computers since the mid 80's, finds this package/support/hardware environment somewhat baffling and crappy, you're doing it wrong.  For the time being, I'll stick to connecting my PU motors to older or third-party control hardware, using the third-party conversion and extension cables you refuse to provide yourselves.

Share this post


Link to post
Share on other sites

@UltraViolet What?  You don't want to learn Python?  Argh!  (Where's that face-palm emoji when you need it?)

Python is EASY!  You can learn the basics in a day or two of just poking around, if you've ever programmed before.  If not, it might take a couple of days to a week.

I'd recommend my book, but a) it's for a VERY old version of Python; and b) it's not very good.  There are lots of good books out now--and you can also use online tutorials.  At least give it quick try.

Metta,

Ivan

Edited by ivanlan9
Lost clause.

Share this post


Link to post
Share on other sites
5 minutes ago, ivanlan9 said:

@UltraViolet What?  You don't want to learn Python?  Argh!  (Where's that face-palm emoji when you need it?)

Python is EASY!  You can learn the basics in a day or two of just poking around, if you've ever programmed before.  If not, it might take a couple of days to a week.

I'd recommend my book, but a) it's for a VERY old version of Python; and b) it's not very good.  There are lots of good books out now--and you can also use online tutorials.  At least give it quick try.

Metta,

Ivan

  I will get around to it eventually.  Once I'm a little more competent programming Arduino, Python shouldn't be too much of a stretch.  Time is the problem, although given my above account, perhaps time better spent.  I will then fold that back into expanding my understanding of EV3 and ev3dev.

  I have young nephews who I hope will soon be old enough to take an interest in any of this.  Perhaps WeDo would be a better way to get them going, despite the limitations.

Share this post


Link to post
Share on other sites
2 hours ago, UltraViolet said:

 Maybe I'm missing something,

Yes, you are. I'm sorry for your frustration, but learning programming is a steep curve and while coding environments come with better or worse documentation (LEGO's nonexistent), no documentation replaces a programming course.

LEGO does provide a complete curriculum for various levels and systems in their educational series - WeDo, Spike Prime, EV3. There you get all the basics taught, I believe.

3 hours ago, UltraViolet said:

How anyone is supposed to pick up this product line uninitiated and accomplish anything is quite beyond me.

Did anyone actually sold you a product with this promise? The LEGO sets your bricks originally came with, come with dedicated applications for controlling their functions. The ability to program these bricks beyond their original set-bound purpose is a boon for users who have an idea what to do with these. I understand it takes a bit of tinkering to figure all blocks out, especially differences between speed-control and power-control blocks, but getting a simple motor to spin and a robot to react to something in its way wasn't a challenge for my 5yo, given, she cut her teeth on WeDo and it's curriculum of robot basics...

I think you need to adjust your expectations about learning curve of tools you take a swing at. Even the easiest programming languages take more than just looking at the menu to get the hang of.  

Share this post


Link to post
Share on other sites
3 hours ago, UltraViolet said:

If I, as someone who has been using computers since the mid 80's, finds this package/support/hardware environment somewhat baffling and crappy, you're doing it wrong.  For the time being, I'll stick to connecting my PU motors to older or third-party control hardware, using the third-party conversion and extension cables you refuse to provide yourselves.

Oh my. Using computers since the mid 80's ... another one of the old farts ... welcome to the club, @UltraViolet! :pir-huzzah2: You should get your tag!!!

Everything you said in your long post (I enjoyed reading very, very much!) could have come from me.

And everything @biasedlogic said is also true: Yes, there are these WeDo WhoDoes and WhatNot curricula. And they are nice. TLG put a lot of work into that.

But: What if you get a single PUp hub in your hands without any of these curricula at your hands - lets say just the one with 4 ports called Control-Plus/Minus-Super-Hub instead of 4IOHub or the like; turn it on, it blinks, you get curious, and then you fire up Google to learn how to "use" it? Curricula matches? No way. Google tells you: Use Python, microPython, NodePoweredUp, it tells you about Spike, about Apps running only on "smart devices" (as if a laptop is not), numerous GitHub repositories, about BLE and LWP3.0 and - so much more ... resulting in confusion, to say the least. 

I think LEGO did not play it out well. Absolutely not. But who cares what I think. They are successfully deploying their PUp stuff. Period. Remember the SCOUT PBrick? Documentation was zill about how it really works. Because no one did the "SCOUT firmware teardown". Such a nice machine. The RCX received that treatment ... but why don't we get this knowledge base from TLG? Maybe because it is expensive - very expensive to do so. User Manuals. Here is an example from a long time ago in galaxy far, far away: I reanimated my ZX Spectrum from 1985. It came with: 1) User Manual. 2) Sinclair BASIC Language Reference. 3) How to begin ...

The good old days, I believe:pir-laugh:

But hey: PUp sells, and that's it.

Best
Thorsten 

 

Share this post


Link to post
Share on other sites
5 hours ago, UltraViolet said:

 LEGO, if you're listening - my number-one ask for Powered Up - documentation/examples for block coding (I really don't want to have to learn Python). My number-two ask, but almost as important - Windows 10 app, or integration with the Spike Prime or Robot Inventor apps.  If I, as someone who has been using computers since the mid 80's, finds this package/support/hardware environment somewhat baffling and crappy, you're doing it wrong.  For the time being, I'll stick to connecting my PU motors to older or third-party control hardware, using the third-party conversion and extension cables you refuse to provide yourselves.

There is a list (tho a few new blocks are missing) with explanations for all of the powered up blocks by racing brick: https://racingbrick.com/powered-up-code-block-guide-full/
Also, I made a video tutorial series: 

Yeah, nothing official but I hope that it's a start.

2 hours ago, biasedlogic said:

Yes, you are. I'm sorry for your frustration, but learning programming is a steep curve and while coding environments come with better or worse documentation (LEGO's nonexistent), no documentation replaces a programming course.

LEGO does provide a complete curriculum for various levels and systems in their educational series - WeDo, Spike Prime, EV3. There you get all the basics taught, I believe.

I think that that is a major point. Children start to learn programming in schools, so they should be able to adapt to the powered up app more easily than older people that never did anything related to programming. But code examples (simple ones that get more complicated) are a must have.
Also, I don't think that there is a real curriculum to teach programming for lego education. It's more of a guide for the teacher but it's not good for self-learning. One problem with the powered up app might be that there is no "specific hardware combination" that you can rely on.

2 hours ago, biasedlogic said:

Did anyone actually sold you a product with this promise? The LEGO sets your bricks originally came with, come with dedicated applications for controlling their functions. The ability to program these bricks beyond their original set-bound purpose is a boon for users who have an idea what to do with these. I understand it takes a bit of tinkering to figure all blocks out, especially differences between speed-control and power-control blocks, but getting a simple motor to spin and a robot to react to something in its way wasn't a challenge for my 5yo, given, she cut her teeth on WeDo and it's curriculum of robot basics...

LEGO is all about creativity and building stuff on your own. I think that people can expect to do their own stuff with lego. Also, powered up needs to be accessible to compete with power functions, especially since there are many power functions 3rd party options now.

 

Edited by Tcm0

Share this post


Link to post
Share on other sites

I guess LEGO wants us to explore, play around, and figure things out like little kids or something.  It seems like none likes to write documentation any more. I do miss pushing around the heavy duty bookcase on wheels with the IBM System/390 mainframe documentation.  That was a couple hundred pounds of muscle building paper docs.

Share this post


Link to post
Share on other sites

Okay, I'll bite...

  Perhaps the 5 year old could figure it out when presented with a ready setup in front of them, and prior guided experience with WeDo.  This was not my point, which I thought I illustrated clearly, but thanks for telling me I'm dumber than a 5 year old.

  LEGO made the software and released it to market, not me.  When a global company writes and promotes a flagship software package (Powered Up is supposed to be the central unifying app for the entire platform), and then puts their reputation on the line by saying people of any age and experience level can jump right in and make everything work out of the box and have fun doing it, you generally expect at least some basic guidance.  The text of their glossy website singing the praises of the platform clearly implies coding is a promoted option, and that everything is supposed to be easy for "builders of all ages", which also implies all knowledge/skill levels.  They didn't say there would be no learning tools, or say you should have had taken coding in early grade school, the closest of which I had access to at the time in the 80's was 10-line elementary BASIC programs on Commodore PETs, which was the best my school could come up with, and they barely explained how the commands actually worked.  I learned more on my own at home about BASIC program coding than they were ever going to teach me.

  Even my technical high school only taught Pascal and Turing on wildly outdated computers.  I actually found a compiler bug in Pascal which could not be worked around, but even after eloquently proving it to the teacher, a Computer Science grad, she didn't believe computers were fallible and docked me a lot of marks on my final major project.  Who was dumb in this case?  I had a choice between that school, and the only other one in the area which 'proudly' had no tech program ("tech schools are for dummies", and most of my community shared that outrageous sentiment at the time), and at which the only computers in the building were the CEMCorp/Unisys ICON.  (Look it up.)

  My school also had a CNC milling machine in the machine shop.  This was the first year after a retrofit which finally no longer required 'printing' your CNC code to a punched paper tape, spooling the resulting tape into the machine's mechanical reader, and then praying it behaved itself.  Rather now, it was hardwired to the coding entry computer by serial cable.  They always used wood stock in the machine, primarily because it had a habit of going haywire, the reasons for which were never properly investigated.  The shop teacher was barely qualified to even know what a computer was, and always spoke in terms as if he was using a typewriter, and he could only two-finger type.  He also believed computers were infallible, so if your code didn't work as clearly expected, it was always your fault.  On the final exam, the machine was acting so badly that half the students never even got to try running their programs.  The people who tried and had the machine puke got massively docked marks, the others who never got to try because of all the time wasted were given a failing exam grade.  No disputes were entertained.

  The only thing really worthwhile I had access to in the final year of high school was an ancient Allen-Bradley PLC, the theory of which I had to research almost entirely on my own and without the benefit of any manuals.  They basically just told me, "Well, if you're interested in that, be my guest."  (This was at least a step beyond the print shop, which had a machine the size of a small car using single-sided 8" floppy disks to drive it, but they didn't even run any classes there any longer.)

  My family never had the money in childhood for LEGO electronics, and it was only in recent years in my 40's that I finally had enough disposable income to start making up for lost time.  It is only in the last couple of years that I've gotten hold of various generations of LEGO programmable gear and started trying to put aside some of what little free time I have to learn how to use it.  When I was a child, barely anyone even had a computer at home, the public internet was far in the future, and 'portable' cell phones were a numeric handset with a massively heavy battery/electronics brick 2/3's the size of a brief case.  Most people didn't even have a VCR yet.  No one was thinking about teaching coding to kids, nor generally did they have the means.  Given the opportunity, hands-on technology learning in early grade school would have been glorious to me, and probably taken my life in a completely different direction, but it simply wasn't a thing back then.

  So, ya, these days the tools are out there to learn, but you have to know you need them, and most of the helpful content comes from the community.  Plus these tools are not very helpful to you until you get the hardware in your hands to actually try with, as I just finally did recently.  Iconographic software is fine, as long as it is illustrative.  The emergency instruction card on airplanes has no written words on it so that anyone speaking any language can understand it, and everyone does understand it at a glance because the explanation is well illustrated.  (Why on earth in Powered Up is a variable represented by an image of a cardboard box?)  Perhaps a better comparison though would be expecting someone to learn on their own how to bake, but giving them no sample recipes, no explanation of what the key common ingredients are, their amounts and what role they play in the mixture, nor the sequence and timing of the preparation steps.  Powered Up is presented like it's going to be a "Learning How to Bake, For Dummies" book, but when the book arrives, you find all the pages are blank.  And that's not even getting in to the compatibility matrix headaches everyone is complaining about.  Should I have expected to need to purchase and learn other older LEGO Education Division products in the past (often not available to the general public) in order to gain the necessary fundamental understanding of how Powered Up coding works?  From what I've seen now with my first time, first hand experience, perhaps the answer is yes.  But that is most definitely not what is being advertised to the public.

  There are plenty enough people out there of 'all ages' who found their introduction to Powered Up rocky and not what they expected given LEGO's sales pitch.  There are countless comments to this effect throughout this forum and other avenues of complaint on the internet.  I bought the Technic Hub alone, as is available for separate sale on LEGO's store site (where they recommend the Powered Up app for what will obviously be custom builds if you're buying a hub outside of a set).  I purposely took the approach of coming at this from the standpoint of a typical member of the public.  My experience sucked, even with community resources, and a fairly technical brain.  I am not alone in that, and LEGO seems to generally not want it to be that way, but let's allow LEGO to speak for themselves on this subject.

  In another thread, when I was describing in what I thought was sufficient detail how to make a PF electrical modification, another member admitted they were still confused.  My response was to carefully describe it again in even more thorough and careful language and to provide numerous photos for illustration.  Should I have just told them, "Ya, you really are thick as a brick"?  As someone who has been a teacher, a tutor and a volunteer organization crew leader, many of my pupils have entered their subjects or tasks with little to no background, and it was my job to encourage them and coach them in such a way as to quickly make them productive in their endeavors and come away from the experience feeling it was rewarding.  I have also worked extensively in retail customer service, where people present with vastly ranging skill/knowledge levels and in which it is my job to provide the necessary knowledge and supplies for their project without criticizing or judging them, whether or not they 'should know'.  Let's stick to helping one another on this forum for the better of everyone, no matter what your personal opinion or perceived understanding of anyone's abilities or life story is.

Share this post


Link to post
Share on other sites
1 hour ago, dr_spock said:

I guess LEGO wants us to explore, play around, and figure things out like little kids or something.  It seems like none likes to write documentation any more. I do miss pushing around the heavy duty bookcase on wheels with the IBM System/390 mainframe documentation.  That was a couple hundred pounds of muscle building paper docs.

  My father has owned and operated a mainframe software company since the mid 80's.  He'd sure know what you're talking about.  I occasionally did some hardware maintenance work for the company, but programming, particularly in the mainframe environment, never really grabbed me.  It's unfortunate, because no one even teaches that stuff any longer.  Anyone with that knowledge and experience is now in demand, as much of the 'old guard' has retired.  It's gotten to the point now that mainframe is even running in emulation on production systems, but there are still large corporate mainframes in service running original code my father wrote back in the late 70's/early 80's when he was working for IBM.  One of my earliest memories as a child (couldn't have been more than 5 or 6 years old at the time) was visiting my father at the IBM facility and seeing the reel-to-reel data tape machines as large as refrigerators running in service.  He still owns in storage a compact desktop reel-to-reel model from much later which attached to a PC with an ISA card.

Share this post


Link to post
Share on other sites
On 3/25/2021 at 3:47 AM, kbalage said:

@Lok24 & @Daedalus304 I appreciate that this is the train section of Eurobricks so most people here are focusing primarily on LEGO trains and would like to see features implemented for them. But on the other hand I think if we are trying to raise awareness and push TLG to implement features, that's more successful if it has a potentially high user base and it is useful for stock sets, not only MOCs.

What you are trying to achieve is very easy to do through the app at the moment, using the controller as an input. I agree it would be very convenient to be used without the app, but adding a single restrictive feature for a very specific setup with e.g. a custom firmware is a lot of work and would be used by a relatively small amount of people (compared to the amount of customers who bought PU-equipped sets).

Off the top of my head, sets like the Carousel and the Vestas Wind Turbine in the old PF days would also, with Powered Up, need the "technic" motors to be treated akin to the train motor. For current Powered Up stock sets - Ok, the Crocodile. They had to make an app profile for that to work properly where in the old system you click a couple plugs together and you're off.

Being able to use a controller as a control device for an app completely misses the point of wanting a controller. LEGO produces a controller for Powered Up that has a lot of really cool things about it - I would love to use LEGO's products. I don't want to have to drain my phone battery to run a train. It's a shame that trying to use LEGO's Powered Up controller to control LEGO's Powered Up Train set is an obnoxious step back. It's a shame that for the first time in LEGO's history, they've switched to a motor and electronics system that has no inter-connectivity with the older LEGO power/motor systems. It's a shame that LEGO's decided that if you want to use their hardware, you're pigeonholed into one single use type - Power Functions had two types of controllers, one for each functionality. They're clever enough to come up with rotating button sets for the PUp controller but can't include some sort of mode switch between "bang bang"  mode and a proportional control option? Augh.

It's also a shame to hear even just the insinuation that LEGO may currently be in a mindset of "Play our way". If the only sort of compatibility or use that they care about for this product is specifically what they outline in their sets, I'd say that feels quite uncharacteristic of them. I'm aware that the app allows for custom control programming, but for the average user, let alone the average child, it's inexplicable. The vast majority of people who play with LEGO don't do it because they want to spend hours on end staring at a computer or phone screen learning how to program. And if that's really LEGO's answer to somebody ages 4-99, that they need to figure that out, I honestly don't think the cool new potential of the Powered Up system is worth it.

If this "you have to program it yourself" model is how LEGO wants to do it, fine. At the very least make it easier to understand. Put in some sort of intermediary programming in there, that's easier to digest than the full "Okay kids and grandparents, it's time to learn about variables and motor direction increments". Make it possible for people to share the Powered Up control programs they've made with each other so that someone new coming in doesn't have to reinvent the wheel for every single model.

You know what else would be a great quality of life fix? Let the hub remember the control profiles used with it. If someone goes through the rigmarole of setting up a control profile and then uses it with a hub, the hub can and should save that and then use that same control profile when a LEGO Powered Up controller connects to that hub. It's an easy fix. It's all software. The Hubs get updates from the app anyways. 

I would love to be able to love LEGO's new Powered Up system. I loved PF, despite the issues other people have. I am not, in fact, a person who generally complains at all about LEGO or its business practices. I get that trains are a niche, I don't think it makes sense for LEGO to invest a lot in train specific stuff and I don't whine about it if the new train stuff isn't to my taste. This new Powered Up system is, component for component, around 2-3 times as expensive as Power Functions was. That's a tough pill to swallow, it's hard to justify, but you know what? If it worked well and was even more feature rich than PF, I'd take it. But this whole Powered Up/Control+/WeDo nonsense is confusing and for all the advanced stuff that it can potentially do, it's a massive step back in so many basic fundamental ways that seem like they'd be nearly trivial to fix if the company cared at all.

That said - if I am being unreasonable with my expectations (Those being set by LEGO's own previous product releases, mind you), and LEGO really has no interest in providing a product that'll do those things... ok. I'll go find a product that does do those very basic yet essential things. Chances are it'll be cheaper than what LEGO's charging, too. And when I'm at shows, and people ask about the motor system, frankly, it's going to suck to have to tell people "LEGO's current power system is missing a lot of good basic features and is kind of a mess, but here's another brand that works great instead". I think that's a conversation that a lot of people are going to be having at conventions and shows soon. I've been hearing good stuff about Bluebrixx's electronic component offerings - perhaps it's time I go learn about that.

Share this post


Link to post
Share on other sites

Hi @UltraViolet,

just a short answer, perhaps some hints.

LEGO PoweredUp components  are not sold to learn programming.
The set to start learning how the blocks work is the "Boost" set 17101 with more than 60 lessons.
And this is for children who might not be able to read and understand programming instructions ! 
But they can use a smartdevice with building instructions, lessens, explaning videos on so on.

And that's all included  in the Lego Boost App.

Perhaps this explains a lot. I was around with mindsorms and boost sets  on exhibitions for years.
The childred (say 5-10 years)  could try to move the robots directly on my stand (without booking an hour or two for a "lesson"), and all of them(!) were able to write a program in less than two minutes to the move the robot  in a predetermined manor, that means solving a challange given by me.

 

Edited by Lok24

Share this post


Link to post
Share on other sites

But they sell the Powered Up components also as single parts. So what would you do with these, when you can’t do anything with them without programming? 😉 You can’t use a pre-made ready-to-use profile in that case.

The Technic Hub doesn’t even work directly with the hardware remote. 

And as they discontinue Power Functions this is now the way to go for motorized models. So it shouldn’t be that hard (and frustrating) to get it up and running.

I do software development / coding for a living and still struggled to get into Powered UP. 

Not because I had problems to identify how loops, variables worked. 
I was even familiar with the blocks-with-icons concept, as I used the „Scratch Junior“ app to teach my son programming concepts before he is able to read, which is where Lego copied the concept from. 

But not all of the icons are self-explaining in a way that you wouldn’t have to spend days with frustrating trial and error sessions. 

So I don't think it’s too much to ask for a proper description of the blocks from Lego itself. 
 

After I run into Racingbrick's website, my problems were solved. But the fact that someone else had to build this instead getting it from Lego, is very irritating. 

Share this post


Link to post
Share on other sites

@Thyraz

Yes, it's not self explaning and LEGO doesn't explain the blocks.
But in summary there are many new options with the new motors and other sensors.

There als solutions for most of the requirements:

loading a program permanently into the Hub
extention cables
microproontrolers instead of smartdevices
adapter cables to PF/9V

But sadly not by LEGO..... 

Share this post


Link to post
Share on other sites
16 hours ago, dr_spock said:

That was a couple hundred pounds of muscle building paper docs.

And: It was a very nice read ... only after things turned very ugly of course - and you simply had to revert to the books (and the big mouthed "I don't read manuals" statement was never ever said - because you suddenly realized it was all nicely written up, sometimes it came with "is discouraged" - "may cause unpredictable behavior" on the side ... :pir-sweet:. I can't even remember how often the books said: Don't do this (what I did).

But the very best error I am encountering from time to time now on my 1985 ZX Spectrum is: "<line> X:C : Nonsense in BASIC". This tells you, that you are not there yet - and very, very clearly.

 

6 hours ago, Lok24 said:

But sadly not by LEGO..... 

True.

Best
Thorsten 

 

Share this post


Link to post
Share on other sites

I found this today:

Boost programming block decoder | Brickset: LEGO set guide and database

  It mentions an official so called "crib sheet" for the Boost coding blocks, which for some reason was only given out by request if you contacted LEGO Customer Service:

http://uploads.brickset.com/docs/legoboostcoding.pdf

  This sort of thing would have helped me out loads in starting out with the Powered Up app, as the majority of blocks are the same, and the descriptions are simple.  The great irony with Boost, however, is that for the sake of entry level learning, there are a large number of what I would call 'macro' blocks which perform predefined functions that for the most part are fairly clear what they imply.  While this would be very useful for novices, or just playing around with a prototype build, none of these are offered in Powered Up, although if you knew the content of these macros you could 're-build' them as custom blocks I suppose.  But you can't know the content because they don't tell you, nor offer any examples.  The PDF document ends at a page which appears to show the document was unfinished, and that they intended to eventually publish some code examples.  Perhaps this was why they would only give it out when a customer called in confused.  In any case, how hard would it have been to make a portion of this document viewable in the Powered Up app, or to put a question mark button or hover text help on each block icon?  The posting on Brickset about this was from 2017, but we're now in 2021 and apparently nothing has yet changed.

  I installed the Boost app just to take a quick look at it.  You can't do anything at all with it unless it sees a Boost Hub connected, so unfortunately (for now) only the 'crib sheet' will be of much assistance to me.  I might consider buying the set for one of my nephews though.

Share this post


Link to post
Share on other sites
14 hours ago, Daedalus304 said:

Being able to use a controller as a control device for an app completely misses the point of wanting a controller. 

Actually you don't use the controller as a control device for the app, you configure the behavior of the controller in the app to control motors/lights/whatever you feel like. This makes the controller a highly customizable physical device to control even complex stuff with a press of a button. This does not mean that the controller should not have basic functions without the app, or should not be in fact configurable and usable without the app, but I don't think the approach "completely misses the point".

Let's take BrickController 2 as an example. A fascinating app that enables you to control tons of different LEGO and 3rd party hardware, but you need the app for configuration and to act as a bridge. Any hardwired setting for the LEGO controller like the default train behavior is very limited. Configurability is key, and you need an app for that considering the high variety of options. Once it's set up the ideal would be to be able to use it without the app, but I hope this will come once the hubs will able to run standalone code.

 

There was a lot of discussion about PU and its shortcomings, or how TLG should have handled the transition. I think (and these things are my personal opinion, nothing confirmed by TLG) there were 3 main reasons causing the difficulties we see today:

  • Originally it was not meant to be a replacement for Power Functions. STEM/STEAM is a popular buzzword nowadays, so TLG wanted to make every LEGO electronics programmable. This means no simple controls, everything app and code-block based. Control+ for the ones who are fine with the stock set and stock controls, Powered Up for the advanced tinkerers who are already familiar with Boost and want to implement things they learnt there in other (mostly Technic) builds. 
  • The development of PU started at least 2 years late considering the planned phase out of Power Functions. 
  • They wanted to have a unified hardware platform for all the electronic products, and they chose WeDo 2.0 for this purpose. This is not necessary a bad thing as compatibility is great, but with this decision a lot of core features of Power Functions was lost.

Because of these things PU was introduced with the stock profiles in the app for the non-Technic sets and Control+ for the Technic sets. Then came the free coding area without documentation for the advanced users, still nothing for the people willing to switch from PF but having simple controls. A typical indication of the intended target audience was the implementation to control PF with the PU color & distance sensor, that was really high level geek stuff impossible to decipher without a deep dive into the PF IR protocol. 

But the fan community had a different opinion - people still want a simple to use replacement for Power Functions. I think after a while this was heard and understood, but at a huge company like TLG changing plans is like navigating a cargo ship, whatever you try to do at the rudder will only have a visible effect much later. 

Changing Powered Up from the advanced Boost 2.0 tinkerer platform to something easier to use than Boost is not an easy task. We can see the first baby steps with the double rounded steering and throttle control blocks, but further simplification will be needed. Running some code on the hubs is again required to create some configurable standalone functions. All these things require awfully lot of development time, and considering that Power Functions is gone already leaves the average customers without an easy to use option.

At this point this is what I always suggest to folks who ask me what system to go with - if you need simplicity, by Power Functions parts. 42095 is still available, and you can buy most pieces on the secondary market (except the servo which became shockingly expensive). If you want to use PU hardware and/or advanced remote control functions and you have zero coding experience, then get familiar with Boost, learn to use stuff there, and then you'll be able to do most things in Powered Up as well. If you are looking for a LEGO set with coding and robotics, then 51515 is the way to go (which also has an awful documentation btw). 

And meanwhile if there's a 3rd party company who'll be able to provide a good alternative solution might be the winner of the whole situation...

Share this post


Link to post
Share on other sites
1 hour ago, kbalage said:

Actually you don't use the controller as a control device for the app, you configure the behavior of the controller in the app to control motors/lights/whatever you feel like. This makes the controller a highly customizable physical device to control even complex stuff with a press of a button. This does not mean that the controller should not have basic functions without the app, or should not be in fact configurable and usable without the app, but I don't think the approach "completely misses the point"

That sounds awesome, actually, and to be honest it's the first I've heard of it. I haven't seen or heard anyone else talking about that, either. I'll see if I can look into it and figure out if/where there's documentation for it - if you have any pointers on where to look, that would be awesome.

I really do think a lot of the stuff that PUp brings to the table is really cool and when it first showed up I was looking forward to it hitting a maturity where it would be a no-brainer to switch to, but PF got killed off before PUp hit that point - oof.

Certain PF items like the L-Motor are quickly becoming very expensive and hard to find in the US, so the secondhand market is a temporary bandage on that at best. I really hope TLG can smooth out and fix their issues soon - I really would prefer to stay "on brand" for motors. I'll look into the controller thing you mentioned - it doesn't solve the big problems, but it's a good feature to know about.

Share this post


Link to post
Share on other sites
2 hours ago, kbalage said:

At this point this is what I always suggest to folks who ask me what system to go with - if you need simplicity, by Power Functions parts. 42095 is still available, and you can buy most pieces on the secondary market (except the servo which became shockingly expensive). If you want to use PU hardware and/or advanced remote control functions and you have zero coding experience, then get familiar with Boost, learn to use stuff there, and then you'll be able to do most things in Powered Up as well. If you are looking for a LEGO set with coding and robotics, then 51515 is the way to go (which also has an awful documentation btw). 

And meanwhile if there's a 3rd party company who'll be able to provide a good alternative solution might be the winner of the whole situation...

And this is the most helpful advice - for years - posted, as far as I am concerned. In addition to all the information, you provided.

Thank you very, very much @kbalage. I really appreciate your input; also for writing it up so nicely :pir-thumb:

What is always interesting to learn is that a huge company, who has all the funds in this world available, plus, is so much in touch with the community, could not foresee or anticipate that people want it simple - as an option. Young or old, there is no difference. When the internet-connected-self ordering-high power - super designed - coffee maker does not deliver a nice hot cup of coffee after a short night in the morning - as did the dumb, one-button, disconnected, but reliable steam driven coffee maker did, things will rather sooner than later turn ugly. Kids or not, curricula or not: There is a motor, a coffee-maker type thing, and a button-type thing. BLE or not, it is as in THE movie: "Yeah, switch me on". And then see some action. Just my 2 cents.

Again. Thanks a lot!!!

Best
Thorsten     

Share this post


Link to post
Share on other sites
7 hours ago, Daedalus304 said:

That sounds awesome, actually, and to be honest it's the first I've heard of it. I haven't seen or heard anyone else talking about that, either. I'll see if I can look into it and figure out if/where there's documentation for it - if you have any pointers on where to look, that would be awesome.

As usual there's no documentation unfortunately. There's a block for the remote that can configured to use side A or B. The output value is either numeric (1 for +, -1 for -, 127 for the red button), or if you add it to e.g. an EqualOperator block, then the "equals to" field shows +, -, red button, or the green button (that one does not work yet). This way you can use the buttons on the remote to trigger any kind of action, like this:

image.png.820712fd94e12fc7382c9896aff05c2a.png

Here if the value for the plus button on the A side of the remote changes from false to true (so when it is pressed), then the motor on port B starts to spin at 50%. This is a very simple example, but you can build complex conditions and the buttons can literally trigger anything.

Of course the logic comes from coders' perspective so there's no single simple "do this until the button is pressed" block (hopefully there will be), but adding a while loop monitoring the button status can solve things. 

Share this post


Link to post
Share on other sites
38 minutes ago, kbalage said:

Of course the logic comes from coders' perspective so there's no single simple "do this until the button is pressed" block (hopefully there will be), but adding a while loop monitoring the button status can solve things. 

Idk. One of the problems that I see is that there are too many special blocks in the motor category (I feel like 5 do almost the same and that functionality could be achieved with other blocks) and I hope that that won't happen in the other categorys.

But you can check if a button is beeing released. Simply use the block that you used but add another "is equal" block above the "is equal" block in your program. You can set one side to 0 (basically a NOT).

Share this post


Link to post
Share on other sites
6 minutes ago, Tcm0 said:

But you can check if a button is beeing released. Simply use the block that you used but add another "is equal" block above the "is equal" block in your program. You can set one side to 0 (basically a NOT).

True, but that's again another line of code, meaning for the 2 statuses of a single button I already needed to create 2 lines of code. I could also do something like this:

image.png.89f4531dec20a376d6a3a85175215524.png

But this is still way too complicated for an average person with no coding experience to figure out. A more user friendly approach would require a totally different interface, probably starting from the hub's outputs:

  1. Select port A, then choose a controller you added previously (virtual or physical) from a list, e.g. assign port A to controller buttons on side A. Not only the + or the - or the stop button, all of them.
  2. Then select the behavior for the motor, is it bang-bang control, gradual speed control, or servo control.
  3. And basically that's it, with 3 clicks you have gradual speed control for your train, or bang-bang control for your car, or servo steering for your car, no coding knowledge required at all.

If someone would prefer to fine-tune the settings or add advanced functions, then with another click you could "reveal" the code behind your settings and tweak accordingly, or use the blocks as I did above to set up a custom code.

Share this post


Link to post
Share on other sites

What I also miss for beginners is the possibility to set a relative speed increase/decrease for the motors.
There are so many icons in this category but something simple like that is missing.

If you want to create something like the basic behavior of the train motor (decreasing / increasing in steps) you already have to use variables.
This might also be too complicated for average users but seems like a very typical task.

 

edit: @kbalage

Your idea for a generic block is exactly what would be needed and should be already in the beginners palette.

Edited by Thyraz

Share this post


Link to post
Share on other sites
31 minutes ago, kbalage said:

A more user friendly approach would require a totally different interface, probably starting from the hub's outputs:

  1. Select port A, then choose a controller you added previously (virtual or physical) from a list, e.g. assign port A to controller buttons on side A. Not only the + or the - or the stop button, all of them.
  2. Then select the behavior for the motor, is it bang-bang control, gradual speed control, or servo control.
  3. And basically that's it, with 3 clicks you have gradual speed control for your train, or bang-bang control for your car, or servo steering for your car, no coding knowledge required at all.

If someone would prefer to fine-tune the settings or add advanced functions, then with another click you could "reveal" the code behind your settings and tweak accordingly, or use the blocks as I did above to set up a custom code.

That comes pretty close to examples (which I think we can agree are really needed). Error messages would probably help, too. Currently the app doesn't tell you if you selected the wrong port or if you tried to read the position of a sensor without position sensor. I don't think that a "simple designer" would be necessary if there were simple examples and error messages.

25 minutes ago, Thyraz said:

What I also miss for beginners is the possibility to set a relative speed increase/decrease for the motors.
There are so many icons in this category but something simple like that is missing.

If you want to create something like the basic behavior of the train motor (decreasing / increasing in steps) you already have to use variables.
This might also be too complicated for average users but seems like a very typical task.

The touchscreen sliders can be adjusted to "keep the position".

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.