I want to make something like Pocket Operators


I want to make something like Pocket Operators. I was wondering what sorta technical skills I need in terms of programming the processor, programming the graphics and the sounds/effects.

Thanks in advance :slight_smile:

What sort of skills do you already have?

Programming graphics is certainly secondary to making something that sounds good. On top of that, the PO-10 series doesn’t really have graphics beyond when this sound triggers -> trigger that graphic. Really wouldn’t be complicated to do that. All the “graphics” are just triggering pre-made cells of the LCD screen. If you look into the processor that TE used, you can probably dig up something about the programming language for it. Or you could research what sort of DSP that might appeal to you more. Then if you want a more powerful chipset, you can do that. Circuit-wise, there really isn’t too much going on in the PO. Mostly just programming.

But tackling something like making a PO will require a lot of problem solving, research, trial and error, problem solving, research, more error, more trials, etc. Probably much more fruitful for you to start your journey and figure out what you need to do to make your vision a reality then setting out with a list of skills you need before you start the journey. Not trying to turn you off from it, because it will be rewarding. Just a case where the “simplicity” of the end result may obscure the amount of work, effort, and learning that went into it.

I second what @GCF said. Embedded programming with audio latency and mobile power constraints is usually not the first thing you dabble into without prior knowledge and experience. Maybe try your hand at some advanced Processing or Pure Data stuff first. Maybe consider an Axoloti to start out with.

1 Like

Yeah, something like puredata or axoloti would be great for this. I started work on a nanoloop-ish sequencer (like the PO sequencers but more/different features) in puredata with the aim of using it with an external controller like a QuNeo or MIDI Fighter twist, but lost motivation. I’ll pick it up again someday… I was nearly there, I just needed to figure out how to save/load patterns, and work on a decent synthesis engine :smiley:

@GCF @crudeoperator @pselodux

Thanks guys for the help.

I have done some AVR programming for my uni stuff. <span style=“background-color: rgb(252, 252, 255); color: rgb(37, 38, 30); font-family: “lucida grande”, “Lucida Sans Unicode”, tahoma, sans-serif; font-size: 13px;”>I have pretty basic knowledge on AVR.

I think PO uses Gecko EFM 32 ARM processor as its MCU.

I am interested in how to program sound/effect and probably <span style=“background-color: rgb(252, 252, 255); color: rgb(37, 38, 30); font-family: “lucida grande”, “Lucida Sans Unicode”, tahoma, sans-serif; font-size: 13px;”>programming with audio latency and mobile power constraints. I have never done a project where I need to integrate everything and optimize so many things due to its constraints like POs. I really want to learn how to make PO so I learn to optimize performance on MCU well and program music sounds but I don’t know where to start from… :frowning:
<span style=“background-color: rgb(252, 252, 255); color: rgb(37, 38, 30); font-family: “lucida grande”, “Lucida Sans Unicode”, tahoma, sans-serif; font-size: 13px;”>

1 Like

You guys might find one of Cuckoo’s latest videos interesting …


1 Like

@Pladale I don’t have experience with this sort of programming either. But if I were to start, I personally would just dive in and ignore any hang-ups on getting the most optimized/performant code. Until you know how to get sound out of it, you shouldn’t worry about latency and such. Just focus on getting any chipset to make sound. I was working on a project with Arduino and MIDI recently, and it wasn’t until I was able to get anything working that I was able to go back and figure out why there was latency. If you use that Gecko chip, you have to also consider whether you will be able to program anything that uses enough of its resources to even require optimization at first, if you catch what I mean. It’s like people who worry about whether their computer will run slow so they buy the high-end Mac, only to use it for checking email. So really, just dive in and start experimenting. Just like with school, you’ll learn through failure and troubleshooting far better than reading about how best to program.


I have worked on a similar project last year where I inspected the Pocket operators as a begging point. I really really love this stuff. Now I’m working on a synth like the op-z for about 6 months for the graduation project, and I’m really excited to share it when its ready.

You can actually hack into any of the pocket operators by using the dev-kits of the silabs gecko cpus like this one http://www.silabs.com/products/development-tools/mcu/32-bit/efm32-giant-gecko-starter-kit. But you need to erase the original firmware completely without any recovery option. After that you may use the hardware as you please.

For creating a sound you need to configure several things in the hardware such as the codec, interrupts, timers etc. It’s certainly will be a challenge. After the initial hardware setup is complete, you may synthesize sound by creating a simple oscillator, and submitting its outputs to the codec at a predefined rate. If you are more interested in creating the sound part rather than the embedded parts, (which I think you should) you can use your computer to create a program that generates music. If you use macOS, I could supply you a base c project that includes a simple waveform oscillator.

At the begging it is really really hard to find good resources, you should check out some useful academic papers and some websites for how to create some stuff. What I find is https://ccrma.stanford.edu/~jos/ and it is great for a lot of things.

1 Like

@GCF @erd_

Thank you for the help! i think i’ll try to erate the original firmware and try it myself somehow!
@erd_ if you could supply me a base c project that would be great! I’ll pm you with my email address.