Actions
- Table of contents
- OsmoSDR Firmware
OsmoSDR Firmware¶
The OsmoSDR firmware is written in C language. It uses a modified version of the Atmel-provided sam3u drivers (at91lib).
There are multiple firmware images available, providing different interfaces towards the host PC.
Firmware Variants¶
There are multiple firmware images available, providing different interfaces towards the host PC.
standard (usb-audio) firmware¶
The standard firmware image exports a composite USB device with two interfaces:- A USB standard audio class device (for actual received baseband samples)
- A USB CDC-ACM serial device (for hardware control like tuning)
- a high sample rate (1/2/4 MHz) for USB Audio drivers like the ALSA driver included in mainline Linux
- a low sample rate of 96 kHz (possibly 128 kHz) to work with the poor USB Audio driver of MS Windows OSs
Firmware flashing¶
There are two methods of flashing the firmware:
DFU firmware flashing¶
This is currently being worked on. FIXME.
SAM-BA / rum-ba firmware flashing¶
The sam3u contains a ROM based recovery boot loader called "SAM-BA". To activate this loader,you have to
- power down the device
- close the ERASE jumper
- power up the device (1 second is sufficient)
- power down the device
- remove the ERASE jumper
- power up the device again
- Vendor ID 0x03eb
- Product ID 0x6124
- String: "Atmel Corp. at91sam SAMBA bootloader"
The SAM-BA loader exports a CDC-ACM (virtual serial port) interface.
<pre> $ ./rumba /dev/ttyACM0 flashmcu loader.bin </pre> h2. Firmware building * You first need to build and/or obtain a Cortex-M3 [[Toolchain]]. * Next, in addition to osmo-sdr.git you also need a clone of at91lib.git from git://git.gnumonks.org/at91lib.git which needs to be on the same level as osmo-sdr.git, i.e. one common parent directory between at91lib and osmo-sdr h2. Flashing the Firmware Flash the application partition <pre> dfu-util -d 16c0:0763 -i0 -a0 -D firmware/osmosdr-project/bin/osmo-sdr-test-osmo-sdr-at91sam3u4-dfu.bin </pre> Convert FPGA image: <pre> utils/vmelinearize$ ./vmelin ../../fpga/hw-v2/deploy/usbrx_algo.vme ../../fpga/hw-v2/deploy/usbrx_data.vme > /tmp/fpga.out </pre> Flash the FPGA partition <pre> dfu-util -d 16c0:0763 -i0 -a3 -D /tmp/fpga.out </pre> ignore "Error during download"
Updated by laforge over 7 years ago · 8 revisions