{"id":15145362,"url":"https://github.com/777arc/pysdr","last_synced_at":"2025-05-16T06:04:21.917Z","repository":{"id":216226046,"uuid":"740780410","full_name":"777arc/PySDR","owner":"777arc","description":"PySDR.org textbook source material, feel free to post issues/PRs","archived":false,"fork":false,"pushed_at":"2025-05-15T23:53:30.000Z","size":111726,"stargazers_count":290,"open_issues_count":8,"forks_count":62,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-05-16T06:03:24.495Z","etag":null,"topics":["communications","digital-signal-processing","dsp","plutosdr","rf","rtl-sdr","sdr","signal-processing","signals","usrp","wireless"],"latest_commit_sha":null,"homepage":"https://pysdr.org/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/777arc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"License.md","code_of_conduct":null,"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}},"created_at":"2024-01-09T03:40:48.000Z","updated_at":"2025-05-16T05:09:01.000Z","dependencies_parsed_at":"2024-12-25T01:03:38.003Z","dependency_job_id":"7a9830e0-a238-4f2a-85ff-c673b85534c7","html_url":"https://github.com/777arc/PySDR","commit_stats":{"total_commits":555,"total_committers":42,"mean_commits":"13.214285714285714","dds":0.5495495495495495,"last_synced_commit":"00f2caf3d23101b80165d0a4a318e41f75f1c70b"},"previous_names":["777arc/pysdr"],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/777arc%2FPySDR","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/777arc%2FPySDR/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/777arc%2FPySDR/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/777arc%2FPySDR/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/777arc","download_url":"https://codeload.github.com/777arc/PySDR/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254478186,"owners_count":22077675,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["communications","digital-signal-processing","dsp","plutosdr","rf","rtl-sdr","sdr","signal-processing","signals","usrp","wireless"],"created_at":"2024-09-26T11:23:52.930Z","updated_at":"2025-05-16T06:04:21.910Z","avatar_url":"https://github.com/777arc.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PySDR Textbook Source Material\n\nThis repo contains the source content used to generate the textbook [PySDR: A Guide to SDR and DSP using Python](https://pysdr.org) hosted at https://pysdr.org.\n\nFeel free to submit an issue, or even a Pull Request (PR) with fixes or improvements.  Those who submit valuable feedback/fixes be permanently added to the acknowledgments section.  Not good at Git but have changes to suggest?  Feel free to email Marc at marc@pysdr.org.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"200\" src=\"https://raw.githubusercontent.com/777arc/PySDR/master/_images/fft_logo_wide.gif\" /\u003e\n\u003c/p\u003e\n\n## Building\n\nNote that the website is now automatically built and deployed with each push/merge into master branch, using the GitHub action [build-and-deploy.yml](https://github.com/777arc/PySDR/blob/master/.github/workflows/build-and-deploy.yml) and the GitHub pages system for hosting the actual textbook.\n\nFor testing changes to the textbook locally, you can build using the following steps:\n\n### Ubuntu/Debian\n\nLook at `.github/workflows/build-and-deploy.yml` and run the apt/pip installs, then:\n\n```bash\nmake html\nmake html-fr\nmake html-nl\nmake html-ukraine\nmake html-zh\nmake html-ja\n```\n\nIn _build there should be an index.html that represents the main page of the English site\n\nNote: on one machine I had to add `~/.local/bin` to PATH\n\n### Windows\n\nInstall pre-requisite software with:\n\n1. Install Tex Live from the install-tl-windows.exe link towards the beginning of https://www.tug.org/texlive/acquire-netinstall.html (after opening it, choose the Install option). When a box pops up, click Advanced. It will mention `Installation root C:/texlive/2025` which we need later.  Uncheck Install TeXworks front end because we wont need it.  Under Scheme click \"change\" and choose `basic scheme`.  Hit Install.  It will take a while because it installs a lot of common latex packages, you can do the remaining steps while this installs.  You know it worked if you now have a `C:\\texlive\\2025\\bin\\windows\\latex.exe`.\n2. From the Microsoft Store install Python 3.10 (3.8-3.12 is fine too if you already have it installed).\n3. In a PowerShell terminal (click start menu then type powershell, or open a terminal in VSCode) run `pip install sphinx sphinxcontrib-tikz patreon setuptools`\n4. `cd` to the directory you cloned PySDR\n5. Separately, open \"Tex live command-line\" app from start menu, then run `tlmgr install dvisvgm pgf anyfontsize` (pgf is tikz).\n\nBuild the English version only using:\n\n```\npython -m sphinx.cmd.build -b html -D imgmath_latex=\"C:\\texlive\\2025\\bin\\windows\\latex.exe\" -D imgmath_dvisvgm=\"C:\\texlive\\2025\\bin\\windows\\dvisvgm.exe\" . _build\n```\n\nThe first time running this it might take a while because it has to download LaTeX packages.\n\n## Creating a PDF Export\n\nNot fully working yet due to animated gifs, they all need to be removed for this to not error out:\n\n```\nsudo apt-get install -y latexmk\nsphinx-build -b latex . _build/latex\nmake latexpdf\n```\n\n## Misc\n\nIdeas for future chapters:\n\n* Equalization, would be the last step needed to finish the end-to-end communications link\n* OFDM, simulating OFDM and CP, show via Python how it turns freq selective fading into flat fading\n* How to create real-time SDR apps with GUIs in Python using pyqt and pyqtgraph, or even just matplotlib with updating\n* Python code that lets the Pluto (or RTL-SDR) act as an FM receiver, like with sound output\n* End-to-end example that shows how to detect start of packet and other concepts not covered in RDS chapter\n* Intro to radar\n\n\u003ca rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\"\u003e\u003cimg alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png\" /\u003e\u003c/a\u003e\u003cbr /\u003eThis work is licensed under a \u003ca rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\"\u003eCreative Commons Attribution-NonCommercial-ShareAlike 4.0 Unported License\u003c/a\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F777arc%2Fpysdr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F777arc%2Fpysdr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F777arc%2Fpysdr/lists"}