this is the monorepo for zeptocore, zeptoboard, ectocore, and ezeptocore music devices, their documentation, their firmware, and the tools to interact with them.
for information about purchasing and documentation, visit zeptocore.com. demos are available on youtube.
The digital signal processing for all the *core things was written by Zack, from scratch, in C. This was done partially to have strict control over the sound/utility, but also because the RP2040 is fixed-point based and needed special care in all the DSP. The libraries are written with modularity in mind, so they can be used in other programs. Here are the DSP header files:
- beat repeat based on zero-crossings
- bit crush with sample rate and bit rate modulation
- comb filter tuned for some cool chaotic sounds and stereo field
- simple delay
- reverb stereo and reverb mono (stereo takes too much cpu)
- distortion/fuzz, this is a meta code file that generates the header
- reampling with linear and quadratic forms
- resonant filter which has a fade-in/out
- saturation
- shapers for a loss-type effect
- tape delay
- transfer which can also be used for wave shaping
the zeptocore device is a versatile, open-source, handmade audio player and synthesizer, featuring stereo playback of 16-bit audio files at a 44.1 kHz sampling rate.
the zeptocore supports SD-card storage for up to 32 gigabytes of samples and can recall up to 256 audio files organized into 16 banks of 16 tracks each. the zeptocore has 16 different audio effects - saturation, fuzz, delay, comb, beat repeater, filter, tape stop, reverb + more - and includes a single-cycle wavetable synthesizer. The device offers a real-time sequencer with optional quantization, optional clock sync out, and MIDI (in and out) over USB. the device has a built-in 8-ohm speaker and can be powered by two AAA batteries or USB-C.
The firmware for the zeptocore is written in C, and instructions for building the firmware are in the documentation.
- Website
- Schematic
- Source code
- Firmware
- Instructions for uploading firmware
- Video demonstration
- Video DIY guide
The EZEPTOCORE is a eurorack version of the zeptocore developed by Infinite Digits in collaboration with Maneco Labs (full attributions here).
The firmware is divided into two categories: overclocking and non-overclocking.
- Choose overclocking if you are using an external clock and want maximum CPU bandwidth for FX. These builds run faster but can exhibit slight clock drift if not externally synced.
- Choose non-overclocking if you are using the internal clock and need extremely stable timing. These builds have slightly reduced CPU overhead but offer the highest temporal stability.
For latency, normal latency will work for most, but choose low or ultra-low if you encounter latency issues (note: available FX bandwidth decreases for low latency).
| Normal Latency | Low Latency | Ultra-Low Latency | |
|---|---|---|---|
| Overclocking | v7.0.1* | v7.0.1 | v7.0.1 |
| Non-Overclocking | v7.0.1 | v7.0.1 | v7.0.1 |
*default firmware
the ectocore is the eurorack version of the zeptocore developed by Infinite Digits in collaboration with Toadstool Tech (full attributions here).
The firmware is divided into two categories: overclocking and non-overclocking.
- Choose overclocking if you are using an external clock and want maximum CPU bandwidth for FX. These builds run faster but can exhibit slight clock drift if not externally synced.
- Choose non-overclocking if you are using the internal clock and need extremely stable timing. These builds have slightly reduced CPU overhead but offer the highest temporal stability.
For latency, normal latency will work for most, but choose low or ultra-low if you encounter latency issues (note: available FX bandwidth decreases for low latency).
| Normal Latency | Low Latency | Ultra-Low Latency | |
|---|---|---|---|
| Overclocking | v6.4.7* | v6.4.7 | v6.4.7 |
| Non-Overclocking | v6.4.7 | v6.4.7 | v6.4.7 |
zeptoboard is the breadboard variant of the zeptocore. It has most of the same functionality, but instead of using the buttons on the handheld device, you can utilize your keyboard. This version requires some knowledge of breadboarding, but it is ideal if you want to develop your ideas based on the firmware. more information here.
- Apache License 2.0 for no-OS-FatFS (Copyright 2021 Carl John Kugler III)
- MIT license for the SdFat library (Copyright (c) 2011-2022 Bill Greiman)
- MIT license for the USB library (Copyright (c) 2019 Ha Thach)
- GPLv3 for all _core code
- Hardware: cc-by-sa-3.0
The schematics are open-source - you are welcome to utilize them to customize the device according to your preferences. If you intend to produce boards based on my schematics, I kindly ask for your financial support to help sustain the development of future devices. Also note - Infinite Digits and Ectocore are registered trademarks. The name "Infinite Digits" and "Ectocore" should not be used on any of the derivative works you create from these files.