Alternative hardware for zynthian

Hello everyone,

As you might see, the semiconductor crisis is nowhere near to end, forcing us, tinkerers and developers to search for alternative hardware.
I’ve gained some previous experience porting zynthian to an Allwinner H3, which proved out to be a great success.
However… That solution is far from perfect, and that is because of unnecessary limitations(lcd interface, mainly, which takes valuable CPU power).
I was lately experiencing with a rather old tablet containing an Allwinner A31s(almost same stuff as H3, but targeted for mobile applications), and was able to get Armbian to run on that little puppy.
This light up a spark in my mind about the feasability of using old portable devices for building a Zynthian.
Well, to be fair, you got everything you need in there:
CPU power, a display which runs on a dedicated high-speed interface, built-in soundcard(with embedded speakers! :smiley: ) battery and so on.
This would be the perfect candidate for a portable synthesizer. Just hook up a USB-OTG and a USB keyboard and you’re ready to rumble.
These might be just fantasy, but I generally love repurposing old devices and giving them a completely new life.

Thinking about that, the guys at PostmarketOS are doing a great job bringing linux to old phones. But they are using a lightweight distribution based on arch linux(IIRC), AND some drivers may be manufacturer blobs. Also, I don’t know about the portability of the packages used by zynthian from one OS to another (Armbian proved successful, so porting to that might be the logical approach).
I do own a Samsung Galaxy A3 2015 which is based on MSM8916 and it seems to have good mainline support

1 Like

Zynthian is pretty portable as far as code goes, it’s more design decisions that are off putting.

Zynthian expects everything to run as root and has a fairly opinionated view of where things should go in a filesystem. I’d never recommend running it alongside a desktop or mobile OS. Otherwise, go for it!

I had a very brief try of running softsynths on a Pinephone and it worked. I bought an early model that OTG doesn’t work on though.

Probably alternative board like OrangePi, BananaPi, Le Potato (Libre Computer board), Asus thinker board can be good start. However it will require new script for hardware compatibility.

I have been looking for a RPI4 substitute as well and came up with an Odroid C4 4GB Board.
GPIO has some minor differences. WIFI isn’t onboard, you need a USB dongle. I have a spare HifiBerry kicking around. I’ll look around for a touch screen. If it all works then there’s a matter of testing. The hdmi connectors are different. the C4 has 1 connector and it’s a standard HDMI.
I’ve been tempted to test.

The board has an eMMC slot too

@Baggypants yes, you’re pretty much right, the code is portable, but being python, it is not very resource-friendly, and you can only do so much on old hardware. Sure, you can’t expect bells and whistles, but it will for sure run a few fluidsynths, which may/may not prove enough in certain scenarios. On the other hand, I can’t even think of coding zynthian in cpp and having so many features :smiley:

@Rohit The changes are not that significant as long as you run a debian-based distro. You need some linux skills tbh, as in my case, being quite a noob in this sense, it took me like one or two weeks to get to the “homescreen” of zynthian. And only then have I stumbled upon some other incompatibilities, which took another few weeks of troubleshooting.

@Jerryn that board looks promising. You can get it to work without wifi, though. A LAN cable will suffice. That is how I did my first port on the OrangePiPC Plus. About the USB dongles. If you go for AliExpress, try not to shoot for the cheapest ones because some of them work fine in Windows, but for one reason or another completely fail on linux(found out it was something to do with the firmware that is on them, being a bilion variants). I can’t remember how the latest zynthian is done on RPi4, but try to use the HDMI for the display and keep the CPU load for synths :smiley:

1 Like

Sorry for resurrecting this thread after quite some time. I have finally taken the crazy decision to port the entire Zynthian to postmarketOS for Pocophone F1(Crazy CPU power, lots of RAM, UFS storage :star_struck: ).
While the road was bumpy so far, there is some progress, but am still seeking some help from the most experienced guys that worked on coding zynthian until now.

Thus, I’m just going to shoot the question straight away:
I can’t get how the setup script is calling the setup_first_boot script and then shutting down first time while the second time it should not.
More concise: The is calling $ZYNTHIAN_SYS_DIR/scripts/ There’s no guarding for this call. Next, at the end of script, a poweroff command is issued. No flag checking or anything. So, theoretically, each time you would call this script, it will power off at that point, making the rest of the comands in basically non-executable.
Am I missing something here?

LE: Should I create a separate topic specifically targeted for porting software to other platforms/OS-es? @jofemodo


I don’t have an answer for you but I actually came here looking for just this thread as I’m working on a RockPi 4A (I’ve got a handful sitting around) that have eMMC and SSD/NVMe drives on them. The first step is getting an OS release that deploys well to it which is currently the Armbian RockPi 4 Jammy CLI/minimal release. The next step is to determine where to get started with the Zynthian scripts so any pointers would be welcome as I dig through the wiki and git repo looking for where to begin…

There’s bits and pieces here…

1 Like

That’s great!
Though, for porting the system to a completely different platform that info will barely scratch the surface.

Porting to Armbian will be “easy” work. It’s still a debian-based distro so the only issues you may encounter will be related to the packages version.
Bear in mind, by the way, that zynthian as of right now is running on 32 bit Raspbian, and sadly, components of it won’t even compile on 64bit distros. @riban has some patches for that issue but I’m not sure he made them public yet.
In my successful attempt at porting it to Armbian on Allwinner H3 I started with the setup scripts.
Plain running them on the board will give you multiple errors and you will have to take on from there.
There were also some missing packages in Armbian(zynthian assumes they are present in Raspbian) which would render some runtime errors, so bear that in mind.
Other than that, you need patience and time :slight_smile:

Thanks Alex and Chris; thanks to your posts I have clear next steps!