In this article I will discuss my own experiences about designing a USB sound card, which is the USBDAC. DAC is an acronym for Digital-to-Analog Converter because in a sound card, digital data representing the sound is converted into analog voltage that moves the speaker cone.
My device is loosely based on the PCM2706 reference design. I will not go through the tecnical details but instead concentrate on my own experiences in the design of the device. This is to keep people not familiar with electronics, as well as newcomers to electronics design, interested. You will see that one working product is the result of many failed prototypes.
Designing a USB sound card - [Link]
Johan von Konow writes:
A small FT232 USB to serial adapter built to fit directly in the USB port
- Integrated USB header
- Standard FTDI cable pinout
- Single sided PCB (easy to manufacture)
- Rx,Tx led’s
- Miniature size
Miniature USB to serial PCB - [Link]
Dilshan developed a 8 channel USB digital signal generator and an open source Windows application called Kidgo Player to drive it. The hardware is basically just a PIC18F2550 USB breakout board used to provide 8 digital outputs for his software. The Kidgo Player’s source is available on GitHub, and has the following features – [via]
- Save waveforms and settings as binary file (KDF file) or export waveform as a text file
- Playback controls such as “Play to segment”, “Play from segment”, “Step back”, “Step next” and “Clear”
- Shifting and rotating waveforms
- Invert, Reset, Clocking and Binary Generator functions
- Copy and Paste waveforms
- Mute function to each individual channel
- Launch without any installation or configuration (design to work as portable Windows application)
Kidogo: 8 channel USB Digital Signal Injector - [Link]
FTDI just released a new series of their USB to serial device ICs. The X-series is an upgrade on the R part used in the Bus Pirate and formerly in Arduinos. It features better transfer rates, lower power consumption, needs fewer discrete components, and has high power USB charging capability. [via]
FTDI is delighted to announce the launch of its new X-Chip series. Made up of 13 devices, with an exception feature set, the X-Chip series offers full speed USB 2.0 bridging solutions to UART, SPI/FT1248, I2C and FIFO interfaces complementing the company’s existing R chip, and Hi-Speed solutions. “By specifying the X-Chip into their designs, engineers will reduce their overall bill of materials and optimise PCB real estate,” states Fred Dart, CEO and founder of FTDI. “With its comprehensive feature set, the benefits of lower power, smaller device footprint and NEW enhanced battery charger detection can all be realised, as well as the robust USB functionality that FTDI has always provided in its connectivity solutions”. In addition to the ICs, FTDI has released a wide-selection of development modules, enabling instant access to the different functions for each chip type, and thus allowing for easy device evaluation and prototyping development.
FTDI’s new X-Series of USB device chips - [Link]
Sergei Bezrukov writes:
It is not a rare phenomenon that some USB devices attached to a computer during power-up remain invisible to the OS after booting. This concerns home-made devices during experiments and also some commercial ones. To make them visible again one has to disconnect the USB plug and reconnect it again. This leads to excessive contact wear of the USB connector. It would be nice to have a way to reconnect the device without mechanically unplugging it. A trivial solution based on buttons/switches or relays won’t work because of their contact bouncing, which might confuse as device as well as the OS.
USB switch - [Link]
Brian Schmalz writes:
The UBW board is a small board that contains a Microchip PIC USB-capable microcontroller, headers to bring out all of the PICs signal lines (to a breadboard for example), only costs about $15-$20 to build and is powered from the USB connection. I designed this board to be a simple parallel port replacement tool for Bruce Shapiro for use in his bits-to-bytes-to-bots class. Apologies to all other ‘Whacker’ projects like EDTP’s Packet Whacker for stealing a great name <grin>. All tools used to design this project are free, and the design is open to anyone to use for whatever they wish. Please build your own and improve upon it! If you don’t want to build your own, you can buy them assembled and tested from SparkFun in two varieties – a built and tested small surface mount board, or a larger plated through hole kit for $5 less. SparkFun hosts a USB forum where the UBW is a common discussion topic. If you have a question, it may have already been answered there.
UBW – USB Bit Whacker - [Link]
FTDI Expands Vinculum-II Precompiled Firmware & Source Code Offering, enabling a substantial shortening of development time.
USB solutions specialist Future Technology Devices International Limited (FTDI) has introduced additional elements to its family of precompiled, bridging ROM files that support Vinculum-II (VNC2) USB host/device controller ICs. These files can be loaded directly into a VNC2 IC and utilised in order to perform basic data transfer operations between common interfaces. Interface options include SPI, UART, USB host and USB device, with data operations such as mass storage, human interface devices, and communication device class. This provides engineers with off-the-shelf software capabilities that can be immediately implemented – enabling shorter development time and resulting in faster time to market.
The new ROM files from FTDI are:
- SPI master to UART – the bridging of a VNC2 UART to the VNC2 SPI master for controlling SPI slave devices. Data is transferrable in both directions.
- SPI slave to USB memory bridge – the bridging of a USB memory (Flash drive) device present on the VNC2 USB host port to a SPI interface.
- A SPI master to USB human interface device (HID) – the bridging of a USB HID class device (such as a keyboard or a mouse) present on the VNC2 USB host port to a SPI interface.
- A UART to communication device class (CDC) modem – the bridging of a CDC device present on the VNC2 USB host port to a UART interface, with data transferrable in both directions.
- A UART to FT232 host – the bridging of a FT232/FTxxx class device present on the VNC2 USB host port to a UART interface.
- A UART to USB HID Class Host – the bridging of a HID class device present on the VNC2 USB host port to a UART interface.
- A UART to USB Memory – the bridging of a USB memory device present on the VNC2 USB host port to a UART interface.
Each of the precompiled ROM files is accompanied by the source code, to allow users to modify and expand upon the reference software. Complete documentation and application notes are also included, which provide engineers the context of the implementation.
The new ROM files can be downloaded free of charge at: http://www.ftdichip.com/Firmware/Precompiled.htm
Simplify a development of USB devices by off-the-shelf files from FTDI - [Link]
The serial UART is a common interface used by many chips and devices. Ginpb designed a USB-to-UART adapter that works with 3.3V and 5V UART signals. The device is based around the FTDI FT232BL USB-to-UART IC with an added 3.3V power supply. The different interface levels are selected by an on-board jumper.
Simple USB to UART adapter that works with 3.3V and 5V UART signals - [Link]
With this circuit you can log serial (UART) data to an USB thumb drive and record data over a long period without the need of a PC. Simply connect your system to the logger and plug in an USB keydrive. All incoming data is logged to a file on the memory stick.
- No smd components are needed.
- Firmware is open source.
- Single power supply voltage: 5V (about 80mA).
- Connection to your circuit with only three lines: +5V, GND, uC-Tx.
- UART baudrate can be adjusted with a configuration file on the USB keydrive.
USBStickLogger – Log serial data to an USB thumb drive - [Link]
Out of anger for a bad product from Conrad I developed this six channel relay card. It supports some nice features like USB and programmable timers. It can also be controlled manually or with a RC5 compatible remote control. Very handy when it comes to control light sources and computer peripherals from a terminal.
Six channel USB relay card - [Link]