Recommended Posts

@Lok24 I think the modern Hornby train sets have a system of sending both power and data through just the two rails but enabling separate control of multiple trains on the same rails. Not sure how that would work with two way comms though, like for sensors.

Share this post


Link to post
Share on other sites
25 minutes ago, allanp said:

I think the modern Hornby train sets have a system of sending both power and data through just the two rails

Yes, the system is 40 years old....

But it sends only in one direction (controller to train), and it needs a decoder in every train.
And these decoders have to be configured (with an address) before using to select only their data. (so each motor has a dedicated address).
You must have a list of all your trains and addresses... that's not what you want for your LEGO motors.

And since  2007  there is also a back channel, which sends data back, but while this is done all other traffic on the tracks must be interrupted.
And you need special receivers to filter these messages (only 8 Byte)

It is possible, but not that simple. And we are talking about boosters to support multiple trains, 3A each. 

Edited by Lok24

Share this post


Link to post
Share on other sites

Hey Team, has anyone tried 3d printing the rc train motor wheels in a conductive metal? if so can you point me in the right direction?  Cheers

Share this post


Link to post
Share on other sites
21 hours ago, Lok24 said:

Yes, the system is 40 years old....

But it sends only in one direction (controller to train), and it needs a decoder in every train.
And these decoders have to be configured (with an address) before using to select only their data. (so each motor has a dedicated address).
You must have a list of all your trains and addresses... that's not what you want for your LEGO motors.

And since  2007  there is also a back channel, which sends data back, but while this is done all other traffic on the tracks must be interrupted.
And you need special receivers to filter these messages (only 8 Byte)

It is possible, but not that simple. And we are talking about boosters to support multiple trains, 3A each. 

Ah okay, good to know.

Been trying to figure out what would be possible config/programming wise with a simple, even monochrome LCD screen for CC+, though of course a nicer looking color screen or even a touch screen would be much better. Can we do only configuration or are code blocks doable? I'm thinking it could be kinda node based, you just select what input goes to what output and configure the blocks. Also trying to cut down on writing massive walls of text so here's a few ugly looking sketches, some screens are programming an excavator, others like the sequencer are for programming a sequential gearbox. I think I spent too long on this!

ccplus_idea.png

Share this post


Link to post
Share on other sites

I wonder if we could have a whole bunch of preprogrammed blocks. For example, for an automatic gearbox we know we need to have a speed measurement from the main drive motor, so in the automatic gearbox block we can select which motor is the main drive motor and it would then know to measure its speed, and also have some control over it. We also need to know the position of whatever the control is for the accelerator, so we can select what is that control. We can select the number of gears in our sequential gearbox, the servo which rotates the cams to change the gears and the number of degrees of rotation needed for each gear change, we can also select if we have neutral and reverse gears, and where the servo needs to be rotated to to reach those gears, and which controls we want to use to get neutral and reverse. And bingo, with a single code block we have a fully functional automatic gearbox. The code block would be an actual block of code with everything already programmed, you only configure it to your needs, it would automatically work out everything for us, like it would always start in first, and shift down to first when we stop, and shift up gears if we keep the accelerator control on full, and shift down gears when the motor slows down but the accelerator is still maxed indicating a hill or heavy load, and slightly reduce motor power during shifts, speed match the motor for smooth shifting (the code block would allow you to set the ratios) and allow the shift to fully complete before making another shift and so on. Behind the scenes it could be as complicated as we want, but on the surface it only needs an easy to do configuration from us.

There could be bespoke code blocks for all sorts of things, like a code block for steering multiple axles, where we can set the servos for each axle, define how many steered axles we have, define what is the main steering control and define what button should be used to switch between steering modes as well as select what preprogrammed steering modes we'd like to have.

There could be another code block for RC pneumatic creations, where we can set how many circuits there are, the servo limits in either direction as well as a bias towards one way or the other, weather or not the servos should move linearly or logarithmically, an additional output that runs maxed out whenever any of the servos are at a non central position (for automatic control of a compressor) and an additional input for a pressure sensor (for if you want to control a compressor using a pressure sensor instead).

Of course you could always try to configure these functions yourself using the more generic code blocks but having a whole bunch of these advanced and bespoke, preprogrammed blocks would really help to make creating custom programs for your MOCs a lot easier. And I think that not only is true for my CC+ idea (as they would come preprogrammed into the CC+ ready to use from day one) but also for PU in it's current form.

What other bespoke code blocks would you find useful for any MOC you could think of building? Maybe one for controlling a manual sequential gearbox using two buttons for up/down shifts, or a block for a manual gated gearbox to mimic a stick shift (where you can select different gears directly by pressing different buttons) which would also be useful for multifunction gearboxes, or maybe a limits block which lets you set limits on the number of motor rotations due to string length on a winch drum or a linear actuator, or a load sensor block (could be more generically called a disabling block) which lets you disable different motors/outputs/inputs in certain directions when a given an input either from a sensor or some other part of the program. 

Share this post


Link to post
Share on other sites

That might all be difficult cause the reaction depends on BT an the time to send and receive commands.
This can be avoided by executing your blocks within the Hub. Exactly what Pybricks does and with LEGO VM is announced.
I posted such "configurable code blocks" from PU App before.

And all these blocks will contain dozens of errors, so your device must be updated and needs internet access.
Also for new types of devices. And additional blocks.

You are inventing a smart device ;-)

Share this post


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

That might all be difficult cause the reaction depends on BT an the time to send and receive commands.
This can be avoided by executing your blocks within the Hub. Exactly what Pybricks does and with LEGO VM is announced.
I posted such "configurable code blocks" from PU App before.

And all these blocks will contain dozens of errors, so your device must be updated and needs internet access.
Also for new types of devices. And additional blocks.

You are inventing a smart device ;-)

Yeah I guess so :laugh:. But a bespoke smart device that comes in the box that doesn't need updating (hopefully!) and with a bunch of built in physical controls. I would hope that it wouldn't come with a bunch of errors in the code, surely they should fully test this stuff before release? But my thinking here is that it would still have Bluetooth and therefore still have connectivity to the internet. However, while it's always there as an option, it's not as reliant on it as it is now. 

The sets that come with CC+ (the most expensive ones that otherwise would have come with multiple hubs) would have in their printed instructions a complete, step by step guide on how to program your model on the CC+ itself. While you have the option to download a premade program, you don't have to because the book would guide you through programming it yourself. This would also help with providing documentation and helping the customer understand how to do it. So no need for internet connection for new sets, and no need for a smart device to create your own.

But sure, things might still go wrong, at which point you would usually call customer service. They can then guide you through the process of allowing them to connect to your CC+ and verify the issue and either fix it for you in most cases or replace it. The optional app allows you to download premade programs and update your CC+ if you want to but it's optional. It would only ever be strictly needed for customer support to fix unforeseen problems. So it's all still there if you want or need it, but the reliance on it to make it a complete and usable product is vastly reduced, and it should still work in its current form and is still programmable long after it is no longer supported by Lego or third parties or your smart device is no longer compatible, much like the original control center and code pilot today, all while not hijacking the use of the smart device you paid for.

In terms of the delay to send and receive commands via Bluetooth, is that not the case as it is now, maybe not with pybricks running on the hub, but certainly with PU as it is now? We still have to send and receive data between the hubs and the smart device don't we? Also, for programs/models that don't require feedback from sensors/encoders, would it not actually be a bit quicker, maybe about the same as pybricks, as all the program is executed on the CC+ where the controls are, and it only needs to send commands to the BLE receivers? I could be wrong on that though, as well as everything else! 

In any case, if you were told that this is all going to happen, with the CC+ programmable physical controller being developed as part of a complete overhaul of PU (not a whole new system, more or a revamp to try to address everyone's concerns with it), including buggy motors in an L-motor format, removable leads from the motors, micromotors and so on, what would you add/remove/change to make it a more enticing prospect to you? What really concerns you about it that we could try to address? I'm not trying to come up with something just to please me, I want us to "fix" PU together! However you must bear in mind everyone's concerns and wishes. You might not be concerned with PU being so dependent on your smart phone/tablet to be a complete package but many other people are. I'd probably be happy just going back to the simplicity of PF but having better proportional remotes, but many people like the more advanced capabilities of PU. Maybe I'm trying the please everyone and maybe it's not possible but not trying feels like giving up before you begin.

 

Edited by allanp

Share this post


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

what would you add/remove/change

wrote that already, extension cables and a simple remote (like the existing one) for proportional control, LEGO VM

 

Share this post


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

wrote that already, extension cables and a simple remote (like the existing one) for proportional control, LEGO VM

 

Well that's good cos my PU overhaul would have all that :grin:

Share this post


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

You missed the word "simple" ....

 

Trains would still have their remote, or do you want a simple remote with proportional joysticks? The train remote could be upgraded to have those though. The sticks would stay put acting like the accelerator lever on a train, but there could be a place to allow you to add a rubber band or a soft shock absorber to make it spring back to center.

Edited by allanp

Share this post


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

or do you want a simple remote with proportional joysticks

Sure, why not? You only have to deactivate the retaining spring.

A simple remote, two sticks, turnable, two knobs (or 4...)

By the way: most of my MOCs (the majority) don't use any remote. And no gears at all. They run autonomous, like a simple battery box or a shuttle train, and many others.
With your solution some important functions (for my use) are simply impossible, load control i.e.

 

 

Share this post


Link to post
Share on other sites
11 minutes ago, Lok24 said:

Sure, why not? You only have to deactivate the retaining spring.

A simple remote, two sticks, turnable, two knobs (or 4...)

Well yeah that's what I mean, we could keep the existing simple train remote but upgrade it to have proportional joysticks that stay put (like train levers do) but with a place to add a return to center spring or rubber band.

11 minutes ago, Lok24 said:

By the way: most of my MOCs (the majority) don't use any remote. And no gears at all. They run autonomous, like a simple battery box or a shuttle train, and many others.
With your solution some important functions (for my use) are simply impossible, load control i.e.

not everything is based on CC+, that's only intended to be a part of the whole PU revamp. In fact, every set, including the most advanced RC sets, would require a simple battery box as the hubs would be replaced with BLE receivers, which you can stack as many as you like onto a simple battery box, like how PF was but with two way communication. I'd also want to see a simple switch introduced, again like we had with PF and even 9V. Can you explain what you mean by load control? Also what other functions are impossible, maybe we can make them possible? I really want to come up with something with the potential to please everybody.....even if it is just for the lulz and Lego ain't interested!

Edited by allanp

Share this post


Link to post
Share on other sites
21 minutes ago, allanp said:

Can you explain what you mean by load control?

Setting a speed in rotation/sec, which then is independent from the load.
For example: a train which doesn't  (like the the PF ones) starts with step 3 and then is much to quick, but that keeps a constant speed. Or cranes....
I never would spend money for such a controller (nor a technic-set for more than 100€ ).

 

Edited by Lok24

Share this post


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

Setting a speed in rotation/sec, which then is independent from the load.
For example: a train which doesn't  (like the the PF ones) starts with step 3 and then is much to quick, but that keeps a constant speed. Or cranes....
I never would spend money for such a controller (nor a technic-set for more than 100€ ).

 

If that's how it works with PU now then I don't see why it wouldn't work with the altered train remote. Instead of buttons it's proportional levers is all. The train hubs would be programmed to try to match the motor speed to the lever position. Maybe that could be done with way more steps, like 128 or something, instead of just 10 button presses? 

Share this post


Link to post
Share on other sites
11 hours ago, allanp said:

If that's how it works with PU now

I think It only works if the program resides in the hub, as described before.. There are no steps, the  setting is in °/sec.
Each type motor has individual values
No need for a complex remote at all.

 

Edited by Lok24

Share this post


Link to post
Share on other sites
On 8/11/2023 at 11:33 AM, Lok24 said:

Exactly what Pybricks does and with LEGO VM is announced.

What is Lego VM? Is that something TLG announced or is it something 3rd party (that you envision)?

I agree that @allanp's solution is becoming like a smart device / app. I actually did start coding a controller app a few years ago, there are tons of customization options to consider. So It would definitely need upgradability, you can't just think about every possible use case and parameter in advance.

What I've actually been thinking that would be a very Lego-like thing (and that TLG should have done things like) is that if the PU app was properly developed and would be actually used for official sets instead of the Control+ profiles. That would mean

1) The GUI items (controls) used in Control+ profiles, such as joystick and button styles were actually reusable in the PU app even for creating custom profiles

2) The code behind each profile would actually be codable on the canvas and it was all accessible in the app, and hence would be customizable and reusable.

Then, we could simply put together a profile that looks and works similar to the ones in the official sets, and we could program them on our own. Then we could build and control similar things to the official sets. Currently this is pretty hard. For one, the controls look very basic, but that's not the main thing. Rather, many features, like the automatic gearbox of the Volvo hauler or the distribution gearbox of the Cat dozer (including the wiggling to release tension), simply cannot be replicated in the PU app (or in a very complex way), hence we cannot build something like them and control it. That is what I would have actually expected from a lego product, buildable / composable experience. Granted that if the official profiles would have been assembled from parts then the overall looks (and sounds) would probably not be that fancy, but still. That's how software from lego should be.

Share this post


Link to post
Share on other sites
44 minutes ago, gyenesvi said:

What is Lego VM? Is that something TLG announced or is it something 3rd party (that you envision)?

I agree that @allanp's solution is becoming like a smart device / app. I actually did start coding a controller app a few years ago, there are tons of customization options to consider. So It would definitely need upgradability, you can't just think about every possible use case and parameter in advance.

What I've actually been thinking that would be a very Lego-like thing (and that TLG should have done things like) is that if the PU app was properly developed and would be actually used for official sets instead of the Control+ profiles. That would mean

1) The GUI items (controls) used in Control+ profiles, such as joystick and button styles were actually reusable in the PU app even for creating custom profiles

2) The code behind each profile would actually be codable on the canvas and it was all accessible in the app, and hence would be customizable and reusable.

Then, we could simply put together a profile that looks and works similar to the ones in the official sets, and we could program them on our own. Then we could build and control similar things to the official sets. Currently this is pretty hard. For one, the controls look very basic, but that's not the main thing. Rather, many features, like the automatic gearbox of the Volvo hauler or the distribution gearbox of the Cat dozer (including the wiggling to release tension), simply cannot be replicated in the PU app (or in a very complex way), hence we cannot build something like them and control it. That is what I would have actually expected from a lego product, buildable / composable experience. Granted that if the official profiles would have been assembled from parts then the overall looks (and sounds) would probably not be that fancy, but still. That's how software from lego should be.

That is some good feedback. And yes my ideas are evolving over time as I gather more feedback. 

Some of the things you mentioned like the automatic gearbox of the hauler and function switching gearbox of the catd11 I think could be solved with the previously mentioned advanced code blocks, which are very complex blocks of code for such functions, but on the surface is easy to configure to your model. I did also ask the question what other code blocks could we need. I actually do think it's possible to release enough of them to cover 99% of every scenario. "Apply wiggle" could be a toggleable setting. Everything in an official set released so far could easily be covered with the exception of inverse kinematics, which we can't easily code now anyway. But maaaaaaybe that could be done with an advanced code block, where you would input the number of boom arms, the length of the booms between pivot centers, the angles and number of motor rotations required to reach travel limits, maaaaaaybe a code could be written which calculates everything just from that? But I'm not sure what you'd do with the graphical interface.

Edited by allanp

Share this post


Link to post
Share on other sites
12 minutes ago, gyenesvi said:

What is Lego VM? Is that something TLG announced or is it something 3rd party (that you envision)? 

Here's the link I posted already:
https://ramblingbrick.com/2021/05/28/the-road-map-for-legos-powered-up-system-unfolds/

(2022)

and again the link to the statements of LEGO concerning my questions in 2019

https://www.1000steine.de/de/gemeinschaft/forum/?entry=1&id=426445#id426445

quoted and translated:

There will be a VM on the hubs that will then run code. The Spike Hub, coming in January, can do all that and much more. You can call up various ready-made programs on the hub and upload new ones. The small hubs should also store code with the VM!

And here is the complete system:

https://www.1000steine.de/de/modelle/myimages/?dir=4092

In short: you can store programs in any hub, like in the spike hubs today, and run them autonomous

 

32 minutes ago, gyenesvi said:

like the automatic gearbox of the Volvo hauler or the distribution gearbox of the Cat dozer (including the wiggling to release tension), simply cannot be replicated in the PU app (or in a very complex way)

I don't know these sets in detail, but as I remember it's "only" a motor which has three a four angles to be selected. This can be done "easily" by sliders or buttons.
If you describe what is the desired behavior, I can show a small program which tries to do that.

I did some programming before the official release for the CAT for a review, when control+ app was not available, here it is a first approach:

 

CAT2.jpg

CAT1.jpg

 

 

Share this post


Link to post
Share on other sites

This thread is a much needed one whether you feel PU/C+ is okay or not. I agree when a smartphone "takes control" of the machine it removes all confidence in the longevity. This also is true that, for TLG's ever increasing set complexities [like more parts, more complex operations as described in the first post- specially when they are to imitate the real life construction/working machines] the current electronics are designed
So, those who know electronics AND also are bothered by the limitations [more like irritations] caused [or imposed] by the current system can at times raise their opinions their methods their views all from their perspectives in this thread. Positivity really matters here. Just because someone thinks or visions something seems never ever be possible by the nature of TLG [where revenues, costs, RnD and intentions are factors] it does not mean someone has to be [unintentionally] a Lego spokesperson. Cheer up and Free your speech :classic:
At the end of the day, both Lego and us have to prioritize what people would love to do with the electronics powered machines. I call this EPM lol. For display queens- they love to build it. For EPMS they would love to play with necessary ease and freedom for all the years to come as they are both displayable and playable
I think that micro-servo motor is actually essential and no internal gear reduction is pretty much welcomed. Code block is a real challenge. I need Proportional Steering
I feel this thread's necessity much like the 7 speed gearbox thread created by AllanP by nature

Edited by thekoRngear

Share this post


Link to post
Share on other sites
On 8/16/2023 at 7:38 AM, thekoRngear said:

This thread is a much needed one whether you feel PU/C+ is okay or not.

But these are two different things that have to be distinguished.

PU ist the platform consisting of

- devices
- cables and plugs
- BT-protocol
- LWP 3.0.0
- Powered Up App

and it spans form duplo, city, boost, spike, mindstorms, technic.

Control+ is only one app. For only a few sets.

On 8/16/2023 at 7:38 AM, thekoRngear said:

I agree when a smartphone "takes control" of the machine it removes all confidence in the longevity.

There is no need to use a smartphone.

The hubs internally have
- a bootloader to load new firmware
- a preinstalled LEGO FW

It is (like with EV3 since years) possible to install other software.
Or control the hubs with any other devices using the original LEGO FW.

PU is an open system, ready for now and in future.

And it allows LEGO (or any other manufacturer) to add devices (like a remote i.e)
And to do so this you don't have to know anything about electronics or programming.
(If you look at my example for the CAT from 8 sections only one has to do with programming, all others are configuration only)

This is much easier than to build a "7 Speed gearbox" ;-) (which uses non LEGO parts as well, and how would you shift the gears remotely? - very simple with PU)

On 8/16/2023 at 7:38 AM, thekoRngear said:

love to play with necessary ease

Another simple example is a shuttle train - use a simple city train set and just on additional sensor, you'll find many applications for that in the net.
How to solve with PF easily?

For simple turn/off of a motor it is simple as with older systems - with much better properties.
But it offers a bunch of very extended possibilities.

On 8/16/2023 at 7:38 AM, thekoRngear said:

both Lego and us have to prioritize what people would love to do with the electronics powered machines

I think that is very, very different.
That's why a open system is useful for all users.
I'm glad with that.

Edited by Lok24

Share this post


Link to post
Share on other sites
On 8/11/2023 at 7:20 PM, Lok24 said:

most of my MOCs (the majority) don't use any remote

That will be quite limited group. I cannot imagine car or excavator running without remote. ;-)

On 8/11/2023 at 7:03 PM, allanp said:

The sticks would stay put acting like the accelerator lever on a train, but there could be a place to allow you to add a rubber band or a soft shock absorber to make it spring back to center.

I have old QuickShot joystick that has mechanical switch on the bottom that disconnects return springs. Simple as that.

On 8/11/2023 at 7:46 PM, Lok24 said:

Setting a speed in rotation/sec, which then is independent from the load.

If I'm not mistaken it is possible currently. There is function "TachoMotorSpeed" (I'm using RacingBricks naming here).

On 8/12/2023 at 1:27 PM, Lok24 said:

I don't know these sets in detail, but as I remember it's "only" a motor which has three a four angles to be selected. This can be done "easily" by sliders or buttons.
If you describe what is the desired behavior, I can show a small program which tries to do that.

It's more complex. Before switching to another defined angle position the motors wiggles back and forth to remove tension in the gear train. This can be done easily if there is procedure in the hub, don't know how it's done in the official app.

20 hours ago, Lok24 said:

There is no need to use a smartphone.

The hubs internally have
- a bootloader to load new firmware
- a preinstalled LEGO FW

From my perspective: is it possible to use 42100 set that will be freshly opened in the year 2100? Suppose there will be no smartphones then (you will have implant in your brain :-D ). How to control this set? This is what I don't like.

20 hours ago, Lok24 said:

If you look at my example for the CAT from 8 sections only one has to do with programming, all others are configuration only

True (even if I cannot see your pictures/ edit: when opened in new window I can see them, probably http/https issue), but there are plenty of people around that finds it too difficult to set time in their VCR/microwave. Still, I expect average Lego builder to be above that.

On 8/4/2023 at 7:59 PM, vascolp said:

I could resume this way:

1. True.

2. This is the reality, but I don't like to add app on my smartphone for everything, just for sake of having app. Besides this blocks usage of the phone. And lacks any tactile feedback.

3. The remote is "hidden" i.e. not advertised outside trains. And console style (PS3/4/5, Xbox) remote is much nicer to handle while operating up to 10 axes.

4. Why not just make possibility to use console controllers directly with hubs (as PyBricks allows) officially? Maybe the memory in hubs are too small or uP too slow? Maybe.

Edited by Mikdun

Share this post


Link to post
Share on other sites

@Mikdun I really like the toggle switch idea, to be able to switch the spring return on and off. I wonder though, if having you physically add or remove the spring might me a cheaper option and also feel more "Lego like" as it requires you to add or remove a piece. On the other hand, having a little toggle switch as you suggest would be a nice feature. I'd be happy with either option. 

I think there was some issues mentioned by Lego with regards to using PS style, or other third party remotes but I can't find where I read that now. In any case, whilst third party remote compatibility would be vastly better than touch screen only, it is still relying on additional purchases of products made by third parties to make PU a complete system. It would be nice if, 50 years from now you could buy a MISB excavator and everything you need to build, program and play with your excavator, including all needed documentation, came on the box. It's a big ask I know, but the prices they are charging for the Liebherr is also a big ask. 

As for your comments about start phones and apps in general, I completely agree. Slightly off topic but last week, long after I started this thread and in a big surprise to me, my own place of work insisted I download their new company app on my phone as it would be the only way to book time off going forward. I have refused. If they think they can refuse me my contractually obligated holidays just because I don't want yet another sodding app on my phone they are in for a shock, and court action if necessary. This is indeed the way the world is going and it because we have allowed it to. Oh just download and use the app? NO! Bugger off with that virtual crap, that's what the last week has made me feel like. I want a person to speak to, a physical remote, something real!

Share this post


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

I cannot imagine car or excavator running without remote. ;-)

Indeed ;-)
Feel free to build something different. I gave already examples. Some kinds of robots, a railroad crossing, a shuttle train, GBC, 
 

3 hours ago, Mikdun said:

This can be done easily if there is procedure in the hub, don't know how it's done in the official app.

I expect that not to be a function in the hub, otherwise there would be a LWP command to do so.

5 hours ago, Mikdun said:

From my perspective: is it possible to use 42100 set that will be freshly opened in the year 2100?

Suppose no, not as shown on the box. But thats not a failure of the PU system, but due to the fact that no remote is included.
For a city train set the answer would be yes.

Assuming that BLE is still a standard then.
And the proper batteries are still available.....

BTW: what do you think how many clients expect that?
And how many might have the set and are happy to use their smart device to handle today?
Outside the AFOL scene?

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.