It's definitely going to be tight, especially with the default 2K DFU bootloader. HalfKay (http://fourwalledcubicle.com/blog/archives/235) is appealing, but it's closed source. So, there's currently no bootloader, ISP only.
The ATMEGA32-U2 is pin compatible, cheaper and has 32K/1K, so I'll probably end up with that.
AVR Memory Usage
----------------
Device: at90usb162
Program: 14110 bytes (86.1% Full)
(.text + .data + .bootloader)
Data: 418 bytes (81.6% Full)
(.data + .bss + .noinit)
That's with USB-CDC serial, USB-OpenOCD-JTAG, USB-Mass-Storage, I2C, SPI and a flashing LED.
None of the code is actually from Bus Pirate, I implemented the command syntax from the manuals, so it's not 100% identical.
The basics seem to work, here's a couple of sample scripts that I can cat > /dev/ttyACM0:
# 24LC16B, I2C EEPROM
i2c
# Write 0x10,0x20,0x30,0x40 from address 0
[0xA6 0 0 0x10 0x20 0x30 0x40]
# Set read pointer to 0
[0xA6 0 0]
# Read 4 bytes
[0xA7 r:4]
# MCP23S17, SPI 16 pin expander
spi
# Initialise
[0x40 0x0A 0x28] # WR_REG(0) IOCONA SEQ_OFF|HAEN
# Turn on GPIOA-0
[0x40 0x00 0x00] # WR_REG(0) GPIOADIR ALL_OUTPUT
[0x40 0x12 0x01] # WR_REG(0) GPIOA GPIOA-0
# Turn off GPIOA-0
[0x40 0x00 0x00] # WR_REG(0) GPIOADIR ALL_OUTPUT
[0x40 0x12 0x00] # WR_REG(0) GPIOA GPIOA-0
# Read GPIOA
[0x40 0x00 0xFF] # WR_REG(0) GPIOADIR ALL_INPUT
[0x41 0x12 r] # RD_REG(0) GPIOA read
It's currently running on a custom board (http://blog.hodgepig.org/articles/000006-flatworm/index.html) which has been bodged to run at 3v3. I'll make some more details and firmware available once I sort out the pullups and power supplies.
All of the features (especially USB) are ifdef'd. So, it should run on a regular Arduino or ATTINY without too much work. Though, it's worth noting that the Arduino doesn't have any UART flow control.