uModular

A collection of hardware schematics, PCBs, and libraries for real-time embedded applications in the field of music and video.

Hardware: Modules effortlessly combine to enhance and extend the capabilities of your device.
Firmware: All the challenging and intricate aspects of real-time and concurrency in music or video applications are encapsulated within a safe and intuitive API via libraries.

The framework provides multi-architecture support, allowing for seamless compilation across various microcontrollers without the need for manual adjustments or modifications. This ensures a streamlined development process and simplifies the programming and debugging tasks associated with real-time and concurrent operations.

Hardware

The physical modules are released under the CC-BY-SA 4.0 license and are available in Kicad format, providing electronic schematics and PCB designs for creating your own audio/video device controller or signal processing box.

You can access and download all the source files from the Midilab GitHub repository.

Protocol Interfaces

The uMODULAR framework is meticulously designed to ensure seamless interoperability with a wide range of audio and video devices available on the market. Its compatibility extends to various protocols and standards, allowing integration with different devices.

Avaliable Interfaces:

  1. MIDI
  2. OSC: On roadmap
  3. CV/GATE: On roadmap
  4. DMX: On roadmap

Libraries

The firmware libraries are built for the Arduino platform, with support for PlatformIO, and are compatible with various microcontroller architectures and boards, including classic AVRs and modern ARMs.

AVRs: ATmega168, ATmega328, ATmega16u4, ATmega32u4 and ATmega2560.
ARMs: ESP32, SAMD21 and All Teensy ARM microcontrollers.

Boards: All AVR Arduino boards, All Teensy AVRs and ARMs, ESP32 based boards and Seedstudio XIAO M0.

uCtrl

uCtrl is a comprehensive codebase library for the uMODULAR hardware project. It offers a driver layer for all uMODULAR modules and a user interface layer that simplifies the creation, extension, and sharing of advanced Arduino/PlatformIO applications.

With uCtrl, you can achieve real-time functionality within the Arduino/PlatformIO ecosystem by leveraging hardware timer interruptions for precise task management. The library provides a resource-safe access through its API, ensuring efficient and reliable operation.

Choose uCtrl for developing robust, portable, and high-performance musical instruments, sequencers, audio/video controllers, and other related machines on the Arduino/PlatformIO platform.

uClock

The BPM-based Clock Generator Library provides a way to implement BPM clock tick calls using hardware interruption, ensuring the tightest and most accurate clock signal possible.

Applications

Real world applications examples using the uMODULAR framework:

Aciduino V2

The project features a versatile step sequencer clone of Roland’s TB303/TR808, offering up to 16 tracks. It includes a comprehensive automation grid system for step, pattern, and mute control. The sequencer functions as a MIDI controller and incorporates an OLED display for visual feedback. Furthermore, the design is modular and allows for easy expansion with additional potentiometers, buttons, MIDI, or CV/Gate interfaces.

XR-1 Groovebox

A full featured groovebox using uClock library, created by James Gray.

MIDI Looper/Sequencer

A Realtime MIDI Looper/sequencer using uClock library, created by ymnkmusic.

MIDI/DIN Clockbox

A MIDI and DIN clockbox using uClock library, created by ymnkmusic.

Atari 2600 Midi Station

Midilab’s personal all-in-one live/production gear that combines a powerful step sequencer with 16 tracks and 512 steps. It also functions as an advanced MIDI controller, providing real-time in-box programming capabilities. The gear includes a display with string name support per control, allowing for easy navigation and customization.

V0 release

Shileds

The initial shield released is compatible with the Arduino Mega, Micro and Mini series boards. However, the project has plans to expand support for other board models in the future.

+ Arduino Micro and Mini 5v Compatible + Arduino Mega Compatible
mega_and_mini_shields

IO Interfaces

The project provides various input and output interfaces, allowing users to interact with the external world effectively.

+ FADER8: 8 x 60mm faders module – designed for Bourns PTA6043-2015DPB103 part. fader8

+ POT8: 8 x potentiometers module – designed for Bourns PTV09A-4015F-B103 part. But it fits for almost all 10KB throughhole potentiometer models.
pot8

+ PUSH8: 8 x button/led module push8

Midi Interface

+ MIDI4: Common MIDI interface with support for 2 MIDI Inputs and 2 MIDI Outputs. midi4

uMODULAR devices galery