Skip to the content
PCBKitNew board
4 layers21.2 × 30.6 mmCmote, the printed circuit board in 3D

A USB-C IR transmitter built-in to a devboard powered by the Attiny1616 MCU

Size
21.2 × 30.6 mm
Copper layers
4
Thickness
1.6 mm
Parts
20
Nets
31
Pads
97
Tracks, vias
253, 27
Pours
28
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
26 Aug 2026
Updated
12 Sep 2026

Overview

Cmote is an open-source printed circuit board by Person-0, from the Person-0/Cmote repository on GitHub. It is a 4-layer board of 21.2 × 30.6 mm with 20 parts on 31 nets, routed with 253 tracks and 27 vias.

It is built around the CH340N, IR16-213C/L510/TR8 and CC0402KRX5R7BB104, with the CC0402KRX5R7BB474, HYCW671-USBC14-115B and SI2302CDS-T1-GE3-ES among its other parts. Its parts include 5 capacitors, 5 connectors, 4 resistors, 3 ICs and 1 transistor. It belongs with the microcontroller boards boards and the AVR (ATmega, ATtiny) boards of this library.

Main components

6

README

README.md

Cmote

A USB-C IR transmitter for controlling devices like ACs, TVs for when you're too lazy to find the remote and your smartphone does not have a built-in IR blaster. Built-in to a devboard powered by the Attiny1616 MCU.

PCB

View PCB Directory: /PCB

Schematics:

PCB:

Preview PCB 3D View:

Steps to open the schematics and PCB files in KiCAD:

  • Open KiCAD
  • Click File (top left) >> Open Project
  • Navigate to this repository's saved destination,
  • Open /PCB/Cmote directory
  • Select the file Cmote.kicad_pro

This will open the schematics and PCB in KiCAD for easier viewing!

Firmware

View firmware directory: /firmware

Note that firmware is Work In Progress. Until I physically receive the board I have no way of knowing whether this works or not so current it is just basic stuff.

The current firmware will send a power command at the start, listen to all the IR signals and print them to the serial on USB-C port of the board:

cpp
bool sentPwrCmd = false;

void setup() {
	Serial.begin(115200); // serial is on usb-c
	IrSender.begin(IR_TX_PIN);
	IrReceiver.begin(IR_RX_PIN, ENABLE_LED_FEEDBACK); 
}

void loop() {

	if (!sentPwrCmd) {
		uint16_t address = 0x00; // standard device address
		uint8_t command = 0x45;  // standard power command
		IrSender.sendNEC(address, command, 0);
		sentPwrCmd = true;
		Serial.println("=== power command was sent!! ===");
	}

	if (IrReceiver.decode()) {
		Serial.println("-------------------------");
		Serial.println("\tbegin decode():");
        Serial.print("Protocol: ");
        Serial.println(getProtocolString(IrReceiver.decodedIRData.protocol));
        Serial.print("Command (Hex): 0x");

IrReceiver and IrSender is from the IRremote library.

As for flashing the firmware onto the board, it requires a specialized UPDI programmer. However, I will be using another devboard to program this using pyupdi. This guide will be updated after I test it myself to confirm what works and what does not.

CAD

View CAD Directory: /CAD

While this is technically a devboard and has no requirement for a case, I still made one using Fusion360.

It looks like this:

USB-C plug is invisible as no model was available for it from the manufacturer so I made sure to give enough space by measuring the silkscreen dimensions on the PCB and using it as the reference.

The lid will friction fit into the case using the side extrusions.

It has rectangular cuts for headers so the devboard can be freely used without taking off the lid again and again.

For 3d printing, files Cmote_body.step and Cmote_lid.step need to be printed as different bodies.

Ordering Parts

I will be using JLCPCB to order my PCB as for my location it is the cheapest option (if using PCB Assembly service).

Please checkout the JLC_Order directory for bom, cpl and gerber files.

The grand total for this project comes out to be at 42.24 USD

  • This is when I have used basic parts when possible and only 2 PCBA with 5 PCB (moq)

View BOM
View PCBA BOM

Parts

20
QtyValueFootprintReferences
40.1uFeasyeda2kicad:C0402C2, C3, C4, C5
25.1keasyeda2kicad:R0402R3, R4
1100easyeda2kicad:R0402R2
1180easyeda2kicad:R0402R1
14.7uFeasyeda2kicad:C0402C1
1470easyeda2kicad:R0402R_UPDI0
1ATTINY1616-MNReasyeda2kicad:QFN-20_L3.0-W3.0-P0.40-BL-EP1.7U1
1CH340N_C2977777easyeda2kicad:SOP-8_L4.9-W3.9-P1.27-LS6.0-BLU3
1DevPad1Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ5
1DevPad2Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ6
1HYCW671-USBC14-115Beasyeda2kicad:USB-SMD_HYCW671-USBC14-115BUSB1
1IR16-213C/L510/TR8easyeda2kicad:LED0402-FD_YELLOWU2
1Power_PadConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ3
1Si2302CDS-T1-GE3easyeda2kicad:SOT-23_L2.9-W1.3-P1.90-LS2.4-BRQ1
1TSOP 1738Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ1
1UPDI_PadConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ2

Questions

How big is the Cmote PCB?

It measures 21.2 × 30.6 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Cmote use?

20 parts, built around the CH340N, IR16-213C/L510/TR8, CC0402KRX5R7BB104 and CC0402KRX5R7BB474. 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 Cmote KiCad files?

From the Person-0/Cmote repository on GitHub, at the commit this page was made from: the board is PCB/Cmote/Cmote.kicad_pcb and its schematic PCB/Cmote/Cmote.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Cmote design in my own project?

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

Similar boards

  • 4 layers60 × 60 mmStillpoint, the printed circuit board in 3D

    Stillpoint

    techmiguel/stillpoint

    Open-hardware 60 GHz radar ceiling sensor: presence & fall detection without a camera. Matter over Thread, KiCad 4-layer Ø60 mm board.

    95 parts1CERN-OHL-S-2.0
  • 6 layers100 × 114 mmMTE USB HUB, the printed circuit board in 3D

    MTE USB HUB

    MicroType-Engineering/MTE_USB_HUB

    As designed on the MicroType Engineering's YouTube series: https://youtu.be/uzqXgHHZUUs

    159 parts41GPL-2.0
  • 4 layers40 × 65 mmP-1000101 Cicada WiSun, the printed circuit board in 3D

    P-1000101 Cicada WiSun

    EnAccess/Cicada-WiSUN-HW

    IoT Communications Module for Energy Access. A quick way to get production ready, bi-directional communications for your IoT embedded device.

    118 parts
  • 4 layers55.9 × 22.9 mmRiotee Board, the printed circuit board in 3D

    Riotee Board

    NessieCircuits/Riotee_Board

    The Riotee board is a development board for battery-free wireless devices. The on-board wireless microcontroller runs off energy harvested from, for example, a solar panel and uses only tiny capacitors as energy…

    83 parts15CERN-OHL-W-2.0
  • 2 layers100.4 × 99.2 mmEspdroneea, the printed circuit board in 3D

    Espdroneea

    sushrutchhatkuli/Custom-ESP32-drone-PCB

    Designed a custom ESP32-WROOM-32–based drone flight controller PCB featuring USB-C charging, regulated 3.3 V power delivery, and onboard IMU sensing using the MPU-6050.

    121 parts1
  • 2 layers28.5 × 12 mmVcnt2030-breakout, the printed circuit board in 3D

    Vcnt2030-breakout

    c-m-w/deal-cards-public

    A robot that deals playing cards to multiple players around a table. A single central motor rotates the whole mechanism to aim at each player in turn, a brushless motor launches the card, and a closed-loop sensor…

    15 parts
  • 6 layers196 × 20 mmSmartbag core, the printed circuit board in 3D

    Smartbag core

    claudiofin/smartbag

    Tagless smart insert for a handbag: recognises its contents with an IR camera, 60 GHz radar and a 96-taxel FSR floor. PCB, CAD, renders and films all generated by script (KiCad -> CadQuery -> Blender).

    113 partsMIT
  • 2 layers115.7 × 103 mmProject1, the printed circuit board in 3D

    Project1

    Landjetelina/Micromouse

    46 parts