Skip to the content
PCBKitNew board
2 layers78.7 × 40.2 mmBadgeThing, the printed circuit board in 3D

BadgeThing

dj505/Untitled

A badge thing

Size
78.7 × 40.2 mm
Copper layers
2
Thickness
1.6 mm
Parts
74
Nets
89
Pads
317
Tracks, vias
500, 40
Pours
6
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
8 Jan 2024
Updated
12 Feb 2024

Overview

BadgeThing is an open-source printed circuit board by dj505, from the dj505/Untitled repository on GitHub. It is a 2-layer board of 78.7 × 40.2 mm with 74 parts on 89 nets, routed with 500 tracks and 40 vias.

It is built around the RP2040, ESP-12F and W25Q32JVSSIQ, with the USBLC6-2SC6 and WS2812B among its other parts. Its parts include 24 capacitors, 15 connectors, 12 resistors, 7 switches and 6 ICs. It belongs with the ESP8266 and RP2040 boards of this library.

Main components

5

README

README.md

Untitled

A small homebrew dev board, previously known as BadgeThing

Front View
Back View

What is it?

Untitled is a software-focused development board, and an excuse for me to learn a bit more about some specific hardware I'd like to incorporate into future projects. The main focus is the integrated SSD1306 OLED display, which I've used in earlier projects as a separate module. This time around, I wanted to adapt the circuit into the project itself to make the whole thing more cohesive.

I figured since it was going to have a screen, I needed to be able to use the screen for something, so I included hardware I was already familiar with to interface with. There's the RP2040 I've used in other previous projects, and I've played with the ESP8266 before in the context of Arduino-like programming, so I thought I would try integrating that into this design so I could play with the AT firmware a little. I've used WS2812B LEDs a ton and thought they'd make a good set of indicators. And, since I wanted this to be versatile, it features some screw holes as well as slits along either side to mount using a wrist strap or some type of band to attach to other things without screws. It could even be wearable!

Oh, and it's called "Untitled" because I couldn't think of a witty name for this one. I originally wanted to call it the "no name development board with rp2040 and esp8266" with a logo and black/yellow colour scheme that parody the Canadian "no name" brand, but JLC doesn't offer black silkscreen on yellow solder mask, so I had to change it up.

Features

  • Built-in SSD1306 128*64 OLED display driven over SPI
  • Raspberry Pi RP2040
  • ESP-12 module for WiFi
    • Compatible with ESP-12E, ESP-12F, and ESP-12S
  • Piezo buzzer pins (though they can be repurposed for other parts that use 1 GPIO)
  • Row of 4 addressable RGB LEDs
  • 5 buttons for input and/or navigation
  • Extra GPIO broken out, with access to additional SPI/UART/I2C busses if needed
  • Wristband/wrist strap slots and mounting holes

Custom SSD1306 footprint

I couldn't find an easy-to-place foorptint for the 30-pin SSD1306 display, so this project includes a custom KICAD footprint for the typical 12mm length/7mm pin pitch ribbon cable variant you can find for cheap on AliExpress. There are 4 variants, two meant for mounting the screen on the front of the board, and two for mounting it on the back. Both placements have variants including and excluding a cutout in the Edge.Cuts layer for the ribbon cable to pass through. You are free to use these footprints in any project you want! I just ask that credit is provided.

There is also a custom symbol in the schematic for the display, based off of Adafruit's schematic. I can't guarantee all the pins are labelled correctly. I have tested it, and it does work, but you should research and double check the correct pinouts for your own project.

If you end up using either of these, and found them useful, please consider sending a small tip my way!
ko-fi

Parts

The majority of the parts are clearly labelled in the schematic and/or come with LCSC part numbers available through JLC. Not all of them are basic parts, unfortunately, but I used as many as I possibly could. You're also free to order part like the ESP-12 module separately and solder it yourself to save on assembly costs. However, it's important to keep in mind the following:

  • The OLED diplay is made with a 0.7mm pin pitch in mind. Some of the displays available have a 0.5mm pin pitch and will not fit.
  • The display's ribbon cable should be no longer than ~12mm otherwise it will not fit the footprint without extra slack.
  • Every ESP-12 model should fit this footprint, however I use the ESP-12S due to it supposedly having the best antenna efficiency. The missing pins along the bottom of the footprint are OK because this design does not use them, and they only serve to provide extra mechanical strength.
  • The RGB LEDs are made with WS2812B-V5 LEDs in mind specifically, as they have built-in capacitors and such that I was not able to reliably fit on the PCB. Other pin-compatible and signal-compatible LEDs will work, and there is a footprint for one large capacitor. In my testing, LEDs that don't have a built in capacitor worked fine without one, but there may be cases where this does not hold true. Check the datasheet for the LEDs you plan to use to make sure they do not require an external capacitor.

Ordering for assembly

As this project is meant to be mainly for personal use, I won't go into extensive detail here on how to order this board for assembly. However, a pre-made gerber zip is included in the "production" directory, and the BOM/CPL files can be generated through KiCAD. I recommend using the JLCPCB export plugin to do the heavy lifting for you - the LCSC part numbers I used for most components should be included in the schematic. Feel free to poke me with questions over Discord! You can reach me @dj505.

Parts

74
QtyValueFootprintReferences
11100nFCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderC7, C8, C10, C12, C13, C14, C15, C17, C20, C22, C24
8Conn_01x01Connector_PinHeader_2.00mm:PinHeader_1x01_P2.00mm_VerticalJ8, J9, J10, J11, J12, J13, J14, J15
52.2uFCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderC1, C3, C4, C5, C6
4WS2812BLED_SMD:LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mmD2, D3, D4, D5
310uFCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderC2, C21, C23
210KResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR2, R3
21kResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR7, R8
21uFCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderC9, C11
227 OhmResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR4, R5
227pFCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderC18, C19
25.1kResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR10, R11
112.000MHzCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY1
1220 OhmResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR6
1270kResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR1
14.7kResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR12
1BOOTSELButton_Switch_SMD:SW_Push_1P1T_XKB_TS-1187ASW7
1Conn_01x06Connector_PinHeader_2.00mm:PinHeader_1x06_P2.00mm_VerticalJ7
1Connector_Generic_Conn_01x02Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ6
1DNFResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR9
1DNFLED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolderD1
1DownButton_Switch_SMD:SW_Push_1P1T_NO_6x6mm_H9.5mmSW3
1ESP RESETButton_Switch_SMD:SW_Push_1P1T_XKB_TS-1187ASW1
1ESP-12FRF_Module:ESP-12EU1
1Ext 5VConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ2
1External 3V3Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ3
1LeftButton_Switch_SMD:SW_Push_1P1T_NO_6x6mm_H9.5mmSW2
1NCP1117-3.3_SOT223Package_TO_SOT_SMD:SOT-223-3_TabPin2U4
1RP2040RP2040_minimal:RP2040-QFN-56U3
1RightButton_Switch_SMD:SW_Push_1P1T_NO_6x6mm_H9.5mmSW6
1SWD HeaderConnector_PinHeader_1.27mm:PinHeader_1x03_P1.27mm_VerticalJ4
1SelectButton_Switch_SMD:SW_Push_1P1T_NO_6x6mm_H9.5mmSW4
1USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6U6
1USB_C_Receptacle_USB2.0Connector_USB:USB_C_Receptacle_G-Switch_GT-USB-7010ASVJ5
1UpButton_Switch_SMD:SW_Push_1P1T_NO_6x6mm_H9.5mmSW5
1W25Q32JVSSPackage_SO:SOIC-8_5.23x5.23mm_P1.27mmU5
1beegCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderC16
1~SSD1306 Pins:SSD1306 0.5mm PitchU2
1~Connector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_VerticalJ1

The 70 most common of 74 parts.

Questions

How big is the BadgeThing PCB?

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

What parts does the BadgeThing use?

74 parts, built around the RP2040, ESP-12F, W25Q32JVSSIQ and USBLC6-2SC6. 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 BadgeThing KiCad files?

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

Can I use the BadgeThing design in my own project?

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

Similar boards

  • 2 layers184 × 80.5 mmPrometheus PCB, the printed circuit board in 3D

    Prometheus PCB

    TheContrappostoShop/Apollo

    Control Board for the Prometheus mSLA Printer.

    129 parts13CERN-OHL-S-2.0
  • 2 layers210 × 31 mmTrhw, the printed circuit board in 3D

    Trhw

    nimitvijayvargee/trhw

    This is an RP2040 ruler that implements wifi, bluetooth, BLE along with a 4MB Flash storage, LEDs, Input buttons and some cool units and lengths!

    59 parts8
  • 2 layers100 × 100 mmPanel, the printed circuit board in 3D

    Panel

    dj505/Pad-Light-Kit

    A PIU pad lighting upgrade kit, featuring a 5x5 RGB LED grid

    91 parts3
  • 2 layers101.4 × 137.7 mmOot badge proto, the printed circuit board in 3D

    Oot badge proto

    Hexum064/dc-32-oot-bgb-pcb

    123 parts
  • 2 layers60 × 50 mmRP2040-3k, the printed circuit board in 3D

    RP2040-3k

    kzrtn/RP2040-3k-keypad

    A 3 key macropad using RP2040 for osu!

    46 parts
  • 4 layers50 × 88.5 mmARC PFC, the printed circuit board in 3D

    ARC PFC

    RTU-HPR/ARC_PFC

    RTU High Power Rocketry Team's ARC Project Primary flight computer

    141 parts
  • 2 layersForce sensor board, the printed circuit board in 3D

    Force sensor board

    TheContrappostoShop/Hercules_Sensor

    Hercules is the open-source force sensor made for the Prometheus mSLA, based on the idea of Nico Martin.

    91 parts
  • 2 layers38.1 × 133.4 mmPCBProject, the printed circuit board in 3D

    PCBProject

    vinnesttree/TixClock

    The Tix Clock was originally sold in 2006 by ThinkGeek. Unfortunately, these are no longer sold. This project hopes to try to recreate this iconic clock in a miniature format.

    85 partsMIT