Skip to the content
PCBKitNew board
2 layers74.7 × 33.5 mmDimmer, the printed circuit board in 3D

This is a not so small RTOS for low end MCUs.

Size
74.7 × 33.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
23
Nets
27
Pads
103
Tracks, vias
345, 134
Pours
4
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
17 Aug 2014
Updated
21 Jul 2026

Overview

Dimmer is an open-source printed circuit board by n3rd-bugs, from the n3rd-bugs/weird-rtos repository on GitHub. It is a 2-layer board of 74.7 × 33.5 mm with 23 parts on 27 nets, routed with 345 tracks and 134 vias.

It is built around the BTA20 and MOC3052M. Its parts include 6 resistors, 4 capacitors, 4 ICs, 2 connectors and 1 diode. It belongs with the FPGA and CPLD boards of this library.

Main components

2

README

README.md

Weird RTOS

This is an educational RTOS that can be used with medium ended micro-controllers including 8-bit AVRs and Cortex-M3/4.

Features

  • Highly scalable for number of small to medium scale applications
  • Priority based aperiodic scheduler
  • Dynamic task creation and deletion
  • Condition to create application specific signaling mechanisms like timers, events etc.
  • Semaphore with optional specific interrupt protection
  • File system based pipes to support data queues
  • Support for suspending a single task on multiple conditions to eliminate multiple tasks
  • A small networking stack with IPv4, ARP, UDP, TCP
  • Support for idle work to offload low priority work from main tasks

Supported MCUs and Platforms

MCU/PlatformCoreRTOS Features
atmega644AVR 8-bitUSART, ADC, SPI, Ethernet, MMC, File system, Alphanumeric LCD
atmega1284AVR 8-bitUSART, ADC, SPI, Ethernet, MMC, File system, Alphanumeric LCD
STM32F407vgt6Cortex-M4USART, SPI, Ethernet
STM32F103-stampCortex-M3USART, ADC, SPI, Ethernet, MMC, File system, Alpha Numeric LCD

Minimum Requirements

ControllerROMROM actual*RAMRAM Actual**
AVR 8-bit4 KB3086 bytes1 KB345 bytes
Cortex-M34 KB2075 bytes2 KB784 bytes
Cortex-M44 KB2139 bytes2 KB960 bytes

* with size optimizations ** hello.c example with serial disabled, not including system stack

Building

Building as Library

To build the RTOS as library follow these steps:

  1. Create a build folder mkdir lib-build cd lib-build
  2. Configure the library project for a platform cmake -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=<path-to-root>/cmake/toolchains/<cross-tool>.cmake <path-to-root>
  3. Build the library make

The created library can be used to build sample applications using other tools.

Building a Sample

To build an example project please follow these steps:

  1. Create a build folder mkdir build cd build
  2. Configure the example project for a platform cmake -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=<path-to-root>/cmake/toolchains/<cross-tool>.cmake <path-to-root>/examples/<example>
  3. Build the sample make

Configurations

Weird-RTOS provides various configuration options that can be best viewed if project is configured through cmake-gui. These allow user to adjust various RTOS features according to his requirements.

Source Organization

text
+-- 3rdparty - 3rd party components
+-- api - Higher level components including TFTP, weird-view IoT framework
+-- cmake - Cmake project files
|   +-- modules - Implements various helper APIs for cmake
|   +-- toolchains - Provides toolchain files
+-- docs - Related documentation
+-- examples - Some usage examples
+-- port - Target specific bits
|   +-- kernel - Target specific kernel components
|   +-- target - Platform specific device drivers
|       +-- <platform> - A platform entry
|           +-- board - Board specific configurations
|           +-- io - Device drivers
|           +-- schematics - Platform schematics if applicable
|           +-- utils - Broad utilities
|   +-- toolset - Toolset specific definitions
+-- rtos - Operating system generic components
|   +-- fs - File system
|   +-- io - IO device drivers and their middleware
|   +-- mem - Memory management
|   +-- net - Networking stack
|   +-- kernel - Kernel APIs
|   +-- utils - System utilities

Documentation

Kernel

Licensing

This is a non-commercial RTOS, for more details see License Agreement.

Parts

23
QtyValueFootprintReferences
2100RResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR3, R4
2100kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR5, R6
210kPotentiometer_THT:Potentiometer_Vishay_T73YP_VerticalRV1, RV2
1,1uCapacitor_THT:CP_Radial_D4.0mm_P2.00mmC4
1.01uCapacitor_THT:CP_Radial_D4.0mm_P2.00mmC1
10.01uCapacitor_THT:CP_Radial_D4.0mm_P2.00mmC3
1100RResistor_THT:R_Array_SIP5RN2
110KResistor_THT:R_Array_SIP5RN1
110kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR2
110uCapacitor_THT:CP_Radial_D4.0mm_P2.00mmC2
11kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR1
14N35Package_DIP:DIP-6_W7.62mm_Socket_LongPadsU2
1AC/LoadTerminalBlock:TerminalBlock_bornier-4_P5.08mmJ2
1BTA20Package_TO_SOT_THT:TO-220-3_Horizontal_TabDownD1
1GAL16V8Package_DIP:DIP-20_W7.62mm_Socket_LongPadsU1
1Jumper_3_OpenConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJP1
1LM555Package_DIP:DIP-8_W7.62mm_Socket_LongPadsU3
1MCUConnector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_VerticalJ1
1MOC3052MPackage_DIP:DIP-6_W7.62mm_Socket_LongPadsU4
1PWMButton_Switch_THT:SW_DIP_SPSTx04_Slide_9.78x12.34mm_W7.62mm_P2.54mmSW1

Questions

How big is the Dimmer PCB?

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

What parts does the Dimmer use?

23 parts, built around the BTA20 and MOC3052M. 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 Dimmer KiCad files?

From the n3rd-bugs/weird-rtos repository on GitHub, at the commit this page was made from: the board is pld/dimmer/pcb/dimmer.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Dimmer design in my own project?

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

Similar boards

  • 2 layers99.1 × 76.2 mmSsr, the printed circuit board in 3D

    Ssr

    Miceuz/triac-bloc

    An universal power block based on triac. In essence this is a solid state relay with some bells and whistles

    39 parts54
  • 2 layers41 × 38 mmRS Board, the printed circuit board in 3D

    RS Board

    VGCH/radar_switch

    DIY module for lighting control with radar sensor

    35 parts5
  • 2 layers79.1 × 56.3 mmFan reg, the printed circuit board in 3D

    Fan reg

    VGCH/smart_fan

    Smart controller for fan

    41 parts4
  • 2 layers73.2 × 81.3 mmFurnace control, the printed circuit board in 3D

    Furnace control

    marcass/furnace_control

    Control a FUWI pellet boiler with arduino to improve smarts

    24 parts2GPL-3.0
  • 2 layers59.9 × 103.5 mmHM AsksinPP Phasenanschnitt, the printed circuit board in 3D

    HM AsksinPP Phasenanschnitt

    mankut80/AskSinPP_HM-LC-Dim1L-CV

    Mit der Technik des Phasenanschnitts lassen sich ohmsche und induktive Wechselstromlasten in der Leistung steuern.

    36 parts1
  • 2 layers100 × 75 mmSousvide, the printed circuit board in 3D

    Sousvide

    gregorv/sousvide

    Hardware and software for an ATmega8 based Sous-Vide temperature controller

    66 partsGPL-3.0
  • 4 layers100.1 × 79.2 mmSolder oven PCB, the printed circuit board in 3D

    Solder oven PCB

    JuanDavidBarrero/SolderingOvenPCB

    44 parts
  • 4 layers355.6 × 144.8 mmCycloconverter, the printed circuit board in 3D

    Cycloconverter

    Moeletsi47/cycloconverter

    An embedded power-electronics project combining SCR switching, zero-crossing synchronisation, register-level C firmware, and a custom four-layer PCB designed in KiCad.

    70 parts