This site,, is the official site for tutorials on EV3 Basic i.e. Microsoft Small Basic with the the EV3 extension. The extension allows Small Basic to interact with the Lego Mindstorms EV3 robot. EV3 Basic is probably the easiest way to program the Lego EV3 robot with a textual programming language, the kind professional programmers use. Having said that, EV3 Python has become easier to set up and use over the last few months so you should decide carefully whether you should be learning EV3 Basic or EV3 Python - this page will help you decide.

This site has dozens of sample EV3 Basic programs, several helpful videos, advice on setting up Bluetooth or WiFi connections, a copy of the official EV3 Basic manual and an introduction to the companion program, EV3 Explorer. The EV3 Basic Intellisense documentation and manual are available in EnglishFrench, Spanish, German and RussianEV3 Basic works only with the EV3, so it won't work with the Lego NXT robot. EV3 Basic is compatible only with Windows PCs - if you would like to program the EV3 with a textual programming language and you have a Mac or Linux computer then I recommend you consider using EV3 Python - see and my site

IMPORTANT: a new Windows STORE version of Small Basic, version 1.3, has been released but it is NOT compatible with the EV3 extension. Be sure to use the latest  DESKTOP version of Small Basic rather than the Windows STORE version. To better understand the differences between Windows Store apps and Windows desktop apps, click HERE.

Stop Press, March 2018: A new version of EV3 Basic has just been released, with two new sets of functions. The 'Byte' functions manipulate individual bits of an 8-bit numerical quantity. The 'F' functions provide a framework to create functions with parameters and local variables in Small Basic. See the EV3 Basic Manual for more details. The latest version of the EV3 extension can be downloaded HERE. Always uninstall the old version of the extension (as opposed to Small Basic itself) before you install a new version.

For older 'Stop Press' announcements, please see the Blog.

Everyone knows that computers and robots will soon run the world... or will they? What IS a certainty is that computer programming skills are very valuable in today's high tech world. However... there is a problem. Decades ago computer programming languages were rather simple and easy to learn, but over the years these languages have evolved and become much more complex and hard to learn. Nowadays people starting to learn programming are likely to experience more frustration than fun. Recognising this problem, Microsoft created in 2008 a new, simplified version of the well-known programming language, BASIC, called Small BasicMicrosoft Small Basic puts the "fun" back into computer programming. Note that Small Basic (and therefore also EV3 Basic) runs only on Windows PCs. Small Basic is probably the simplest, easiest and most fun textual programming language, for it's possible to create fun games with this language. According to Microsoft, Small Basic 'is the only text-based programming language + tool that's made for kids'.

Another way to make programming fun is to make programs for robots, for everyone loves robots. Also, programming robots teaches you new and useful skills for you learn about how programs can interact with the real world via motors and various sensors. A key characteristic of robots and sensors is that their behaviour is somewhat unpredictable and dealing with this reality adds another dimension to the programming experience. The best robotics platform for beginners is no doubt the Lego Mindstorms system and indeed this platform has been the most popular robotics teaching system for many years. Lego has recently introduced the third generation of its Mindstorms robot, called the EV3, and this version is far more powerful than the previous version for at its heart (or more accurately, its brain) is a proper computer running the Linux operating system. Unfortunately, the Lego company only proposes an icon-based programming environment (assembling programming blocks, like in Scratch) to program the EV3 and that has a number of disadvantages:
  • Working with an icon-based programming 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'.
  • As your program gets more complex the graphical programming window can become crowded and unmanageable.
  • Lego's graphical programming environment fails to offer many of the features found in textual programming languages. For example, the only text operation that Lego's graphical programming environment can handle is the joining together of blocks of text. Even the way Lego's software handles variables seems clumsy compared to most textual programming languages. (It is also true that there are some functions of the standard Lego EV3 software that are not yet available in EV3 Basic.)
  • Programs developed in Lego's graphical programming environment typically do not run as fast as programs developed in a textual programming system.
So, wouldn't it be great if the fun of working with the world's easiest-to-learn textual programming language could be combined with the fun of working with Lego Mindstorms robots? Since early 2015, this is now possible, thanks to the free EV3 extension for Small Basic developed by Reinhard Grafl. The extension allows you to write Small Basic programs that can interact with the EV3's motors, sensors, speaker, screen and buttons. Better yet, the programs can be run on the EV3 simply by clicking the 'Run' button in Small Basic, as long as the EV3 is connected to the PC with a USB cable or Bluetooth or Wifi. It's not even necessary to download your program into the EV3's memory storage, though you can do that if you want to using the separate 'EV3 Explorer' program and this is fact the recommended way of working if you are using a wireless connection. Another advantage of using EV3 Basic is that it allows you to write programs that could not be made using the standard Lego programming interface, such as the second program on this page. The icing on the cake? EV3 Basic does not require you to prepare a special 'bootable SD card' or to modify the EV3's firmware - it works with the unmodified EV3 brick! Let's be clear: EV3 Basic is probably the easiest way to learn to program the Lego EV3 robot with a textual programming language!

So what does the EV3 Basic graphical user interface look like? Here is a sample program that would make a robot move forwards until the ultrasonic sensor detects that an object is less than 80mm away, then the robot plays a tone and displays a message on its LCD screen for 2 seconds. Notice how simple the interface is, with very few items in the toolbar:

Note that the insertion point is in the word 'Start' (in line 7) and that Small Basic is displaying helpful hints on the use of that function.

Click HERE to read more about Microsoft Small Basic and learn how to install it on your computer free of charge. 
Subpages (1): Basic or Python?