Lego Mindstorms EV3 extension for Small Basic - EV3 Basic!!!
Published Feb 12 2019 04:27 PM 10.8K Views

First published on MSDN on Oct 18, 2015

Authored by Ed Price


UPDATED 4/1/19: Fixed the embedded videos and reformatted for the new blog platform.

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 (
  • 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: (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 (
  • 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


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.




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!


Get Started: 
And check out the EV3 documentation over at...

This becomes 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
Version history
Last update:
‎Apr 01 2019 03:00 PM
Updated by: