Thonny



And now here we have Thonny ready to start programming. Installing Thonny on a Mac using pip. 01:58 So here in the Terminal window, it’s possible to install Thonny using pip3 install thonny. Pip will download all the relevant frameworks and Thonny itself and then install Thonny. It can be run just by typing thonny. Thonny is a beginner-friendly Python IDE, developed in University of Tartu, Estonia, which takes a different approach as its debugger is designed specifically for learning and teaching programming. Although Thonny is suitable for even total beginners, this post is meant for readers who have at least some experience with Python or another. This tutorial was created with Thonny running on Raspbian Stretch. The steps to associate a Python 3 virtual environment with Thonny running on Windows should be similar. Before proceeding further, make sure that you had created a virtual environment.

Download version 3.3.6 for
Windows • Mac •
NB! On Windows you may receive
a warning dialog from Defender.
Just click 'More info' and
'Run anyway'.

Features

Easy to get started. Thonny comes with Python 3.7 built in, so just one simple installer is needed and you're ready to learn programming. (You can also use a separate Python installation, if necessary.) The initial user interface is stripped of all features that may distract beginners.

No-hassle variables. Once you're done with hello-worlds, select View → Variables and see how your programs and shell commands affect Python variables.

Simple debugger. Just press Ctrl+F5 instead of F5 and you can run your programs step-by-step, no breakpoints needed. Press F6 for a big step and F7 for a small step. Steps follow program structure, not just code lines.

Step through expression evaluation. If you use small steps, then you can even see how Python evaluates your expressions. You can think of this light-blue box as a piece of paper where Python replaces subexpressions with their values, piece-by-piece.

Faithful representation of function calls. Stepping into a function call opens a new window with separate local variables table and code pointer. Good understanding of how function calls work is especially important for understanding recursion.

Highlights syntax errors. Unclosed quotes and parentheses are the most common beginners' syntax errors. Thonny's editor makes these easy to spot.

Explains scopes. Highlighting variable occurrences reminds you that the same name doesn't always mean the same variable and helps spotting typos. Local variables are visually distinguished from globals.

Mode for explaining references. Variables are initially presented according to simplified model (name → value) but you can switch to more realistic model (name → address/id → value).

Code completion. Students can explore APIs with the help of code completion.

Beginner friendly system shell. Select Tools → Open system shell to install extra packages or learn handling Python on command line. PATH and conflicts with other Python interpreters are taken care of by Thonny.

Simple and clean pip GUI. Select Tools → Manage packages for even easier installation of 3rd party packages.

Demo

Credits

From 2014 to 2018 the main development of Thonny took place in Institute of Computer Science of University of Tartu, Estonia.


Since September 2018 development of Thonny is partially supported by Cybernetica AS.


Development of several features in Thonny 3.0 and 3.3 was proposed and supported by Raspberry Pi Foundation.

We are also grateful for the help of several contributors from the open-source community around the world.

Instructions & downloads

  • Installation instructions

Latest stable releases are linked in the download box at the top of this page. Older releases and prereleases can be found at https://github.com/thonny/thonny/releases

Plug-ins

Thonny Ide

Thonny has simple infrastructure for extensions.

These are some known Thonny plug-ins:

  • thonny-black-format adds a command for formatting current file with Black
  • thonny-ev3dev allows uploading code to EV3 (and much more)
  • thonny-lahendus allows loading exercises from lahendus.ut.ee and submitting solutions for automatic assessment.
  • thonny-edison allows uploading Python code to Edison educational robot
  • thonny-dracula adds Dracula syntax theme.
  • thonny-onedark adds One Dark syntax theme.
  • thonny-crosshair adds commands for invoking CrossHair analyzer.
  • thonny-icontract-hypothesis adds commands for invoking icontract-hypothesis analyzer.
Note that Thonny developers are not responsible for these plug-ins!

Contact & News

Papers

Thonny Vs Pycharm

You can pick up a Raspberry Pi Pico from just $4 / £3.60, or free with the latest edition of HackSpace magazine.

Thonny

Programs written for other MicroPython-compatible microcontroller boards will work on Raspberry Pi Pico, and vice versa – sometimes needing minor modification for different features between boards – giving Raspberry Pi Pico a healthy library of projects and tutorials beyond those developed by Raspberry Pi itself.

Meanwhile, the C/C++ SDK is fine-tuned to RP2040 and has all the headers, libraries, and build systems necessary to write programs in C, C++, or assembly language. Additionally, the C/C++ SDK provides higher-level libraries for dealing with timers, USB, synchronisation, and multicore programming, along with additional high-level functionality built using PIO such as audio.

Beginners looking to get started with the MicroPython port should start with the Raspberry Pi Pico Python SDK documentation and be sure to pick up a copy of Getting Started with MicroPython on Raspberry Pi Pico.

Get Started with MicroPython on Raspberry Pi Pico

For more physical computing projects to try on your Raspberry Pi Pico, grab a copy of the new book, Get Started with MicroPython on Raspberry Pi Pico. As well as learning how to use Raspberry Pi Pico’s pins as inputs and outputs, you’ll build a simple game, measure temperatures, save and load data to your Pico’s file system, and even make a burglar alarm for your room .

Get Started with MicroPython on Raspberry Pi Pico is available now from Raspberry Pi Press.

Makers looking to explore the C/C++ SDK should download the Pico C/C++ SDK documentation.

Raspberry Pi Pico data sheets

Make sure to read, and bookmark, these new Raspberry Pi Pico and 2040 data sheets.

Program Raspberry Pi Pico with MicroPython

Raspberry Pi Pico is set up, by default, for use with the C/C++ Software Development Kit (SDK). The C/C++ SDK is an extremely flexible and powerful way to interact with your Raspberry Pi Pico. However, there’s a more beginner-friendly method: MicroPython, a port of the Python programming language designed specifically for microcontrollers.

In this tutorial we’re going to switch the Pico firmware from C/C++ to MicroPython and create our first program, which flashes the LED on the board.

You'll need

  • Internet connection

Open Raspberry Pi Pico in boot mode

Take your Raspberry Pi Pico and a micro USB to USB-A cable, and connect the small micro USB end of Pico. Hold down the small button on your Raspberry Pi Pico marked ‘BOOTSEL’ and plug the larger USB-A cable end into your computer (we are using a Raspberry Pi). Wait a few seconds, then let go of the BOOTSEL button. You will see your computer mount a removable drive. Click OK in the ‘Removable medium is inserted’ window to open Raspberry Pi Pico’s on-board storage.

Flash the MicroPython firmware

Double-click the INDEX.HTM file displayed in Pico’s mounted storage. Your browser will open and display the ‘Welcome to your Raspberry Pi Pico’ webpage. Choose the ‘Getting started with MicroPython’ tab, and click ‘Download UF2 file’ to download the MicroPython firmware. It’s a small file, so it’ll only take a few seconds.

Open File Manager and locate the micropython-16-DEC-2020.uf2 file in the Downloads folder (the file name may have been updated with a later date). Drag-and-drop the UF2 file to the Raspberry Pi Pico’s removable drive (named ‘RPI-RP2’). After a few seconds, the drive will disappear as the new MicroPython firmware is recognised and installed.

Switching the back end

The best way to program in MicroPython on your Raspberry Pi Pico is with the Thonny Python IDE (integrated development environment). Open the Raspberry Pi menu and choose

Programming > Thonny Python IDE.

Thonny is normally used to write programs that run on the same computer you’re using Thonny on; to switch to writing programs on your Raspberry Pi Pico, you’ll need to choose a new Python interpreter. Look at the bottom-right of the Thonny window for the word ‘Python’ followed by a version number: that’s your current interpreter.

Click ‘Python’ and look through the list that appears for ‘MicroPython (Raspberry Pi Pico)’ – or, if you’re running an older version of Thonny, ‘MicroPython (generic)’.

Tip! Update Thonny

If you don’t see MicroPython (Raspberry Pi Pico) in the interpreter list, you’ll need to update Thonny. Open a Terminal window and type:

Code Hello World in MicroPython

Writing a program for your Raspberry Pi Pico is a lot like writing a program for your Raspberry Pi. You can type commands in the Shell area at the bottom of the window to have them immediately executed, or you can write a program in the main part of the window to run on-demand.

Click in the Shell area, next to the >>>> symbols, and type:

Thonny online

When you press ENTER at the end of the line, you’ll see your Raspberry Pi Pico respond. Try typing the same line again, but in the main part of the Thonny window – then click the Run icon. You’ll be asked whether you want to save your program to ‘This computer’ or ‘Raspberry Pi Pico’. Click on ‘Raspberry Pi Pico’, give your program the name hello_world.py, then click OK to save and run your first program.

Create a program that blinks Raspberry Pi Pico's LED

While Raspberry Pi Pico can run Python programs like the one above, its true power comes from interfacing with external hardware like buttons and LEDs. You can start programming a physical computing project without any extra hardware, too, thanks to an on-board LED (assigned to the non-broken-out GP25 pin).

Click the New icon and type in the blinky_led.py code. Click Run, save the program to your Raspberry Pi Pico, and watch the LED on Raspberry Pi Pico: it will turn on for one second, then off for one second, then repeat.