Lego Mindstorms EV3 extension for Small Basic - EV3 Basic!!!


Using the EV3 extension for Small Basic 1.2, you can use Small Basic to program your Lego Mindstorm EV3 robots! This is a great next step for teachers and parents looking to lay the groundwork on their kids' futures and careers. Lego Mindstorms is a big step toward engineering and computer development, and programming your robots on Small Basic is an even bigger one!

This awesome extension comes from Reinhard Grafl with a ton of tooling and content support developed by Nigel Ward:

Get Started:

Why is this a perfect combination... a match made in heaven? 

  1. Small Basic & the EV3 Basic extension are free!
    • Pretty much all the other software out there for EV3 robots is trying to make a buck as a business.
    • But not Small Basic! We're a free tool for educators! And the EV3 Basic extension for Small Basic continues that model!
  2. Small Basic is the only educational software that teaches actual text-based programming.
    • The core Mindstorms EV3 software uses symbol-based programming. Kind of like the amazing Kodu (http://www.kodugamelab.com/).
    • That's great if you're a younger kid who's learning, but once you get the programming concepts and get a little older (8+), then it's time to learn actual programming like the professionals use!
    • Working with an icon-based programming environment does not prepare you well for a career in programming because almost all professional programming is done with textual programming environments (C, Java, Python, etc.) rather than an icon-based programming environment.
    • For example, it's much less useful and relevant to learn about 'data wires' than it is to learn about 'parameters' and 'arguments'.
    • When you're ready to learn more programming languages, just click the Graduate button in the UI to export your code into Visual Basic in Visual Studio Community or Visual Studio Code (also free).
    • Then you can keep learning more languages (like Visual Basic, Java, C#, Python, HTML, JaveScript, and C++). You will naturally and organically build off the foundation that you established when you learned Small Basic.
    • Small Basic is the simplest and most fun way to ease into professional programming! Now that every desktop has a computer... everyone can code!
  3. Small Basic is in 20 languages! 
    • How can anything be simple to learn if it's not in your language?
    • The UI is in 20 languages! You can also find content (like the Curriculum and Getting Started Guide) in 21 languages.
    • To give you an idea of how amazing this is, the Mindstorm EV3 symbol-based software is in 10 languages: http://www.lego.com/en-us/mindstorms/support (see 3.3)
  4. EV3 Basic is the Easiest Installation!!
    • It's an easier installation than any other text-based language for EV3!
    • You don't have to prepare a new Linux operating system for the brick onto an SD card.
    • You can access the brick's standard menus, as expected! You can also access all the programs stored on the brick.
  5. Small Basic teaches you as you type!
    • With the revolutionary Small Basic IntelliSense (IntelliSense redesigned) and the Help Area, you can literally learn while you type!
    • Small Basic boasts a new incarnation of IntelliSense. Not only does it pop up and show you all your options as you type (which helps for learning, exploration, and spelling), but Small Basic's IntelliSense adds three new features to the Visual Studio IntelliSense:
      1. You can scroll through your options in a fun and engaging way.
      2. You see some basic Help content in the IntelliSense window, as you type.
      3. Press the Control key to make IntelliSense transparent, so you can see your code underneath it!
    • Small Basic takes learning to the next level with a dedicated Help pane that changes and teaches you as you type and click your code! You don't have to click Help or leave your app! You learn while you program!
  6. Small Basic Social Features!
    • Share programs easily with the "Publish" and "Import" buttons, which share programs to and from the Small Basic program share server (smallbasic.com).
    • You can access the code online as well, and easily import it locally into Small Basic (by clicking Import in Small Basic and entering the program ID). Example.
  7. Small Basic Graphics Window
    • Leveraging Small Basic's Graphics Window, you can build full GUI software programs that also interact with your EV3 robots!
  8. Small Basic's Sound Object & EV3's Speaker Object
  9. Better Handling of Variables
    • Small Basic was designed to handle variables in a professional but simple manner. See Small Basic is Simple.
    • You can create string and numeric constants and assign them to variables. Operations performed on these variables will be interpreted according to the content.
    • All variables are global and are always initialized. They can often be used before they're assigned.
    • Even better, the variables are all of one type, rather than integers, strings, etc.
  10. Small Basic's Text and TextWindow Objects
  11. Built-In Support for I2C Communications and UART
  12. "Easy-In, Ease-Out" Motions for Motors
  13. Synchronized Wheel Motions
    • If one wheel experiences resistance and is slowed down, the other wheel also slows down, allowing your robot to continue on its path!
  14. Assert Function
    • This special EV3 Basic function makes debugging a lot easier!
    • See the Assert reference section in the EV3 Basic site.
  15. Advanced Thread Management
    • Create a Mutex for Mutual Exclusion. This is for thread synchronization.
    • See the Thread reference section in the EV3 Basic site.
  16. Read RGB Values from the Color Sensor
  17. Vector Functions
  18. Advanced Matrix Functions
  19. EV3 Basic Robots Run Faster!
    • EV3 Basic programs tend to run faster than EV3-G equivalents.
    • A robot running EV3 Basic has recently set a new (unofficial) record for solving the Rubik Cube by a robot! (Note: It probably won't qualify for a Guinness World Record, because the cube is modified. It's modified for better gripping and use for a robot.)
    • Cube Twister can solve randomized cubes in 2.2 seconds, beating the old world record by more than a second!
    • Skip ahead to 4:22 in the video embedded above to see it in action! Or scroll to the video below!
  20. EV3 Makes No Changes to the EV3 Brick
  21. Bluetooth & WiFi Support!
  22. No Need to Download Programs to the Brick
    • EV3 Basic programs can be run directly within Small Basic.
    • You do not need to download them to the EV3 brick!
  23. EV3 Explorer
    • Lets you easily download your program to the EV3 brick in order to launch your program from the EV3 brick's menus.
    • Lets you download other files to the brick, such as compatible sound or image files. All the standard Lego sound and image files can be copied to the brick and used by your EV3 Basic programs.
    • EV3 Explorer is downloaded in the EV3 Basic extension package.
  24. EV3Basic.com
Here is the Cube Twister robot, running the EV3 Extension on Small Basic. It solves randomized Rubik's Cubes in 2.2 seconds, currently the known unofficial record (see #19 above for why its unofficial):
       .

In total, the EV3 Basic extension offers 10 new objects to Small Basic:
  1. Assert
  2. Buttons
  3. EV3
  4. EV3File
  5. LCD
  6. Motor
  7. Sensor
  8. Speaker
  9. Thread
  10. Vector
                   
This is amazing! EV3 Basic with Small Basic is free and great in every possible way! These are tremendous advantages over all the other EV3 options!
And check out the EV3 documentation over at...
Think of it as a next step for your students as they graduate from the Mindstorms EV3 software and are ready to start learning a text-based programming language that can help change their lives by opening up future career opportunities!
                          .
Small and Basically yours,
   - Ninja Ed
Comments (19)

  1. I added the second video, the Cube Twister video. It was built and programmed by the creator of EV3 Basic, Reinhard Grafl.

  2. anonymouscommenter says:

    Hi

    I teach a robotics class using Mindstorms NXT.  Can we use this extension instead of NXT-G?

  3. anonymouscommenter says:

    It works only with the EV3.  The NXT and EV3 have different processors and firmware.

  4. anonymouscommenter says:

    congratulations!, but I have had hands-on experience with Lego robotics, and prefer to stay with my arduino, due in-part to the points of versatility and cost, as well as, size and community of the product as-well.

  5. Thanks Joe! Yes, we'd love to see an extension for Arduino or something similar as well.

  6. I added more of an explanation in the top paragraph and more clarifications to #1 (free) and #10 (text awesomeness).

  7. I refined #2 a tad, added more info to #8 (sound options), and more info to #12 (motors).

  8. anonymouscommenter says:

    So great to see this extension.  Teaching kids how to program is such a critical need.   Keep up the great work!

  9. Thanks, Bryan!

    If you teach this to kids or know anyone who does, we'd love to have them join us in our network for teachers and educators:

    blogs.msdn.com/.../small-basic-teachers-and-educators-join-our-network.aspx

    Thanks again!

  10. I added the list of the 10 new EV3 Basic objects.

  11. I also added clarifying notes about the cost of Lego Mindstorms EV3 (there is also a free Home version) and the Cube Twister robot.

  12. UPDATE: I added direct links to the downloads. Sorry, that was a bit of a wild goose chase. Thanks!

  13. anonymouscommenter says:

    how to covnert small basic to visual studio? i followed the section and know how to add small basic reference but whete to find any info about ev3 basic reference in visual studio?

  14. I don't think the EV3 Basic code is going to convert into Visual Basic in Visual Studio like Small Basic does. For EV3 Basic, you'll need to stick with using the Small Basic language and IDE.

  15. UPDATE: I embedded the video again for the new blog platform.

  16. Hi Ed

    I have been using EV3 Basic for a while now and have some amazingly complex robots designed for the Robocup Junior Australia (http://robocupjunior.org.au/) Rescue Line and Maze competitions.

    EV3 Basic has allowed me and the growing base of students using it to write better code faster than using the Mindstorms EV3-G graphical environment. I hardly ever use the graphical environment now.

    FYI: I am an ex-Microsoftie software developer who now mentors for the robotics club where my kids went to school.

    My MSDN blog was https://blogs.msdn.microsoft.com/developingfordynamicsgp/, my new blog is http://WinthropDC.com/Blog

    David

    1. Awesome! I love hearing/reading these stories of how well it works!

Skip to main content