Skip to the content
PCBKitNew board
2 layers30.5 × 45.7 mmMux, the printed circuit board in 3D

Versaloon Software Framework -- a tiny preemptive-capable event-driven incremental software framework for embedded systems

Size
30.5 × 45.7 mm
Copper layers
2
Thickness
1.6 mm
Parts
3
Nets
30
Pads
90
Tracks, vias
150, 0
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
17 Apr 2019
Updated
2 Nov 2026

Overview

Mux is an open-source printed circuit board by vsfteam, from the vsfteam/vsf repository on GitHub, published under the Apache-2.0 licence. It is a 2-layer board of 30.5 × 45.7 mm with 3 parts on 30 nets, routed with 150 tracks and 0 vias.

README

README.md

VSF -- Versaloon Software Framework

GitHub

windows-build cmake-native-build cmake-arm-cross-build

vsf.linux windows build cmake-arm-cross-build cmake-native-build

vsf.demo build

中文 |

Full name of VSF is "Versaloon Software Framework". VSF is an open-source software framework for embedded applications based on Apache2 license. VSF includes hal, a pre-emptive multi-thread kernel, services and components. VSF is implemented by C language with object-oriented programming methods(PLOOC).

Overall Framework

Catalogue

NameDescription
documentdocument
doxygenconfiguration of doxygen
exampledemo codes
hardwarehardware of VSF development boards
patchsome patches(for 3rd-party components, etc)
script
 cmakecmake scripts
sourcesource code of VSF
 componentcomponent(filesystem, stacks, UI, drivers, etc)
 halhardware abstraction layer(ARCH support, chip drivers)
 kernelVSF pre-emptive/collaborative kernel
 osa_servicesoftware services based on kernel
 servicesoftware services
 shellshell to use application software for other systems
 utilitiesbase software utilities(preprocessor, compiler, list, etc)

Kernel

Pre-emptive kernel based on event-driven architecture, supporting mcs51, 8bit MCU, 32/64 bit ARM, riscv, x86, etc.

  • event-driven architecture, sleep if no event occurred, lower-power naturally
  • in pre-emptive mode, task switch is implemented by hardware swi(software interrupt), priority of task is the priority of the swi.
  • pre-emptive scheduling for tasks with different priority, collaborative scheduling for tasks with the same priority
  • can run in other RTOS as a task, or as swi ISR
  • different tasks
    • event handler task -- minimum resources usage, 20 bytes ram usage for minimum configuration, 40 bytes ram usage for normal configuration
    • pt task
    • thread with dedicated stack -- depending on setjmp in libc
    • fsm task
    • other tasks in shell, eg pthread
  • IPC: semaphore, mutex, trigger, queue, etc

Components

  • Reasonable framework for code re-use
  • declarative development model
  • standard interface, standard port for 3rd-party components
  • software components
    • distbus -- distributed bus framework
    • fifo
    • heap
    • json
    • pool
    • stream
    • trace
  • Components
    • fs -- filesystem with vfs support
    • input -- input sub-system
    • mal -- memory abstraction layer(normally known as 'block' device)
    • scsi -- SCSI device
    • tcpip -- TCPIP stack and netdrv drivers
    • ui -- UI and display drivers
    • usb -- USB host/slave stacks
    • bt -- bt stack(using btstack)

HAL -- hardware abstraction layer

  • standard hal interface and API -- eg: vsf_spi_init can be used with hardware SPI, GPIO emulated SPI, SPI from external usb device, etc
  • IP core driver -- simplify porting by implement clock, reset, interrupt functions which is not provided by IP core
  • template for different interfaces and functionalities
  • interfaces
    • PM
    • GPIO
    • SPI
    • I2C
    • PWM
    • ADC
    • SWI
    • USART
    • FLASH
    • USB
    • ethernet

Shell

To use applications from other system, shell can be used.

  • SDL -- use applications based on SDL directly
  • linux -- use applications based on linux directly
    • posix
    • devfs
    • socket
    • console
    • libraries
      • libusb
      • libgen
      • libsdl2
      • libcurl
      • etc

3rd-party

SoftwarePathLicenseLink
btstacksource/component/3rd-party/btstack/rawOtherhttps://github.com/bluekitchen/btstack
coremarksource/component/3rd-party/coremark/rawApachehttps://github.com/eembc/coremark
freetypesource/component/3rd-party/freetype/rawFreeTypehttps://freetype.org/
zlibsource/component/3rd-party/zlib/rawzlibhttp://zlib.net/
nuklearsource/component/3rd-party/nuklear/rawMTIhttps://github.com/Immediate-Mode-UI/Nuklear
nnomsource/component/3rd-party/nnom/rawApache 2.0https://github.com/majianjia/nnom
luasource/component/3rd-party/lua/rawMIThttps://www.lua.org/
lwipsource/component/3rd-party/lwip/rawBSDhttps://savannah.nongnu.org/projects/lwip/
libpngsource/component/3rd-party/libpng/rawPNG2https://libpng.sf.net
libjpeg-turbosource/component/3rd-party/libjpeg-turbo/rawBSDhttps://libjpeg-turbo.org/
SDL_ttfsource/shell/media/sdl2/3rd-party/SDL_ttfzlibhttps://hg.libsdl.org/SDL_ttf/
SDL_imagesource/shell/media/sdl2/3rd-party/SDL_imagezlibhttps://hg.libsdl.org/SDL_image/
lvglsource/component/3rd-party/lvgl/raw/lvglMIThttps://lvgl.io/
lv_lib_freetypesource/component/3rd-party/lvgl/extension/lv_lib_freetype/rawMIThttps://lvgl.io/
CMSISsource/utilities/compiler/arm/3rd-party/CMSISApache 2.0https://github.com/ARM-software/CMSIS_5
PLOOCsource/utilities/3rd-party/PLOOC/rawApache 2.0https://github.com/GorgonMeducer/PLOOC
mbedtlssource/component/3rd-party/mbedtls/rawApache 2.0https://tls.mbed.org/
Segger_RTTsource/component/3rd-party/segger/raw/RTTseggerhttps://wiki.segger.com/RTT
Segger_SystemViewsource/component/3rd-party/segger/raw/SystemViewseggerhttps://wiki.segger.com/SystemView
nuconsolesource/component/3rd-party/nuconsole/rawnuvotonhttps://www.nuvoton.com.cn/
AIC8800M_SDKsource/hal/driver/AIC/AIC8800/vendoraichttp://www.aicsemi.com/
awtkLGPL 2.1https://www.zlg.cn/index/pub/awtk.html
littlefssource/component/3rd-party/littlefs/rawBSDhttps://github.com/littlefs-project/littlefs
getopt_longsource/shell/sys/linux/lib/3rd-party/getoptOpenBSDhttps://github.com/openbsd/src
regexsource/shell/sys/linux/lib/3rd-party/regexOpenBSDhttps://github.com/openbsd/src
fnmatchsource/shell/sys/linux/lib/3rd-party/fnmatchBSDhttp://www.jbox.dk/sanos/source/lib/fnmatch.c.html
globsource/shell/sys/linux/lib/3rd-party/globBSDhttps://github.com/cloudius-systems/musl
setjmpsource/hal/arch/x86/winBSD
libtuvsource/shell/sys/linux/lib/3rd-party/libtuv/rawApache 2.0https://github.com/Samsung/libtuv
scguisource/component/ui/tgui/view/scgui_view/scgui.c&hMIThttps://gitee.com/li_yucheng/scgui

Parts

3
QtyValueFootprintReferences
2Conn_02x15_Odd_EvenVSF:PinSocket_2x15_P2.54mm_Horizontal_2LayerJ1, J2
1Conn_02x15_Odd_EvenConnector_PinSocket_2.54mm:PinSocket_2x15_P2.54mm_VerticalJ3

Questions

How big is the Mux PCB?

It measures 30.5 × 45.7 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Mux use?

3 parts. 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 Mux KiCad files?

From the vsfteam/vsf repository on GitHub, at the commit this page was made from: the board is hardware/ext/mux/DC3-30P/mux.kicad_pcb and its schematic hardware/AC6321A/vsf_ac6321a.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Mux design in my own project?

Its repository publishes it under the Apache-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).

More from vsfteam/vsf

11
  • 2 layers25.4 × 33 mmPegboard, the printed circuit board in 3D

    Pegboard

    vsfteam/vsf

    Versaloon Software Framework -- a tiny preemptive-capable event-driven incremental software framework for embedded systems

    222 parts341Apache-2.0
  • 2 layers62.2 × 99.1 mmVsf gd32h759, the printed circuit board in 3D

    Vsf gd32h759

    vsfteam/vsf

    Versaloon Software Framework -- a tiny preemptive-capable event-driven incremental software framework for embedded systems

    127 parts341Apache-2.0
  • 2 layers155.8 × 76.2 mmGamepad, the printed circuit board in 3D

    Gamepad

    vsfteam/vsf

    Versaloon Software Framework -- a tiny preemptive-capable event-driven incremental software framework for embedded systems

    100 parts341Apache-2.0
  • 4 layers36.8 × 57.2 mmVsf aic8800m40b, the printed circuit board in 3D

    Vsf aic8800m40b

    vsfteam/vsf

    Versaloon Software Framework -- a tiny preemptive-capable event-driven incremental software framework for embedded systems

    92 parts341Apache-2.0
  • 4 layers34.9 × 30.5 mmVsf m484, the printed circuit board in 3D

    Vsf m484

    vsfteam/vsf

    Versaloon Software Framework -- a tiny preemptive-capable event-driven incremental software framework for embedded systems

    81 parts341Apache-2.0
  • 2 layers50.8 × 69.2 mmUikit, the printed circuit board in 3D

    Uikit

    vsfteam/vsf

    Versaloon Software Framework -- a tiny preemptive-capable event-driven incremental software framework for embedded systems

    51 parts341Apache-2.0
  • 2 layers36.8 × 57.1 mmVsf ac6321a, the printed circuit board in 3D

    Vsf ac6321a

    vsfteam/vsf

    Versaloon Software Framework -- a tiny preemptive-capable event-driven incremental software framework for embedded systems

    42 parts341Apache-2.0
  • 2 layers47.8 × 27.4 mmVsf stm32h7b0, the printed circuit board in 3D

    Vsf stm32h7b0

    vsfteam/vsf

    Versaloon Software Framework -- a tiny preemptive-capable event-driven incremental software framework for embedded systems

    37 parts341Apache-2.0
  • 2 layers27.9 × 50.8 mmVsf aic8800, the printed circuit board in 3D

    Vsf aic8800

    vsfteam/vsf

    Versaloon Software Framework -- a tiny preemptive-capable event-driven incremental software framework for embedded systems

    33 parts341Apache-2.0
  • 2 layersJTAG ext, the printed circuit board in 3D

    JTAG ext

    vsfteam/vsf

    Versaloon Software Framework -- a tiny preemptive-capable event-driven incremental software framework for embedded systems

    14 parts341Apache-2.0
  • 2 layers36.8 × 33 mmAdapter, the printed circuit board in 3D

    Adapter

    vsfteam/vsf

    Versaloon Software Framework -- a tiny preemptive-capable event-driven incremental software framework for embedded systems

    5 parts341Apache-2.0

Similar boards

  • 2 layers40 × 30 mmBlinky, the printed circuit board in 3D

    Blinky

    earthtojake/text-to-cad

    Design physical products with AI

    3 parts26kMIT
  • 2 layers51.9 × 16 mmPassive2-rpi non standard adapter, the printed circuit board in 3D

    Passive2-rpi non standard adapter

    hzeller/rpi-rgb-led-matrix

    Controlling up to three chains of 64x64, 32x32, 16x32 or similar RGB LED displays using Raspberry Pi GPIO

    3 parts4.4kGPL-2.0
  • 2 layers16.3 × 16.3 mmSensor, the printed circuit board in 3D

    Sensor

    scottbez1/splitflap

    DIY split-flap display

    3 parts4.2k
  • 2 layersSub, the printed circuit board in 3D

    Sub

    atopile/atopile

    Design circuit boards with code! ✨ Get software-like design reuse 🚀, validation, version control and collaboration in hardware; starting with electronics ⚡️

    3 parts4kMIT
  • 2 layers85 × 30 mmDual stomp, the printed circuit board in 3D

    Dual stomp

    torvalds/GuitarPedal

    Linus learns analog circuits

    3 parts2.5kGPL-2.0
  • 2 layers124.5 × 33.7 mm172319-1 connector, the printed circuit board in 3D

    172319-1 connector

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    3 parts1.2k
  • 2 layers10.5 × 83 mmProgrammingAdapter, the printed circuit board in 3D

    ProgrammingAdapter

    stuartpittaway/diyBMSv4

    Version 4 of the diyBMS

    3 parts1.1k
  • 2 layers21.2 × 51.3 mmPico reset, the printed circuit board in 3D

    Pico reset

    hackclub/sprig

    🍃 Learn to code by making games in a JavaScript web-based game editor.

    3 parts1.1kMIT