Friday, August 29, 2014

Microcontroller and the adlib sound card.

Saw this article (http://www.raphnet.net/electronique/adlib/adlib_en.php) about connecting an old eight (isa) bit sound card to the parallel port. Then I thought after looking at the connections that maybe the Arduino, RPi, Beagleboard, or the like  could also be used.  Just a matter of developing the software. Try this at your own risk. Then I thought there are lots of other old legacy eight bit cards that might be used (i.e serial, parallel, floppy, network, or etc).



Adlib information:
http://www.o-bizz.de/qbtuts/mallard/sbfaq.htm

http://www.shipbrook.net/jeff/sb.html


Embedded server with ISA network card

This embedded server was built with NE2000 compatible ISA network card (popular Realtek RTL8019, probably Davicom DM9008F also) and ATmega32 microcontroller. I've bought RTL8019 card branded as "Planet" for $1.50.
You can find souce code and basic schematic at http://www.ulrichradig.de/. There may be some changes to pin assignment so please refer to and/or modify rtl8019.h file to suits your needs.
Device worked as telemetry server for over a year (V 2007 - VI 2008). It was replaced by more functional (firmware) and smaller PIC18F67J60 circuit. ISA card webserver is still cheaper and may be easier to start with since AVR requires less complex programmer that PIC18FxxJ.
To allow regular measurement database update I've added to original microserver some code that works as - very simple and not reliable - TCP/HTTP client that sends POST request every few minutes.
Project should compile with WinAVR-20060421.
mikroserwer_20080331.zip (97kB)
Please note that I did not tested this microserver in any hostile environment nor tested with fuzzer or similar tool. There could be some errors leading to uncontrolled behavior - i.e. there is possible buffer overrun in http.c:
  unsigned char File_Name[13];
  if ( memcmp(&buffer[tcpdata],"GET /",5) == 0) 
   {
   char *tmppointer = &buffer[tcpdata + 5];
   unsigned char counter = 0;
   while (* tmppointer != 0x20)
    {
    File_Name[counter] = *tmppointer++;
    counter++;
    }  
  
It is recommended to hide microserver behind NAT and limit forwarded ports only to minimal required set.
Photos:
100_0582.jpg 100_0581.jpg

No comments:

Post a Comment