1.. _docs-get-started: 2 3=========== 4Quickstarts 5=========== 6.. _docs-first-time-setup: 7 8-------------------------------------------------- 9Configure your workstation for Pigweed development 10-------------------------------------------------- 11Pigweed does its best to bundle all its dependencies into an isolated 12environment using :ref:`module-pw_env_setup`. While this doesn't eliminate 13all prerequisites, it greatly accelerates new developer onboarding. 14 15The first-time setup guides below are required for any Pigweed-based project, 16but only need to be done once per machine. 17 18.. grid:: 2 19 20 .. grid-item-card:: First-time setup 21 :link: docs-first-time-setup-guide 22 :link-type: ref 23 :class-item: sales-pitch-cta-primary 24 25 Prerequisites, first-time setup, and support notes for Linux, macOS, and 26 Windows. 27 28 .. grid-item-card:: Install Bazel 29 :link: docs-install-bazel 30 :link-type: ref 31 :class-item: sales-pitch-cta-secondary 32 33 Recommendations on how to install Bazel. 34 35--------------- 36Tour of Pigweed 37--------------- 38Want a guided, hands-on tour of Pigweed's core features? Try our 39brand new :ref:`Tour of Pigweed <showcase-sense>`! 40 41.. grid:: 1 42 43 .. grid-item-card:: :octicon:`rocket` Tour of Pigweed 44 :link: showcase-sense 45 :link-type: ref 46 :class-item: sales-pitch-cta-primary 47 48 Explore key Pigweed features, such as hermetic building, full C++ 49 code intelligence in VS Code, communicating with devices over RPC, 50 host-side and on-device unit tests, and lots more. 51 52------------------------------ 53Create a Pigweed-based project 54------------------------------ 55.. grid:: 1 56 57 .. grid-item-card:: :octicon:`code-square` Bazel quickstart 58 :link: https://cs.opensource.google/pigweed/quickstart/bazel 59 :link-type: url 60 :class-item: sales-pitch-cta-secondary 61 62 Fork our minimal, Bazel-based starter project to create a new 63 Pigweed project from scratch. The project includes a basic 64 blinky LED program that runs on Raspberry Pi Picos and can 65 be simulated on your development host. 66 67.. grid:: 2 68 69 .. grid-item-card:: :octicon:`rocket` Zephyr 70 :link: docs-quickstart-zephyr 71 :link-type: ref 72 :class-item: sales-pitch-cta-secondary 73 74 Learn how to set up a C++-based Zephyr project that is ready to use 75 Pigweed and then build the app with Zephyr's ``native_sim`` board. 76 77 .. grid-item-card:: :octicon:`code` Examples 78 :link: https://pigweed.dev/examples/index.html 79 :link-type: url 80 :class-item: sales-pitch-cta-secondary 81 82 Check out the examples repo, a repository that outlines the recommended 83 way to use Pigweed in a broader GN-based project. Note that Bazel is the 84 recommended build system for new projects using Pigweed, whereas the 85 examples repo uses GN. 86 87 88.. grid:: 2 89 90 .. grid-item-card:: :octicon:`code` Kudzu 91 :link: docs-kudzu 92 :link-type: ref 93 :class-item: sales-pitch-cta-secondary 94 95 Study the code of Kudzu, a just-for-fun Maker Faire 2023 project that 96 demonstrates complex Pigweed usage. This project also uses GN. 97 98 .. grid-item-card:: :octicon:`list-ordered` Upstream Pigweed 99 :link: docs-get-started-upstream 100 :link-type: ref 101 :class-item: sales-pitch-cta-secondary 102 103 Get set up to contribute to upstream Pigweed. 104 105------------------------------------------ 106Use Pigweed modules in an existing project 107------------------------------------------ 108Pigweed is modular: you can use as much or as little of it as you need. 109 110.. grid:: 2 111 112 .. grid-item-card:: :octicon:`rocket` Bazel 113 :link: docs-bazel-integration 114 :link-type: ref 115 :class-item: sales-pitch-cta-primary 116 117 Instructions for how to use a Pigweed module in an existing Bazel 118 project. 119 120 .. grid-item-card:: :octicon:`list-ordered` GitHub Actions 121 :link: docs-github-actions 122 :link-type: ref 123 :class-item: sales-pitch-cta-secondary 124 125 How to set up GitHub Actions to build and test your Bazel-based 126 Pigweed project. 127 128.. toctree:: 129 :maxdepth: 1 130 :hidden: 131 132 self 133 First-time setup <first_time_setup> 134 Install Bazel <install_bazel> 135 Bazel quickstart <bazel> 136 Bazel integration <bazel_integration> 137 GitHub Actions <github_actions> 138 Zephyr quickstart <zephyr> 139 Upstream Pigweed <upstream> 140