PO hacks

Quick status update: my PO-16 is booting up the new firmware! It runs a realtime OS (Keil RTX) and initializes the keys, ADC for the pots, timer for the LEDs and multiplexing logic, LCD, codec output, timer for sequencer bpm/swing. It turns on all LCD segments, senses the line in/out connection status, scrolls the LEDs at the tempo rate and continuosly plays a sine wave. It does not do anything useful or interesting yet, but now I have a basic project to start implementing the real thing…

By the way, hackingthepo is updated with every information I got so far, which is about everything there is to know except for a full circuit schematic.

2 Likes

that’s fucking awesome. Great work.

Im very curious to see the result! Brilliant work @punji

I wish I understand half of what you just said….I still find this exciting!

@punji

Is it possible to outfit it with different LEDs? I connect a new LED on the cathode and anode of the current ones, but they just seem to be lit constantly when connected.

@wo3 If that happens then you should reverse the LED polarity. I will add a picture to hackingthepo showing that more clearly.

Also, note that the LEDs are driven by very short 3V pulses, so it must be a high brightness type, and some colors that need higher voltages may not work.

Hi Punji!


I don’t know if you’re working on this lately or not. But I’ve been wondering for a long time whether anybody would get into the JTAG debugger on these units. (I assume that’s how you’re getting i2c dumps?)

I’ve been thinking about how to create a midi interface for the POs. I saw that someone has soldered into all the buttons and knobs, which is certainly one way to do it. But I imagined that it’d be cleaner to use the JTAG debugger to twiddle the IO pins on the MCU. I know the MCU is locked, but the datasheet seems to say you can still use the boundary scan stuff to monitor & adjust all the IO pins.

Anyway, I’m going to a workshop on JTAG debugging in a couple weeks. I thought it might be time to hack on this, so I searched for ‘po-16 jtag port’ and found this thread. Very impressive what you’ve done so far, I hope you stick with it.

For your “expansion module”, it seems that one could solder a Teensy flat to the back of a PO using some small, very simple, componentless etched board as the in-between sandwich meat that connects all the dots. Then you’d have the Teensy’s USB port and a MIDI library to play with. But that’s all just fantasy at the moment …
1 Like

Hi @mykle


I haven’t been able to work on my PO firmware latelly. I have done the basic routines to generate audio, handle the display and keys, etc, and even a primitive sequencer, but it would still take a lot of effort to get to something usable.

Regarding JTAG, that interface is not supported by the EFM32, only SWD. As far as I know, if the device is locked, the AHP-AB bridge to the system bus is unavailable, so there is no way to get to the I/O ports, unless the original firmware is erased first (please let me know if that is not correct). I got the I2C dumps by directly soldering wires to the I2C interface between the MCU and CODEC and sniffing the data flow.

Your idea for the expansion module is similar to what I had in mind. Assuming that a custom firmware is installed, it could make use of an I2C interface available at the PO pads to send/receive MIDI data. Actually, I was thinking about going further and use the expansion module also to flash the firmware, allowing people to easilly “unlock” their POs :slight_smile:

Ah. Pity about JTAG … I see I was reading a generic ARM-chip manual instead of the Silabs-specific one.


I’ve heard there’s ways to break into locked chips, but that’s a whole black-hat universe of its own. IP crime seems excessive just to try to read & send control signals. Soldering leads to the buttons & knobs may be the only way to do MIDI on a factory-firmware PO.

I have imagined other software instruments one could program for the same hardware, and probably others have too. It’s a big step to throw away the TE factory software, but then again they are relatively cheap. I don’t use my sub much & I’d love to hack it into some other crazy device. Are you thinking of releasing your code to the public?

I think you can use a Teensy to flash the chip. I would be surprised if someone hadn’t written that already.

Releasing the SW to the community was always my plan, as I did for the HW details. I notified TE of my intentions and never got any oposition from them. But I was hoping to get to something usable before getting other people involved. Unfortunatelly, as I said before, it requires a lot of work to get to the quality level I want and I could not invest that much so far.


There are so many POs out there by now that I’m sure it would make a great platform for experimenting with. The idea I was toying with as a proof of concept was an “Endless sequencer” PO with up to 99 steps per sequence, each step up to 3 notes (chords) or silence and a chromatic keypad that would scale the sequences accordingly, like the OP-1 does.

There is already some SWD flashing code available for OpenOCD, maybe that could be used as a starting point.

How difficult would it be to create PSU’s for PO’s? Batteries are slowly becoming a pain for me…

Could you use rechargeable batteries?

Someone could create an insert. With a regulator charging thing.or Maybe snip off the battery holders and get a large rectangular lithium battery, wire to microusb regulator charger thingy. Making the po thicker (which would be nice) first yah gotta figure out if its taking 1.5v or combining them for 3v.

All that said I’m going to stick with regular batteries.

Lol maybe you could just create a power supply. Step down from USB to w/e. And then when you want portable just pop some batteries in.

^ The POs only need 3V, not 1.5V+1.5V. Both suggestions (Li-ion battery and USB step-down converter) are not complicated from an electrical point of view, IMO the chalenge is more on the mechanical side, i.e, come up with a solution so that anybody can attach it without soldering and also when using a PO case…

@Punji, i see you’ve disected a couple of PO’s?

I saw the website on weebly but i was wondering one thing i couldn’t get my head around;
Does the audio out, sync out and sync in also pass through the test pads on the back, or only through the jacks?
This would open a couple of possibilities to make a kind of ‘docking station’ where you don’t need to mess with loads of cables if you want to jam with a bunch of PO’s togehter… :slight_smile:

1 Like

@Orion1615 Unfortunatelly, I don’t think TE was considering that possibility when they designed the pads interface at the back. There are a couple pads connected to the left channel in/out connector return lines that are used to detect when a plug is inserted and offer different sync modes based on that and also to enable the line/sync input. I have confirmed that it is not possible to tap into the output audio from there. I’m not totally sure about the sync/line input, but I think it won’t work either. The only think the pads are good for, besides flashing a custom firmware, is to power the POs.

1 Like

i was under the impression that you could solder your connections to the existing leads on the in & out jacks for audio & sync.

I would be very interested in some sort of solution for the power supply.

Using the PO in a studio environment, with constant flow of batteries is making me super wasteful.
I would be very interested in some sort of solution for the power supply.
Using the PO in a studio environment, with constant flow of batteries is making me super wasteful.

It is actually easy to do so:
https://www.youtube.com/watch?v=inmAEY02hsg