-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fender Rumble LT 25 support? #7
Comments
I don't have any experience with the amp unfortunately. Is there a software like the former FUSE to control it? |
Now, I have the device. lsusb output:
dmesg:
Let me know If there are any other output, that can be useful. I have installed plug from AUR, version 1.4.2-1, it does not recognize the amp:
Fender Tone shoud be used, but I still haven't got any time to test it via wine. I will report if I had any success. edit: dmesg output added |
Even though this version is old, the USB PID isn't implemented. The main question is: Does this type of amp use the same protocol as the Mustangs? |
I don't know. I would use the same (or as close as possible) , because it is more expensive to develop and maintain a completely different one, just because it is a bass amp and not a guitar amp. Do you have any idea how could I find out? |
No, everything is reverse engineered and without any docs unfortunately. I don't assume there's one for newer generations :-/ .
Yea, wouldn't make sense to me too.
Do these amp share any settings like amps with the mustang series? If so, maybe we can use the current configurations and try. Or, we send an init sequence and see what we get back. The best way would be to dump the communication of the official software though. |
Hi, I own the Mustang LT 25 and have used the Rumble LT 25. They both have the exact same user-interfaces - the only difference seems to the the amps & stompboxes themselves. |
So it could work to dump the values. |
I have a Mustang LT25. I'd be happy to help get this supported!. How would I go about getting a communications dump? I have access to a Windows machine. |
You can use Wireshark and record the communication of the official software with the amp. What we can try: Add the USB VID / PID mentioned above and see how far we get. Update: I have prepared a branch: |
Alright I'm up and running. On Windows and I have Fender Tone LT Desktop version 1.5.0.10741 installed and have successfully captured packets with it with Wireshark. Able to see what looks like volume adjustments and such when I make them on either side. I'm new to reverse engineering a binary protocol, so I might need a little help getting started. I didn't quite follow what you were saying. It sounds like you want me to checkout that branch then build and run the app and just see if it works with those changes? Also just to clarify, I have the Mustang LT25 and not the Rumble LT25. Let me know if you'd like me to send you some capture data from Wireshark. I'm also happy to jump on Discord, IRC, etc. if that would help! |
Thanks for pointing that out, didn't know there ware different types of LT25.
Yes (if you have some minutes spare). But before this I have to change PID. I assume the VID is same, but can you post the Mustang LT25s PID?
The first thing to figure out: Does the device use the same protocol as the others? So the initial two packets send to the amp are most interesting I guess (these initialize the communication). Can you attach the first two packets (or the wireshark dump)? |
Nvm, will use Will get some Wireshark data shortly. Would it be safe to attach a dump here or could there be sensitive data in it? |
Here's what I believe you're looking for for the VID/PID:
Let me know what I should do about the dump file and if it would be safe to just attach it here. Happy to email it to you or by other means. |
If it's only the usb communication with the amp, there's no sensitive data in it. Just make sure you filter right.
Exactly! 👍 I have updated the branch with this pid. |
Ok well here is the first packet:
It's info is "GET DESCRIPTOR Request DEVICE". And I guess I'll paste the second packet here that was the "Response" while I'm at it:
Let me know if this looks right. |
Thanks! From a first look it looks like the device uses a different protocol format. The other Mustangs use 64 byte (16 byte header + 48 byte payload) and the initial first two packets (send to the amp) use other values. So testing the branch mentioned above wont help much :-( Are request / response constant between connections or are there values that change? |
Sorry, not sure I understand your question or would know what to look for. Here's my Let me know what else I can do to help. |
Thanks! Regarding my question: If you connect your amp multiple times, are the bytes always as listed above or is there a difference? Update:The amp seems to use a different (but similar?) format. |
Sorry for the very long delay! Hadn't booted up Windows in a while. I ran a capture again and these were the results: Does it seem like there's a difference compared to the first? |
No problem. Thanks, I'll have a look at it. UpdateThe first packet sent uses some different bytes (unlike normal mustang devices do!?) |
I just got a Mustang LT25, and took a quick look in Wireshark. It looks like the Fender Tone application communicates with the amp over HID messages. I've only had a quick look, but at startup, the amp sends all the current presets as JSON. Selecting a preset in the application sends a message that starts with an integer corresponding to the preset bank to switch to. I haven't had a chance to really dive into it, but I hope to have some time over the next month. I'll start putting together some documentation of the protocol, and share the link here once I get started. |
I've got some good news and bad news. Bad news is that the protocol seems to be different enough from the previous amp versions that it will likely require a complete rewrite of the code to handle communications with the amp (I have only scanned the current code, not familiar enough with it to say for sure). Good news is that Fender used protobuf for their new amps, and using this tool on the Fender Tone LT executable file, I was able to pull the entire protobuf spec! Basically, the Fender Tone software and the amplifier communicate over USB HID data messages, and the data is sent as protobuf, with json embedded in the protobuf messages for the preset settings. I'm in the process of documenting it and putting together a library and a simple dotnet core application to allow for importing and exporting the presets to files. I'll be expanding that to a more powerful amp controller after I finish the initial library and documentation. I haven't done much C/C++ programming (other than Arduino) in a very long time, and I'm more comfortable in C#, but everything will be dotnet core so that it will be able to run on Linux. Of course I will be sharing all the documentation I come up with so anyone else can implement it as they would like. |
I have documented the protocol used by the amp, and created a rough implementation of a library in dotnet. I haven't had a chance to test this on linux yet, but it uses HidSharp, which is cross platform, and that's the only thing that reaches outside of the code itself. There is literally no user code at the moment, but my next step will be to create a UI. I'm still trying to figure out which cross-platform UI in dotnet will work best. I have to find a raspberry pi (I have a billion of them, and I don't know where they all are - even some of the ones that are running!), and try some of the toolkits out (but if anyone has any suggestions). If anyone is interested in porting this to another language, it's actually a pretty simple protocol. All the "messages" sent between the computer and amp are protobuf, and all the protobuf schema documents were extracted from the Fender Tone executable. From there it was just generating the stubs for my programming language with Take a look. I know that there are probably some major issues with the design; I was mostly focused on having something "work" and getting it documented. |
I do know this project is for the Mustang amps, but I was wondering if the bass amp support was ever considered.
At the moment I still do not own the bass amp, but I wanted to check whether anyone using it with Linux, when I found this project.
I know it is wishful thinking, but I hope that it may have the same or very similar hardware in respect of the connectivity and I could use it under Linux.
Thanks in advance,
The text was updated successfully, but these errors were encountered: