
Opentaxus
OpenTaxus/opentaxus
Opentaxus is a permissively licensed set of hardware, software, and tooling to help as a starting point for customized conference badges.

Xiǎomāo is a development board geared toward hardware hacking and hardware implant design that can safely interfacing with a wide range of logic levels
Xiaomao is an open-source printed circuit board by tigard-tools, from the tigard-tools/xiaomao repository on GitHub, published under the CERN-OHL-S-2.0 licence. It is a 2-layer board of 36 × 45.8 mm with 84 parts on 78 nets, routed with 416 tracks and 48 vias.
It is built around the RP2040, ZD25Q128CWIGR and HE6206-33NR, with the TD-1183SN-1.7H-160, WS2812B and YSX321SL among its other parts. Its parts include 25 resistors, 16 capacitors, 5 connectors, 4 diodes and 3 ICs. It belongs with the microcontroller boards boards and the RP2040 boards of this library.
Xiǎomāo is a development board geared toward hardware hacking and hardware implant design that can safely interfacing with a wide range of logic levels
Xiǎomāo (小猫) means 'small cat' and gets its name from the original revision which used the the small Seeed Studio XIAO SAMD2 module with the catlike tigard-tools wiring harnesses. The current version, Xiǎomāo v2 is a redesign based on an RP2040 but the Xiǎomāo name stuck.
If you have an old Xiǎomāo v0.1 or 0.2, check the older version of this readme
Xiǎomāo ships with a slightly modified JTAGScan. Both jtagenum and jtagscan allow you to search IO pins for JTAG interfaces. Jtagscan is a cleaner and quicker option, but has issues with more than 8 pins. Jtagenum has many more options but a difficult user interface. Xiǎomāo has been tested on 1.8, 3.3, and 5v targets.
> h
---------------------------------
-- JTAGscan Jtag Pinout Finder --
---------------------------------
a - Automatically find all pins
i - IDCODE search for pins
b - BYPASS search for pins
t - TDI-only BYPASS search
d - set debug level. current: 0
p - adjust # pins. current: 6
h - print this help
---------------------------------
> a
Automatically searching
--- Starting with IDCODE scan ---
| TCK | TMS | TDO | IDCODE |
---------------------------------
| 0 | 3 | 2 | 974008ef |
------------ SUCCESS ------------
TCK, TMS, and TDO found.
--- BYPASS searching, just TDI --
| TCK | TMS | TDO | TDI | Width |
---------------------------------
| 0 | 3 | 2 | 1 | 32 |
------------ SUCCESS ------------
> Hecate is a CircuitPython-based UART implant development framework made for Xiǎomāo. It has the built in capability to log traffic or drop payloads over UART.
Arduino Examples -> 04.Communication -> AsciiPrint is a good starting point for using Xiǎomāo to drop a UART payload to a target, for example some console commands that would open up a network shell, or console commands that would write out a malicious binary to storage.
Hecate also has advanced capabilities for manipulating UART data in flight.
Circuitpython-uart-passthrough is a standalone and fully featured UART passthrough script that works well with Xiǎomāo, and might also be a good starting point for modifiying UART traffic.
Arduino Examples -> 04.Communication -> SerialPassthrough is a good starting point for using Xiǎomāo to modify UART data on the fly. You can prototype looking at all the data over the USB connection, but when you have it working, you can use it standalone - Use the Tigard UART harness and connect VTGT, GND, TX and RX to have your implant read data on RX and output modified data on TX.
8-pin header for use with Tigard's jtag harness, and usable as a JTAG implant with the wires as labeled
| Header Pin | Board label | rp2040 pin | Wire Label | Color |
|---|---|---|---|---|
| 1 | PWR | VIN | Red | |
| 2 | GND | GND | Black | |
| 3 | D0 | GPIO0 | TCK | White |
| 4 | D1 | GPIO1 | TDI/COPI/SDA | Grey |
| 5 | D2 | GPIO2 | TDO/CIPO/-- | Purple |
| 6 | D3 | GPIO3 | TMS/SS/-- | Blue |
| 7 | D4 | GPIO4 | TRST/--/-- | Green |
| 8 | D5 | GPIO5 | SRST/--/-- | Yellow |
9-pin header for use with Tigard's uart harness. Ships with only first 4 wires installed, and usable as a UART implant with the wires as labeled
| Header Pin | Board Label | rp2040 pin | Wire Label | Color |
|---|---|---|---|---|
| 1 | PWR | VIN | Red | |
| 2 | GND | GND | Black | |
| 3 | TX | GPIO16 | TX | Green |
| 4 | RX | GPIO17 | RX | White |
| 5 | CTS | GPIO18 | Grey | |
| 6 | RTS | GPIO19 | Purple | |
| 7 | TX1 | GPIO20 | Blue | |
| 8 | RX1 | GPIO21 | Yellow | |
| 9 | CTS1 | GPIO22 | Orange |
While not broken out on a header, the following pins are also in use:
| CircuitPython Name | rp2040 pin | Purpose |
|---|---|---|
| NEOPIXEL_POWER | GPIO6 | set to '1' to power on Neopixels |
| NEOPIXEL | GPIO7 | Neopixel data |
| LED | GPI27 | set to '1' to turn on the LED |
| BTN | GPI28 | reads '0' when pressed |
| VBUS_DET | GPI29 | reads '1' when usb power present |
5-pin header is unpopulated and gives access to the programming pins on the bottom of XIAO.
| Header Pin | rp2040 Pin |
|---|---|
| 1 | SWDIO |
| 2 | GND |
| 3 | SWCLK |
| 4 | NC |
| 5 | /RESET |
Xiǎomāo fits under the tigard-tools umbrella because it repurposes Tigard's wiring harnesses and complement's Tigards features by providing a wide-Vio-range programmable device. It was designed to fill gaps in what Tigard was able to do for some of the labs in Applied Physical Attacks #2: Hardware Pentesting. Xiǎomāo should be well suited for:
While unidirectional level shifting works well on Tigard, bidirection level shifting is cursed and should be avoided whenever possible. On a general-purpose microcontroller board, we don't know ahead of time which pins will be used as inputs or outputs.
Xiǎomāo is intended to be a very cheap module with 'just enough' protection to not damage most targets:
Xiǎomāo V1 used the Seeed Studio XIAO SAMD21 because it was small, cheap, 1.8v sensitive, usb-c, easily supported in arduino and circuitpython, and readily available in September 2021.
Xiǎomāo V2 uses the RP2040 for greater capabilities, similar I/O, lower cost, and greater availability.
Depending on the usage, there are a wide variety of alternatives. Xiǎomāo was designed with lots of tradeoffs in mind - some of these alternatives are going to be better for certain uses.
Xiǎomāo was designed for automated assembly.
The RP2040 used on XIAO supports debugging over the SWD pins. Xiǎomāo makes these pins accessible on the SWD header. To set up Tigard, OpenOCD, and GDB to work with Xiǎomāo:
openocd -f tigard-swd.cfg -f target/rp2040.cfggdb-multiarchset arch arm; target remote localhost:3333| Qty | Value | Footprint | References |
|---|---|---|---|
| 15 | 200 | rhais_rcl:R0402 | R2, R6, R9, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R24 |
| 10 | 100n | rhais_rcl:C0402 | C4, C6, C7, C9, C11, C12, C13, C14, C15, C19 |
| 4 | 10u | rhais_rcl:C0402 | C8, C10, C16, C22 |
| 4 | 27 | rhais_rcl:R0402 | R4, R5, R21, R22 |
| 3 | 1k | rhais_rcl:R0402 | R1, R3, R25 |
| 3 | 5k1 | rhais_rcl:R0402 | R7, R8, R23 |
| 3 | TD-1183SN-1.7H-160 | rhais_button-smd:B3U-1000P | SW1, SW2, SW3 |
| 2 | 22p | rhais_rcl:C0402 | C1, C2 |
| 2 | G*** | kibuzzard-69E92C52 | kibuzzard-69E92C52, kibuzzard-69E92C52 |
| 2 | G*** | kibuzzard-69E92C43 | kibuzzard-69E92C43, kibuzzard-69E92C43 |
| 2 | WS2812B | xiaomao:LED_WS2812B_PLCC4_1x1mm | D1, D2 |
| 1 | 600R | rhais_rcl:L0603 | FB1 |
| 1 | D_Schottky | Diode_SMD:D_SOD-523 | D4 |
| 1 | G*** | kibuzzard-69E92DE3 | kibuzzard-69E92DE3 |
| 1 | G*** | kibuzzard-69E92D56 | kibuzzard-69E92D56 |
| 1 | G*** | kibuzzard-69E92D4C | kibuzzard-69E92D4C |
| 1 | G*** | kibuzzard-69E92995 | kibuzzard-69E92995 |
| 1 | G*** | kibuzzard-69E92DF2 | kibuzzard-69E92DF2 |
| 1 | G*** | kibuzzard-69E92DD4 | kibuzzard-69E92DD4 |
| 1 | G*** | kibuzzard-69E93065 | kibuzzard-69E93065 |
| 1 | G*** | kibuzzard-69E92B07 | kibuzzard-69E92B07 |
| 1 | G*** | kibuzzard-69E934F5 | kibuzzard-69E934F5 |
| 1 | G*** | kibuzzard-69E92DDC | kibuzzard-69E92DDC |
| 1 | G*** | kibuzzard-69E92B95 | kibuzzard-69E92B95 |
| 1 | G*** | kibuzzard-69E92CD4 | kibuzzard-69E92CD4 |
| 1 | G*** | kibuzzard-69E9307B | kibuzzard-69E9307B |
| 1 | G*** | kibuzzard-69E931DF | kibuzzard-69E931DF |
| 1 | G*** | kibuzzard-69E92DB0 | kibuzzard-69E92DB0 |
| 1 | G*** | kibuzzard-69E92A7D | kibuzzard-69E92A7D |
| 1 | G*** | kibuzzard-69E929A9 | kibuzzard-69E929A9 |
| 1 | G*** | kibuzzard-69E92BA0 | kibuzzard-69E92BA0 |
| 1 | G*** | kibuzzard-69E934DD | kibuzzard-69E934DD |
| 1 | G*** | kibuzzard-69E92DE9 | kibuzzard-69E92DE9 |
| 1 | HE6206-33NR | rhais_package-smd:SOT-23 | U1 |
| 1 | JTAG | rhais_connector-pinheader:PinHeader_1x08_P2.54mm_Horizontal_SMD | J5 |
| 1 | LED | rhais_rcl:L0402 | D3 |
| 1 | LOGO | face:catface | G*** |
| 1 | RP2040 | Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mm | U3 |
| 1 | SWD | rhais_connector-pinheader:PinHeader_1x05_P1.27mm_Vertical | J2 |
| 1 | UART | rhais_connector-pinheader:PinHeader_1x09_P2.54mm_Horizontal_SMD | J6 |
| 1 | USB | rhais_connector-pinheader:PinHeader_1x04_P1.27mm_Vertical | J1 |
| 1 | USB_C_Receptacle_USB2.0 | rhais_usb:USB_C_Receptacle_HRO_TYPE-C-31-M-12 | J4 |
| 1 | YSX321SL | rhais_osc:SMD3225 | Y1 |
| 1 | ZD25Q128CWIGR | rhais_package-qfn:UDFN-8-1EP_6x5mm_P1.27mm_EP3.4x4mm | U2 |
The 83 most common of 84 parts.

OpenTaxus/opentaxus
Opentaxus is a permissively licensed set of hardware, software, and tooling to help as a starting point for customized conference badges.







leenknegt-eu/choccy47
47 key planck-style layout layer switching mechanical keyboard for use with Gateron KS-33 low profile switches
It measures 36 × 45.8 mm and has 2 copper layers, 1.6 mm thick.
84 parts, built around the RP2040, ZD25Q128CWIGR, HE6206-33NR and TD-1183SN-1.7H-160. 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.
From the tigard-tools/xiaomao repository on GitHub, at the commit this page was made from: the board is xiaomao.kicad_pcb and its schematic xiaomao.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the CERN-OHL-S-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).