{"id":15020504,"url":"https://github.com/raspberrypi/pico-project-generator","last_synced_at":"2025-04-05T13:08:59.066Z","repository":{"id":39237397,"uuid":"315281468","full_name":"raspberrypi/pico-project-generator","owner":"raspberrypi","description":"Tool to automatically generate a Pico C SDK Project","archived":false,"fork":false,"pushed_at":"2024-01-25T17:07:29.000Z","size":165,"stargazers_count":310,"open_issues_count":24,"forks_count":78,"subscribers_count":23,"default_branch":"master","last_synced_at":"2025-03-29T12:09:35.350Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/raspberrypi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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}},"created_at":"2020-11-23T10:39:24.000Z","updated_at":"2025-03-27T19:07:26.000Z","dependencies_parsed_at":"2024-09-23T02:30:47.440Z","dependency_job_id":null,"html_url":"https://github.com/raspberrypi/pico-project-generator","commit_stats":{"total_commits":62,"total_committers":19,"mean_commits":3.263157894736842,"dds":0.6935483870967742,"last_synced_commit":"fcde2c2d33395b2ba4a39aad3b16c19a4026612f"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raspberrypi%2Fpico-project-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raspberrypi%2Fpico-project-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raspberrypi%2Fpico-project-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raspberrypi%2Fpico-project-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raspberrypi","download_url":"https://codeload.github.com/raspberrypi/pico-project-generator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247339158,"owners_count":20923014,"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":[],"created_at":"2024-09-24T19:55:10.535Z","updated_at":"2025-04-05T13:08:59.047Z","avatar_url":"https://github.com/raspberrypi.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# pico-project-generator\n\nThis is a command line or GUI tool, written in Python, to automatically generate a Pico C SDK Project.\n\nThe tool will generate all required CMake files, program files and VSCode IDE files for the set of features requested.\n\nIt will also add example code for any features and optionally for some standard library functions.\n\n### Notes for installation on Windows\n\nIf you are using the [Windows installer](https://www.raspberrypi.com/news/raspberry-pi-pico-windows-installer/), the version of Python that is part of that package does not include TKInter\nsupport which is needed by this generator. You will need a standard install of Python as follows:\n\n1. Install the SDK with the Raspberry Pi \"Pico setup for Windows\" installer from https://github.com/raspberrypi/pico-setup-windows/.\n1. Install the full version of Python from https://www.python.org/downloads/windows/.\n1. Open a Pico - Developer Command Prompt window.\n1. `cd` to the location where you have downloaded/cloned the pico-project-generator.\n1. Launch using `py.exe` instead of `python.exe`. e.g. `py pico_project.py --gui`, this will use the latest\ninstalled version (the full version) of Python, instead of the embedded distribution included with the SDK.\n\n## Command line\n\nRunning `./pico_project.py --help` will give a list of the available command line parameters\n\n```\nusage: pico_project.py [-h] [-t TSV] [-o OUTPUT] [-x] [-l] [-c] [-f FEATURE] [-over] [-b] [-g] [-p PROJECT] [-r] [-uart] [-nouart] [-usb] [-cpp]\n                       [-cpprtti] [-cppex] [-d DEBUGGER] [-board BOARDTYPE] [-bl]\n                       [name]\n\nPico Project generator\n\npositional arguments:\n  name                  Name of the project\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -t TSV, --tsv TSV     Select an alternative pico_configs.tsv file\n  -o OUTPUT, --output OUTPUT\n                        Set an alternative CMakeList.txt filename\n  -x, --examples        Add example code for the Pico standard library\n  -l, --list            List available features\n  -c, --configs         List available project configuration items\n  -f FEATURE, --feature FEATURE\n                        Add feature to generated project\n  -over, --overwrite    Overwrite any existing project AND files\n  -b, --build           Build after project created\n  -g, --gui             Run a GUI version of the project generator\n  -p PROJECT, --project PROJECT\n                        Generate projects files for IDE. Options are: vscode\n  -r, --runFromRAM      Run the program from RAM rather than flash\n  -uart, --uart         Console output to UART (default)\n  -nouart, --nouart     Disable console output to UART\n  -usb, --usb           Console output to USB (disables other USB functionality\n  -cpp, --cpp           Generate C++ code\n  -cpprtti, --cpprtti   Enable C++ RTTI (Uses more memory)\n  -cppex, --cppexceptions\n                        Enable C++ exceptions (Uses more memory)\n  -d DEBUGGER, --debugger DEBUGGER\n                        Select debugger (0 = SWD, 1 = PicoProbe)\n  -board BOARDTYPE, --boardtype BOARDTYPE\n                        Select board type (see --boardlist for available boards)\n  -bl, --boardlist      List available board types\n  -cp, --cpath          Override default VSCode compiler path\n\n```\nYou can list the features supported by the tools by using `./pico_project.py --list`. These features can\nbe added to the project using the `--feature` options, this can be used multiple times.\n\n\n\n## GUI version\n\nThe GUI version of the tool, run by adding `--gui` to the command line, uses `tkinter` to provide a platform-agnostic script that will run on Linux, Mac and Windows. All the options from the command line tool are also supported in the GUI. It may be necessary to install the `python3-tk` package for GUI support on Ubuntu/Debian platforms.\n\nThe board type selects the specific board header files to be used. The generator will scan the Pico SDK boards folder for all available boards.\n\nYou can add specific features to your project by selecting them from the checkboxes on the GUI. This will ensure the build system adds the appropriate code to the build and also adds simple example code to the project showing how to use the feature. There are several options available, which provide the following functionality.\n\nPico Wireless Options | Description\n----------------------|-----------\nNone | Do not include any Pico W libraries\nOnboard LED | Only include a small library to provide access to the PicoW LED\nPolled lwIP | A polled lwIP implementation library\nBackground lwIP | A library to run the lwIP stack in the background.\n\nConsole Options | Description\n----------------|-----------\nConsole over UART | Enable a serial console over the UART. This is the default.\nConsole over USB | Enable a console over the USB. The device will act as a USB serial port. This can be used in addition to or instead of the UART option, but note that when enabled other USB functionality is not possible.\n\n\nCode Options | Description\n-------------| -----------\nAdd examples for Pico library | Example code will be generated for some of the standard library features that by default are in the build, for example, UART support and HW dividers.\nRun from RAM | Usually, the build creates a binary that will be installed to the flash memory. This forces the binary to work directly from RAM.\nGenerate C++ | Any generated source files will use the .cpp extension.\nEnable C++ exceptions | By default exceptions are not support, check this to enable. There is an impact of speed and code size.\nEnable C++ RTTI | By default RTTI (Run Time type information) is not enabled, check this to enable. There is an impact of speed and code size.\nAdvanced  | Brings up a table allowing selection of specific board build options. These options alter the way the features work, and should be used with caution.\n\n\nBuild Options | Description\n--------------| -----------\nRun Build | Once the project has been created, build it. This will produce files ready for download to the Raspberry Pi Pico.\nOverwrite Project | If a project already exists in the specified folder, overwrite it with the new project. This will overwrite any changes you may have made.\n\nIDE Options | Description\n------------| -----------\nCreate VSCode Project | As well as the CMake files, also create the appropriate Visual Studio Code project files.\nDebugger | Use the specified debugger in the IDE\n\n\n\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraspberrypi%2Fpico-project-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraspberrypi%2Fpico-project-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraspberrypi%2Fpico-project-generator/lists"}