Arduino USB HID Controller

I pointed out that QWERTY uses CUIA and this is not exposed so you will probably suffer same constraint.

Yeah that sounds like a trip into a room left uncleared for a good tidy up!.

Would we suffer the same confusion in the MIDI implementation or would we simply expose a similarly edge case encumbered situation?

MIDI note2cuia supports the encoder actions but the screens need to react to them so will probably have same issue.

@wyleu and @riban
Yes, this is what I encountered, and I tested both for QWERTY and MIDI. The CUIA interactions do not modify the UI Engine parameters. I attempted to dig into this a little bit to solve the issues, but my limited python skills, and lack of understanding of how all of the Zynth modules fit together keep getting in the way. I saw that it was complete for Step, but was not able to figure out how to do the same for the engines.

My apologies for not getting a config up for you, my day job got in the way of my funtime… :frowning: Glad to see that you have it working!

I was a good exercise and your code is very clear once I put the effort in. Not sure how best to generalise what I have adapted from your code base. GitHub - wyleu/zynthian_controller_external_usb

1 Like

How complex is contriving a solution to this? It seems such an oversight.

I should be able to work something up. I’m thinking what we really need is a “config.h” file that aliases your hardware config to the rest of the code, plus an unused pin designation for boards like yours where you will be using a common GND pin and/or VCC rather than GPIO to drive these.

1 Like

There are also the possibility of orientation settings. My device will work either way up and the ability to flip the encoders and switches would seem a welcome addition to match your rotation direction setting.

I should be able to work something up. I’m thinking what we really need is a “config.h” file that aliases your hardware config to the rest of the code, plus an unused pin designation for boards like yours where you will be using a common GND pin and/or VCC rather than GPIO to drive them.

I have some code building now, with yours, mine and a blank template to help others. I need to test it on my hardware, then I’ll push it. I should be able to get to it this week sometime.

2 Likes

@wyleu, I finally tested on my hardware, and pushed up the new code. When you get a chance, can you pull it in and test it on your MKZero hardware? It should be as simple as swapping the config file

//#include “black_pill_cfg.h”
#include “mkzero_cfg.h”

Also, let me know if I got anything wrong with the port to your hardware.

2 Likes

We’ve just moved house so pedalboard is on hold, but I will get to it, I’ve got to rebuild the damaged screen anyway !!

The testing branch now contains updated code that allows parameter controls to be modified using remote control in the fashion described above.

1 Like

Oh Nice! I’m going to drag out my headless rig and get testing on that!

Wow! Amazing! This is working exactly like what I was expecting.


This is a VNC session running on a headless Zynth using Headphone output!

I’m running the “Black Pill” version of my code with quick and simple 5 pin JST connected off the shelf Encoders.

I’ll add some better documentation so others can start working up their own builds.

Super thanks to whomever got this code written. Who should I direct my kudos to?

2 Likes


Second option: USB HID plugged into the headless, and an iPad pointed at the VNC-UI

3 Likes

Works well doesn’t it?

That scene stealing hack @riban did a little bit, but he doesn’t need any praise as he should be writing sooperlooper code…

Just updated this code base to allow two modifiers to align with newer zynthian CUIA structure . . . .

. . . just before someone changes it. . . .