1*61c4878aSAndroid Build Coastguard Worker.. _docs-blog-01-kudzu: 2*61c4878aSAndroid Build Coastguard Worker 3*61c4878aSAndroid Build Coastguard Worker========================== 4*61c4878aSAndroid Build Coastguard WorkerPigweed Eng Blog #1: Kudzu 5*61c4878aSAndroid Build Coastguard Worker========================== 6*61c4878aSAndroid Build Coastguard Worker.. raw:: html 7*61c4878aSAndroid Build Coastguard Worker 8*61c4878aSAndroid Build Coastguard Worker <script type="application/ld+json"> 9*61c4878aSAndroid Build Coastguard Worker { 10*61c4878aSAndroid Build Coastguard Worker "@context": "https://schema.org", 11*61c4878aSAndroid Build Coastguard Worker "@type": "NewsArticle", 12*61c4878aSAndroid Build Coastguard Worker "headline": "Kudzu: Pigweed's whimsical take on a development board", 13*61c4878aSAndroid Build Coastguard Worker "image": [ 14*61c4878aSAndroid Build Coastguard Worker "https://storage.googleapis.com/pigweed-media/kudzu-finished-photo-diagonal.jpg" 15*61c4878aSAndroid Build Coastguard Worker ], 16*61c4878aSAndroid Build Coastguard Worker "datePublished": "2023-10-12T19:27:00+08:00", 17*61c4878aSAndroid Build Coastguard Worker "dateModified": "2023-10-12T19:27:00+08:00", 18*61c4878aSAndroid Build Coastguard Worker "author": [{ 19*61c4878aSAndroid Build Coastguard Worker "@type": "Person", 20*61c4878aSAndroid Build Coastguard Worker "name": "Erik Gilling", 21*61c4878aSAndroid Build Coastguard Worker "url": "https://github.com/konkers" 22*61c4878aSAndroid Build Coastguard Worker }] 23*61c4878aSAndroid Build Coastguard Worker } 24*61c4878aSAndroid Build Coastguard Worker </script> 25*61c4878aSAndroid Build Coastguard Worker 26*61c4878aSAndroid Build Coastguard Worker.. admonition:: A note from the Pigweed Eng Blog editors 27*61c4878aSAndroid Build Coastguard Worker 28*61c4878aSAndroid Build Coastguard Worker Welcome to the Pigweed Eng Blog! This is an informal blog where Pigweed 29*61c4878aSAndroid Build Coastguard Worker teammates, contributors, and users can share ideas and projects related to 30*61c4878aSAndroid Build Coastguard Worker Pigweed. 31*61c4878aSAndroid Build Coastguard Worker 32*61c4878aSAndroid Build Coastguard Worker Our first post comes from Erik Gilling, a software engineer on the 33*61c4878aSAndroid Build Coastguard Worker Pigweed team. Today, Erik is going to tell you about Kudzu, 34*61c4878aSAndroid Build Coastguard Worker "Pigweed's whimsical take on a development board"… 35*61c4878aSAndroid Build Coastguard Worker 36*61c4878aSAndroid Build Coastguard Worker Please note that **while Kudzu is open source, its hardware isn't publicly 37*61c4878aSAndroid Build Coastguard Worker available**. Pigweed users may find the `Kudzu source 38*61c4878aSAndroid Build Coastguard Worker code <https://pigweed.googlesource.com/pigweed/kudzu/+/refs/heads/main>`_ 39*61c4878aSAndroid Build Coastguard Worker to be a helpful example of a complex Pigweed integration. 40*61c4878aSAndroid Build Coastguard Worker 41*61c4878aSAndroid Build Coastguard Worker.. card:: 42*61c4878aSAndroid Build Coastguard Worker :img-background: https://storage.googleapis.com/pigweed-media/kudzu-finished-photo-diagonal.jpg 43*61c4878aSAndroid Build Coastguard Worker :link: https://storage.googleapis.com/pigweed-media/kudzu-finished-photo-diagonal.jpg 44*61c4878aSAndroid Build Coastguard Worker :img-alt: A single Kudzu badge face-up on a table viewed at a diagonal. 45*61c4878aSAndroid Build Coastguard Worker 46*61c4878aSAndroid Build Coastguard Worker---------------------------- 47*61c4878aSAndroid Build Coastguard WorkerIt all started so innocently 48*61c4878aSAndroid Build Coastguard Worker---------------------------- 49*61c4878aSAndroid Build Coastguard WorkerThe Pigweed team is taking a field trip to the 50*61c4878aSAndroid Build Coastguard Worker`Bay Area Maker Faire <https://makerfaire.com/bay-area/>`_ because 51*61c4878aSAndroid Build Coastguard Workerunsurprisingly, that's the kind of good time we're up for! While discussing 52*61c4878aSAndroid Build Coastguard Workerthe plans at a team meeting I suggested: "We should make PCB badges that run 53*61c4878aSAndroid Build Coastguard WorkerPigweed and wear that to the Faire!" I've always wanted to make a PCB badge 54*61c4878aSAndroid Build Coastguard Workerand this seemed like the perfect opportunity to make a simple PCB that we could 55*61c4878aSAndroid Build Coastguard Workerdo a little bit of hacking on. 56*61c4878aSAndroid Build Coastguard Worker 57*61c4878aSAndroid Build Coastguard Worker-------- 58*61c4878aSAndroid Build Coastguard Worker"Simple" 59*61c4878aSAndroid Build Coastguard Worker-------- 60*61c4878aSAndroid Build Coastguard WorkerThe idea resonated with the team… perhaps too well. What started as 61*61c4878aSAndroid Build Coastguard Workersomething simple in my head quickly started creeping features. Hence 62*61c4878aSAndroid Build Coastguard Workerthe name `Kudzu <https://en.wikipedia.org/wiki/Kudzu>`_: a vine 63*61c4878aSAndroid Build Coastguard Workerconsidered invasive in many parts of the world. Pigweed's a weed. 64*61c4878aSAndroid Build Coastguard WorkerOur RFCs are called "seeds". We're all about the plant puns… 65*61c4878aSAndroid Build Coastguard Worker 66*61c4878aSAndroid Build Coastguard WorkerAnyways, the conversation went something like this: 67*61c4878aSAndroid Build Coastguard Worker 68*61c4878aSAndroid Build Coastguard Worker "We should have some sort of sensor so it does something…" 69*61c4878aSAndroid Build Coastguard Worker 70*61c4878aSAndroid Build Coastguard Worker "How should we power it? Let's do LiPo charging…" 71*61c4878aSAndroid Build Coastguard Worker 72*61c4878aSAndroid Build Coastguard Worker "Let's add a display to highlight our recent 73*61c4878aSAndroid Build Coastguard Worker :ref:`Display Support SEED <seed-0104>`!" 74*61c4878aSAndroid Build Coastguard Worker 75*61c4878aSAndroid Build Coastguard Worker "Touch screen?" 76*61c4878aSAndroid Build Coastguard Worker 77*61c4878aSAndroid Build Coastguard Worker "D-Pad and buttons?" 78*61c4878aSAndroid Build Coastguard Worker 79*61c4878aSAndroid Build Coastguard Worker "Speaker?" 80*61c4878aSAndroid Build Coastguard Worker 81*61c4878aSAndroid Build Coastguard Worker "Wireless?" 82*61c4878aSAndroid Build Coastguard Worker 83*61c4878aSAndroid Build Coastguard Worker "No!… but also yes…" 84*61c4878aSAndroid Build Coastguard Worker 85*61c4878aSAndroid Build Coastguard WorkerWe quickly realized that what we wanted was more than a badge. We wanted a 86*61c4878aSAndroid Build Coastguard Workershowcase for Pigweed. We wanted a project we can point people at to show them 87*61c4878aSAndroid Build Coastguard WorkerPigweed running at it's best. And thus Kudzu was born. Part badge, part 88*61c4878aSAndroid Build Coastguard Workerdevelopment board, part handheld gaming system, and all Pigweed. 89*61c4878aSAndroid Build Coastguard Worker 90*61c4878aSAndroid Build Coastguard Worker---------------- 91*61c4878aSAndroid Build Coastguard WorkerThe laundry list 92*61c4878aSAndroid Build Coastguard Worker---------------- 93*61c4878aSAndroid Build Coastguard WorkerWe settled on the following laundry list of features and components: 94*61c4878aSAndroid Build Coastguard Worker 95*61c4878aSAndroid Build Coastguard Worker`RP2040 Microcontroller <https://www.raspberrypi.com/documentation/microcontrollers/rp2040.html>`_ 96*61c4878aSAndroid Build Coastguard Worker There's a lot to love about the RP2040: a reasonable amount of SRAM, 97*61c4878aSAndroid Build Coastguard Worker support for large/cheap/execute-in-place external flash, a wicked cool 98*61c4878aSAndroid Build Coastguard Worker programmable I/O block, and most importantly: easy and cheap to source! 99*61c4878aSAndroid Build Coastguard Worker 100*61c4878aSAndroid Build Coastguard Worker`16 MB of Flash <https://www.winbond.com/resource-files/w25q128jv%20revf%2003272018%20plus.pdf>`_ 101*61c4878aSAndroid Build Coastguard Worker We're adding the maximum amount of flash that the RP2040 can support. This 102*61c4878aSAndroid Build Coastguard Worker way we can pack as much awesome into the firmware as possible. Realistically 103*61c4878aSAndroid Build Coastguard Worker 16 MB is an embarrassingly large amount of space for an embedded project and I 104*61c4878aSAndroid Build Coastguard Worker can't wait to see what cool stuff we fill it with! 105*61c4878aSAndroid Build Coastguard Worker 106*61c4878aSAndroid Build Coastguard WorkerUSB-C Connector 107*61c4878aSAndroid Build Coastguard Worker While we're not adding USB Power Delivery to the board, the USB C connector 108*61c4878aSAndroid Build Coastguard Worker is robust and common. Many of us on the team are tired of digging micro 109*61c4878aSAndroid Build Coastguard Worker (or even mini) USB cables out of our desk drawers to hook up brand new dev 110*61c4878aSAndroid Build Coastguard Worker boards or JTAG programmers! 111*61c4878aSAndroid Build Coastguard Worker 112*61c4878aSAndroid Build Coastguard WorkerLiPo Battery with `charger <https://www.microchip.com/en-us/product/mcp73831>`_ and `fuel gauge <https://www.analog.com/en/products/max17048.html>`_ 113*61c4878aSAndroid Build Coastguard Worker Once we decided on a portable gaming form factor, we wanted to have a 114*61c4878aSAndroid Build Coastguard Worker built-in, rechargeable battery. The battery is 900mA and is set to charge at 500mA 115*61c4878aSAndroid Build Coastguard Worker from USB when the system is off and 250mA when the system is running. As an 116*61c4878aSAndroid Build Coastguard Worker added bonus we threw in a fuel gauge chip. Partly because it's really nice to 117*61c4878aSAndroid Build Coastguard Worker have an accurate view of the battery charge state and partly because it's 118*61c4878aSAndroid Build Coastguard Worker a neat chip to write software for. 119*61c4878aSAndroid Build Coastguard Worker 120*61c4878aSAndroid Build Coastguard Worker`3.2" IPS display with capacitive touch <https://www.buydisplay.com/3-2-inch-240x320-ips-tft-lcd-display-optl-capacitive-touchscreen-st7789>`_ 121*61c4878aSAndroid Build Coastguard Worker This display is 240x320 which presents two challenges. First, it's naturally 122*61c4878aSAndroid Build Coastguard Worker portrait instead of landscape. We solve this by rotating the buffers once 123*61c4878aSAndroid Build Coastguard Worker they're rendered. The second is that a single 16-bit x 320 x 240 frame buffer 124*61c4878aSAndroid Build Coastguard Worker is ~150K which is over half of the 264K of SRAM in the RP2040. Instead, we're 125*61c4878aSAndroid Build Coastguard Worker rendering at 160x120 and using the PIO module to `pixel double 126*61c4878aSAndroid Build Coastguard Worker <https://github.com/32blit/32blit-sdk>`_ the buffer as we're sending it to the 127*61c4878aSAndroid Build Coastguard Worker display. As an added bonus, the chunkier pixels gives Kudzu a nice retro feel. 128*61c4878aSAndroid Build Coastguard Worker 129*61c4878aSAndroid Build Coastguard WorkerDirectional Pad and Buttons 130*61c4878aSAndroid Build Coastguard Worker Here we're leaning on off-the-shelf buttons and silicone pads. Game 131*61c4878aSAndroid Build Coastguard Worker controller design is a whole rabbit hole and we're going to rely on the 132*61c4878aSAndroid Build Coastguard Worker collective wisdom of the retro modding community to give us nice-feeling 133*61c4878aSAndroid Build Coastguard Worker controls. 134*61c4878aSAndroid Build Coastguard Worker 135*61c4878aSAndroid Build Coastguard Worker`Six Axis IMU <https://invensense.tdk.com/products/motion-tracking/6-axis/icm-42670-p/>`_ 136*61c4878aSAndroid Build Coastguard Worker An IMU is a great general purpose peripheral to demonstrate Pigweed's HAL 137*61c4878aSAndroid Build Coastguard Worker layer. Plus, there's all sorts of cool demos you can write with an IMU and 138*61c4878aSAndroid Build Coastguard Worker a display. 139*61c4878aSAndroid Build Coastguard Worker 140*61c4878aSAndroid Build Coastguard Worker`I2S Audio DAC/Amplifier <https://www.analog.com/media/en/technical-documentation/data-sheets/max98357a-max98357b.pdf>`_ and Speaker 141*61c4878aSAndroid Build Coastguard Worker Chip tunes are best tunes. A couple of us on the team would love to 142*61c4878aSAndroid Build Coastguard Worker port/write a tracker or FM synthesis engine. 143*61c4878aSAndroid Build Coastguard Worker 144*61c4878aSAndroid Build Coastguard WorkerGameboy Advance Link Port 145*61c4878aSAndroid Build Coastguard Worker As a simple way of hooking two devices together, we added link port. Again 146*61c4878aSAndroid Build Coastguard Worker we're using an existing link port and cable to avoid reinventing to wheel. 147*61c4878aSAndroid Build Coastguard Worker Plus, there's something awful nostalgic about that port! 148*61c4878aSAndroid Build Coastguard Worker 149*61c4878aSAndroid Build Coastguard Worker... and `One More Thing <https://www.espressif.com/en/products/socs/esp32-c3>`_ 150*61c4878aSAndroid Build Coastguard Worker I kinda snuck an ESP32-C3 module onto the board at the last minute. Having 151*61c4878aSAndroid Build Coastguard Worker wireless is something we wanted but didn't want to burden the initial design 152*61c4878aSAndroid Build Coastguard Worker and bring up with it. My thinking is that we'll leave the module un-populated 153*61c4878aSAndroid Build Coastguard Worker for now. My hope is that adding it to the board now may keep these boards from 154*61c4878aSAndroid Build Coastguard Worker becoming landfill when we decide to tackle wireless. 155*61c4878aSAndroid Build Coastguard Worker 156*61c4878aSAndroid Build Coastguard Worker-------------------------- 157*61c4878aSAndroid Build Coastguard WorkerDesign, build, and rollout 158*61c4878aSAndroid Build Coastguard Worker-------------------------- 159*61c4878aSAndroid Build Coastguard WorkerI used `KiCad <https://www.kicad.org/>`_ to design the board. It's an open 160*61c4878aSAndroid Build Coastguard Workersource PCB design package that has been making incredible strides in 161*61c4878aSAndroid Build Coastguard Workerfunctionality and usability in the past few years. It comes with a high-quality 162*61c4878aSAndroid Build Coastguard Workerlibrary of symbols and footprint which is supplemented by community-maintained 163*61c4878aSAndroid Build Coastguard Workeropen source libraries. 164*61c4878aSAndroid Build Coastguard Worker 165*61c4878aSAndroid Build Coastguard Worker.. card:: 166*61c4878aSAndroid Build Coastguard Worker :img-top: https://storage.googleapis.com/pigweed-media/kudzu-schematic.png 167*61c4878aSAndroid Build Coastguard Worker :link: https://storage.googleapis.com/pigweed-media/kudzu-schematic.png 168*61c4878aSAndroid Build Coastguard Worker :img-alt: A screenshot of Kudzu's schematic. 169*61c4878aSAndroid Build Coastguard Worker :text-align: center 170*61c4878aSAndroid Build Coastguard Worker 171*61c4878aSAndroid Build Coastguard Worker Kudzu schematic 172*61c4878aSAndroid Build Coastguard Worker 173*61c4878aSAndroid Build Coastguard WorkerAfter some careful design review from the team and a few friends of Pigweed we 174*61c4878aSAndroid Build Coastguard Workersent off the board to get fabbed and "patiently" waited for it to be delivered. 175*61c4878aSAndroid Build Coastguard Worker 176*61c4878aSAndroid Build Coastguard WorkerAn EE at a previous company I worked at had a saying: "If you haven't found 177*61c4878aSAndroid Build Coastguard Workerthree problems with your board, you're not done looking". The three problems 178*61c4878aSAndroid Build Coastguard Workerwe found in order from least to most crushing are: 179*61c4878aSAndroid Build Coastguard Worker 180*61c4878aSAndroid Build Coastguard Worker.. card:: 181*61c4878aSAndroid Build Coastguard Worker :img-top: https://storage.googleapis.com/pigweed-media/kudzu-display-connector.jpeg 182*61c4878aSAndroid Build Coastguard Worker :link: https://storage.googleapis.com/pigweed-media/kudzu-display-connector.jpeg 183*61c4878aSAndroid Build Coastguard Worker :img-alt: The reworked display connector with many bodge wires. 184*61c4878aSAndroid Build Coastguard Worker :text-align: center 185*61c4878aSAndroid Build Coastguard Worker 186*61c4878aSAndroid Build Coastguard Worker The reworked display connector and the unpopulated footprint for the "one more thing" 187*61c4878aSAndroid Build Coastguard Worker that "we'll get to eventually" 188*61c4878aSAndroid Build Coastguard Worker 189*61c4878aSAndroid Build Coastguard Worker#. **The BOOT and RESET labels were reversed.** This led to some initial 190*61c4878aSAndroid Build Coastguard Worker confusion on why the boards would not come up in bootloader mode. 191*61c4878aSAndroid Build Coastguard Worker 192*61c4878aSAndroid Build Coastguard Worker#. **One of the FETs (Q3) had the wrong pinout.** This caused the power 193*61c4878aSAndroid Build Coastguard Worker switch to be stuck on and the charge rate switching to not work. 194*61c4878aSAndroid Build Coastguard Worker 195*61c4878aSAndroid Build Coastguard Worker#. **The pins on the display FPC connector were swapped.** This one was really 196*61c4878aSAndroid Build Coastguard Worker crushing. The connector was fairly fine-pitched and 40 pins! 197*61c4878aSAndroid Build Coastguard Worker 198*61c4878aSAndroid Build Coastguard WorkerWe were able to bring up the whole board including the display by rotating the 199*61c4878aSAndroid Build Coastguard Workerconnector. Sadly the display would not fit in the 3D printed parts 200*61c4878aSAndroid Build Coastguard Workerwe'd designed when plugged into the rotated connection. To validate our 3D 201*61c4878aSAndroid Build Coastguard Workerprinted parts, I painstakingly reworked on-board to get the connector oriented 202*61c4878aSAndroid Build Coastguard Workercorrectly. However, that was too much work and too fragile for all the boards. 203*61c4878aSAndroid Build Coastguard WorkerWe had to do a re-spin and Maker Faire was approaching quickly! Time to lather, 204*61c4878aSAndroid Build Coastguard Workerrinse, and repeat. 205*61c4878aSAndroid Build Coastguard Worker 206*61c4878aSAndroid Build Coastguard WorkerFast forward to Monday night before Maker Faire. The boards come in and I spent 207*61c4878aSAndroid Build Coastguard Workerthe evening preparing for a build party. On Tuesday, with some 208*61c4878aSAndroid Build Coastguard Worker`robotic help <https://www.opulo.io/>`_, we managed to build and test 8 boards 209*61c4878aSAndroid Build Coastguard Workerand get them in team members' hands on Wednesday. 210*61c4878aSAndroid Build Coastguard Worker 211*61c4878aSAndroid Build Coastguard Worker.. card:: 212*61c4878aSAndroid Build Coastguard Worker :img-top: https://storage.googleapis.com/pigweed-media/kudzu-pnp.jpg 213*61c4878aSAndroid Build Coastguard Worker :link: https://storage.googleapis.com/pigweed-media/kudzu-pnp.jpg 214*61c4878aSAndroid Build Coastguard Worker :img-alt: A photo of the Opulo LumenPnP 215*61c4878aSAndroid Build Coastguard Worker :text-align: center 216*61c4878aSAndroid Build Coastguard Worker 217*61c4878aSAndroid Build Coastguard Worker Our robotic help (Opulo LumenPnP) 218*61c4878aSAndroid Build Coastguard Worker 219*61c4878aSAndroid Build Coastguard WorkerThankfully, because Pigweed is modular and portable, we were able to get our 220*61c4878aSAndroid Build Coastguard Workersoftware working on it quickly, freeing us to spend the next couple days hacking 221*61c4878aSAndroid Build Coastguard Workertogether some simple fun demos for Maker Faire! 222*61c4878aSAndroid Build Coastguard Worker 223*61c4878aSAndroid Build Coastguard Worker------ 224*61c4878aSAndroid Build Coastguard WorkerPhotos 225*61c4878aSAndroid Build Coastguard Worker------ 226*61c4878aSAndroid Build Coastguard Worker.. grid:: 1 1 2 2 227*61c4878aSAndroid Build Coastguard Worker 228*61c4878aSAndroid Build Coastguard Worker .. grid-item-card:: 229*61c4878aSAndroid Build Coastguard Worker :img-background: https://storage.googleapis.com/pigweed-media/kudzu-finished-photo-diagonal.jpg 230*61c4878aSAndroid Build Coastguard Worker :link: https://storage.googleapis.com/pigweed-media/kudzu-finished-photo-diagonal.jpg 231*61c4878aSAndroid Build Coastguard Worker :img-alt: A single Kudzu badge face-up on a table viewed at a diagonal. 232*61c4878aSAndroid Build Coastguard Worker 233*61c4878aSAndroid Build Coastguard Worker .. grid-item-card:: 234*61c4878aSAndroid Build Coastguard Worker :img-background: https://storage.googleapis.com/pigweed-media/kudzu-finished-photo-back.jpg 235*61c4878aSAndroid Build Coastguard Worker :link: https://storage.googleapis.com/pigweed-media/kudzu-finished-photo-back.jpg 236*61c4878aSAndroid Build Coastguard Worker :img-alt: A single Kudzu badge face-down on a table viewed at a diagonal. 237*61c4878aSAndroid Build Coastguard Worker 238*61c4878aSAndroid Build Coastguard Worker.. grid:: 1 1 2 2 239*61c4878aSAndroid Build Coastguard Worker 240*61c4878aSAndroid Build Coastguard Worker .. grid-item-card:: 241*61c4878aSAndroid Build Coastguard Worker :img-background: https://storage.googleapis.com/pigweed-media/kudzu-finished-photo-top-down.jpg 242*61c4878aSAndroid Build Coastguard Worker :link: https://storage.googleapis.com/pigweed-media/kudzu-finished-photo-top-down.jpg 243*61c4878aSAndroid Build Coastguard Worker :img-alt: A single Kudzu badge face-up on a table viewed from above. 244*61c4878aSAndroid Build Coastguard Worker 245*61c4878aSAndroid Build Coastguard Worker .. grid-item-card:: 246*61c4878aSAndroid Build Coastguard Worker :img-background: https://storage.googleapis.com/pigweed-media/kudzu-finished-photo-front-standing.jpg 247*61c4878aSAndroid Build Coastguard Worker :link: https://storage.googleapis.com/pigweed-media/kudzu-finished-photo-front-standing.jpg 248*61c4878aSAndroid Build Coastguard Worker :img-alt: A single Kudzu badge standing up on a table viewed from the front. 249*61c4878aSAndroid Build Coastguard Worker 250*61c4878aSAndroid Build Coastguard Worker.. card:: 251*61c4878aSAndroid Build Coastguard Worker :img-top: https://storage.googleapis.com/pigweed-media/kudzu-badges.jpg 252*61c4878aSAndroid Build Coastguard Worker :link: https://storage.googleapis.com/pigweed-media/kudzu-badges.jpg 253*61c4878aSAndroid Build Coastguard Worker :img-alt: A photo of 6 of the Kudzu badges 254*61c4878aSAndroid Build Coastguard Worker :text-align: center 255*61c4878aSAndroid Build Coastguard Worker 256*61c4878aSAndroid Build Coastguard Worker Six Kudzu badges for Maker Faire 2023 257*61c4878aSAndroid Build Coastguard Worker 258*61c4878aSAndroid Build Coastguard Worker---------- 259*61c4878aSAndroid Build Coastguard WorkerLearn more 260*61c4878aSAndroid Build Coastguard Worker---------- 261*61c4878aSAndroid Build Coastguard WorkerWe don't have any plans to distribute hardware outside of our team but are 262*61c4878aSAndroid Build Coastguard Workerexcited to publish the living project to serve as an example of how to build 263*61c4878aSAndroid Build Coastguard Workerfirmware integrated with Pigweed. Over the coming months we'll be publishing 264*61c4878aSAndroid Build Coastguard Workermore functionality to the repository. 265*61c4878aSAndroid Build Coastguard Worker 266*61c4878aSAndroid Build Coastguard WorkerHead over to the `Kudzu repo <https://pigweed.googlesource.com/pigweed/kudzu>`_ 267*61c4878aSAndroid Build Coastguard Workerwhere you'll find: 268*61c4878aSAndroid Build Coastguard Worker 269*61c4878aSAndroid Build Coastguard Worker* KiCad PCB Design 270*61c4878aSAndroid Build Coastguard Worker* Example firmware demonstrating: 271*61c4878aSAndroid Build Coastguard Worker * :ref:`module-pw_system` integration 272*61c4878aSAndroid Build Coastguard Worker * :ref:`module-pw_rpc` and :ref:`module-pw_log` support 273*61c4878aSAndroid Build Coastguard Worker * Use of Pigweed's :ref:`module-pw_digital_io`, :ref:`module-pw_i2c`, 274*61c4878aSAndroid Build Coastguard Worker and :ref:`module-pw_spi` hardware abstraction layers 275*61c4878aSAndroid Build Coastguard Worker 276*61c4878aSAndroid Build Coastguard Worker.. pigweed-live:: 277