Encoder Display Power Fan Board (epdf)

I have created a PCB to simplify a basic encoder Zynthian build.

It is centered around an MCP23017 IO expander, with the pinout headers configured for use with “off the shelf” 5-pin arduino style encoders. The hope here is that this will fill the gap for some of the other DIY builders that want to get started with their first Zynthian.

It also includes nice to have, but optional extras. A 2pin header output for driving a 7" Pi Foundation touchscreen, a 5V power input to simplify using a high current supply, and a GPIO-PWM modulated 5v fan output for cooling a Pi4.

I have included Pi zero style mounting holes so that an Audioinjector zero can be used as the soundcard and mechanically secured to the full assembly if desired. The build is intended to be a Pi stack, using 40pin stacking headers, and no ribbon cable.

At this point, the design is “experimental” and I am waiting to send it off for prototyping and SMT assembly. Unsure at this point when I’ll be able to prove out the design, I’m expecting it will be at least June at this point.

All files are in a forked zynthain-hw repo:

This is my first go at hardware design. Comments, criticism and suggestions are welcome.


Are you saying that this fits right on top of the Pi? That’s fantastic! The Zynthian HAT! :smiley:

1 Like

Is this instead of the old All in one board?

The layout looks great. I made a similar board for my build that uses an HDMI display so I was able to drop the I/O expander from the design.

These 40 pin stacking connectors are hard to find. You could think of having a second 40 pin connector just for the soundcard.

1 Like

I don’t know if that is possible, because you would have to offset the connectors, and then the mounting holes on the sound card wouldn’t line up.

HiFiBerry DAC+ ADC

However… :thinking: …you could possibly desolder the 40-pin header on the sound card and move it to the other 40-pin connector.

Assuming that works (and you have enough time and patience to get that done), then you could offset the headers on the EDPF board, and the mounting holes would still line up.

(FYI, I am by no means a professional, so if this is completely wrong, please correct me! :smiley:)

Yes, an alternative to the all-in-one.
The main reasons are to use easy to find pre-built encoders, and to stack up on the Pi. I opted to drop the DIN style MIDI since I don’t use those anymore.

@Jtunes, I have that soundcard currently, and populated the second connector. Like you pointed out, the mounting holes don’t line up, and the second hat flops around. I want a more secure solution.

The 40 pin stacking headers are available on Amazon from at least 2 sources, more if you get creative with 2x20 pin or other build up combinations. Some boards are starting to appear with SMT connectors, so that might be an option. One on top, one on bottom.


You will be very sorry you started that. Desoldering is an art and can be tricky, especially with older solder.


I used one of the 1 to 2 risers so I can attach a second cable.


I noticed in the original post that smiths73 is using an audioinjector zero card that has a smaller footprint than other sound cards. So my musings about off-setting the 40 pin connector are still valid :slight_smile:

Hi @smiths73v3!

Nice work! This looks very promising! I would like to get some of this babes when they are ready for dancing … How many units would you like to produce?


Hi @jofemodo,

Trying to patiently to wait for the supply chain disruptions to resolve. After that it’s probably a 4-6 week process, you probably know better than I would. This is my first attempt at designing and manufacture. There is still a bit of risk that V1.0 will end up scrap.

I was planning on an initial proto run of 5 boards to prove out the design and to figure out what the board costs are. I’ll plan on sending you two boards once they are working.

I am just now starting to think about the question of what is next. If I can do a small batch, then Tindie might be the best route unless there was significant interest.

The design files are in a forked zynthian-hw, so I could do a pull request and they could be built by Zynthian official once the design is verified. I also have a forked zynthian-sys for the systemd and install files to control the fan but it’s not pushed yet.

1 Like

Funny, I started the same thing, although mine is alot more basic :slight_smile:
It connects to the 4 port encoders that the original uses :slight_smile:


Whilst we are showing off our Zynthian encoder interface designs, here is the parent board for mine:

There are also child boards for expanding inputs further:

I haven’t built any of these PCBs yet but will try to find time to get back to this now that the interest in extending quantity of encoders has (re)ignited.


One of the reasons that the STM32 solution I use hasn’t been elevated to standard use within Zynthian (to replace the MP23017) is because it relies on firmware that would ideally be flashed by the RPi and whilst this is feasible, I haven’t had time to device a neat solution. It could be done via USB but that would require connecting the RPi USB to the STM32 unit which is cumbersome. I plan to implement a I2C based bootloader for the STM32 which would resolve this but time… is not on my side.

@riban, You and me both my friend. The epdf is on hold, but not forgotten. The supply house came back online but has been out of stock of the dual transistor, and then ran out of the MCP23017 before I could replace the transistor…

Boards are ordered! Now the waiting begins… Reminds me of the old days when I mail-ordered a 300 baud modem and counted the days until it might arrive. :star_struck:


Boards are in hand!

Now the slow process of methodic bring-up, and soldering connectors.


Hi @smiths73v3!

I just added your EPDF PCB design to the zynthian-hw repository. I’m reviewing your other PRs …

Thanks for sharing!

1 Like


Quick warning before anyone builds one of these from the schematic.
It’s going to need a minor rework to the power section based on a low current issue. Everything else seems to be testing out as expected.
The action photo here shows it running with 4 encoders, power input, the Pi 7" touchscreen, fan, Stackable header, and Pi Zero sized Audio Injector soundcard with matching standoff mounts.

1 Like