My antidote to too-small pedals

Started by philjynx, June 22, 2021, 11:31:50 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

philjynx


Two of the LCDs not working because I put screws through their wiring!Lesson learned here is that I should have routed dummy wires in my 3D design, I'd have been able to avoid a tedious repair job then. I use DesignSpark Mechanical for all my 3D work, one of its great features is that you can render any components in your design visible or invisible, only the visible ones get included in your exported STL file.
To illustrate this, two screen shots of the design for the printer used to make the parts for my Midi thing, one showing all the components one with many of them randomly invisible. Of course, many of the components are not printed at all as they are things like motors, aluminium (aloominum  ;D , take your pick) section, steel-rod, bearings and so on.

sixeight

That looks great, Phil. Great work.
Always hard to judge displays and LED brightness on a video.

Very curious to know what it is doing.

ElliotG

Congratulations!  That looks amazing.  Well Done!

mooncaine

Quote from:  philjynx on June 24, 2021, 07:04:19 AM
.... lesson learned from this? Don't just design your boxes for the boards that are going into them, remember to put dummy wires into the design (easily done with the software I use) so you can make sure they're not going to get the chop.
Thanks so much for sharing the crucial details of your lesson learned! That makes your post here valuable to many us, maybe even years after you shared this with us.
I did a 3D print-design goof of my own once where I made a giant shim/box to mount my GK-2A wart on. The box attaches like a sidecar, and it brings up the wart to the level of the guitar's face. Anyway, I redesigned it with a slanted top, to angle the wart's controls towards my face... but I forgot that the screw holes needed to be slanted, too. I printed 2 at once, too--wasted the plastic *and* the waiting time. They were useless.

vanceg

Fantastic!  Not a lot more than some encouragement here:  Go cat go!

philjynx

#5
Testing the Mobius looper part. This is driven by a built in Win7 Lenovo ThinkCentre. Plenty of room to the left of it for a few pedals. I decided not to fit a second 10" display for the RPi as it can be accessed via windows.

philjynx

#6
Another goof! I forgot the pullup resistors for the I2C multiplexer in my design, so here's an example of tombstoning SMDs being a good thing!
Yes, I know the soldering is crappy but it is functional.
These are 10K resistors, so because of gravity they must be just fractionally over 10K  ;D
Actually, we're looking at the bottom of the board, so the resistance will be a fraction under 10K....

philjynx

Bump, as I'd mucked up the first entry in this thread, now edited to be a little more informative.

philjynx

#8
After much meandering in the interweb, I've now managed to get the Teensy to be a (class compliant) dual USB device, a keyboard and a MIDI device. I have to say that the PJRC forum was (to say the least) rather lacking in this respect.

Now time to find out how to use SPI.

philjynx

#9
Progress report for those with nothing better to do  ;) Hopefully the file names will serve as some of the narrative here....

The dual expression pedal (not pictured yet), has four LEDs - hence the 10 pin connector (only nine are used). The pedals have the same 'fake switch' on extra hard toe down as the GR55, I've gone one further and given them the same functionality on heel down too. The left hand pedal is specifically for the GR55, the toe-down LED echoing the GR55's status. The pedal unit is canibalised out of the previous version of my controller - I had to make it a separate unit as the main unit is now officially daftly enormous.

I've not used the heel down switching yet, but can imagine that it might be used to toggle between patches while the volume is down, so you'd then swell up to the new sound on return to the horizonal.

I've already established that the slope of the unit is too shallow so I'll be adding a fold out plank thing at the back to tilt the unit further. As Roger Daltry once sang 'Here by the sea and the sand, nothing ever goes as planned'.


Anyone wondering about that rope for a carrying handle, I've used that exact same rope to lift 40 foot spruce trees, I think it's strong enough for this toy!

philjynx

#10
A little progress, this has turned out to be a daunting project.   

A couple of screenshots of the software I'm working on for this gizmo.

One shot is of the settings app - used (amongst other things) to set what the eight buttons for the Katana do and to set the effects assigns for the exp-switch on the expression pedal, currently only a limited range of settings are implemented.

The other pic is of my MIDI routing/filtering app, I haven't decided yet, I might merge it with the settings app.

Not the prettiest of interfaces, but astonishingly they work! Still have some bugs to placate and a great deal more coding to do.

It is nice that all the hardware bugs and design omissions and mistakes are all sorted now, so it's just software hacking from now on. Who knows, maybe I'll be able to use this thing sometime.

philjynx

#11
I'm not (yet) convinced that the virtual ports (the ones with a 'v' in front of them) are necessary. They are provided by loopMIDI.

They are handy in that they are always there, so my settings program will always make all the connections that it wants (avoids a lot of port checking and error handling).

I'm intending to modify MidiRelay so that it detects when devices are connected and disconnected, this way it can handle all that nonsense.   

Half way through coding the SYSEX filtering, currently GR55 and Katana Mk1 messages are recognised, so for my purposes that leaves the Yamaha MX49, Boss GP10 and Roland VG99 to be added.

For those that haven't already nodded off, some code snippets:

const byte GR55IdBytes[5] = { 0x41, 0x10, 0x00, 0x00, 0x53 };
const byte KatanaIdBytes[6] = { 0x41, 0x00, 0x00, 0x00, 0x00, 0x33 };
const int KatanaIDSize = 6;
const int GR55IdSize = 5;

static inline bool messageIsForThisPort(wxString portFilterName, std::vector<unsigned char>* message)
{
    // 0xF0, 0x41, 0x10, 0x00, 0x00, 0x53 is a GR55 message
    // 0xF0, 0x41, 0x00, 0x00, 0x00, 0x00, 0x33 is a Katana MK1 message
    bool IDFound = true;
    if (message->size() > 7) {
        if (message->at(1) == 0x41) { // roland/boss manufacturer ID
            if (portFilterName == "GR55") {
                for (int i = 2; i < GR55IdSize; i  ) {// subject to change.....
                    if (message->at(i) != GR55IdBytes[i - 1]) {
                        IDFound = false;
                        break;
                    }
                }
                return IDFound;
            }
            if (portFilterName == "KATANA") {
                for (int i = 2; i < KatanaIDSize; i  ) {// subject to change.....
                    if (message->at(i) != KatanaIdBytes[i - 1]) {
                        IDFound = false;
                        break;
                    }
                }
                return IDFound;
            }
            // now the rest of the Roland/Boss gear we plan to recognise

        }        if (message->at(1) == 0x43) { // Yamaha manufacturer ID
           a load of stuff.......
       }
    return false;

philjynx

#12
My Midi relay program looks a lot better now. As a side bonus it also works flawlessly and auto detects devices being unplugged and plugged in.
Now I can get back into developing the Looper/controller thingy.

I've given up on trying to identify the source of sysex messages because not all of them carry the manufacturer ID. I also realised I was barking up the wrong tree, since each USB MIDI connection only 'sees' (hears?) one device. Enjoyable waste of several days coding though, no harm done.

philjynx

Quote from: sixeight on June 22, 2021, 12:41:47 PMThat looks great, Phil. Great work.
Always hard to judge displays and LED brightness on a video.

Very curious to know what it is doing.
It's just running a test of the LEDs.

gumtown

Hey philjynx, how is this project going ?
Maybe a video update, like to see it in action !!!  ;)
Free "GR-55 FloorBoard" editor software from https://sourceforge.net/projects/grfloorboard/

philjynx

Quote from: gumtown on April 11, 2023, 03:07:59 PMHey philjynx, how is this project going ?
Maybe a video update, like to see it in action !!!  ;)
It's sort of finished. Physically it is completed, I ditched the RPi as there's a Windows PC inside to run Mobius looper, so that handles the USB MIDI stuff too. I've not developed the software for a year or more. The Katana aspect of it can all be ditched as I sold my Katana a few weeks ago. It still needs a lot of work on the software if it's going to control the VG99 and MX49 (Yamaha keyboard).

Then there's that new guitar with the built in GP10 to complete.

All that presupposes that I can find the brains and the energy to do so.