{"id":33183081,"url":"https://github.com/pyrpl-fpga/pyrpl","last_synced_at":"2026-02-09T10:08:01.219Z","repository":{"id":22298536,"uuid":"58811185","full_name":"pyrpl-fpga/pyrpl","owner":"pyrpl-fpga","description":"pyrpl turns your RedPitaya into a powerful DSP device, especially suitable as a lockbox in quantum optics experiments.","archived":false,"fork":false,"pushed_at":"2026-02-02T19:36:19.000Z","size":219252,"stargazers_count":188,"open_issues_count":149,"forks_count":131,"subscribers_count":29,"default_branch":"main","last_synced_at":"2026-02-03T07:11:27.433Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://pyrpl-fpga.github.io/pyrpl/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pyrpl-fpga.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2016-05-14T14:09:14.000Z","updated_at":"2026-02-02T12:11:27.000Z","dependencies_parsed_at":"2023-10-15T03:16:27.487Z","dependency_job_id":"e6d9781f-6ec6-4b8f-b71b-062001f3a690","html_url":"https://github.com/pyrpl-fpga/pyrpl","commit_stats":{"total_commits":1697,"total_committers":21,"mean_commits":80.80952380952381,"dds":0.6087212728344137,"last_synced_commit":"8e2f39d1ad2f3351ef31009e810cf9ab6a750693"},"previous_names":["pyrpl-fpga/pyrpl","lneuhaus/pyrpl"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/pyrpl-fpga/pyrpl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyrpl-fpga%2Fpyrpl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyrpl-fpga%2Fpyrpl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyrpl-fpga%2Fpyrpl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyrpl-fpga%2Fpyrpl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyrpl-fpga","download_url":"https://codeload.github.com/pyrpl-fpga/pyrpl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyrpl-fpga%2Fpyrpl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29261651,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-09T04:11:57.159Z","status":"ssl_error","status_checked_at":"2026-02-09T04:11:56.117Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-11-16T04:00:33.245Z","updated_at":"2026-02-09T10:08:01.213Z","avatar_url":"https://github.com/pyrpl-fpga.png","language":"Python","funding_links":[],"categories":["Experimental quantum computing"],"sub_categories":[],"readme":"[\u003cimg src=\"http://pyrpl.readthedocs.io/en/latest/_static/logo.png\" width=\"250\" alt=\"PyRPL\"\u003e](http://www.pyrpl.org/)\n[![Pyversions](https://img.shields.io/pypi/pyversions/ibm-analytics-engine-python.svg?style=flat-square)](https://pypi.python.org/pypi/ibm-analytics-engine-python)\n[![code coverage](https://codecov.io/github/pyrpl-fpga/pyrpl/coverage.svg?branch=master \"Code coverage\")](https://codecov.io/gh/pyrpl-fpga/pyrpl)\n[![Python versions on PyPI](https://img.shields.io/pypi/pyversions/pyrpl.svg)](https://pypi.python.org/pypi/pyrpl/)\n[![PyRPL version on PyPI](https://img.shields.io/pypi/v/pyrpl.svg \"PyRPL on PyPI\")](https://pypi.python.org/pypi/pyrpl/)\n[![Download pyrpl](https://img.shields.io/sourceforge/dt/pyrpl.svg)](https://sourceforge.net/projects/pyrpl/files/)\n[![Documentation Status](https://readthedocs.org/projects/pyrpl/badge/?version=latest)](http://pyrpl.readthedocs.io/en/latest/)\n[![join chat on gitter](https://badges.gitter.im/JoinChat.svg \"Join chat on gitter\")](https://gitter.im/pyrpl-fpga/pyrpl)\n[![License](https://img.shields.io/pypi/l/pyrpl.svg)](https://github.com/pyrpl-fpga/pyrpl/blob/master/LICENSE)\n\n[![Download PyRPL](https://a.fsdn.com/con/app/sf-download-button)](https://sourceforge.net/projects/pyrpl/files/)\n\nPyRPL (Python RedPitaya Lockbox) turns your RedPitaya into a powerful DSP device, especially suitable as a digital lockbox and measurement device in quantum optics experiments.\n\n## Website\nThe new official PyRPL website address is [http://pyrpl-fpga.github.io/pyrpl/](http://pyrpl-fpga.github.io/pyrpl/) . The information on the website [http://pyrpl.readthedocs.io/](http://pyrpl.readthedocs.io) is outdated.\n\n## Installation\nThe easiest and fastest way to get PyRPL is to download and execute the [precompiled executable for windows, mac and linux](https://github.com/pyrpl-fpga/pyrpl/releases). This option requires no extra programs to be installed on the computer.\n\nIf instead you would like to use and/or modify the source code, make sure you have an\ninstallation of Python (3.7 to 3.13). The easiest way to install the PyRPL python module cleanly is to run \n```\npip install git+https://github.com/pyrpl-fpga/pyrpl.git\n```\nThis will pull the most recent code from Github and install the needed module. It is recommended to use a new environment. DO NOT USE `pip install pyrpl` ! The code hosted on pypi is outdated.\n\nIf you are new to Python or unexperienced with fighting installation issues, it is recommended to install the [Anaconda](https://www.continuum.io/downloads) Python distribution, which allows to install all PyRPL dependencies via\n```\nconda install numpy scipy paramiko pandas nose pip pyqt qtpy pyqtgraph pyyaml nbconvert scp qasync\n```\nCheck [this documentation section](http://pyrpl-fpga.github.io/pyrpl//en/latest/user_guide/installation/common_problems.html#anaconda-problems) for hints if you are unable to execute conda in a terminal. Alternatively, if you prefer creating a virtual environment for pyrpl, do so with the following two commands\n```\nconda create -y -n pyrpl-env numpy scipy paramiko pandas nose pip pyqt qtpy pyqtgraph pyyaml nbconvert scp qasync\nconda activate pyrpl-env\n```\nIf you are not using Anaconda, and using pip, you can just run: \n```\npip install numpy scipy paramiko pandas nose pip pyqt qtpy pyqtgraph pyyaml nbconvert scp qasync\n```\nor clone the reposetory before and use the requirements.txt.\n\nNext, clone (if you have a [git client](https://git-scm.com/downloads) installed - recommended option) the pyrpl repository to your computer with \n```\ngit clone https://github.com/pyrpl-fpga/pyrpl.git\n```\nor [download and extract](https://github.com/pyrpl-fpga/pyrpl/archive/master.zip) (if you do not want to install git on your computer) the repository. \n\nIf you are using pip, you can just navigate to the pyrpl directory and run \n\n```\npip install -r requirements.txt\n```\nif you want a manual installation of pyrpl (it will not be automatically added to your python modules list) or \n\n```\npip install -e .\n```\nfor an automatic installation. I recommend this method as conda tends to become very slow at solving environments.\n\nIf you want to use conda (which I no longer recommend given that pip seems very robust now and much faster than conda), you can run :\n\n```\nconda create -y -n pyrpl-env numpy scipy paramiko pandas nose pip pyqt qtpy pyqtgraph pyyaml nbconvert scp qasync\nconda activate pyrpl-env\n```\nThis will create an new conda environment named \"pyrpl-env\" and install all the needed modules inside. \n\nYou can also use the environment config file \"environment_pyrpl.yml\"\n```\nconda env create -f environment_pyrpl.yml\nconda activate pyrpl-env\n```\n\nif you want a manual installation of pyrpl (it will not be automatically added to your python modules list) or \n\n```\npip install -e .\n```\nfor an automatic installation. I recommend this method as conda tends to become very slow at solving environments.\n\nYou can also use the environment config file \"environment_pyrpl.yml\"\n```\nconda env create -f environment_pyrpl.yml\nconda activate pyrpl-env\n```\n\n\n## Quick start\nFirst, hook up your Red Pitaya / STEMlab to a LAN accessible from your computer (follow the instructions for this on redpitya.com and make sure you can access your Red Pitaya with a web browser by typing its ip-address /  hostname into the address bar).\nIn a command line terminal, type\n```\npython -m pyrpl your_configuration_name\n```\nA GUI should open, let you configure the RedPitaya device you would like to use, and you can start playing around with pyrpl. Different strings for 'your_configuration_name' create different configurations that will be automatically remembered by PyRPL, for example if you have several different redpitayas. Different RedPitayas with different configuration names can be run simultaneously in separate terminals.\nA GUI should open, let you configure the RedPitaya device you would like to use, and you can start playing around with pyrpl. Different strings for 'your_configuration_name' create different configurations that will be automatically remembered by PyRPL, for example if you have several different redpitayas. Different RedPitayas with different configuration names can be run simultaneously in separate terminals.\n\n## Issues\nWe collect a list of common problems on the [documentation website](http://pyrpl-fpga.github.io/pyrpl//en/latest/user_guide/installation/common_problems.html). If you do not find your problem listed there, please report all problems or wishes as new issues on [this page](https://github.com/pyrpl-fpga/pyrpl/issues), so we can fix it and improve the future user experience.\n\n## Unit test\nIf you want to check whether PyRPL works correctly on your machine, navigate with a command line terminal into the pyrpl root directory and type the  following commands (by substituting the ip-address / hostname of your Red Pitaya, of course)\n```\nset REDPITAYA_HOSTNAME=your_redpitaya_ip_address\npytest\n```\nAll tests should take about 3 minutes and finish without failures or errors. If there are errors, please report the console output as an issue (see the section \"Issues\" below for detailed explanations).\n\n## Next steps / documentation\nThe full html documentation is hosted at [http://pyrpl-fpga.github.io/pyrpl/](http://pyrpl-fpga.github.io/pyrpl/). Alternatively, you can download a .pdf version at [https://media.readthedocs.org/pdf/pyrpl/latest/pyrpl.pdf](https://media.readthedocs.org/pdf/pyrpl/latest/pyrpl.pdf). We are still in the process of creating an fully up-to-date version of the documentation of the current code. If the current documentation is wrong or insufficient, please post an [issue](https://github.com/pyrpl-fpga/pyrpl/issues/new) and we will prioritize documenting the part of code you need.\n\n## Updates\nSince PyRPL is continuously improved, you should install upgrades if you expect bugfixes. \nIf you have cloned the GitHub repository (recommended for bleeding-edge updates), navigate into the pyrpl root directory on your local harddisk computer and type\nIf you have cloned the GitHub repository (recommended for bleeding-edge updates), navigate into the pyrpl root directory on your local harddisk computer and type\n```\ngit pull\n```\n\n## FPGA bitfile generation (only for developers)\nIn case you would like to modify the logic running on the FPGA, you should make sure that you are able to [generate a working bitfile on your machine](http://pyrpl-fpga.github.io/pyrpl//en/latest/developer_guide/fpga_compilation.html). In short, to do so, you must install Vivado 2024.2 [(64-bit windows](windows web-installer](https://www.xilinx.com/member/forms/download/xef.html?filename=Xilinx_Vivado_SDK_2024.2_1118_2_Win64.exe\u0026akdm=1) or [Linux)](https://www.xilinx.com/member/forms/download/xef.html?filename=Xilinx_Vivado_SDK_2024.2_1118_2_Lin64.bin\u0026akdm=1) [together with a working license](http://pyrpl-fpga.github.io/pyrpl//en/latest/developer_guide/fpga_compilation.html#fpga-license). Next, with a terminal in the pyrpl root directory, type\n```\ncd pyrpl/fpga\nmake\n```\nCompilation should take between 10 and 30 minutes, depending on your machine. If there are no errors during compilation, the new bitfile will be in the (pyrpl/fpga/out) repository. If you replace the (pyrpl/fpga/red_pitaya.bin), it will be automatically used at the next restart of PyRPL. The best way to getting started is to skim through the very short Makefile in the fpga directory and to continue by reading the files mentioned in the makefile and the refences therein. All verilog source code is located in the subdirectory pyrpl/fpga/rtl/. \n\n## License\nPlease read our license file [LICENSE](https://github.com/pyrpl-fpga/pyrpl/blob/master/LICENSE) for more information. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyrpl-fpga%2Fpyrpl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpyrpl-fpga%2Fpyrpl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyrpl-fpga%2Fpyrpl/lists"}