You are currently viewing RPi GPIO python simulator
RPi GPIO Python simulator

RPi GPIO python simulator

Following on from the micro:bit python simulator on, many students and staff have requested a python simulator for the Raspberry Pi GPIO pins.

This quickstart guide talks you through how to start writing code for physical computing using the GPIO pins on a Raspberry Pi.

It’s designed for teaching students how to do physical computing without having to invest in a separate Raspberry Pi for each student.

You can write, run, debug and share code that simulates the GPIO pins reading inputs and controlling outputs in a web browser then just have one (or more) Raspberry Pis set up with LEDs and switches connected up to demonstrate the same code.

This speeds up development time and reduces set up time and costs.

RPI GPIO Python simulator
RPI GPIO Python simulator

Physical computing is much more fun when students can actually see their code controlling a real life device – so this isn’t designed to replace actually plugging in and connecting up the physical components.

This simulator is designed to supplement and complement the actual physical computing: to iron out the more frustrating parts of the development process so students can focus on tinkering with the code, debugging, sharing, collaborating and exploring.

Try out the RPI GPIO python simulator here:


I hope it’s useful!

This Post Has 10 Comments

  1. Mr A Dimmick

    This is fantastic! I’ve just come across your site and am amazed at what you’ve built! Thank you for sharing this and well done!

    1. pddring

      Thanks-that’s really kind. Pleased someone’s found it useful.

  2. Iftikhar Ali

    can anybody explain me how to make decision on base of GPIO .i mean on input .E.g if i want to press one button and show output on other . i am beginner please guide me .

  3. Casey Bleeker

    This is an awesome utility – can you share the GPIO simulator anywhere as I’d like to tie it to a more comprehensive circuit simulator, and virtualize the entire raspbian OS connected to this GPIO simulator.

  4. Sergio

    Great work. Congratulations. I wonder if you have some examples running (PWM, analogue reading, …). As far as I understand you can only make “binary” IO, i.e., HIGH or LOW, is that right? can you for example light a LED with different intensity?

  5. vellarod

    I am using this for assignments corrections. very good work 🙂

  6. Sebastian

    Hey, im getting the following error message when running the example script on “”:

    “ExternalError:/\((.*)\)/.exec(…) is null on line 3”

    No changes where made. As im a beginner with python, i’m not able to troubleshoot it myself and google wasn’t helpfull as well.


    1. pddring

      Hello, sorry you’re having problems running the code. What browser/device are you using? I can’t recreate the error message on chrome / firefox / IE or android.

Leave a Reply