

Pitail
DecaWave DW1000 Linux kernel driver
- Size
- 65 × 56.5 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 372
- Nets
- 49
- Pads
- 588
- Tracks, vias
- 577, 79
- Pours
- 3
- Routed
- Yes
- KiCad
- KiCad 4
- Created
- 13 Mar 2018
- Updated
- 16 Oct 2019
Overview
Pitail is an open-source printed circuit board by mcb30, from the mcb30/dw1000 repository on GitHub. It is a 2-layer board of 65 × 56.5 mm with 372 parts on 49 nets, routed with 577 tracks and 79 vias.
It is built around the DWM1000, 24LC128-I/P and MIC5504-3.3YM5. Its parts include 11 resistors, 4 capacitors, 4 diodes, 3 ICs and 3 connectors. It belongs with the radio and wireless boards of this library.
Main components
3DWM1000
SMDSMD RF Modules ROHSDecaWaveRF Modules24LC128-I/P
PDIP-8-40℃~+85℃ 1,000,000 cycles 128Kbit 2.5V~5.5V 200 Years 400kHz 5ms Hardware write protection function、Noise suppression function I2C PDIP-8 EEPROM ROHSMicrochip TechnologyEEPROMMIC5504-3.3YM5
SOT-23-5-40℃~+125℃@(Tj) 1 120uVrms 15uA 180mV@(300mA) 3.3V 300mA 5.5V 75dB@(1kHz) Fixed Over Temperature Protection、Enable Positive SOT-23-5 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSTECH PUBLICVoltage Regulators - Linear, Low Drop Out (LDO) Regulators
README
README.mdOverview
The DecaWave DW1000 is an IEEE 802.15.4 ultra-wideband (UWB) radio chip, capable of timestamping received and transmitted packets with a nominal resolution of 64GHz (15ps). This equates to a distance of around 0.5cm, allowing the DW1000 to be used to construct a viable indoor positioning system. (Note that sub-centimetre resolution is extremely unlikely to be achieved in practice.)
This repository contains a Linux kernel module for the DecaWave DW1000 radio chip, and a reference design for a Raspberry Pi Hat PCB based around the DWM1000 module. The total material cost in single-unit quantities is around $30-$50 per board (including the manufacture of the PCB itself).
Build instructions
On your Raspberry Pi, install the most recent kernel along with the corresponding kernel headers:
sudo apt update
sudo apt install raspberrypi-kernel raspberrypi-kernel-headersIf necessary, reboot to ensure that you are running the correct kernel version:
sudo rebootBuild and install the kernel module(s):
git clone --depth 1 https://github.com/raspberrypi/linux rpi/kernel/linux
KBUILD=/lib/modules/`uname -r`/build
make -C ${KBUILD} M=`pwd`/rpi/kernel
sudo make -C ${KBUILD} M=`pwd`/rpi/kernel modules_install
sudo depmod -aInstall the udev and ifupdown configuration files:
sudo make -C rpi/config installRetrigger udev to detect the DW1000:
sudo udevadm triggerList your network devices:
ip addrYou should see two interfaces: wpan0 and lowpan0. For example:
wpan0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 123 state UNKNOWN
link/ieee802.15.4 70:b3:d5:b1:e0:00:00:02 brd ff:ff:ff:ff:ff:ff:ff:ff
lowpan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1280 state UNKNOWN
link/6lowpan 70:b3:d5:b1:e0:00:00:02 brd ff:ff:ff:ff:ff:ff:ff:ff
inet6 fe80::72b3:d5b1:e000:2/64 scope link
valid_lft forever preferred_lft foreverCongratulations; you now have a working DW1000 network interface!
Parts
372| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | RPi_Hat:RPi_Hat_Mounting_Hole | , , , | |
| 4 | 10K | Resistors_SMD:R_0603 | R7, R10, R12, R14 |
| 4 | 150R | Resistors_SMD:R_0603 | R0, R1, R2, R3 |
| 3 | 3K9 | Resistors_SMD:R_0603 | R4, R5, R6 |
| 3 | Fiducial | Fiducials:Fiducial_1mm_Dia_2.54mm_Outer_CopperTop | FID1, FID2, FID3 |
| 2 | 1u | Capacitors_SMD:C_0603 | C0, C1 |
| 1 | 100n | Capacitors_SMD:C_0603 | C2 |
| 1 | 10n | Capacitors_SMD:C_0603 | C3 |
| 1 | 24LC128 | Housings_SOIC:SOIC-8_3.9x4.9mm_Pitch1.27mm | U2 |
| 1 | 3V3 | pitail:Test_Pad | TP1 |
| 1 | CONN_01X02 | Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mm | J1 |
| 1 | DWM1000 | _div:DWM1000 | U1 |
| 1 | MIC5504-3.3YM5 | TO_SOT_Packages_SMD:SOT-23-5 | U0 |
| 1 | RX | LEDs:LED_0603 | D1 |
| 1 | RX | pitail:Test_Pad | TP4 |
| 1 | RXOK | pitail:Test_Pad | TP2 |
| 1 | RXOK | LEDs:LED_0603 | D3 |
| 1 | Raspberry_Pi_2_3 | pitail:Samtec_HLE-120-02-XXX-DV-BE-XX-XX_Mirrored | J0 |
| 1 | Raspberry_Pi_2_3 | pihat:Samtec_HLE-120-02-XXX-DV-BE-XX-XX | J2 |
| 1 | SFD | pitail:Test_Pad | TP3 |
| 1 | SFD | LEDs:LED_0603 | D2 |
| 1 | TX | LEDs:LED_0603 | D0 |
| 1 | TX | pitail:Test_Pad | TP5 |
| 1 | WP | pitail:Test_Pad | TP0 |
The 38 most common of 372 parts.
Questions
How big is the Pitail PCB?
It measures 65 × 56.5 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Pitail use?
372 parts, built around the DWM1000, 24LC128-I/P and MIC5504-3.3YM5. 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 Pitail KiCad files?
From the mcb30/dw1000 repository on GitHub, at the commit this page was made from: the board is rpi/circuit/pitail.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Can I use the Pitail design in my own project?
Its repository states no licence, so its author keeps all rights: ask mcb30 before reusing the design.
Similar boards
- 4 layers90.9 × 100 mm

- 2 layers58.2 × 38.1 mm

Usb sniffer
ataradov/usb-sniffer
Low-cost LS/FS/HS USB sniffer with Wireshark interface
87 parts1.3kBSD-3-Clause - 2 layers85.1 × 62.2 mm

Mic extension board
StoneRose35/cortexguitarfx
guitar effects processor implemented on various arm cortex platforms
75 parts146 - 4 layers100 × 100 mm

SDR board
BillyWoods/Narrowband-SDR
A four-channel narrowband SDR receiver based around the Mirics MSi001, MAX11131 and FX2LP.
467 parts16 - 4 layers42.7 × 68.1 mm

- 2 layers49.5 × 5.7 mm

- 4 layers101.6 × 53.3 mm

RC202-68000 SIO 1
MarkD833/RCBUS-68xxx
My Motorola 68000 & 68302 processors (+ SIO, PIO & MFP boards) for the RCBus ecosystem.
42 parts8GPL-3.0 - 6 layers64 × 64 mm

Main power hub
bluesatunsw/owr
This repo includes all software necessary to operate the Test Rover Platform that is being designed and developed in the 502 project.
135 parts5Apache-2.0