Skip to main content

Posts

Showing posts from July, 2005

SDR mini-itx project update

Here is an update on my mini-itx/SDR project: I have been working out the details of the A/D – D/A board. I have decided to use the TI PCM4202 (24 bit, 192 kHz, stereo) for the RX A/D. For the TX A/D and RX/TX D/A I am going to use the TI TLV320AIC23B CODEC (24 bits, 8-98 kHz, stereo, with integrated mic amp and headphone driver). The PCM4204 will be dedicated to RX only. The TLV320AIC23B will handle the microphone input for TX as well as the IQ output for TX and the audio output for RX (in the stand alone configuration). Both chips have digital audio interfaces (I2S, left, right justified, etc…) so I have the problem of getting that data into the PC via USB2.0. I looked at the Cypress EZ-USB FX2 CY7C68013 microcontroller for this but it cannot handle the transfer on its own. I decided to use a Xilinx FPGA in addition to the EZ USB FX2 for the I2S to parallel conversion (inspired by the USRP and SSRP projects of GnuRadio). The EZ USB FX2 will operate in slave FIFO mode t...

Are you a computer simulation?

Someone emailed me about my webpage at: http://www.philcovington.com/comp.html to ask if I really believed we are living in a computer simulation. He was referring to the paper by Bostrom titled "Are You Living In A Computer Simulation? ". No, I do not believe we are living in a computer simulation. It is an interesting paper though. I think that Ed Fredkin's Digital Philosophy (http://www.digitalphilosophy.org) is probably closer to what underlies reality.

SoftRock 40 & Reorganized website

SoftRock 40 I got Tony Park's SoftRock 40 playing today with Bill KD5TFD's modified PowerSDR console. It is amazing what can be done with such a small board. I want to revive the SharpDSP enabled console for use with the SoftRock 40. I will strip out all of the unneeded controls and functionality in the PowerSDR console to make it specific to the SoftRock 40. This will clear up some screen real estate so I can widen the Panadapter window to show all 48 or 96 kHz of bandwidth at once in the Panadapter. When the PCM2900 codec boards become available I will modify SDRAudio to correct for the sample offset problem in the PCM2900. Website I reorganized my website today. The website notes were archived and links to the various software projects were rearranged to make it easier to find a specific item.

New SDR Project

A few people have mentioned in the past about wanting to use a small motherboard like mini-itx or micro-atx to run PowerSDR with the SDR-1000 to make a small self-contained unit possibly using a small LCD panel display. That was one of the things on my project list that I wanted to do also. Now that I have started thinking about it again I decided to try a variant of this idea and have had encouraging success so far just playing around with it. I wanted to try to dedicate a mini-itx board to the DSP, CW keyer, and hardware control of the SDR-1000 using real-time Linux (RTAI http://www.rtai.org/ ). I am trying to see how feasible it is to run the DSP (based on the DttSP code) and hardware control code in hard real time under RTAI. The RTAI patched linux kernel with DSP and hardware control code loads from a compact flash card to make it a diskless system (I have it down to under 16 MB now). I'd also like to come up with a A/D D/A add on board that will use a chip like the Wolfs...

Screen Capture Software

I have been trying out various screen capture software that I hope can be used for software demonstations and tutorials. The first I looked at is Camtasia (http://www.techsmith.com). It is nice for creating software tutorials. Next I looked at Macromedia's Captivate (http://www.macromedia.com/software/robodemo/). It has a lot of avantages and I think I prefer it over Camtasia. Unfortunately it costs about twice what Camtasia costs, but I think it is worth it. I will post a test demo using Captivate to see how it plays with users. It saves files in Shockwave format. I will probably do the software tutorials inside a VMWare Workstation 5 instance. My screen resolution is 1280x1040 so I need to do the demos within a smaller screen area... probably 1024x768 since this is the smallest common size on laptops as well as most desktops. I can also undo changes easily using VMWare's snapshot and cloning features. VMWare Workstation 5 also has a movie recorder mode where you ca...

vCOM Build 226 released

Build 226 of the vCOM virtual serial port driver is released. As I said in an earlier note, I had two reports from two different users that the vCOM driver would cause intermittent system freezes. One one system it happened only a few times and on the other system it happened very often. The system that had frequent system hangs was a hyper-threaded box. There can be only a few causes of system freezes and deadlock is the most likely in multiprocessor and hyperthread systems. I had a race condition caused by excessive use of spinlocks resulting in a deadlock. The probablity of the deaklock happening is much higher in a multiprocessor/hyperthreaded system. This is corrected in build 226. Important: You will need to edit the N8VBvCOM.inf file to match your current inf file before updating the driver. Once you have the inf edited you can run the update.bat file to update the driver.

vCOM Build 224 released

Build 224 of the vCOM virtual serial port driver is released. There were two reports by two different people that vCOM build 222 would hand their system. Not BSOD, but just freeze. I have adjusted the thread priorities in build 224 out of the real-time range where they were set in build 222. I think that perodically the threads priority would be boosted above the GUI's thread priority causing a deadlock. Important: You will need to edit the N8VBvCOM.inf file to match your current inf file before updating the driver. Once you have the inf edited you can run the update.bat file to update the driver.

vSOUND progress - vCOM info

I overcame a major hurdle today in the development of the vSOUND virtual sound card driver. If you are familiar with WDM Audio drivers you know that the portcls.sys driver exposes functions for creating, registering, and managing WDM Audio drivers. Unfortunately for our application the PcXXX functions hide much of the internal workings of the audio driver. For our vSOUND virtual sound card driver we need to be able to send customs IOCTLs to read and write data to the driver's buffers that represent the virtual A/D input and D/A output of the sound card. In the typical sound driver you will see something like this: extern "C" NTSTATUS DriverEntry ( IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPathName ) { NTSTATUS ntStatus; ntStatus = PcInitializeAdapterDriver ( DriverObject, RegistryPathName, AddDevice ); return ntStatus; } The call to PcInitializeAdapterDriver() causes PortCls.sys to load pointers to handlers for th...
Ken, N9VV reported an error in PowerSDR 1.3.13 where opening a serial port after it had already been opened and then closed would cause an exception. The serial port will remain unavailable until PowerSDR is exited and then restarted. Using PortMon, I immediately saw the error: I was trying to close the handle to the com port without first cancelling a WaitCommEvent(). The file handle to the com port would only be closed when PowerSDR exited. The correction to the source code was pretty easy: In SerialStream.cs line 1383, function FreeHandle needs to be changed to: protected internal override void FreeHandle(IntPtr handle) { if (_ownsHandle) { //Important! Must cancel all events before closing file!!! Win32API_Serial.SetCommMask(handle, 0); //Now we can close the file handle Win32API_Serial.CloseHandle(handle); } } Calling SetCommMask() with a mask of 0 cancells the current WaitCommEvent() allowing the com port to be closed and correctin...

My new blog

This is the first entry in my blog. I realized that I was basically blogging on my webpage in the Notes section. This caused people to have to search through all the notes for important installation and configuration information about the software. So, now all comments about what I am working on will be posted here and removed from the webpage. Check here for the current status of the vCOM driver, vSound driver, and any other PowerSDR code updates. Currently I am working on a fix for a problem in the PowerSDR CAT serial code that causes an exception as reported by Ken, N9VV. Also, I am working on the vSound virtual sound card driver. I will use choice #2 for the implementation as described on my webpage. This will avoid having to use PortAudio in PowerSDR to talk to the virtual sound card.