EuroPi, image 1 from its README
1/2
Firmware

EuroPi

Hype16/100

EuroPi: A reprogrammable Eurorack module based on the Raspberry Pi Pico

EuroPi is custom firmware for the Allen Synthesis EuroPi, by @Allen-Synthesis. Open source under CC0-1.0, latest release v0.23.1 (July 2026), 584 stars on GitHub.

forAllen Synthesis EuroPi·by@Allen-Synthesis

Unclaimed. Is this yours? Sign in with GitHub as @Allen-Synthesis to claim it.

Downloads
0
Stars
584
Forks
107
Commits
1,643
Last commit
Download v0.23.1

europi-v0.23.1-RPI_PICO.uf2· 1.2 MB· +3 files

CC0-1.0· Allen-Synthesis/EuroPi·downloads come from the creator’s GitHub releases

34
Commits
3
Releases
34 commits and 3 releases in the last year
Activity · last 12 months
31 releases
  1. v0.23.1Latest4 files

    Bug Fix

    • ea83d2f: Refactor Pam's Workout to fix a bug preventing the UF2 from building properly (#477) (Chris I-B) #477
  2. v0.23.00 files

    Documentation & design changes

    Bug fixes & improvements

    New contrib scripts

    Full Changelog: https://github.com/Allen-Synthesis/EuroPi/compare/v0.22.0...v0.23.0

  3. v0.22.04 files

    Commits

    • 25301f2: Update programming_instructions.md (#441) (Chris I-B) #441
    • 1ca00e6: Add discrete, continuous modes to Binary Counter (#445) (Chris I-B) #445
    • a0adbea: Update doc dependencies, OS to be compatible with Ubuntu 24.04 (#428) (Chris I-B) #428
    • ab4f03d: Use native code generation to speed up Conway (Chris I-B) #454
    • 8cbf912: Add support for OSC bundles (#453) (Chris I-B) #453
    • f1d86bd: Increment version (Chris I-B)
  4. v0.21.24 files
  5. v0.21.14 files
  6. v0.21.04 files

    New Script Features

    • Added optional support for Gray encoding to Binary Counter #438

    Bug-fixes & improvements

    • Improved performance of Conway with a summed-area table #436
    • Modified application menu to omit HTTP Control and OSC Control if the configured Pico does not support wi-fi #439

    Other changes

    • Fixed line lengths, typos, and general formatting for all user-submitted program documentation #437

    • Fixed UF2 building via GitHub CI

  7. v0.20.04 files

    New Scripts

    • Bouncing Pixels by Jorin #432
    • Ocean Surge by Chris I-B #433

    Updated Scripts & Bug-Fixes

    • Multi-threaded programs now catch keyboard interrupts to signal the secondary thread to shut down while debugging #434
    • Added the ability to rename all input & output topics in OSC Control #430

    Documentation Updates

    • Updated guidelines for multi-threaded programs #434

    Misc

    • Updated GitHub CI to build UF2 files for RPi Pico, Pico W, Pico 2, and Pico 2W #431
  8. v0.19.23 files

    Documentation Fixes

    • Fix Sphinx errors when parsing docstrings in firmware (#426) (Chris I-B) #426
    • Add missing docstrings, parameters to firmware modules (Chris I-B) #427

    UF2 Changes

    • Modify UF2 build scripts to generate files for additional boards (Pico, Pico 2, Pico W. Pico 2 W isn't available yet, but will be added in a future update) (#429) (Chris I-B) #429
  9. v0.19.11 file

    Release 0.19.1

    aka: "The Wi-Fi Release"

    New features:

    • support for wireless networking via the Pico W, Pico 2 W
    • new europi_log module to make debugging easier
    • added WebREPL support to experimental_config
    • added NTP support for realtime clocks
    • added experimental HTTP server module
    • added experimental OSC server/client module
    • Experimental Config Editor now has sections
    • added new StringConfigPoint for configuration files (cannot be edited via the config editors)

    New Scripts:

    • OSC Interface: control EuroPi with OSC via UDP. Compatible with TouchOSC on Android, among others
    • HTTP Interface: control EuroPi from your browser using HTTP POST requests
    • new desktop scripts folder for programs that interact with EuroPi from a laptop/desktop
    • desktop script for converting 8mu MIDI signals to OSC to control EuroPi

    Other Changes

    • moved hardware initialization out of europi.py and into new europi_hardware.py file; existing scripts can continue to use from europi import *, but this makes it easier to access buttons, knobs, etc... from modules within the firmware directory
    • build & programming instructions expanded to include all Pico variants, including the wireless-capable ones
    • update docstrings in firmware to be Sphinx-compatible to (hopefully) get the auto-generated documentation working again

    Bug Fixes

    • fixed default I2C timeout in the example configuration
  10. v0.19.01 file

    Release 0.19.0

    aka: "The Wi-Fi Release"

    New features:

    • support for wireless networking via the Pico W, Pico 2 W
    • new europi_log module to make debugging easier
    • added WebREPL support to experimental_config
    • added NTP support for realtime clocks
    • added experimental HTTP server module
    • added experimental OSC server/client module
    • Experimental Config Editor now has sections
    • added new StringConfigPoint for configuration files (cannot be edited via the config editors)

    New Scripts:

    • OSC Interface: control EuroPi with OSC via UDP. Compatible with TouchOSC on Android, among others
    • HTTP Interface: control EuroPi from your browser using HTTP POST requests
    • new desktop scripts folder for programs that interact with EuroPi from a laptop/desktop
    • desktop script for converting 8mu MIDI signals to OSC to control EuroPi

    Other Changes

    • moved hardware initialization out of europi.py and into new europi_hardware.py file; existing scripts can continue to use from europi import *, but this makes it easier to access buttons, knobs, etc... from modules within the firmware directory
    • build & programming instructions expanded to include all Pico variants, including the wireless-capable ones

    Bug Fixes

    • fixed default I2C timeout in the example configuration
  11. v0.18.11 file

    Bug Fixes

    • Fixed Harmonic LFO square wave not being square if MAX_OUTPUT_VOLTAGE is not an integer (#420) (Chris I-B) #420

    Documentation

    • Update the programming instructions now that main.py is included in europi_contrib (#421) (Chris I-B) #421
  12. v0.18.01 file

    New Scripts

    • Add DFAM controller (#415) (Chris I-B) #415

    Improvements & Bug-Fixes

    • Add linear equation solver, various new statistical functions to math_extras (#414) (Chris I-B) #414
    • main.py is automatically included as part of europi_contrib package from PyPI (#418) (Chris I-B) #418

    Documentation

    • Add heatsink installation instructions to Hardware Mods document (#417) (Chris I-B) #417
  13. v0.17.11 file

    New Features

    • Logic now supports using the buttons as alternative inputs for the two channels (B1 is equivalent to DIN, B2 is equivalent to AIN) #409
    • Pam's Workout now features a simple visualization showing the output & input voltages in a simple bar graph. To access the visualization, rotate K2 fully clockwise while on the top-level menu. #411

    Bug-Fixes

    • Output.voltage(None) (e.g. cv1.voltage()) now properly returns the actual output voltage, not a [0-1] value indicating the proportion of maximum voltage #411

    Improvements

    • Logic has been rewritten to use the AnalogReaderDigitalWrapper class from experimental #409
    • Pet Rock will now raise a new ClockError if it is launched without a valid realtime clock configuration, instead of hitting a ValueError for the date being out-of-range #413
    • Conway has been optimized (slightly) to improve framerate #410
    • Added .handler(func) and .handler_falling(func) functions to AnalogReaderDigitalWrapper to make setting up callbacks more similar to the standard DigitalReader implementations #409
    • Output.value(...) (e.g. cv1.value(1)) now handles the parameter as either "truthy" or "falsy" instead of strictly comparing to HIGH and LOW. This allows cv1.value(True) and cv1.value(False) to be used to turn gates on & off instead of needing to use 0 or 1. #411
    • Apache 2.0 license text added in a comment block to the top of all source files for proper compliance with the license terms. Contribution documentation correspondingly updated to add this comment block to all new files. #412
  14. v0.17.01 file

    New Scripts

    • Binary Counter (Chris I-B) #406
    • Morse (#407) (Chris I-B) #407

    New Features

    • Add saving... indicator to configuration editors (#403) (Chris I-B) #403
    • Use lockable knobs for configuration editors (#405) (Chris I-B) #405
    • Increment the Micropython version used in the UF2 builder scripts (#404) (Chris I-B) #404

    Bug Fixes

    • Fix settings menu + knob bank interaction (#405) (Chris I-B) #405

    Documentation

    • Add missing scripts to menu & readme (#408) (Chris I-B) #408
  15. v0.16.31 file

    Bug fixes

    • change EXTERNAL_I2C_TIMEOUT to be a ChoiceConfigPoint to a) resolve a memory allocation error in the Configuration Editor and b) improve UX in the Configuration Editor
    • fix a bug where the configuration editor could crash if /config doesn't already exist on-disk when trying to save the configuration
  16. v0.16.21 file

    New Features:

    • Adds Turing mode to Pam's Workout as a new wave shape.

    Bug fixes:

    • Fixes a bug where autoselectable items could be appended multiple times to ChoiceConfigPoints via the menu system if they share a common choice array
  17. v0.16.11 file

    Major new features:

    • The Calibration Update: after months of testing & use, the overhauled calibration script is live! This adds the ability to calibrate each output individually, for more precise quantized outputs. It also adds a faster 5V-only option, for users who may not have access to a 1-10V adjustable, precision power-supply and need something good-enough
    • Configuration Editor: you can now edit config files directly on the module using a pair of new programs
    • The Menu Update: introduces a new GUI menu API inspired by Pam's Workout
    • I2C realtime clock support: the first ever EuroPi-supported I2C peripheral! Add a realtime clock to the module, and take advantage of scripts that use the real-world time and date to generate interesting pseudorandom sequences, including a clone of Jonah Senzel's Pet Rock
    • Pico 2 Support: the Raspberry Pi Pico 2 family is now officially supported as an option for the main board in the module

    New Scripts:

    • Pet Rock -- a clone of Jonah Senzel's stand-alone, moon-phase-tracking module
    • Daily Random -- generates new gate & CV sequences every day, hour, and minite
    • DCSN-2 -- inspired by the Robaux DCSN-3
    • Itty Bitty -- a 2-channel, 8-bit CV and gate sequencer inspired by Schreibmaschine
    • Configuration Editors for EuroPiConfig and ExperimentalConfig

    Misc changes:

    • Added screen contrast adjustment configuration
    • Default maximum input voltage is reduced to 10V (from 12V). 12V can be re-enabled via EuroPiConfig.json, but lowering the default allows for more reliable self-patching
    • Added a document of community-suggested hardware modifications to the module. These are done at your own risk, and are totally optional.
    • Fixes to a few scripts that could crash under non-standard configurations
    • Improved error messages for the Euclidean rhythm generator library
    • Fixed PyPi packages to include new directories & subdirectories

    Commits

    • f1bb7e2: Fix FPS gate off (#391) (Chris I-B) #391
    • 1192138: Reduce the default input voltage limit to 10V instead of 12 (#390) (Chris I-B) #390
    • c2da84c: Add support for Raspberry Pi Pico 2, Pico 2 W (#377) (Chris I-B) #377
    • 6eb6a68: Prevent ConfigPoints from crashing if the maximum voltages are lower-than-default (#393) (Chris I-B) #393
    • 8924ba2: Give the ValueErrors raised by the euclidean generator messages so there's better indication what's going wrong (#396) (Chris I-B) #396
    • 8fcafa9: Add Itty Bitty script (#398) (Chris I-B) #398
    • 78294cc: Add DCSN-2 Script (#399) (Chris I-B) #399
    • 85fe6a5: Add DISPLAY_CONTRAST to europi_config, refactor Display class (#395) (Chris I-B) #395
    • db3d7ab: Implement shared settings menu (#397) (Chris I-B) #397
    • 42256d5: Calibration update (#379) (Chris I-B) #379
    • 18e8f4c: Add support for I2C Realtime Clocks (#400) (Chris I-B) #400
    • 03d66da: Bump version (Chris I-B)
  18. v0.15.01 file

    New Scripts

    • Arp: a scale/arpeggio generator by Chris I-B #368
    • Sigma: a gaussian randomness generator inspired by Magnetic Freak's Gaussian module by Chris I-B #369
    • Bezier: two configurable random LFOs based on bezier curves. Inspired by the ADDAC507. By Chris I-B #371
    • Volts: a non-interactive script for generating constant voltages. Useful for debugging or calibrating external equipment. By Chris I-B #382
    • Slopes: a CV processor that generates different gates when a signal is rising, falling, or holding steady, and generates CV signals based on the rate of change of the input signal. By Chris I-B #375

    New Features

    • Added support for floating-point ConfigPoint values
    • Buttons can be used as inputs for the Logic script (Chris I-B) #367
    • Added sustain gate, end-of-rise, end-of-fall triggers to Envelope Generator (Chris I-B) #366
    • Added smooth & stepped random wave shapes to Lutra (Chris I-B) #383
    • Add the ability to view only the selected LFO shape in Harmonic LFOs (Jason) #384
    • Expose the second I2C channel to make it easier to work with (Chris I-B) #387

    Documentation Improvements

    • Added the full list of components for Jack PCB to build instructions (Chris I-B) #373
    • Add Illustrator and SVG files for panel (Rory Allen) #345
    • Fix Docker build, update UF2 docs for Linux & Mac (Chris I-B) #386
    • Improved Gate Phaser documentation (gamecat69) #378

    Bug Fixes

    • Made the missing-file warning when loading JSON config files less alarming (Chris I-B) #372
    • Force Lutra's secondary thread to die when the USB is connected for debugging (Chris I-B) #374
    • Improved Euclidean script's UI rendering to make it more responsive to short triggers (Chris I-B) #380
    • Fix a crash in Scope where the max input voltage was being incorrectly treated as an integer (Chris I-B) #388
    • Fix GitHub CI deprecation notices (Chris I-B) #385
  19. v0.14.01 file

    New Scripts

    What's Changed

    Full Changelog: https://github.com/Allen-Synthesis/EuroPi/compare/v0.13.1...v0.14.0

  20. v0.13.11 file

    What's Changed

    Full Changelog: https://github.com/Allen-Synthesis/EuroPi/compare/v0.12.0...v0.13.1