Rode Podcaster on Linux
From MassynWiki
SUCCESS! On November 22nd at 21:18 Sydney time, I've managed to record the first audio with the Rode Podcaster microphone under the Linux platform. This was done with the major assistance from Antonio Ospite.
What follows on this page is the data we've collected on Linux to make this happen. A more concise Recording with the Podcaster on Linux page will come shortly... Recording with the Rode Podcaster on Linux
Contents |
Contributors
Links
Still to do
- How to install ALSA
- How to configure ALSA for use in Audacity / Jokosher, etc.
- The Vista firmware for the Podcaster is required for Linux support - unless you have one with a serial number greater than 7729 - those mics already have the update. --AlanR 06:28, 1 January 2009 (MST)
Done
-
Is a reboot required after plugging in the Podcaster?Just plug it in... -
Can this be done without root?No need to be root -
Does it work with OSS?Yes
USB Snoop
If you want to do some USB sniffing on windows you can use SniffUSB: http://www.pcausa.com/Utilities/UsbSnoop/default.htm
I'd use it this way:
1. Plug the PODCASTER 2. Install the filter for the Podcaster Device (from the SniffUSB UI) 3. unplug the Podcaster 4. Delete the log and resume the log capture (SniffUSB UI) 5. plug the podcaster again, wait some time 6. View the log and save it (SniffUSB UI)
USB Snoop output http://www.massyn.net/rode/snoop.txt
We could try to replay the log with Usbreplay: http://mcentral.de/wiki/index.php5/Usbreplay
Linux command output
dmesg
[216541.440661] usb 1-1.3: new full speed USB device using uhci_hcd and address 5 [216541.905616] usb 1-1.3: configuration #1 chosen from 1 choice [216541.930323] ALSA /build/buildd/linux-ubuntu-modules-2.6.24-2.6.24/debian/build/build-server/sound/alsa-driver/usb/usbaudio.c:1296: 5:1:1: cannot get freq at ep 0x1 [216541.940301] ALSA /build/buildd/linux-ubuntu-modules-2.6.24-2.6.24/debian/build/build-server/sound/alsa-driver/usb/usbaudio.c:1296: 5:2:1: cannot get freq at ep 0x82 [216542.620462] usbcore: registered new interface driver hiddev [216542.642014] input: RODE MICROPHONESj Rode Podcaster as /devices/pci0000:00/0000:00:1f.2/usb1/1-1/1-1.3/1-1.3:1.3/input/input4 [216542.678225] input,hidraw0: USB HID v1.00 Device [RODE MICROPHONESj Rode Podcaster] on usb-0000:00:1f.2-1.3 [216542.678297] usbcore: registered new interface driver usbhid [216542.678307] /build/buildd/linux-2.6.24/drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver
lsusb
The Vendor and Product ids have not been registerd yet, add them to the linux usb ids database.
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 003: ID 19f7:0001 Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
lsusb -d 19f7:0001 -v
With firmware 0.01 we get:
Bus 001 Device 005: ID 19f7:0001
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x19f7
idProduct 0x0001
bcdDevice 0.01
iManufacturer 1 RODE MICROPHONESj
iProduct 2 Rode Podcaster
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 312
bNumInterfaces 4
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x60
(Missing must-be-set bit!)
Self Powered
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 1 Control Device
bInterfaceProtocol 0
iInterface 0
AudioControl Interface Descriptor:
bLength 10
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdADC 1.00
wTotalLength 141
bInCollection 2
baInterfaceNr( 0) 1
baInterfaceNr( 1) 2
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 5
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bNrChannels 2
wChannelConfig 0x0003
Left Front (L)
Right Front (R)
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 1
wTerminalType 0x0201 Microphone
bAssocTerminal 9
bNrChannels 1
wChannelConfig 0x0001
Left Front (L)
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 2
bSourceID 1
bControlSize 1
bmaControls( 0) 0x03
Mute
Volume
bmaControls( 1) 0x00
iFeature 0
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 3
wTerminalType 0x0603 Line Connector
bAssocTerminal 0
bNrChannels 2
wChannelConfig 0x0003
Left Front (L)
Right Front (R)
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 10
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 4
bSourceID 3
bControlSize 1
bmaControls( 0) 0x01
Mute
bmaControls( 1) 0x02
Volume
bmaControls( 2) 0x02
Volume
iFeature 0
AudioControl Interface Descriptor:
bLength 15
bDescriptorType 36
bDescriptorSubtype 4 (MIXER_UNIT)
bUnitID 6
bNrInPins 3
baSourceID( 0) 2
baSourceID( 1) 4
baSourceID( 2) 5
bNrChannels 2
wChannelConfig 0x0003
Left Front (L)
Right Front (R)
iChannelNames 0
bmControls 0x00
iMixer 0
junk at descriptor end: 00
AudioControl Interface Descriptor:
bLength 10
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 7
bSourceID 6
bControlSize 1
bmaControls( 0) 0x15
Mute
Bass
Treble
bmaControls( 1) 0x02
Volume
bmaControls( 2) 0x02
Volume
iFeature 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 8
wTerminalType 0x0301 Speaker
bAssocTerminal 0
bSourceID 7
iTerminal 0
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 9
wTerminalType 0x0201 Microphone
bAssocTerminal 1
bNrChannels 1
wChannelConfig 0x0001
Left Front (L)
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 10
bSourceID 9
bControlSize 1
bmaControls( 0) 0x03
Mute
Volume
bmaControls( 1) 0x00
iFeature 0
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 4 (MIXER_UNIT)
bUnitID 11
bNrInPins 1
baSourceID( 0) 10
bNrChannels 1
wChannelConfig 0x0001
Left Front (L)
iChannelNames 0
bmControls 0x00
iMixer 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 12
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bSourceID 11
iTerminal 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
AudioStreaming Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 5
bDelay 1 frames
wFormatTag 1 PCM
AudioStreaming Interface Descriptor:
bLength 23
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bNrChannels 2
bSubframeSize 3
bBitResolution 24
bSamFreqType 5 Discrete
tSamFreq[ 0] 8000
tSamFreq[ 1] 11025
tSamFreq[ 2] 22050
tSamFreq[ 3] 44100
tSamFreq[ 4] 48000
Endpoint Descriptor:
bLength 9
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 9
Transfer Type Isochronous
Synch Type Adaptive
Usage Type Data
wMaxPacketSize 0x0120 1x 288 bytes
bInterval 1
bRefresh 0
bSynchAddress 0
AudioControl Endpoint Descriptor:
bLength 7
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x01
Sampling Frequency
bLockDelayUnits 0 Undefined
wLockDelay 0 Undefined
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
AudioStreaming Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 12
bDelay 1 frames
wFormatTag 1 PCM
AudioStreaming Interface Descriptor:
bLength 23
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bNrChannels 1
bSubframeSize 3
bBitResolution 24
bSamFreqType 5 Discrete
tSamFreq[ 0] 8000
tSamFreq[ 1] 11025
tSamFreq[ 2] 22050
tSamFreq[ 3] 44100
tSamFreq[ 4] 48000
Endpoint Descriptor:
bLength 9
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 13
Transfer Type Isochronous
Synch Type Synchronous
Usage Type Data
wMaxPacketSize 0x0120 1x 288 bytes
bInterval 1
bRefresh 0
bSynchAddress 0
AudioControl Endpoint Descriptor:
bLength 7
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x01
Sampling Frequency
bLockDelayUnits 0 Undefined
wLockDelay 0 Undefined
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 No Subclass
bInterfaceProtocol 0 None
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.00
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 42
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 16
Device Status: 0x0001
Self Powered
With firmware 0.09 we have:
Bus 001 Device 005: ID 19f7:0001
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x19f7
idProduct 0x0001
bcdDevice 0.09
iManufacturer 1 RODE MICROPHONESj
iProduct 2 Rode Podcaster
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 278
bNumInterfaces 4
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x60
(Missing must-be-set bit!)
Self Powered
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 1 Control Device
bInterfaceProtocol 0
iInterface 0
AudioControl Interface Descriptor:
bLength 10
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdADC 1.00
wTotalLength 108
bInCollection 2
baInterfaceNr( 0) 1
baInterfaceNr( 1) 2
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 5
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bNrChannels 2
wChannelConfig 0x0003
Left Front (L)
Right Front (R)
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 1
wTerminalType 0x0201 Microphone
bAssocTerminal 9
bNrChannels 1
wChannelConfig 0x0001
Left Front (L)
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 2
bSourceID 1
bControlSize 1
bmaControls( 0) 0x01
Mute
bmaControls( 1) 0x00
iFeature 0
AudioControl Interface Descriptor:
bLength 13
bDescriptorType 36
bDescriptorSubtype 4 (MIXER_UNIT)
bUnitID 6
bNrInPins 2
baSourceID( 0) 2
baSourceID( 1) 5
bNrChannels 2
wChannelConfig 0x0003
Left Front (L)
Right Front (R)
iChannelNames 0
bmControls 0x00
iMixer 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 8
wTerminalType 0x0301 Speaker
bAssocTerminal 0
bSourceID 6
iTerminal 0
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 9
wTerminalType 0x0201 Microphone
bAssocTerminal 1
bNrChannels 1
wChannelConfig 0x0001
Left Front (L)
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 10
bSourceID 9
bControlSize 1
bmaControls( 0) 0x03
Mute
Volume
bmaControls( 1) 0x00
iFeature 0
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 4 (MIXER_UNIT)
bUnitID 11
bNrInPins 1
baSourceID( 0) 10
bNrChannels 1
wChannelConfig 0x0001
Left Front (L)
iChannelNames 0
bmControls 0x00
iMixer 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 12
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bSourceID 11
iTerminal 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
AudioStreaming Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 5
bDelay 1 frames
wFormatTag 1 PCM
AudioStreaming Interface Descriptor:
bLength 23
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bNrChannels 2
bSubframeSize 3
bBitResolution 24
bSamFreqType 5 Discrete
tSamFreq[ 0] 8000
tSamFreq[ 1] 11025
tSamFreq[ 2] 22050
tSamFreq[ 3] 44100
tSamFreq[ 4] 48000
Endpoint Descriptor:
bLength 9
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 9
Transfer Type Isochronous
Synch Type Adaptive
Usage Type Data
wMaxPacketSize 0x0120 1x 288 bytes
bInterval 1
bRefresh 0
bSynchAddress 0
AudioControl Endpoint Descriptor:
bLength 7
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x01
Sampling Frequency
bLockDelayUnits 0 Undefined
wLockDelay 0 Undefined
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
AudioStreaming Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 12
bDelay 1 frames
wFormatTag 1 PCM
AudioStreaming Interface Descriptor:
bLength 23
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bNrChannels 1
bSubframeSize 3
bBitResolution 24
bSamFreqType 5 Discrete
tSamFreq[ 0] 8000
tSamFreq[ 1] 11025
tSamFreq[ 2] 22050
tSamFreq[ 3] 44100
tSamFreq[ 4] 48000
Endpoint Descriptor:
bLength 9
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 13
Transfer Type Isochronous
Synch Type Synchronous
Usage Type Data
wMaxPacketSize 0x0120 1x 288 bytes
bInterval 1
bRefresh 0
bSynchAddress 0
AudioControl Endpoint Descriptor:
bLength 7
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x01
Sampling Frequency
bLockDelayUnits 0 Undefined
wLockDelay 0 Undefined
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 No Subclass
bInterfaceProtocol 0 None
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.00
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 42
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 16
Device Status: 0x0001
Self Powered
The difference between the two descriptors are:
--- lsusb_0.01.txt
+++ lsusb_0.09.txt
@@ -10,7 +10,7 @@
bMaxPacketSize0 8
idVendor 0x19f7
idProduct 0x0001
- bcdDevice 0.01
+ bcdDevice 0.09
iManufacturer 1 RODE MICROPHONESj
iProduct 2 Rode Podcaster
iSerial 0
@@ -18,7 +18,7 @@
Configuration Descriptor:
bLength 9
bDescriptorType 2
- wTotalLength 312
+ wTotalLength 278
bNumInterfaces 4
bConfigurationValue 1
iConfiguration 0
@@ -42,7 +42,7 @@
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdADC 1.00
- wTotalLength 141
+ wTotalLength 108
bInCollection 2
baInterfaceNr( 0) 1
baInterfaceNr( 1) 2
@@ -78,47 +78,18 @@
bUnitID 2
bSourceID 1
bControlSize 1
- bmaControls( 0) 0x03
- Mute
- Volume
- bmaControls( 1) 0x00
- iFeature 0
- AudioControl Interface Descriptor:
- bLength 12
- bDescriptorType 36
- bDescriptorSubtype 2 (INPUT_TERMINAL)
- bTerminalID 3
- wTerminalType 0x0603 Line Connector
- bAssocTerminal 0
- bNrChannels 2
- wChannelConfig 0x0003
- Left Front (L)
- Right Front (R)
- iChannelNames 0
- iTerminal 0
- AudioControl Interface Descriptor:
- bLength 10
- bDescriptorType 36
- bDescriptorSubtype 6 (FEATURE_UNIT)
- bUnitID 4
- bSourceID 3
- bControlSize 1
bmaControls( 0) 0x01
Mute
- bmaControls( 1) 0x02
- Volume
- bmaControls( 2) 0x02
- Volume
+ bmaControls( 1) 0x00
iFeature 0
AudioControl Interface Descriptor:
- bLength 15
+ bLength 13
bDescriptorType 36
bDescriptorSubtype 4 (MIXER_UNIT)
bUnitID 6
- bNrInPins 3
+ bNrInPins 2
baSourceID( 0) 2
- baSourceID( 1) 4
- baSourceID( 2) 5
+ baSourceID( 1) 5
bNrChannels 2
wChannelConfig 0x0003
Left Front (L)
@@ -126,23 +97,6 @@
iChannelNames 0
bmControls 0x00
iMixer 0
- junk at descriptor end: 00
- AudioControl Interface Descriptor:
- bLength 10
- bDescriptorType 36
- bDescriptorSubtype 6 (FEATURE_UNIT)
- bUnitID 7
- bSourceID 6
- bControlSize 1
- bmaControls( 0) 0x15
- Mute
- Bass
- Treble
- bmaControls( 1) 0x02
- Volume
- bmaControls( 2) 0x02
- Volume
- iFeature 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
@@ -150,7 +104,7 @@
bTerminalID 8
wTerminalType 0x0301 Speaker
bAssocTerminal 0
- bSourceID 7
+ bSourceID 6
iTerminal 0
AudioControl Interface Descriptor:
bLength 12
The descriptor has been fixed and simplified in later firmware versions.
The linux snd-usb-audio driver works with firmware 0.09 but there is currently no way to update the microphone firmware under linux, you still have to run the Update under Windows.
evtest /dev/input/event4
Input driver version is 1.0.0 Input device ID: bus 0x3 vendor 0x19f7 product 0x1 version 0x100 Input device name: "RODE MICROPHONESj Rode Podcaster" Supported events: Event type 0 (Sync) Testing ... (interrupt to exit)
and then it waits for events.
As we can see there is no useful event exposed, the current guess is that the HID interface is used for control and management purposes (firmware upload/download).
If we rmmod the usbhid driver and run lsusb -d 19f7:0001 -vvv we can see the usb HID report descriptor:
--- lsusb_0.01.txt
+++ lsusb_vvv_0.01.txt
@@ -337,8 +338,39 @@
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 42
- Report Descriptors:
- ** UNAVAILABLE **
+ Report Descriptor: (length is 42)
+ Item(Global): Usage Page, data= [ 0x0c ] 12
+ Consumer
+ Item(Local ): Usage, data= [ 0x01 ] 1
+ Consumer Control
+ Item(Main ): Collection, data= [ 0x01 ] 1
+ Application
+ Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
+ (null)
+ Item(Local ): Usage, data= [ 0x01 ] 1
+ (null)
+ Item(Global): Logical Minimum, data= [ 0x00 ] 0
+ Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
+ Item(Global): Report Count, data= [ 0x40 ] 64
+ Item(Global): Report Size, data= [ 0x08 ] 8
+ Item(Main ): Input, data= [ 0x02 ] 2
+ Data Variable Absolute No_Wrap Linear
+ Preferred_State No_Null_Position Non_Volatile Bitfield
+ Item(Main ): Collection, data= [ 0x02 ] 2
+ Logical
+ Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
+ (null)
+ Item(Local ): Usage, data= [ 0x01 ] 1
+ (null)
+ Item(Global): Logical Minimum, data= [ 0x00 ] 0
+ Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
+ Item(Global): Report Count, data= [ 0x40 ] 64
+ Item(Global): Report Size, data= [ 0x08 ] 8
+ Item(Main ): Output, data= [ 0x02 ] 2
+ Data Variable Absolute No_Wrap Linear
+ Preferred_State No_Null_Position Non_Volatile Bitfield
+ Item(Main ): End Collection, data=none
+ Item(Main ): End Collection, data=none
Endpoint Descriptor:
bLength 7
bDescriptorType 5
There are an Input and an Output report, maybe we can read and write the firmware using them.
Audacity usb on mic link
On the page http://www.audacityteam.org/wiki/index.php?title=USB_mic_on_Linux there are some commands to try. I'm executing these now with the Podcaster plugged in... (Phil : 2008/11/22)
Which device?
root@carl:~# ls -l /dev/dsp* crw-rw---- 1 root audio 14, 3 2008-11-22 17:10 /dev/dsp crw-rw---- 1 root audio 14, 35 2008-11-22 17:57 /dev/dsp2 root@carl:~# date Sat Nov 22 17:58:05 EST 2008 root@carl:~#
We're using /dev/dsp2
cat /proc/bus/usb/devices
With firmware 0.01:
T: Bus=02 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 5 Spd=12 MxCh= 0 D: Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=19f7 ProdID=0001 Rev= 0.01 S: Manufacturer=RODE MICROPHONESj S: Product=Rode Podcaster C:* #Ifs= 4 Cfg#= 1 Atr=60 MxPwr=100mA I:* If#= 0 Alt= 0 #EPs= 0 Cls=01(audio) Sub=01 Prot=00 Driver=snd-usb-audio I:* If#= 1 Alt= 0 #EPs= 0 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio I: If#= 1 Alt= 1 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio E: Ad=01(O) Atr=09(Isoc) MxPS= 288 Ivl=1ms I:* If#= 2 Alt= 0 #EPs= 0 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio I: If#= 2 Alt= 1 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio E: Ad=82(I) Atr=0d(Isoc) MxPS= 288 Ivl=1ms I:* If#= 3 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid E: Ad=83(I) Atr=03(Int.) MxPS= 64 Ivl=16ms
lsmod | grep snd
root@carl:/proc/bus/usb# lsmod | grep snd snd_usb_audio 83936 0 snd_usb_lib 18432 1 snd_usb_audio snd_hwdep 10500 1 snd_usb_audio snd_mpu401 9448 0 snd_mpu401_uart 9728 1 snd_mpu401 snd_seq_dummy 4868 0 snd_maestro3 26660 0 snd_ac97_codec 100772 1 snd_maestro3 ac97_bus 3072 1 snd_ac97_codec snd_pcm_oss 42016 0 snd_mixer_oss 17792 1 snd_pcm_oss snd_seq_oss 35456 0 snd_pcm 78596 4 snd_usb_audio,snd_maestro3,snd_ac97_codec,snd_pcm_oss snd_seq_midi 9248 0 snd_rawmidi 25632 3 snd_usb_lib,snd_mpu401_uart,snd_seq_midi snd_page_alloc 11528 1 snd_pcm snd_seq_midi_event 8320 2 snd_seq_oss,snd_seq_midi snd_seq 54096 6 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_seq_midi_event snd_timer 24836 2 snd_pcm,snd_seq snd_seq_device 9612 5 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_rawmidi,snd_seq snd 56868 16 snd_usb_audio,snd_usb_lib,snd_hwdep,snd_mpu401,snd_mpu401_uart,snd_seq_dummy,snd_maestro3,snd_ac97_codec,snd_pcm_oss,snd_mixer_oss,snd_seq_oss,snd_pcm,snd_rawmidi,snd_seq,snd_timer,snd_seq_device soundcore 8800 1 snd usbcore 146028 5 snd_usb_audio,usbhid,snd_usb_lib,uhci_hcd
cat /dev/sndstat
root@carl:/proc/bus/usb# cat /dev/sndstat Sound Driver:3.8.1a-980706 (ALSA v1.0.16 emulation code) Kernel: Linux carl 2.6.24-19-server #1 SMP Wed Aug 20 23:54:28 UTC 2008 i686 Config options: 0 Installed drivers: Type 10: ALSA emulation Card config: ESS Allegro PCI at 0x1000, irq 5 MPU-401 UART at 0x300, irq 10 RODE MICROPHONESj Rode Podcaster at usb-0000:00:1f.2-1.3, full speed Audio devices: 0: Allegro (DUPLEX) 2: USB Audio (DUPLEX) Synth devices: NOT ENABLED IN CONFIG Midi devices: 1: MPU-401 UART MIDI Timers: 7: system timer Mixers: 0: ESS Technology ESS1988 1: mixer10 2: USB Mixer
cat /proc/asound/cards
root@carl:/proc/bus/usb# cat /proc/asound/cards
0 [PCI ]: Allegro - ESS Allegro PCI
ESS Allegro PCI at 0x1000, irq 5
1 [UART ]: MPU-401 UART - MPU-401 UART
MPU-401 UART at 0x300, irq 10
2 [Podcaster ]: USB-Audio - Rode Podcaster
RODE MICROPHONESj Rode Podcaster at usb-0000:00:1f.2-1.3, full speed
cat /proc/asound/pcm
root@carl:/proc/bus/usb# cat /proc/asound/pcm 00-00: Allegro : Allegro : playback 2 : capture 1 02-00: USB Audio : USB Audio : playback 1 : capture 1
arecord --list-devices
root@carl:/proc/bus/usb# arecord --list-devices **** List of CAPTURE Hardware Devices **** card 0: PCI [ESS Allegro PCI], device 0: Allegro [Allegro] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: Podcaster [Rode Podcaster], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0
ls -l /dev/snd/*
root@carl:/proc/bus/usb# ls -l /dev/snd/* crw-rw---- 1 root audio 116, 0 2008-11-22 17:10 /dev/snd/controlC0 crw-rw---- 1 root audio 116, 32 2008-11-22 17:10 /dev/snd/controlC1 crw-rw---- 1 root audio 116, 64 2008-11-22 17:57 /dev/snd/controlC2 crw-rw---- 1 root audio 116, 40 2008-11-22 17:10 /dev/snd/midiC1D0 crw-rw---- 1 root audio 116, 24 2008-11-22 17:10 /dev/snd/pcmC0D0c crw-rw---- 1 root audio 116, 16 2008-11-22 17:10 /dev/snd/pcmC0D0p crw-rw---- 1 root audio 116, 88 2008-11-22 17:57 /dev/snd/pcmC2D0c crw-rw---- 1 root audio 116, 80 2008-11-22 17:57 /dev/snd/pcmC2D0p crw-rw---- 1 root audio 116, 1 2008-11-22 17:10 /dev/snd/seq crw-rw---- 1 root audio 116, 33 2008-11-22 17:10 /dev/snd/timer
arecord --list-pcms
root@carl:/proc/bus/usb# arecord --list-pcms
default:CARD=PCI
ESS Allegro PCI, Allegro
Default Audio Device
front:CARD=PCI,DEV=0
ESS Allegro PCI, Allegro
Front speakers
null
Discard all samples (playback) or generate zero samples (capture)
default:CARD=UART
MPU-401 UART
Default Audio Device
default:CARD=Podcaster
Rode Podcaster, USB Audio
Default Audio Device
surround40:CARD=Podcaster,DEV=0
Rode Podcaster, USB Audio
4.0 Surround output to Front and Rear speakers
surround41:CARD=Podcaster,DEV=0
Rode Podcaster, USB Audio
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Podcaster,DEV=0
Rode Podcaster, USB Audio
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Podcaster,DEV=0
Rode Podcaster, USB Audio
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Podcaster,DEV=0
Rode Podcaster, USB Audio
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Podcaster,DEV=0
Rode Podcaster, USB Audio
IEC958 (S/PDIF) Digital Audio Output
Recording attempts
alsamixer -c 2
amixer -c 2 set Mic 32
Setting the mixer to full volume from the command line.
Simple mixer control 'Mic',0 Capabilities: cvolume pswitch pswitch-joined cswitch cswitch-joined Playback channels: Mono Capture channels: Mono Limits: Capture 0 - 32 Mono: Playback [off] Capture 32 [100%] [23.04dB] [on]
arecord -Dplughw:2,0 -f cd linuxpodcaster.wav
root@carl:~# arecord -Dplughw:2,0 -f cd linuxpodcaster.wav Recording WAVE 'linuxpodcaster.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo Aborted by signal Interrupt...
Success!! http://www.massyn.net/rode/linuxpodcaster.wav
(See signal analysis
)
arecord -Dplughw:2,1 -f cd test2.wav
root@carl:~# arecord -Dplughw:2,1 -f cd test2.wav arecord: main:546: audio open error: No such file or directory
More examples
dmesg
[259364.405901] usb 1-1.3: USB disconnect, address 3 [263935.850793] usb 1-1.3: new full speed USB device using uhci_hcd and address 4 [263936.275739] usb 1-1.3: configuration #1 chosen from 1 choice [263936.300492] ALSA /build/buildd/linux-ubuntu-modules-2.6.24-2.6.24/debian/build/build-server/sound/alsa-driver/usb/usbaudio.c:1296: 4:1:1: cannot get freq at ep 0x1 [263936.310464] ALSA /build/buildd/linux-ubuntu-modules-2.6.24-2.6.24/debian/build/build-server/sound/alsa-driver/usb/usbaudio.c:1296: 4:2:1: cannot get freq at ep 0x82 [263936.375667] input: RODE MICROPHONESj Rode Podcaster as /devices/pci0000:00/0000:00:1f.2/usb1/1-1/1-1.3/1-1.3:1.3/input/input5 [263936.408705] input,hidraw0: USB HID v1.00 Device [RODE MICROPHONESj Rode Podcaster] on usb-0000:00:1f.2-1.3
cat /proc/asound/cards
0 [PCI ]: Allegro - ESS Allegro PCI
ESS Allegro PCI at 0x1000, irq 5
1 [UART ]: MPU-401 UART - MPU-401 UART
MPU-401 UART at 0x300, irq 10
2 [Podcaster ]: USB-Audio - Rode Podcaster
RODE MICROPHONESj Rode Podcaster at usb-0000:00:1f.2-1.3, full speed
arecord -Dhw:2,0 file3.wav
Recording WAVE 'file3.wav' : Unsigned 8 bit, Rate 8000 Hz, Mono arecord: set_params:901: Sample format non available
arecord -Dhw:2,0 -f cd file3.wav
Recording WAVE 'file3.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo arecord: set_params:901: Sample format non available
arecord -Dplughw:2,0 -f cd file3.wav
Recording WAVE 'file3.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo Aborted by signal Interrupt...
OSS
2008/11/26 - Phil - I could never get the Podcaster to work through OSS, but for some reason, it is working now.
aumix -d /dev/dsp2 -m 100
No response...
sound-recorder -c 2 -s 44100 -b 16 -A /dev/dsp2 -f wav dsp.wav
Success!
Sound Recorder version 0.06 (Build on Oct 30 2005) Copyright (C) 1997-2000 by B. Warmerdam under GPL. This program is free software and comes with ABSOLUTELY NO WARRANTY. Record from dsp (no cdrom support). To end the recording press CTRL-C Creating file: dsp.wav Time 00:04 End of recording: dsp.wav with 524288 samples
Limitations of recording
plughw or hw
It seems the podcaster only likes plughw. Any attempt to record with hw has failed.
Acceptable alsa recording formats
The podcaster had no difficulty recording in 8,11,22,44 or 48khz. Recording either in mono or stereo worked in all cases.
ALSA has some funny business when you change the recording format, for example, when you specify the output type as wav, you have more success than when you speciy au or voc. wav is the most accepted format anyway, I'd suggest you keep using that.
When using WAV, I found the following recording formats worked :-
- FLOAT_LE
- S16_LE
-
S24_LE- very bad recording -- really bad! - S32_LE
- U8
Other recording
arecord -D hw:1,0 -f S24_3LE -r 48000 out.wav
Success!




