Monday, February 1, 2021

Rescue that Printer Port ADC

 Probably anyone younger than 30 would be hard pressed to describe a parallel port on a computer.  We used these 25 pin monsters for all sorts of scientific hacking in the days before USB ports.  And so it was 20 years ago when I began promoting and supporting the use of the MAX186 analog to digital (ADC) converter controlled through a parallel port.  The simple circuit is shown below. Given that this IC was an excellent performer and that you could sometimes get the MAX186 as a free sample from Maxim Integrated Circuits for the asking, this was a very attractive option.

MAX186 IC connected to a parallel port.

The MAX186 IC showed up in another printer port connected circuit in KIT118 from kitsrus.com. It appears to still be available from them.  For sometime I have thought about writing a program for the Arduino which would interface with the MAX186 IC pins and allow ADC data to flow through the Arduino USB serial port instead of the printer port.  The issue recently came up again so this time I rummaged around and found a MAX186 IC and an  Arduino Uno.  A few resistors  and 2 capacitors later I had the circuit breadboarded. There is no reason why a Arduino Nano couldn't be used instead of the Uno board. Arduino Nano boards can be purchased for much less than $10.  


If your already-built MAX186 device terminates in a 25 pin connector, you can simply run the 6 jumper wires to the connector from the appropriate pins on the Arduino board.  You can purchase breadboarding jumpers with double male or male/female configurations that will make the job easy. In my test circuit shown above there are only 4 grounded resistors on the 8 channel inputs.  In the real world you will want all of the MAX186 analog pins to have a resistor of 10K or so leading to ground. If left floating, the inputs will produce seemingly random signals and the channels may cross-talk.  

Code

For the latest Arduino code for this project go to https://github.com/radiosky/MAX186_Rescue/tree/main .  

This project is an extension of an earlier effort to make the Arduino act like a User Data Source (UDS) for Radio-SkyPipe described here:

http://cygnusa.blogspot.com/2013/02/arduino-and-radio-skypipe.html

and

http://cygnusa.blogspot.com/2017/06/programming-multiple-channels-in.html

The UDS follows a format outlined here http://radiosky.com/skypipehelp/V2/UDS_model.html .

As written, the code has some limitations.  It always transmits all eight channels of the MAX186 ADC.  All that is needed to change to a different number of channels is to change the code below in the GetD() function so that the '8' in the for statement is the number of channels you want.

void GETD(){

         int u;

         for(u=1 ; u<=8; ++u)

         {

            dat = MaxRead(u-1);

         }

         Serial.print("^^3001"); // This tells RSP to time stamp it

         Serial.write(255); // all commands end with this character.

         return;

  }

To change the sample rate, adjust the delay(100); statement right after the void loop() statement.  Another improvement would be to use an Arduino timer and interrupt to change the sample rate.

The channels selected must begin with channel 1 and be sequential.  You could make any number of modifications and I encourage you to try some.   Let me know what you come up with.

Connecting to Radio-SkyPipe

The point of this is get the data into a strip chart.  Radio-SkyPipe is a strip chart program that can plot a wide number of input sources.  Go to Options and select the Data Source tab.


Set up the number of channels you have indicated in your Arduino code. (Defaults to 8), then press the UDS Set Up button.


To connect to the MAX186 via the Arduino,  we configure a Serial UDS connection. Our Arduino has the ability to follow the UDS commands directly so no UDS exe driver program is necessary.  Thus the EXE File is not used. The Com Port is the com port used by the Arduino. Set it so that the UDS Pushes Data.  This means that Arduino will use it's timing to set the sample spacing. Note the Connection Type is Serial.  




Save your options. That is just about it.  All you need do now is to press the Start button.

Sunday, May 10, 2020

Data Format for ATT-6000 Step Attenuator Module

ATT-6000 electronic rf step attenuator and its serial computer interface.

I am amazed at the useful electronic test equipment the amateur scientist can purchase for so little money these days.  This is just a quick note about the serial command structure used to set attenuation level  on the ATT-6000 step attenuator module.  I purchased my unit new on eBay for less than $30.  This module is probably based on the PE43702 attenuator chip (see below).  The chip has pretty impressive specs, usable up to 6 GHz.  The module I purchased has milled aluminum case and OLED display. It is shown in the above photo hanging in front of its serial port trace.

The program to the left in Fig.1 is the free commercial one that can be downloaded.  I had to ask the vendor to get the download link.  The program does just one thing.  You enter a number and it sends a message to the attenuator that results in the amount of attenuation requested up to the limit of 31.75 dB. Your minimum change can be 0.25 dB.   This program is almost useless as the same thing can be accomplished with a few button presses on the attenuator module itself.

A much more useful feature would be the ability run the attenuator in steps to calibrate a receiver.  The attenuator could be part of a noise figure measurement system,  Programmatic control is desirable. Anyway, I did what any of you might do and ran a serial port monitor to see how the "Digital Attenuator Console" commanded the attenuator to change to X dB attenuation. And it is very simple.

The device operates using 115k baud.  I don't know what microprocessor it uses.  I didn't want to open mine for fear of somehow messing up the connections to the SMA connectors from the board.  If some has pictures or info on the insides please share.  However, there has to be a micro-controller of some sort, even if it is just part of the USB to serial converter.  To set the attenuator to (-) 31.25 dB
you would send it:

Hex  77 76 30 33 31 32 35 0A
 or     
        Ascii  wv03125(Line Feed)

All values are composed of 5 digits preceded by the characters "wv" and followed by a Line Feed character (10d or OAh) Sometimes the device sends back a couple of characters but I don't see any meaning for them.  

If anyone hacks this device and we can reprogram it, I can't wait to change the display.  Currently it shows the attenuation reading in small print on one line and on the next line says "Fre=6,000,000KHz", a useless bit of information, referring to the upper bound of the spec. I would much rather make the top line larger and eliminate the second line.







Friday, September 1, 2017

Radio-Sky Spectrograph works with Radio-Jupiter Pro,

There are a number of ways that Radio-Sky programs can interact with one another.  For example, RTL Bridge can send signal strength from a RTL dongle receiver to Radio-Sky Spectrograph  (RSS) and to the Radio-SkyPipe (RSP) strip chart program.Radio Eyes can start a RSP chart. Radio Jupiter Pro (RJP) can send calculated Jupiter or Solar information to RSS.  Since more people use RSS for Jupiter and solar studies than anything else that I am aware of, it makes sense that RSS can draw this information from RJP when desired.



A new update for RJP facilitates the new Slope Note Pad tool.  With this tool you can easily
run through SPS files and take the slope of a feature (modulation lane, N burst etc.) and
it will grab the corresponding CML IoPhase from RJP and will add it to a list that is exportable
to a spreadsheet.  You just click at the beginning and end of each feature you want the slope
of and your data is compiled for you.

Also be reminded that if you have RJP running along side RSS, and you have the option
set under Options / Network / Radio Jupiter Pro Information Server / Connect to RJP
You can then right click anywhere on your chart and select  Get RJP Charts, which will
produce CMLIo charts, SkyMaps, and AltAz views for that given time. You don't have to
type a time into RJP to do this. Each of these RJP displays has a camera button which
places the image in the clipboard for easy pasting into all of these nice reports you have
been creating. All of these displays popping up in addition to your RSS display takes a lot of screen real estate. Probably would be easiest on a multi-monitor system.

There is a new version of RSS 2.8.45 that you can get to through Help/Check for Updates.

If you have never installed RSS you can get it here:

http://radiosky.com/spec/Spectrograph.exe

For this to work correctly do the following update to RJP:

http://radiosky.com/rjp3/rjp_update_3_8_2.exe

In RJP you want to make sure the Information Server (JIS) is running on start up.
This is found under Tools / Jupiter Information Server.



Finally, you could use the JIS feature to grab the info for any program by making a TCP connection to the IP and Port shown.  In the Jupiter Info Server Options you can push out the selected info (in string format)  by using the Push option or by Sending a "J" to the server from your client you can get the JIS to send you the string.  Try it using a terminal program.

Added September 2. 2017
Larry Dodd, K4LED, used the features described above to make the nice solar observation report below;




Have Fun.

Jim

Wednesday, August 16, 2017

RTL RFI Interference Sniffer

RTL RFI Interference Sniffer



 A useful RFI finder tool is a software defined radio (SDR) such as a $20 dongle receiver (and $40 up-converter if you want to cover HF).   You might also be able to find frequency ranges that are free from interference!  You can actually use a portable setup like this for hunting down interference.


This system can be improved by mounting the antenna on the end of a wooden or plastic stick,( a paint stirrer works well).  The choke helps to keep you from becoming part of the antenna, which while not resonant, works well when probed close to suspected radiators. (Not hot power lines !)  As a matter of fact, you should wear some electrically insulated gloves when doing this.

This project requires an Android device that has OTG USB support so that the device can be used to operate a RTL style dongle radio.  The tablet itself is an RFI radiator, or at least the one I have tried is. It possible insulate yourself from the tablet by using gloves, placing it in a cover, or mounting it on a piece of sturdy cardboard that can be used to handle the tablet without touching it.  When you touch the tablet you become an antenna for its own RFI.  Normally that isn't a problem because your antenna is far from your tablet, but in this case you are carrying them both. 

You need two programs from the Google app store.
  • RF Analyzer (Free) or SDRTouch (I bought the paid version for $10).
  • RTL-SDR driver.
Just search for RTL SDR in Google Play. You may even find a program you like better. It works well for me on this rather modest 7" LG tablet that came "free" with a phone plan.

I am using the small whip antenna that came with one of RTL dongles (everyone has at least 8, right?) You can also construct a small dipole or loop if you wish.  Unless you know that you are going to be working in a relatively small part of the spectrum, the antenna is not going to be resonant anyway.  In most situations it is going to act like a near-field voltage probe, which is probably the preferable mode for sniffing interference sources around the house. If it is too sensitive it is going to be harder to home in a RFI source.

Read my post about RFI basics.






Rescue that Printer Port ADC

 Probably anyone younger than 30 would be hard pressed to describe a parallel port on a computer.  We used these 25 pin monsters for all sor...