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