-
Notifications
You must be signed in to change notification settings - Fork 20
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 Bronco 40 support? #20
Comments
I just tried to connect with usb debugging enabled. On plugging in the amp there is
Then, when trying to connect I get
|
The amp IDs listed above aren't known to plug yet, but Can you dump the initial packets between PC and device? If not, I can provide you a test version which does it. |
I am sorry but I don't know how to log USB traffic except for what I have posted above. If you could provide me with a test version I will happily make some logs. I may also be able to reactivate an old Windows 7 installation with FUSE installed but I don't know how to create any logs on Windows. |
The Amp packets are those with a |
Ok, thank you very much. I will look into this in a bit. |
Ok, here is what I found. First try: Second try, different virtual amp selection: Third try, different USB port, different virtual amp selection |
I have tried each of the 24 presets because they result in different bytes being sent. These are organized in 3 banks: These are the 24 lines of data I received:
|
The packets seem similar to the mustang ones. I've taken your first example and decoded it using it's format (some values only):
Could these match your settings? |
Yes, this looks plausible, I think for the first try I used the 3rd model in the 3rd bank which would be #19. BTW: The amps of the Bronco 40 are called:
|
The 59 Bassman is included with id 0x64. Could you select that one, start Plug and see if you get past the invalid amp id error? We have to figure out the id's of each amp model. Selecting on of those prior to starting Plug should yield a |
Sadly, the Bronco's 59 Bassman preset does not seem to work. Strangely, I get different IDs without changing the preset. The first one (Rumble) was reported as 0, 71, 171, 238, 244, 245, 251, 252 and 255 on different attempts. Now, after a few tries I cannot get anything other than 0. I tried different cables and different USB ports and power cycling the amp. I will try rebooting the computer. |
Error ids vary wildly even after reboot or closing and reopening Plug. |
I read your documentation and the Bronco's amp name packets (0x1c 0x01 0x04) seem to differ from that as the Bronco sends the slot number as the 5th byte, not the 4th which is always 0. It does however send the amp names in bytes 16 - 32. I could decode them from a connection log, e.g. the factory presets were sent as
Also, after the mysterious device with address 0x0a there is another packet for a device 0x0d containing only zeroes. After that the following packets seem to be the same as with Mustangs with the confirmation and effects settings. |
Did your test with the log attached fail with a 0 too? The amp packet seems to use model 0x9a there.
Could it be that the slot is not one, but two bytes? |
I didn't remember so I redid the test. I selected the "Bassman '59" factory preset (device id 0x01) and the log is about the same (except for the selected amp), see attached log.
Yes. I guess Fender wanted to accomodate more than 256 devices and extended the device id to a little endian Word. |
I do get a amp model id of 0x99, did you get an error containing that id? |
No, the error message showed id 0. |
Could it be, that the amp uses a different order of packets, thus leading to a non-amp packet being parsed as an amp packet? The current implementation isn't that clever and does quite some assumptions regarding packet order. |
I have added a commit to investigate this. It'll print the actual bytes considered as amp packet and the value at the amp id position. Let's see what is decoded on the bronco! :-) |
Here are three logfiles.
Does that help? Do you have similar logs of a Mustang amp? |
Sorry, I made a mistake – logging after parsing doesn't make much sense if the former fails 🤦♂️. Could you do the test again with the updated commit? One is enough. |
Sure. Here it is: bronco_04.log |
Here it (propably incorrectly) identified amp id 28: bronco_05.log |
As expected there's garbage decoded instead of amp data … It could be that Broncos transmit a different number of packets. At least we have found the root of the issue … |
I already mentioned that the Bronco does not send its id on the 4th position of the amp name packets but at the 5th position, e.g. instead of 1c 01 04 02 00 00 00 00 00 00 00 00 00 00 00 00 52 6f 63 6b 69 6e 27 20 50 65 67 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Is ist possible that this confuses Plug when it later tries to reference that amp id (which is always 00 on the Bronco). |
The slot isn't involved yet. The value would be wrong, but the amp packet itself is complete garbage:
Plug assumes a fixed number of packets in a given order. A different number of eg. presets on the amp could break this already. The original implementation is sometimes still mysterious … We can narrow it down a bit tough. I'm going to update the debug code to give some more insight of the data loaded. |
If it helps I could try to log a complete connection with Fender Fuse and Wireshark. |
While Mustangs transmit presets with two packets each (first starts with However, the amp packet seems at the right place but is decoded wrong later!? |
Branch updated: It'll print the number of presets received (should be 48) and the 7 packets, that contain the current settings. Expected are a |
Thank you. Two logs, both resulted in
And another with a result in amp data:
|
I managed to capture a connection between the Bronco and the Fender Fuse software using Wireshark :-). I hope this will be helpful in unterstanding what is going on. Here is an export of the raw data transmitted. I removed the first packets which I guess are associated with the Bronco's USB audio interface and the packets from the host to the Bronco since these seem to be just acknowledgement packets. |
🤦 That's a problem. It should be 48 on your device (2x number of presets). Update: For quick testing there's a fixed number now, could you give the newest commit a try please?
Interesting, the packets use some different values than those received over plug!? |
Thank you. But still no luck (Invalid amp id: 189). |
But this time the correct amp packet is parsed. An invalid amp id is normal here as it's not mapped yet. 189 = 0xbd looks plausible. Do subsequent tests with the same amp yield the same value? The first thing to fix is the wrong number of presets for Bronco. |
Mostly yes. In my tests I sometimes got a different error on the first try but subsequent tries were consistent. Here are the IDs for the first 8 presets (amber bank, factory presets):
The ids repeat in the two other banks (green, red) because I left the amp models the same in the user presets and only changed the settings and effects. On the second preset I did not get an "Invalid Amp" error but rather an "Invalid Cabinet" error (id 13). The controls of Plug don't seem to do anything, however. Here is the logfile of this connection: In the preset 10 (2nd in the green bank) I even got a connection without any error! However, trying to set an amp setting resulted in an Input/Output error. Here is the log for that: |
Yes, Bronco cabinets are likely not complete mapped yet.
UI needs some additional code too. I have added some more code get some steps further:
Everything far from complete, but at least some steps. |
Awesome, I will give it a try. In the meantime, here are some ids of the cabinet simulations the bronco uses. I took them from the FUSE backup files, there they are called "ControlIndex 17". Maybe these are the same ids that are received from/sent to the Bronco. I listed them in the order they appear in the FUSE cabinet selection.
|
Next, I will try to find out the ids of the effects of the Bronco.
|
I can confirm. As long as there are no invalid cab ids the connections are successful and show the correct id in the debug output.
When I connect with an amp model active other than the 59 Bassman the Amplifier dropdown text is just empty. When I open the dropdown it shows the Mustang amp names (Fender '57 Deluxe, Fender '59 Bassman, Fender '57 Champ, ...)
This seems to work. I changed the Treble and Bass settings in Plug and verified in FUSE that they have been indeed saved to the preset in the amp. Great progress. Even better, all other amp settings like tone control, USB gain, noise gate settings (even custom ones) are read and saved correctly. Also, all effects settings were read and saved correctly with the exception of the four overdrive effects that are still unknown to Plug. I added the ids of these effects to the table above. This looks very close to a fully working version. |
These are good news! 😄 |
The current architecture makes it quite challenging to support new devices unfortunately. And there's no proper way to do it right now :-/. |
Sad to hear. Maybe one day someone will have the motivation to do a refactoring or rewrite. Thank you very much for looking into this anyways. |
Hello offa,
I have a Fender Bronco 40 amp which from what I understand is very similar to the Mustang series, just with different modeling presets for bass. (Fender Bronco 40 Manual)
It used to be controllable with the Fuse Silverlight-app from Fender.
I managed to build Plug v1.4.3 and the connection fails with the error message
ERROR: Invalid amp id: 239
This error changes depending on the position of the amp selection knob. It has 8 positions and for my setup it produces the ids 171, 0, 0, 244, 239, 219, 219, 219.
Here is the output from dmesg:
lsusb:
Bus 001 Device 026: ID 1ed8:000a FMIC Bronco Amplifier
lsusb -v:
Sadly, I lack the C++ skills to look into this but if the Bronco is as similar to the Mustang as I suspect then making Plug compatible with the Bronco should be doable. If someone is interested I will try to help as good as I can.
The text was updated successfully, but these errors were encountered: