Home | ER-101 | ER-102 | ER-301 | Wiki | Contact

V0.3.x Firmware Workout: Better late than never



i see what you did there :wink:


Missing ‘Christmas in July?’ :slight_smile:


Can’t wait to finally have an Oscllloscope!


Hey @odevices - just went to quick save my large-ish session and am stuck on “Working…” after the initial Shift+M1 press…uh oh! Totally unresponsive now. Looks like I may have lost a good bit of work (my fault for not saving sooner). I’m going to let it sit overnight to see if it awakens from this spell.

Is this something you’d like an error report for at all?


Absolutely interested. My intuition tells me that you ran out of kernel memory. However some details that might help:

  • Firmware version
  • 48kHz vs 96kHz
  • Unresponsive means frozen (i.e. no response to knob/buttons AND nothing changing on the screen/LED) or busy (i.e. no response to knob/buttons BUT screen/LED elements are changing)?
  • A rough estimate of number of units in your patch.
  • Were there any bespoke units in your patch?


Firmware 0.3.25
Indeed it is unresponsive/frozen
50+ units, hard to say w/o restarting which I haven’t yet. Maybe quite a bit more than that. Probably the biggest session I’ve made in the 301, so let’s say “quite large” instead of “largeish”. CPU hovering around 80%, with some units/subchains bypassed.
No bespoke units
+5v switch toggled for power (in the case that is useful for you to know)


Wow :scream_cat: Looks like I need to add a Stress unit for memory stress and not just CPU stress.

Clarification please. This means you have the +5V switch set to the BUS setting?


Just an aside as I have always wondered this. I know you’ve eliminated this switch on the current rev boards. I assume you thought the potential risks outweighed any benefit. But what was the original purpose of it being there?


Lots of mixers, VCA’s, multiple instances of external sound sources, randomized parameters with slews all over the place, four samplers including grains. It adds up quickly, though there might be a smarter way to patch what I’ve done using global chains, maybe not.

Yes, +5v set to BUS.

We could always double (?) the CPU/Memory capacity :heart_eyes:


The purpose was to give users more flexibility when designing power for their case. However, it turns out that in certain situations the quality of the 5V rail is too low (i.e. too noisy) for the CPU used in the ER-301. In a nutshell, when regulating down from 5V to the required 3.3V, it takes a much smaller amount of noise on the 5V line to cause a brown out in a CPU then if you regulate down from 12V. And since efficient and tiny switching regulators are now commonly available, the heat waste of the linear regulators commonly used in the past for this task is no longer an issue.


59 units including 2x feedback loopers (10 sec buffers), 2x dub loopers (10 sec buffers), manual grains, manual loops, and 2x clocked delays. Discreet white noise, S+H, and slew chains for size, duration, and spatialization paramaters in many places.

My idea was that through utilizing the true bypass feature I might be able to set up large/contrasting portions of my set behind mixer units and engage/disengage as I need them, effectively getting a lot of mileage out of the 301. Perhaps when I quicksaved at ≈75-80% CPU, the total amount of stuff the 301 was trying to account for was in reality far beyond that, and it affected the memory?

Here’s where I wish I had programming experience :grimacing:


Did you by any chance look at the Kernel Memory usage when you glanced at CPU usage?


I don’t recall where it was at specifically, but I also don’t recall anything out of the ordinary.


I did just experience a little hiccup after deleting a mixer unit with a sine osc inside it. Was at 62 units total at time of deletion, and the 301 did freeze for 5-10 seconds (to the point where I said uh-oh), before completing the task. Here’s a photo of where the memory and CPU were at:

Sailing as expected now.


I used this same methodology on my last live set but found in the end I had to split into two chunks (quick saves) because the ER301 couldn’t handle having everything loaded even if the majority was bypassed.


sooo, what’s cooking for 0.4? :slight_smile:


my method is this: i load up a quicksave that will be the start of my liveset, organized with channels 1&2 paired in stereo, channel 3 set up from my mixer as aux send , channel 4 for additional mono stuff.
then i organize stuff in mixer channels, properly name them and when i want to change sound sources or processors i simply load a different mixer channel preset.
this way i can smoothly and gradually change what my 301 does.
the limit is that the overall structure remains the same for all the liveset but i find it pretty flexible and effective :slight_smile:


@Unity2k is it out yet?


Do you mean my whine or the firmware? Because I’m still considering the whining option, though I think Brian is impervious to that nonsense.


it is mid-August tho :thinking: