VController version 1

Started by sixeight, May 31, 2015, 04:58:38 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

sixeight

EDIT: Here is the first part of my VController journey;

Version 1 with 12 buttons and LEDS and a single display:


Link to firmware and features: https://github.com/sixeight7/VController

Original post :

Here is a little research I am doing. I am thinking of building my own MIDI foot controller based on teensy or arduino.

For the Arduino, you can get a USB host shield, which effectively allows the Pedal to act like a host. Here is an example of a Teensy with a USB host: https://www.pjrc.com/teensy/td_libs_USBHostShield.html

But the GP-10 does not work with most USB hosts that do not have the right driver. Only this raspberry pi is an exception. But there is a chance it might work, because of the following info on compatible devices with the Arduino host library 2.0 found here:
https://github.com/YuuichiAkagawa/USBH_MIDI/wiki

Here the Roland UM-One is mentioned, which is a midi-to-usb cable which also needs a driver.

I was wondering if somebody on this forum has a USB host shield lying around and is able to test this. Or should I not waste any money on this and just get a raspberry pi to make the bridge...

Elantric

Everyone who has been down this path realizes the main ingredient for opening up the Boss GP-10 to third party MIDI I/O without a PC/Mac is a third party embedded CPU that works as a platform for linux JACK Audio  - like the $35 Raspberry Pi
http://jackaudio.org
https://www.vguitarforums.com/smf/index.php?topic=11998.0


Then you can add any  USB Class Compliant MIDI Foot controller  ( KMI Softstep, Line-6 FBV Shortboard MKII, Logidy UMI-3)  , or 5 pin MIDI Foot controller by using a generic USB<> MIDI cable.   


Other strategies are interesting for those who enjoy re-inventing the wheel

The slam dunk is build your Teensy based MIDI floor controller, then use a modified MonoPrice $17 USB<> MIDI cable to a RPI  - all located inside your Foot Controller metal Chassis. 

sixeight

Or maybe I should get one of these and build my footcontroller around the raspberry pi:
https://www.abelectronics.co.uk/products/3/Raspberry-Pi/18/IO-Pi

It will allow me to add loads of switches and LED's. Then I will have to program a python script to do the logic.

I will probaby just use the schematic of the board, and build my own, as the used components only cost a few euro's  :)

Elantric

If I had lots of software programming skills ( and spare time)  - Id buy the latest  / faster Raspberry PI II and budget time to use that as the main platform for DIY Boss GP-10 midi foot controller pedal or even hosting Linux DAW / Audio Processing.

http://www.adafruit.com/products/2358


A step up is another embedded CPU that works as a platform for linux JACK Audio
BeagleBone Black
http://beagleboard.org/black


http://www.quora.com/Which-one-is-better-Raspberry-Pi-2-or-BeagleBone-Black
http://beagleboard.org/blog/2015-02-05-raspberry-pi-2/
QuoteHow does BeagleBone Black compare to Raspberry Pi 2?
by Jason Kridner

As many of you might have heard, Raspberry Pi launched their next board, the Raspberry Pi 2. There have been noticeable differences in the primary processor performance from the original Pi to Pi 2. This has cause a lot of people to revisit the question of how the BeagleBone Black compares to Raspberry Pi.

The lineage of the two projects tells part of the story. The original BeagleBoard started with a mobile phone processor and the Pi started with a multimedia chip. The Pi 2 still seems to be very multimedia and GUI centric. The BeagleBone and BeagleBone Black (the Bones), however, started with an industrial control and communications chip, the TI Sitara AM335x. These starting points lean to suitability of each being better for certain types of tasks. The Bones are particularly suited to building small connected electronics projects with key advantages in several areas.

The Bones have better I/O capabilities with 7 channel 200kHz 12-bit ADC, 8 PWMs, 4 UARTs, quadrature encoder hardware and much more. This means you don't have to buy additional components to connect up many more sensors and actuators. An actuator could be something like an LED string, an LCD, a switch or a motor. For example, motor drive strength can be controlled using a PWM and the large number of PWM channels on the Bones make them better for driving motors, even if you need to add a circuit to give the drivers extra strength. Adding external PWM drivers would cost additional money and might incur overheads to update. If you care mostly about connecting electronics, then the Bones might be your best choice.

The Bones also have better real-time control with two 200MHz, 32-bit RISC programmable real-time units (PRUs) that are optimized for single-cycle latency to I/O pins, enabling peripheral emulation and predictable ultra-low latency hard real time control. This mix of Linux and a microcontroller on a single chip makes the Bones able to handle tasks you simply can't do with another Linux machine and external microcontroller (MCU). This is primarily due to the shared memory nature of the ARM and PRUs in the Bones. An example is BeagleLogic.net, which uses the PRUs to create a 14-channel 100MHz logic analyzer out of a Bone and is capable of streaming over a GB of samples using the ARM CPU to compress the data ahead of storing it. Another example is LEDscape, which is able to use Python scripts to drive hundreds of thousands of LEDs at costing around 50-to-1 less than what you could drive with a Pi, even with an external MCU. So, not only does adding an external MCU add cost, it just doesn't enable you to reproduce the capability.

The extensive I/O capabilities of the Bones have resulted in over 100 add-on cape boards to add touch displays, sensors including GPS, various network connections including WiFi and 3G, communication busses like CAN, motor control and power/battery management. These enable you to get a quick start on your hardware design and get to developing your software with a head start. While there are many add-on boards for the Pi, there just isn't enough I/O to get many interface tasks accomplished.

What will matter the most to many people is the fact that the Pi is still closed source hardware with limited documentation of the design and no ability to customize or manage the supply chain. This is only part of why many people consider the Bone more suited to higher educational and professional use. Quality manufacturing in the US is also frequently seen as a bonus by a developer community with many professional Linux consultants looking to help create real products. Open hardware derivatives like the Ninja Spheramid and BBP (BeagleBone 3D Printer) are just the start of new Bone-related designs popping up this year. This is possible due to the open hardware nature of the Bones and use of the Sitara devices that are available for nearly anyone to buy.

The Bone has been around since 2011 with approximately 20 books available for texts, reference and projects. The board boots from the mainline Linux kernel and has been used as reference in courses from Linux professionals for years. When BeagleBoard launched in 2008, we started with an ARMv7 core and became the platform most developers used to bring their product to the ARM architecture, which is why Ubuntu, Debian, Android and others have been running for years from the mainline developer repositories and have well-established references.

Getting started with electronics projects quickly is pretty well optimized on the Bones and on BeagleBone Black we introduced an on-board eMMC flash (4GB as of rev C) that is pre-programmed with a Debian Linux distribution, out-of-box tutorial, IDE and everything you need to start your development. Part of our motivation to include this was the existence of forgery SD cards. The on-board eMMC has clear specifications on performance and reliability which are a must for doing any serious work. The higher bandwidth interface gives a nice performance boost. Having the flash pre-programmed saves significant time and money by delivering an immediate out-of-box developer experience without needing to visit the store again and download huge disk images.

The Bone also includes features like USB client and boot from USB/serial direct from the in-chip ROM code. The USB client is a key component to the unique rapid quick-start out-of-box experience shipped with every Bone. Plug it in and the exposed flash drive has all the documentation and drivers needed to work with the board from any computer. The board serves up a web site with a tutorial for learning to do physical I/O and an IDE for doing all of your development, even a command-line, right with your browser. Native tools and libraries ship for Python, JavaScript, C/C++, Ruby, Perl and others, but Java and an endless supply of others are only an 'apt-get' away.

BeagleBoard.org continues to be the innovator and the open partner with BeagleBoard-X15 already in the hands of beta developers, though it hasn't yet been officially "announced". That is a bit of the differences in the way we do things. The device documentation is already public and patches for BeagleBoard-X15 have already been pushed on the Linux mailing lists. When BeagleBoard-X15 does launch, it will have many times the performance and interface possibilities than Pi 2.

The Pi 2 is a pretty cool little affordable desktop computer with a business model that makes it attractive for those who want to use it as-is. For those who want to make cool stuff with electronics that includes an embedded Linux computer, they need to be sure to check out what the Beagles have to offer.

sixeight

Just found a post from Frankster, who tried the Arduino USB host shield here:
https://www.vguitarforums.com/smf/index.php?topic=13743.0

It is definately not working, so I will have to go the raspberry pi way...

MusicOverGear

Yeah IDK about Arduino for this. The Pi is already known working, it has IO pins built in already, and you can program (e.g. Python - or anything you already know that will work on Raspbian) to build your logic. My original setup had a shutdown switch that ran off a pin and a shell script, but then someone on this forum informed us that you could set up the Pi so it didn't need a proper shutdown, so I yanked that. Point is, Pi is actually easier to use that Arduino IMHO - the IDE and the device are one and the same, and it's a really familiar, easy environment. FYI the Pi was designed for children, so it's within grasp even for dolts like me :)

FWIW when I got my GP-10 last summer I looked at making a DIY foot controller - using stomp box supply type components, which I already have from my traditional guitar hacking days. I ditched that idea real quick. Here's what I came up with for the easiest/most direct/overall best route:
old, cheap, Roland MIDI foot controller from eBay that fit the footprint I wanted
Pi B+
inline cable type generic USB MIDI interface
step-down converter to power the Pi from the foot controller's 9v input
USB cable for the GP-10

I permanently mounted it all inside the foot controller, which was mostly empty space inside, using the most obvious connections. I didn't really even preplan much - just put it all on my workbench with the resolve that it would leave my workbench as one self-contained monstrosity. It was quick and easy. I spent a LOT more time trying to explain what I did on this forum than the time I spent to hack it in the first place.

Lately I have been warming to the idea of putting my guitar in a Mono bag so I can carry it on my back (currently I carry guitar and pedalboard in a double gig bag so I can carry everything in one trip). If I do that I can carry a normal size/shape pedalboard in my LH. So if I went back to a proper pedalboard there is actually no need for hacking. The Pi could go below deck with the power mess, plus I could prototype and change things before hardwiring anything. If I were starting over today I might do that. For me the trick is finding a lightweight, TSA flight case pedalboard that has the right dimensions and features; if it doesn't have all that, there is not enough reason for a pedalboard - but that is whole 'nother area of frustration :)

HTH
Michael

sixeight

I had a quick look inside the GP-10 today. The two switches for patch up and down go straight into two wires that go from the bottom PCB to the top PCB. I could cut them and use them for something else, maybe CTL-3 and 4? With a little switch somewhere to connect them back to its original function. Just another thing to think about...

MusicOverGear

I ran them to a stereo 1/4" jack and feed that to two CC inputs on my MIDI foot controller. From there it's into the internal Pi and then back to the GP-10 via USB MIDI. I did it that way because I use the EXP2/CTL 3,4 input jack with an expression pedal for full-time global Foot Vol

FYI those switches are normally closed, which is opposite of most Roland stuff. It's no problem if you are using CC's on the GP-10 or in a DAW (I use MainStage) because you can invert the range, i.e. flip On/Off

BTW I hooked mine up from the wires on that connect from the other PCB - it's like a ribbon but indiv wires. I cut them in the middle, spliced onto one end and then heatshrinked over the other side. I did this way so that if I ever changed my mind I could very easily go back to original.

Also I painted over the arrows on the chassis :)

beatpete

Intersting topic. Would it be possible to reverse the  wires between the patch +/- and control 1/2? I use the control 1/2 WAY more than the patch buttons.

sixeight

Quote from: beatpete on June 03, 2015, 08:53:51 AM
Intersting topic. Would it be possible to reverse the  wires between the patch +/- and control 1/2? I use the control 1/2 WAY more than the patch buttons.

I haven't checked it, but I think you can. All the logic and processing are on the other board. You will have the LEDs still next to the upper switches though.

MusicOverGear

IIRC they have different control voltage or polarity or something. I opened it up to do that very thing at some point and then decided it was too big a project for a spur-of-the-moment hack (for me - but I'm real weak on electronics - for some it might be easy?). I think at the time I thought I would get around to it, but here it is a year later and the other way is already worn into muscle memory - too late for me now

Elantric

This might prove helpful for RPI GPIO programming






sixeight

OK, I am actually going to build one. Decided to go the teensy (arduino) way, because I think in the future I will use a mini PC/win tablet/Mac together with the GP-10. And you can't connect the GP-10 to two hosts at the same time.

Already ordered switches, 1202 LCD display and a Teensy LC. I will have to wait a couple of weeks as they are sent from Hong Kong and China.

I also made a quick design in Google Sketchup. The size is 40 cm by 10 cm, so it is just as wide as the GR-55. Height is 3 cm at the front and 4,5 cm at the back + 1 cm added by the switches

Now I have to find a way to actually build it. The casing is the hardest part (I think)

Elantric

QuoteDecided to go the teensy (arduino) way,



Surprised you decided against the RPI ( that we know works

And AFAIK - Jack Linux is not supported on Teensy

Good luck - you will be the first

sixeight

QuoteSurprised you decided against the RPI ( that we know works

Oops, need to clarify myself. To many ideas running parallel in my brain.
I will build the pedal with a teensy processor and then I have all options open to use a RPi or Pc/mac tablet/ mini pc to connect it to the GP-10.

I decided against using the RPi to control the pedals, Leds and lcd display of the diy foot controller (which would work using the GPIO connector), because it will not be possible to connect the gP-10 to the RPi pedal and another computer at the same time. I can connect the GP-10 and the teensy both to a RPi or computer through usb.

zaboomafoohere

Quote from: sixeight on June 07, 2015, 12:24:46 PM
OK, I am actually going to build one. Decided to go the teensy (arduino) way, because I think in the future I will use a mini PC/win tablet/Mac together with the GP-10. And you can't connect the GP-10 to two hosts at the same time.

Already ordered switches, 1202 LCD display and a Teensy LC. I will have to wait a couple of weeks as they are sent from Hong Kong and China.

I also made a quick design in Google Sketchup. The size is 40 cm by 10 cm, so it is just as wide as the GR-55. Height is 3 cm at the front and 4,5 cm at the back + 1 cm added by the switches

Now I have to find a way to actually build it. The casing is the hardest part (I think)

You can use one of the simpler arduinos, I used pro micro (I think that is what it is called). It has usb support, but not usbmidi. However that is not a big deal since you can do midi over serial/usb and then use ttymidi on the PI to connect it. pro micro is about three times cheaper than teensy.

For the case I actually used an old box for the fluorescent light that I had sitting in my garage. Just cut the length I needed.





sixeight

Quote from: zaboomafoohere on June 08, 2015, 12:17:22 PM
You can use one of the simpler arduinos, I used pro micro (I think that is what it is called). It has usb support, but not usbmidi. However that is not a big deal since you can do midi over serial/usb and then use ttymidi on the PI to connect it. pro micro is about three times cheaper than teensy.

For the case I actually used an old box for the fluorescent light that I had sitting in my garage. Just cut the length I needed.

I really like your pedal, zaboomafoohere. For my project I use the Teensy LC (low cost) which is only a little bit more expensive then the cheepest arduino, but has more ports, usb midi support and three serial busses. I could make a midi merger with this one.

But I am still in the preparation stage, as I am still waiting for the components. Now I am considering adding extra switches to the GP 10 or to the GR55. Maybe I can do both...

sixeight

Two more designs for the pedalboard. I am still working on the best possible footprint.

I also bought 12 of these three colour LED's that have serial transmission inside, so they are easy to wire up. You can just daisy chain them.

http://www.vanallesenmeer.nl/NeoPixel-LED-RGB-diffuus-5mm-through-hole-WS2811-van-Adafruit

sixeight

I have decided to make the pedal the same height and length as the GP-10, so it can stand next to it. Width will be 17 cm. A good friend of mine will make the casing.

The buttons are quite close, but if I read the buttons from top to bottom in the software, it should be no problem if I accidentally press two switches above eachother.

sixeight

Current state of the Midi controller project:
* usbmidi in/out: running
* serial midi in: running
* display: running
* 5 mm neopixel leds: running (2 of them)
* switch matrix: running

Still to to:
* waiting for enclosure to build it all in
* develop the actual logic of the pedal - pressing a button will send the correct midi message and the correct led will light up in the right colour.
* and hopefully I will be able to deal with sysex, so I can activate the tuners on all my devices with one button and do all sorts of other exciting stuff, like having dedicated buttons for amp solo, tap delay, etc.

whippinpost91850

Sounds very interesting. Looking forward to further updates and maybe some pictures

CodeSmart

But I got more gear than I need...and I like it!

sixeight

Things are coming together on my little project.

The enclosure is ready. Tomorrow I'll drill some additional holes and then it is time to spray paint it.

And today I got midi sysex working from and to the GP-10. I can start and stop the tuner and I can read the patch names from the GP-10 on my display.

Tonight it is time to practise some songs for someones wedding... Also great fun.

Elantric

Sixlight - not trying to overstep, but is it possible  top obtain your   teensy code and plans for this project?

Or do you need help for a limited production run?

sixeight

Quote from: Elantric on July 02, 2015, 10:09:16 AM
Sixlight - not trying to overstep, but is it possible  top obtain your   teensy code and plans for this project?

Or do you need help for a limited production run?

I will publish my code when it's all working. Right now I am at about 60%, I think. It depends a little on all the other wild ideas I might get whilst building/programming this.
I will ask the guy who built my enclosure to provide drawings. He even has a design for 3D printing, because they wanted to test a new 3D printer at the company where he works. But because that printer was not online, he decided to build it out of metal.

I will not do a production run, because it is too much work. It's just a fun holiday project. As soon as I sell them, I will have to do after sales service and all sorts of other stuff I do not have time for once the holiday is over.