Skip to the content
PCBKitNew board
2 layers51.8 × 51.8 mmPawpet, the printed circuit board in 3D

A virtual pet using the atsamd21g and sharp memory lcd, runs off of 2xAAA for a couple of months. See PawPet on Hacakday.io for full gallery.

Size
51.8 × 51.8 mm
Copper layers
2
Thickness
1.6 mm
Parts
41
Nets
52
Pads
177
Tracks, vias
482, 45
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
10 Jun 2023
Updated
12 Jun 2023

Overview

Pawpet is an open-source printed circuit board by NanoCodeBug, from the NanoCodeBug/pawpet repository on GitHub. It is a 2-layer board of 51.8 × 51.8 mm with 41 parts on 52 nets, routed with 482 tracks and 45 vias.

It is built around the ATSAMD21G18A-AU, MX25R1635FM1IL0 and DMG2301L, with the USB4105-GF-A among its other parts. Its parts include 8 capacitors, 8 resistors, 3 connectors, 2 ICs and 1 transistor. It belongs with the SAM D and SAM boards of this library.

Main components

4

README

README.md

PawPet

PawPet

A virtual pet using the atsamd21g and sharp memory lcd, runs off of 2xAAA for a couple of months. See PawPet on Hacakday.io for full gallery.

This is a rewrite in Rust of the original (and unfinished) arduino based code. That codebase is preserved at PawPet Arduino.

Simulator

A webasm simulator of the pawpet using wasm-pack.

This is not a cycle accurate emulator, it hooks the update/render functions to an html5 canvas and maps the core peripherals to web-asm compatible hooks.

  1. Install the Rust SDK

  2. Install wasm-pack (also avaiable via cargo install wasm-pack)

  3. Run the build script

text
cd pawsim
scripts/build.ps1

index.html can then be live hosted from the pawsim\bin folder, see pawpet web simulator for a working web simulator.

Firmware Build Instructions

Windows

  1. Install the Rust SDK

  2. Run sdk-setup, which will setup the rust target dependencies

text
cd pawpet
tools/sdk-setup.ps1
  1. Run build script
text
cd pawpet
tools/build.ps1

Linux

  1. Install powershell (i'm sorry, I'll fix this soon)

  2. Install the Rust SDK

  3. Install linux dependencies (Ubuntu 20.04)

text
apt install build-essential libusb-dev libusb-1.0-0-dev libudev-dev pkg-config 
  1. Run sdk-setup, which will setup the rust target dependencies
text
pwsh
cd pawpet
tools/sdk-setup.ps1
  1. Run build script
text
pwsh
cd pawpet
tools/build.ps1

Bootloader Flashing

  • TODO new hf2 bootloader that supports updating internal flash and extracting save files
  • TODO have bootloader support fuse setting
  1. disable boot prot fuses
  2. flash bootloader generated by pawboot module
  3. set boot brotection fuses to 16kb (bootprot fuse value 0x2)
  4. disable BOD33 fuse

Updating Pawpet

  • pawcon tool supports restarting the pawpet into update mode and flashing new content to its internal storage

Licensing

Code

All code is licensed under the MIT license.

Assets

All graphics, art, and 3d models are licensed under the Creative Commons Attribution-NonCommercial 4.0 International Public License.

Parts

41
QtyValueFootprintReferences
8SW_PushButton_Switch_SMD:SW_SPST_EVQQ2SW_A1, SW_B1, SW_C1, SW_DOWN1, SW_LEFT1, SW_P1, SW_RIGHT1, SW_UP1
4100kResistor_SMD:R_0805_2012MetricR1, R3, R4, R6
31uFCapacitor_SMD:C_0805_2012MetricC3, C4, C5
210uFCapacitor_SMD:C_0805_2012MetricC8, C9
222pFCapacitor_SMD:C_0805_2012MetricC1, C2
25.1kResistor_SMD:R_0805_2012MetricR5, R8
2Val**pawpet:kicad-drawingRef**, Ref**
10.1uFCapacitor_SMD:C_0805_2012MetricC6
11kResistor_SMD:R_0805_2012MetricR7
132,768Crystal:Crystal_SMD_2012-2Pin_2.0x1.2mmY1
1470Resistor_SMD:R_0805_2012MetricR2
1ATSAMD21G18A-APackage_QFP:TQFP-48-1EP_7x7mm_P0.5mm_EP5x5mmU1
1Batterypawpet:BAT_BC2AAAPCBT1
1Conn_ARM_JTAG_SWD_10Connector:Tag-Connect_TC2030-IDC-NL_2x03_P1.27mm_VerticalJ2
1DMG2301LPackage_TO_SOT_SMD:SOT-23Q1
1MOLEXmolex:Molex-52892-1033-Manufacturer_RecommendedJ3
1MX25R1635FM1IL0Package_SO:SOIC-8_5.23x5.23mm_P1.27mmU3
1Sharp_128x128_LS013B7DH03pawpet:Sharp_128x128_LS013B7DH03hello i am smol
1TestPoint_SmallTestPoint:TestPoint_Pad_1.0x1.0mmTP1
1USB4105-GF-Agct:GCT_USB4105-GF-AJ1
1beepBuzzer_Beeper:Buzzer_Murata_PKMCS0909E4000-R1LS1
1resetpawpet:SW_SPST_PTS810_handsolderSW_reset1

The 38 most common of 41 parts.

Questions

How big is the Pawpet PCB?

It measures 51.8 × 51.8 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Pawpet use?

41 parts, built around the ATSAMD21G18A-AU, MX25R1635FM1IL0, DMG2301L and USB4105-GF-A. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Pawpet KiCad files?

From the NanoCodeBug/pawpet repository on GitHub, at the commit this page was made from: the board is kicad/pawpet.kicad_pcb and its schematic kicad/pawpet.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Pawpet design in my own project?

Its repository states no licence, so its author keeps all rights: ask NanoCodeBug before reusing the design.

Similar boards

  • 2 layers46.3 × 75 mmFinalpcb landreesen, the printed circuit board in 3D

    Finalpcb landreesen

    LukeAndreesen/studyPCB

    A Study Timer PCB Project - hold yourself accountable by setting the timer, attaching your phone to the detector, and sitting in front of the module.

    76 parts1
  • 2 layers135.5 × 77 mmPcb final, the printed circuit board in 3D

    Pcb final

    asprgchong/HCI-Engineering-and-PCB

    Project Files and Demo videos from my HCI PCB and HCI Eng classes with Professor Pedro Lopes

    63 parts
  • 2 layers50 × 30 mmMini biped robot, the printed circuit board in 3D

    Mini biped robot

    mrcha033/hw-codesign

    Agentic hardware co-design: brief to KiCad, firmware, 3D review, and explicit fabrication blockers.

    36 parts2Apache-2.0
  • 4 layers45.7 × 90.3 mmIo v2-Board, the printed circuit board in 3D

    Io v2-Board

    Maeswoon/UNHSEDS

    great people building dream rockets

    81 parts11
  • 2 layers30 × 60 mmL1-Altimeter, the printed circuit board in 3D

    L1-Altimeter

    ISSUIUC/ISS-PCB

    Building custom flight computers

    42 parts33
  • 4 layers70.8 × 108 mmCastor and Pollux, the printed circuit board in 3D

    Castor and Pollux

    wntrblm/Castor_and_Pollux

    A Juno-inspired dual oscillator

    235 parts587
  • 2 layers36 × 20 mmCombined, the printed circuit board in 3D

    Combined

    adamb314/ServoProject

    Getting the most out of your hobby servo

    24 parts545
  • 4 layers35.1 × 76.3 mmTiny4FSK, the printed circuit board in 3D

    Tiny4FSK

    New-England-Weather-Balloon-Society/Tiny4FSK

    Horus Binary v2 HAB Tracker

    90 parts96CERN-OHL-W-2.0