<div dir="ltr"><div dir="ltr"><div>Hello!<br><br></div>I&#39;ve been using CHIRP for a 
while to program my QYT KT8900D, and recently I became interested in 
adding support for my handheld radio, the AnyTone AT-D878UV PLUS (and, 
by extent, the regular version of it). I set up a dev environment on 
Ubuntu 20.04, used USBPcap to capture its packet data from a Read using 
its official CPS from Windows, as the Add a Radio guide suggests, and 
got that to Ubuntu to analyze with WireShark to start working on the 
driver. I managed to figure out that it has a baud rate of 9600, and 
which device it is from the .pcap file, also saw that it does a lot of 
URB_BULK in and out requests, and also figured out there are actually 2 devices in address 1.2 (where my radio is), 1.2.1 and 1.2.3. The communication works like this, if my order is correct:<br><br></div><div>host to 1.2.1: URB_BULK in, packet data length is 0<br></div><div>host to 1.2.3: URB_BULK out, packet data length is 6<br></div><div>1.2.3 to host: URB_BULK out, packet data length is 0<br></div><div>1.2.1 to host: URB_BULK in, packet data length is 24<br><br></div><div>Repeat multiple times (my radio has a lot of entries on it. Is it recommended that I try with 1 entry on it, maybe, to get a shorter pcap file that also shows me how it&#39;s done per entry? Or doesn&#39;t it matter?)<br></div><div dir="ltr"><br>But I also need some help. How can I figure out the 
memory map? How do I see the actual data sent in the packet and not just its header? How do I check how the radio returns stuff like the version?
 Also, what are these URB_BULK requests? Does it mean that it just dumps
 its memory without some specific protocol? I really need help here, I&#39;m
 very new to this (Haven&#39;t worked on this for more than a couple hours, 
actually, and this is my first time reverse engineering anything and 
using WireShark or USBPcap, and I have a lot of questions). Thank you for your help!</div></div>