EuroPi
Hype16/100EuroPi: 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.
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
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
v0.23.00 files
Documentation & design changes
- Reorganise Hardware by @roryjamesallen in https://github.com/Allen-Synthesis/EuroPi/pull/451
- Make Hardware Files Consistent Across Variants by @roryjamesallen in https://github.com/Allen-Synthesis/EuroPi/pull/459
- Fix Docs Fail by @roryjamesallen in https://github.com/Allen-Synthesis/EuroPi/pull/462
- Minor surface-mount PCB changes (REV 3) by @roryjamesallen in https://github.com/Allen-Synthesis/EuroPi/pull/458
- Add sample TouchOSC configuration to interact with
osc_controlby @chrisib in https://github.com/Allen-Synthesis/EuroPi/pull/460
Bug fixes & improvements
- Add executable suffix to OffsetVoltages by @chrisib in https://github.com/Allen-Synthesis/EuroPi/pull/469
- Add external clock mode to Pam's by @chrisib in https://github.com/Allen-Synthesis/EuroPi/pull/450
- Remove duplicate code in settings_menu by @chrisib in https://github.com/Allen-Synthesis/EuroPi/pull/473
- Fix some copy & paste errors with the autoselect feature by @chrisib in https://github.com/Allen-Synthesis/EuroPi/pull/474
- Fix a bug when tracking k2 changes over time in Pam's by @chrisib in https://github.com/Allen-Synthesis/EuroPi/pull/476
New
contribscripts- Add Set Timer by @chrisib in https://github.com/Allen-Synthesis/EuroPi/pull/470
Full Changelog: https://github.com/Allen-Synthesis/EuroPi/compare/v0.22.0...v0.23.0
v0.22.04 files
Commits
- 25301f2: Update programming_instructions.md (#441) (Chris I-B) #441
- 1ca00e6: Add
discrete,continuousmodes 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)
v0.21.24 files
Bug Fixes
- Fix UF2 builds on GitHub to include the
toolsdirectory. Resolves https://github.com/Allen-Synthesis/EuroPi/issues/443
- Fix UF2 builds on GitHub to include the
v0.21.14 files
Bug-fixes
- Fix the set-all-CVs endpoint in OSC Controller #442
v0.21.04 files
New Script Features
- Added optional support for Gray encoding to
Binary Counter#438
Bug-fixes & improvements
- Improved performance of
Conwaywith a summed-area table #436 - Modified application menu to omit
HTTP ControlandOSC Controlif 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
- Added optional support for Gray encoding to
v0.20.04 files
New Scripts
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
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
- Fix Sphinx errors when parsing docstrings in
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_logmodule to make debugging easier - added WebREPL support to
experimental_config - added NTP support for realtime clocks
- added
experimentalHTTP server module - added
experimentalOSC server/client module - Experimental Config Editor now has sections
- added new
StringConfigPointfor 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 othersHTTP Interface: control EuroPi from your browser using HTTP POST requests- new
desktopscripts folder for programs that interact with EuroPi from a laptop/desktop desktopscript for converting 8mu MIDI signals to OSC to control EuroPi
Other Changes
- moved hardware initialization out of
europi.pyand into neweuropi_hardware.pyfile; existing scripts can continue to usefrom europi import *, but this makes it easier to access buttons, knobs, etc... from modules within thefirmwaredirectory - build & programming instructions expanded to include all Pico variants, including the wireless-capable ones
- update docstrings in
firmwareto be Sphinx-compatible to (hopefully) get the auto-generated documentation working again
Bug Fixes
- fixed default I2C timeout in the example configuration
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_logmodule to make debugging easier - added WebREPL support to
experimental_config - added NTP support for realtime clocks
- added
experimentalHTTP server module - added
experimentalOSC server/client module - Experimental Config Editor now has sections
- added new
StringConfigPointfor 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 othersHTTP Interface: control EuroPi from your browser using HTTP POST requests- new
desktopscripts folder for programs that interact with EuroPi from a laptop/desktop desktopscript for converting 8mu MIDI signals to OSC to control EuroPi
Other Changes
- moved hardware initialization out of
europi.pyand into neweuropi_hardware.pyfile; existing scripts can continue to usefrom europi import *, but this makes it easier to access buttons, knobs, etc... from modules within thefirmwaredirectory - build & programming instructions expanded to include all Pico variants, including the wireless-capable ones
Bug Fixes
- fixed default I2C timeout in the example configuration
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.pyis automatically included as part ofeuropi_contribpackage from PyPI (#418) (Chris I-B) #418
Documentation
- Add heatsink installation instructions to Hardware Mods document (#417) (Chris I-B) #417
v0.17.11 file
New Features
Logicnow supports using the buttons as alternative inputs for the two channels (B1is equivalent toDIN,B2is equivalent toAIN) #409Pam's Workoutnow features a simple visualization showing the output & input voltages in a simple bar graph. To access the visualization, rotateK2fully 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
Logichas been rewritten to use theAnalogReaderDigitalWrapperclass fromexperimental#409Pet Rockwill now raise a newClockErrorif it is launched without a valid realtime clock configuration, instead of hitting aValueErrorfor the date being out-of-range #413Conwayhas been optimized (slightly) to improve framerate #410- Added
.handler(func)and.handler_falling(func)functions toAnalogReaderDigitalWrapperto make setting up callbacks more similar to the standardDigitalReaderimplementations #409 Output.value(...)(e.g.cv1.value(1)) now handles the parameter as either "truthy" or "falsy" instead of strictly comparing toHIGHandLOW. This allowscv1.value(True)andcv1.value(False)to be used to turn gates on & off instead of needing to use0or1. #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
v0.17.01 file
New Scripts
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
- Add
v0.16.31 file
Bug fixes
- change
EXTERNAL_I2C_TIMEOUTto be aChoiceConfigPointto 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
/configdoesn't already exist on-disk when trying to save the configuration
- change
v0.16.21 file
New Features:
- Adds
Turingmode toPam's Workoutas 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
- Adds
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_CONTRASTtoeuropi_config, refactorDisplayclass (#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)
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
v0.14.01 file
New Scripts
- Egressus melodium - Clockable and free-running LFO and random CV pattern generator by @gamecat69 in https://github.com/Allen-Synthesis/EuroPi/pull/337
- Lutra - Syncable LFO script Inspired by Otterly from Expert Sleepers by @chrisib in https://github.com/Allen-Synthesis/EuroPi/pull/353
- Bit Garden - Deterministic psudo random gate processor by @awonak in https://github.com/Allen-Synthesis/EuroPi/pull/360
- Gate Phaser - Gates that drift in and out of phase with each other over time by @gamecat69 in https://github.com/Allen-Synthesis/EuroPi/pull/362
What's Changed
- Add Mouser links to BOM by @roryjamesallen in https://github.com/Allen-Synthesis/EuroPi/pull/347
- Add the git attributes to hopefully resolve EOL issues on Windows by @chrisib in https://github.com/Allen-Synthesis/EuroPi/pull/350
- Egressus melodium - Clockable and free-running LFO and random CV pattern generator by @gamecat69 in https://github.com/Allen-Synthesis/EuroPi/pull/337
- Remove JSON <--> String conversions when reading/writing files by @chrisib in https://github.com/Allen-Synthesis/EuroPi/pull/348
- Handle syntax errors when reading JSON files by @chrisib in https://github.com/Allen-Synthesis/EuroPi/pull/352
- Remove trailing whitespace from all .py and .md files by @chrisib in https://github.com/Allen-Synthesis/EuroPi/pull/351
- add missing import to envelope_generator by @mjaskula in https://github.com/Allen-Synthesis/EuroPi/pull/355
- launch first menu item by @mjaskula in https://github.com/Allen-Synthesis/EuroPi/pull/356
- upgrade to micropython 1.22.2 by @mjaskula in https://github.com/Allen-Synthesis/EuroPi/pull/357
- Treat
europi_configkeys like named constants by @chrisib in https://github.com/Allen-Synthesis/EuroPi/pull/346 - Fix screensaver timer to be less reliant on exact timing by @chrisib in https://github.com/Allen-Synthesis/EuroPi/pull/359
- Allow re-using ADC readings instead of re-reading all the time by @chrisib in https://github.com/Allen-Synthesis/EuroPi/pull/358
- Add config option to force module to always boot into the menu by @chrisib in https://github.com/Allen-Synthesis/EuroPi/pull/361
- Add Lutra script by @chrisib in https://github.com/Allen-Synthesis/EuroPi/pull/353
- Reduce latency in Clock Modifer script by @chrisib in https://github.com/Allen-Synthesis/EuroPi/pull/363
- Bit Garden - Deterministic psudo random gate processor by @awonak in https://github.com/Allen-Synthesis/EuroPi/pull/360
- Add troubleshooting note about using Thonny 3 by @chrisib in https://github.com/Allen-Synthesis/EuroPi/pull/365
- Improve responsiveness of Gates & Triggers by @chrisib in https://github.com/Allen-Synthesis/EuroPi/pull/364
- gate phaser initial commit by @gamecat69 in https://github.com/Allen-Synthesis/EuroPi/pull/362
Full Changelog: https://github.com/Allen-Synthesis/EuroPi/compare/v0.13.1...v0.14.0
v0.13.11 file
What's Changed
- It's 2024 by @mjaskula in https://github.com/Allen-Synthesis/EuroPi/pull/338
- move experimental_config to the experimental dir by @mjaskula in https://github.com/Allen-Synthesis/EuroPi/pull/339
- Remove USB workaround by @roryjamesallen in https://github.com/Allen-Synthesis/EuroPi/pull/333
- Add I²C Parameters to Config by @roryjamesallen in https://github.com/Allen-Synthesis/EuroPi/pull/340
- Allow menus to take up larger displays by @roryjamesallen in https://github.com/Allen-Synthesis/EuroPi/pull/341
- Use I²C Config Values to Initialise CustomFontDisplay by @roryjamesallen in https://github.com/Allen-Synthesis/EuroPi/pull/342
- Use global gate/trigger voltage across contrib scripts by @chrisib in https://github.com/Allen-Synthesis/EuroPi/pull/335
- Convert to UNIX EOL by @roryjamesallen in https://github.com/Allen-Synthesis/EuroPi/pull/334
- Add
apt-get updateline tocompile_to_uf2workflow by @roryjamesallen in https://github.com/Allen-Synthesis/EuroPi/pull/34
Full Changelog: https://github.com/Allen-Synthesis/EuroPi/compare/v0.12.0...v0.13.1
