[Solved] USB Slave Shield For Mega

Part of my sonar project requires that I send data coming from the boat by nRF2401 to a shore station Mega2560 in 32 byte packets and transferring them immediately to a laptop via USB. The laptop will be running a program to analyze and display the data written in Lazarus, visual Pascal. I already know how to talk to USB HID devices like joysticks. There is a Lazarus component just for this purpose. The shields I find are host type where I need something more like a slave but with two way capability. The laptop sends commands to the shore station by USB and then to the boat by RF. The boat then sends back the data by the same path in the other direction. I have the RF part running but now need something that's fast between the shore station Mega and the laptop. Serial at 250Kbps is too slow. Is there a trick to run it faster?

Can someone suggest a shield or device that will perform this task that has an Arduino library available? Would the Max chip on host shields operate as an HID slave?

The shore station Mega has to talk to the nRF2401 by SPI as well as the USB device. I'm not sure just how this is going to happen as each device wants to use the SPI driver in an entirely different fashion. Is there another high speed device that uses something other than SPI?

PS
I have several FTDI Friend USB/RS232 interface cards that I use to upload to Pro Minis. How fast do you think it can be pushed with the Mega? Around 1Mbps would solve my problem.

The problem is solved. After some more searching, I found reference to higher serial speeds with FTDI adapters. Since I have one of the boards, I wrote a simple test sketch shown below that sends a packet of 32 2's and a CR/LF at 2Mbps. The waveform on the scope looks very good with nice square corners. The data can be verified by reading the bit pattern then comparing it with an ASCII chart. The final test was to connect the FTDI to another USB port and watch the data with the Putty terminal program set to the same speed. It successfully shows lines of 2's of the right quantity.

The project is now approaching the build stage as most of the electronic and software pieces are tested. With the RF link and serial link both operating at 2Mbps, I can get 4096 bytes of sonar data from a four point phased array sonar to the laptop, display it in 4D, and refresh at 20Hz.

Thank you Arduino for a marvelous product.

// Test the serial port 1 speed on a Mega2560 at 2Mbps
// SerialSpeedTest.ino,  12/23/2015

#define SERIAL_RATE     2000000
#define CYCLE_TIME      10

char Message[] = "22222222222222222222222222222222\n\r"; // 32 2's and CRLF

void setup() 
{
    Serial1.begin( SERIAL_RATE );
}

void loop() 
{
    for( uint8_t i = 0; i < sizeof( Message ); i++ )
    {
        Serial1.write( Message, sizeof( Message ) );
    }
    delay( CYCLE_TIME );
}