ExtendingISASoundcard - SdPhd



Extending ISA Soundcard

As a part of the overall PhD project, this project takes a vintage ISA card design by Joe D. Reeder, and uses it as a base to test the viability of using analog (bilateral) switches as software controlled gates - able to bypass the filter section of the analog input. Such a functionality would allow sound-cards to acquire DC-biased signals on demand - and thus allow sound-cards to be used as generic sensor interfaces, working at audio sampling rates.

Note however, that the implementation demonstrates the project intent only conceptually - as the ISA card has been utilized mostly as a signal generator and sampler (rather than as a generic soundcard). Schematics and source code related to this project will be posted on this page, as well.

Simplified schematic of soundcard input filter, bypassed by a switch Photo of wired DIY ISA Card



  • See below for videos (for help with videos, click ).
    • An older page with one of the videos, using the DivX plugin, can be seen here.


Find link to schematics and PCB layout below.


  • Note that the zip archive is a mess ;)
  • The PDF schematic shows the connection of the CD4066 switch - however, that connection is not in the originating KiCad schematic file.
  • The actual layout of the implemented card is on the first few pages of the PDF layout (be careful, the correct mirroring may not be in order). Those pages have been manually edited from the originating KiCad layout (pads removed, etc).
  • Note there are errors on the implemented card layout (some of them can be seen corrected on the back side of the board on this image)

Source code

Find links to C source files, as well as captures produced by respective executables, below.

OS Source Capture file Build notes
MS-DOS experisa-djgpp.c ADCCAPTR_ppi_dc_test.DAT Use the following as a batch script for a DJGPP build:
:: compile
gcc -Wall -o experisa.exe experisa.c
:: This creates file experisa:
exe2coff experisa.exe
:: delete old backup, and make new backup
del experisa_org.exe
ren experisa.exe experisa_org.exe
:: make full stubbed exe
COPY /B C:\DJGPP\bin\CWSDSTUB.EXE+experisa experisa.exe
:: set settings - set swap file to "" when asked
C:\DJGPP\bin\cwsparam experisa.exe
:: done  
Linux experisa-lin.c ADCCAPTR-p4p-dsl.DAT For Ubuntu:
gcc -I/usr/src/linux-headers-2.6.27-11-generic/include -I/usr/include -O2 -lm -Wall -g -o experisa-lin experisa-lin.c 2>&1| tee out.txt  

For DSL:

gcc -O2 -lm -Wall -g -o experisa-lin experisa-lin.c  

In both cases, run the executable with:

sudo ./experisa-lin  
  • The code is a single .c file.
  • Expect getting warnings for unused variables when building.
  • Here is a patch showing differences between the dos and linux versions of the program.
  • The .DAT files are captures - recordings of data sampled by the card's ADC. They can be imported in Audacity - import as 8 bit unsigned, and set the sampling rate to 12725 Hz (and note that the Linux one is quite boring since it shows a simple DC test :) )
  • For Linux, the functions that emulate dos keyboard functions sometimes freeze the command shell, after the program is finished.

Complete list of references

Link to development notes

  • [Here link to development notes]

Choose skin to view site in: 0 1 2 3 4 5 6 7 8 9 10 11