Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Roadmap for next release #29

Closed
laurensvalk opened this issue May 7, 2020 · 13 comments
Closed

Roadmap for next release #29

laurensvalk opened this issue May 7, 2020 · 13 comments
Labels
enhancement New feature or request

Comments

@laurensvalk
Copy link
Member

laurensvalk commented May 7, 2020

Pybricks 1.0 was all about bringing Pybricks MicroPython to EV3.

This came out early 2019. It's super exciting to see people using this actively.

An epic number of users! According to Visual Studio Code, anyway.

If you're one of those, click 👍 on this post so we know you're here! 👋

Pybricks 2.0 was all about improving the EV3 experience.

To make it absolutely solid, tested, fully-featured, and FLL-ready.

It's ready now (:rocket: :tada: )! It's available in ev3dev and in the official LEGO EV3 MicroPython release.

Pybricks 3.0 will add support for Powered Up!

  • Newly supported hubs / programmable 🧱
    • LEGO BOOST MoveHub: MoveHub()
    • LEGO Powered Up City Hub: CityHub()
    • LEGO Technic Control+ Hub: CPlusHub()
  • Newly supported motors / sensors:
    • BOOST Color and Distance Sensor
    • BOOST Interactive Motor
    • Technic Control+ Motors (L, XL)
    • SPIKE Prime Motors (M, L)
    • SPIKE Prime Sensors (Color/Ultrasonic/Force)
  • Go fully open source 🤓
  • Pybricks Code: Cross-platform editor for Powered Up. No install required!
    • Lets you install Pybricks MicroPython firmware
    • Lets you run Pybricks MicroPython scripts
    • Windows 🖥️ / Mac 💻 / Linux 🐧 / Android ☎️ / ChromeOS 🔍
  • By default, a script runs from memory:
    • This is super quick and easy 🚀, but you have to be connected to start the program ☁️ .
    • Use this to test & develop your script.
  • Optionally, a script can be included when you update the firmware:
    • This is slow to download 🐌, but your script stays 🎉!
    • Use this when you're happy with your program (or if you have unlimited patience)
    • Start your script with the button. No Bluetooth connection required. Take your hub anywhere!
    • You have to send us footage if you send it into space 🚀

Pybricks 4.0/5.0 will be ... ?

In other words, what might we do one day, in a galaxy far away, but certainly not right now?

This is all super cool too, but it's better to stay focused on making the essentials really good first.

  • Support for internal sensors like accelerometer and IMU.
  • Support for older (NXT) and newer hubs (Mario).
  • Support for LEGO SPIKE Prime.
  • Support for LEGO MINDSTORMS Robot Inventor.
  • Powered Up hub-to-hub communication.
  • Powered Up remote handset support.
  • Improvements to EV3 Visual Studio Code extension.

There are also a few things that are just not possible due to hardware limitations:

  • Support for WeDo 2.0: Unless we missed something, this firmware can't be updated. So you can't install Pybricks.
  • Most of the hubs have sufficient flash and RAM capability for Pybricks. But the BOOST Move Hub has less than half of what the others have. So, not all new features beyond 3.0 will come to the BOOST Move Hub.

Other than that, the sky is the limit!

@laurensvalk laurensvalk added the enhancement New feature or request label May 7, 2020
@laurensvalk laurensvalk pinned this issue May 7, 2020
@GianCann
Copy link

GianCann commented May 7, 2020

Great work!!!

@phipsitn
Copy link

phipsitn commented May 7, 2020

Will having coordinated simulator be part of the roadmap? There is another github project called ev3dev-sim where I was trying to make it pybricks 1.0 compatible but got stuck part way in. Having a way to let FLL team members test navigation code before putting it on the robot is really helpful. Maybe this would be a good project to bring into the fold?

@ws1088
Copy link

ws1088 commented Jun 10, 2020

I would love to see support for Spike Prime Hub. Currently the LEGO Python API is really lacking.

@johnscary-ev3
Copy link

Will Pybricks 3.0 support the new MINDSTORMS Robot Inventor Hub just announced by LEGO on 6/12/20?
The LEGO release document mentions Python support.
Thanks.

@laurensvalk
Copy link
Member Author

From the pictures, the MINDSTORMS Robot InventorHub looks very similar to the SPIKE PrimeHub.

Hopefully, the electronics are 100% the same instead of 99% the same, so we only have to make one firmware 😄

Please see the note about SPIKE Prime in the note above. I'll update the post, thanks!

@johnscary-ev3
Copy link

Yes it looks just like SPIKE Prime except for the case colors ;0)
I notice you have SPIKE Prime and MINDSTORMS Robot Inventor under Pybricks 4.0/5.0 above.
Hopefully it goes ok.
Thanks.

@Nikolay-Zagrebin
Copy link

any plans for RCX?

@laurensvalk
Copy link
Member Author

laurensvalk commented Jun 27, 2020

any plans for RCX?

Our adaptation of MicroPython is very compact, but I’m afraid 32 KB just isn’t going to work 😄

However, with some work you can probably use the USB IR Tower with Pybricks for EV3. People have done this with ev3dev already I think. This is not something we will officially support or develop, but it would certainly be fun if someone in the community wants to look at this and create a nice example project.

If you are interested but if you are not sure where to start, just ask in a new issue - and maybe someone will come along one day and look into it.

@TheVinhLuong102
Copy link

TheVinhLuong102 commented Sep 2, 2020

@laurensvalk @dlech may I ask if you plan to add support NXT later this year or early 2021?

The main rationale of my question is that I'm currently working on a non-profit that is aiming to help tens of thousands of school children in a developing country get exposure to robotics programming. Even with financial donations, we're priced out of the EV3 at this scale. I'm thinking the NXT sets, which are currently costing only 30% as much as the EV3 sets, will be an appropriate medium, if students still get to program the NXT-based bots with state-of-the-art APIs such as PyBricks.

@laurensvalk
Copy link
Member Author

We would ideally like to add NXT support eventually, for the very same reasons you mention. It would be very cool to give all those unused NXT sets a new life. We have already shown that it is technically possible. Unfortunately, we can't prioritize it at this time as you can see in the roadmap. If we ever do it, we may have to find some sponsors to help make it happen.

@TheVinhLuong102
Copy link

@laurensvalk, it's great that you already have the very same idea! The NXT hubs, which are actually quite powerful hardware, will be wasted without a modern, preferably Python, API. If I'm not wrong, the existing Python API for NXT is https://github.com/Eelviny/nxt-python, which is about 5 years old already and currently unmaintained.

What does it take, generally, to write the NXT hub module in PyBricks? How can we help? -- I can look among my friend circle for engineers who would like to take on this, with your guidance. Also, what sponsorship is needed for projects like this?

@dlech
Copy link
Member

dlech commented Apr 2, 2021

It's been almost a year in the making, but we are getting very close to an official v3.0 release 🚀 🤖

We will start a new discussion for the v3.1 in GitHub Discussions.

@dlech dlech closed this as completed Apr 2, 2021
@petitlen
Copy link

petitlen commented Apr 5, 2021

From the pictures, the MINDSTORMS Robot InventorHub looks very similar to the SPIKE PrimeHub.

Hopefully, the electronics are 100% the same instead of 99% the same, so we only have to make one firmware 😄

Please see the note about SPIKE Prime in the note above. I'll update the post, thanks!

How long do you release to support Lego MindStorm Inventor

@laurensvalk laurensvalk unpinned this issue May 12, 2021
@laurensvalk laurensvalk pinned this issue May 12, 2021
@dlech dlech unpinned this issue May 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

9 participants