Author Topic: NanoVNA Custom Software  (Read 520286 times)

0 Members and 5 Guests are viewing this topic.

Offline joeqsmithTopic starter

  • Super Contributor
  • ***
  • Posts: 11696
  • Country: us
Re: NanoVNA Custom Software
« Reply #700 on: October 31, 2020, 07:27:52 pm »
Thanks. 

So if I am only using the commands to read the S-parameter data from the Nano (never using the start,step and sweeppoints), the Nano's UI remains active and I can continue to control it with the touch screen and display the data on the PC?

When using the RawSamplesMode, does the format of the data remain the same?  So no difference other than no calibration being applied? 

What are the ValuespPerFrequency?   I would assume you set the sweep points to 100, you get 100 values total.   In the case of the V2P, 401.  The manual does not provide boundaries.
It appears it must resend the same frequency over and over or something like that.   I am having to use a SA to write the code to see what it is doing and it seems to just sweep the same frequency over and over before moving to the next location.  Really odd. 

If I set the start at say 100MHz, 10KHz step, 400 sweep points and 1 value per frequency, the sweep rate is VERY slow.  Maybe 2-3 seconds.   Maybe 4-6 for the V2P.    I don't see anything about a sweep time or a way to set the IF filter....   I was expecting it to sweep well below a second based on the new specs.   I'm not understanding something.

I have been playing with the V2P4.  I had a quick look at the V2P.  It appears the only way to tell them apart is by looking at the hardware revision.  My V2P reports 3 and V2P4 reports 4.  I assume there could be a rev 4 of the V2P and so on.  What is the proper method to detect the device type.  I was guessing the Variant but it appears fixed.
« Last Edit: October 31, 2020, 08:02:58 pm by joeqsmith »
 

Offline OwO

  • Super Contributor
  • ***
  • Posts: 1250
  • Country: cn
  • RF Engineer.
Re: NanoVNA Custom Software
« Reply #701 on: November 01, 2020, 06:32:40 am »
Before it enters "USB mode" you can't read any S parameter data from the FIFO. There is no way to get data out while the UI is active, and this is by design because either the UI is "attached" to the VNA or the host is, never both at the same time. Data points over USB are always uncalibrated. Basically you need to think of it as a USB-only VNA when programming for it, nothing the user does on the device UI ever affects or is visible over USB.

valuesPerFrequency is what it says, values to obtain per frequency. If you set it to 2 the data points will be f0, f0, f1, f1, etc. This is what nanovna-qt uses to implement averaging. Each returned data point has the frequency embedded in it, and this is what you need to use to determine where you are in the sweep. The sweep is always ongoing and can not be paused, so there is no such thing as an on-demand "single sweep". To get a close approximation of a single sweep, simply read sweepPoints*valuesPerFrequency points from the FIFO in total, but before you do that you have to make sure the FIFO is drained (the FIFO will overflow and be filled with stale data if you don't keep reading it).

If I set the start at say 100MHz, 10KHz step, 400 sweep points and 1 value per frequency, the sweep rate is VERY slow.  Maybe 2-3 seconds.   Maybe 4-6 for the V2P.    I don't see anything about a sweep time or a way to set the IF filter....   I was expecting it to sweep well below a second based on the new specs.   I'm not understanding something.

That is about right, look at the specifications here:
https://nanorfe.com/nanovna-v2.html#specifications
The sweep speed below 140MHz is 200 points/s because the si5351 can not be controlled very fast.
400 points @ 200 points/s = 2 seconds.
Averaging over many points is equivalent to reducing IF filter bandwidth, and you can use valuesPerFrequency to do that.

rawSamplesMode gives you raw ADC samples, and this was for debugging only. In newer devices this is broken because USB can't keep up with the higher sample rate.

Hardware revision is what you use to tell between V2_2, v2plus, and v2plus4. That is the revision, so there is no such thing as newer revisions of the v2plus, if there was it should be invisible to the software anyway.
Email: OwOwOwOwO123@outlook.com
 
The following users thanked this post: ogden, Kartika

Offline joeqsmithTopic starter

  • Super Contributor
  • ***
  • Posts: 11696
  • Country: us
Re: NanoVNA Custom Software
« Reply #702 on: November 01, 2020, 02:18:46 pm »
Thanks for taking the time to answer my questions.  This was very helpful.  Your one comment
Quote
Data points over USB are always uncalibrated.
was going to be my next question. 

I am curious why the need for a valuesperfrequency.  Was the thought that holding steady at each frequency yields a higher throughput because you don't need to wait for the system to settle?    I was thinking I would just read the whole data set multiple times if I wanted to average.   

The whole idea of a free running system is fine.  Had you thought about using some sort of index (starting frame) followed by the data without sending up the frequency for each sample?  It would seem like you could improve on the throughput removing this data but then again, it may help the software keep in sync when using the valuesperfrequency.   

Hope to really put in some effort in a few weeks.  For now, I'm just trying to understand enough to give me an idea how to code it.  If you do decide to change the firmware (add a READ8 or just a generic READn commands, other),   if you are posting this somewhere, it would be good to know ahead of time.   

You should have your company make up some decals for them to bling them out a bit.  I keep thinking to letter mine but if you are planning to come out with something I would wait.

***
Trying it at 500MHz, 100 points, 1 sample per point, it does seem to sweep in about a half second.   Is the slow sweep rates due to settling time or other hardware or a limitation of the USB bus?

When using the valuesperfrequency >1,  if you collect all the sweeps and perform the average for each discrete point and download it once rather than having the PC perform the average,  would this be faster?     

It looks like mine is about a -10 dBm at 100MHz and -20 at 4GHz. Any idea what the compression is at the two extremes?  Any way to adjust the level?

It appears I can program the frequency up to about 4.6GHz   I assume I could run it up this high with a very reduced performance as long at I use this as the stop frequency, or is there something that would prevent it?   

Is there any sort of diagnostic information that can be queried over USB? 

****
You have a ReadFIFO command that accepts an address and one byte for the number of values.  However SweepPoints is a uint16.  So, to pull down the entire sweep could require several reads which are all out of sync?  So after some chance, we have the full amount of data for a sweep but really don't know which sweep which segments went with?   

I just tried the ReadFIFO command telling it to read a single sample.  Each time I do this, the index increments.  I would assume doing this slower than the sweep time would cause each value to be from a different sweep.   From your last post, this would seem to be the case but I just want to make sure I understand it.

Looking at the FIFO data format you define Bytes 1a..1f as reserved.   However, it seems that the last byte may be a checksum for the packet.  If this is a checksum, could you please provide how you calculate it?

Sadly, the official support group was locked for viewing messages so I joined hoping that others have already asked you similar questions.   After joining, I didn't find a lot of details. If there is a better group where you have already covered these questions,  just let me know.

Thanks again for your help.
« Last Edit: November 01, 2020, 05:47:54 pm by joeqsmith »
 

Offline joeqsmithTopic starter

  • Super Contributor
  • ***
  • Posts: 11696
  • Country: us
Re: NanoVNA Custom Software
« Reply #703 on: November 08, 2020, 03:05:33 am »
I joined nanovnav2@groups.io and picked up a few pointers from a member OneOfEleven.   They explained the undocumented checksum and the data format.   I have a pretty good idea now how to structure the software.   So I thought I would run a quick test to make sure I understood.   

Frame ms is the time to read a single data point.  Sweep ms is the time to read the full sweep.  So 1.95 seconds when starting at 1MHz and sending 400 data points.     There are currently two FIFOs.  There is a receiver thread that constantly reads in single data points and places them into the first FIFO (assuming we have a good checksum).   A second thread, stitches the data together and to form a competed sweep data set that then gets placed into a second FIFO.  A third thread then processes the data.    It seems very stable and robust.   

I need to add support for the average and I need to arrange where some of the processing is done to make better use of the memory. 

Offline joeqsmithTopic starter

  • Super Contributor
  • ***
  • Posts: 11696
  • Country: us
Re: NanoVNA Custom Software
« Reply #704 on: November 08, 2020, 10:41:57 pm »
Spent the day working on the software.  The new average feature doesn't appear to offer any performance gains.  For example running a sweep that required 1.62 seconds with valuesperfrequency set to 1, required 16.2 seconds with it set to 10.   

Because the V2+ is so different, I will just use a different program to support it rather than trying to support both VNAs with one program.   I already had ported the code to support my old HP boat anchors anyway. 

Here's the first real test.  The V2+ was calibrated then a 100 ohm resistor installed an ran for several minutes to check how stable the readings were.   For now, I am just using my PCB standards.   

Seems very stable (firmware, hardware and my new code).   A good start anyway.   
 
The following users thanked this post: xrunner

Offline joeqsmithTopic starter

  • Super Contributor
  • ***
  • Posts: 11696
  • Country: us
Re: NanoVNA Custom Software
« Reply #705 on: November 09, 2020, 01:46:58 am »
I have been testing the V2+, not the 4.  Now trying to run some narrow band tests.   The data is very poor compared with my original Nano.   Both units set to 5MHz.

Also shown attempting to look at a 3.68 crystal using the same jigs and cables I have shown in the past with the Nano.   It is stable enough to track the drift from touching the crystal's case but there's far too much error to make use of it.  Wasn't expecting this.   Maybe there is some setting to tame the phase noise.   
 
The following users thanked this post: xrunner

Offline joeqsmithTopic starter

  • Super Contributor
  • ***
  • Posts: 11696
  • Country: us
Re: NanoVNA Custom Software
« Reply #706 on: November 09, 2020, 01:05:56 pm »
I don't have a battery for the V2P and was running it from the PC's USB port.   The data for the original Nano was with it running standalone. 

Curious to see if the poor phase noise was just a bad unit.  This is the V2 Plus 4, running standalone. 

Offline joeqsmithTopic starter

  • Super Contributor
  • ***
  • Posts: 11696
  • Country: us
Re: NanoVNA Custom Software
« Reply #707 on: November 09, 2020, 01:27:47 pm »
Quote
The Si5351 covers frequencies up to 140MHz, and the rest are covered by the ADF4350s.

Curious to see if the phase noise was improved above 140, shown is my original Nano compared with the V2+4.  Both running from battery, no connections to the PC.  CW mode set to 150MHz. 

I also repeated the test, looking at the 3.68MHz crystal.    Note the difference of the Span setting, due to the lower phase noise.   Crazy.   

I would have assumed, if you were going to come out with a new product to compete with something as popular as the original Nano, you would start by use it as the baseline for your requirements.   You may improve, or have the same performance but I'm surprised it would ever be worse.   

Offline thinkfat

  • Supporter
  • ****
  • Posts: 2154
  • Country: de
  • This is just a hobby I spend too much time on.
    • Matthias' Hackerstübchen
Re: NanoVNA Custom Software
« Reply #708 on: November 09, 2020, 01:41:29 pm »
"CW" mode is really CW output with the V2 now? Not in the original software IIRC, there was a patch from a forum member implementing actual CW output, but I don't know if it has been pulled. If not, even in CW mode there's some (a lot) AM on the signal.

PS: I checked on my V2+4 unit, it's not actually CW, it's pulsed. This explains the spectrum you see.
« Last Edit: November 09, 2020, 01:54:15 pm by thinkfat »
Everybody likes gadgets. Until they try to make them.
 

Offline joeqsmithTopic starter

  • Super Contributor
  • ***
  • Posts: 11696
  • Country: us
Re: NanoVNA Custom Software
« Reply #709 on: November 09, 2020, 10:55:37 pm »
Yes, it's pulsed.  I haven't thought much about how this will play into testing active devices.  Right now I am just trying to perform some basic narrow band measurements and can't pull it off.   It may be possible that they don't allow it to settle long enough on each state.    As it stands now, it's useless for making these measurements.  That or I am missing something, which is also very possible.   

I personally don't have much of a need for a CW mode but the modulation may be a problem, even if the system could settle enough to get some decent data off it. 

Offline joeqsmithTopic starter

  • Super Contributor
  • ***
  • Posts: 11696
  • Country: us
Re: NanoVNA Custom Software
« Reply #710 on: November 12, 2020, 01:24:01 am »
I had made up a few microwave experiments to show off the V2 and had planned on doing a sort of shootout video where I was going to compare it against the other old vintage VNAs I have, including the new boat anchor.   Sadly, I wasn't able to find a work around for the poor phase noise and I doubt anyone is interested in seeing another low frequency video of the old Nano.   Writing software to support the V2 wasn't a huge investment in time and I wasn't expecting a whole lot from the V2 to begin with, so lesson learned.   

That original Gen 1 Nano flipper sent me is still the clear winner for me.  I'll take less slow data over fast poor data any day of the week.  Too bad, but it was only $120 bucks.   
 
The following users thanked this post: xrunner

Offline OwO

  • Super Contributor
  • ***
  • Posts: 1250
  • Country: cn
  • RF Engineer.
Re: NanoVNA Custom Software
« Reply #711 on: November 12, 2020, 06:48:24 am »
V2 can not resolve frequencies beyond 10kHz accuracy because the frequency step of the ADF4350 is 10kHz, not because there is significant phase noise (you can't look at the output on a spectrum analyzer because the signal is pulsed and the pulse period is not fixed). The quick switching of the ports does affect ability to measure very narrowband devices (less than 1kHz bandwidth), but this wasn't considered an issue because you only have 10kHz resolution at the upper frequencies anyway. If it can even track the drift of a crystal it's beyond my expectations, since it was not designed for this use case at all.
Email: OwOwOwOwO123@outlook.com
 

Offline joeqsmithTopic starter

  • Super Contributor
  • ***
  • Posts: 11696
  • Country: us
Re: NanoVNA Custom Software
« Reply #712 on: November 12, 2020, 11:44:25 am »
V2 can not resolve frequencies beyond 10kHz accuracy because the frequency step of the ADF4350 is 10kHz, not because there is significant phase noise (you can't look at the output on a spectrum analyzer because the signal is pulsed and the pulse period is not fixed). The quick switching of the ports does affect ability to measure very narrowband devices (less than 1kHz bandwidth), but this wasn't considered an issue because you only have 10kHz resolution at the upper frequencies anyway. If it can even track the drift of a crystal it's beyond my expectations, since it was not designed for this use case at all.

While being able to detect some drift may exceed your expectations and you may not consider your designs inability to be used for narrow band work an issue but I do.  It makes the product far less useful.  I assumed you would have understood the market well enough to know what requirements would be important.  Had you used the original Nano for your design criteria and met or exceeded every aspect of it,  I think you would have a great product.   It's also possible that I am not part of the targeting market.     

After being so impressed with the original Nano,  I bought yours to have a little fun with and maybe do a little promotional video for it.  It's a low cost analyzer and in this case performs like one.  I'm out a bit of cash and a couple of days work is all.  Could be worse.
« Last Edit: November 12, 2020, 12:05:03 pm by joeqsmith »
 

Offline joeqsmithTopic starter

  • Super Contributor
  • ***
  • Posts: 11696
  • Country: us
Re: NanoVNA Custom Software
« Reply #713 on: November 13, 2020, 01:33:23 am »
How bad is the V2P, following showing my old boat anchors, the original NanoVNA and the V2P.   Same fixture and 3.686MHz crystal. 

The two vintage analyzers are fairly close.  The original Nano is off by around 0.2dB.  I may have messed up the cal.   Then we have the new V2P.   The span of the V2P is set to 2KHz rather than 1KHz like the other three VNAs so at least you could see something.     
 
The following users thanked this post: xrunner

Offline OwO

  • Super Contributor
  • ***
  • Posts: 1250
  • Country: cn
  • RF Engineer.
Re: NanoVNA Custom Software
« Reply #714 on: November 13, 2020, 04:02:10 am »
Your span is 2kHz. That means the step size is 20Hz. This is not supported, as the ADF4350 step is 10kHz, and even in the si5351 region stepsizes < 1kHz are not supported (because of the high measurement bandwidth). It looks like I will have to include a check in the firmware preventing setting the span this narrow, to prevent people from accidentally setting the parameters to give meaningless readings.
Email: OwOwOwOwO123@outlook.com
 

Offline OwO

  • Super Contributor
  • ***
  • Posts: 1250
  • Country: cn
  • RF Engineer.
Re: NanoVNA Custom Software
« Reply #715 on: November 13, 2020, 04:08:45 am »
Anyway this is the first time I've heard of building a filter with ordinary crystals (more common is using an off-the-shelf SAW filter). 1kHz passband @ 150MHz is 0.0007% fractional bandwidth. Basically no physical filter can achieve that except for electroacoustic filters, and even those are generally built to give a wider, flat passband instead. So far no one else has talked about this issue so I think it's an extremely niche use case that happens to be better suited to the V1 Nano. Personally I think it's a matter of using the right tool for the job, just as a cheap LCR meter will beat any VNA measuring impedances > 10k ohms. I could design a VNA that will work for very narrowband measurements, but to do that and *also* measure up to 3GHz, have high dynamic range, and still be able to adjust the sweep speed up would mean it would cost at least 10x what it costs now.
« Last Edit: November 13, 2020, 04:13:05 am by OwO »
Email: OwOwOwOwO123@outlook.com
 

Offline joeqsmithTopic starter

  • Super Contributor
  • ***
  • Posts: 11696
  • Country: us
Re: NanoVNA Custom Software
« Reply #716 on: November 13, 2020, 01:34:42 pm »
It looks like I will have to include a check in the firmware preventing setting the span this narrow, to prevent people from accidentally setting the parameters to give meaningless readings.

I'm not aware of any error checking in the firmware outside of the undocumented checksum.   You should add that information BTW.   Adding range checks is fine but I would suggest you send a return message when each command is set so the software knows that something went wrong.   I created a simple regression test for the original Nano when the firmware was in such turmoil.  With the V2+ not supporting any boundary checks, I decided against implementing any sort of automated  tests. 

Anyway this is the first time I've heard of building a filter with ordinary crystals (more common is using an off-the-shelf SAW filter). 1kHz passband @ 150MHz is 0.0007% fractional bandwidth. Basically no physical filter can achieve that except for electroacoustic filters, and even those are generally built to give a wider, flat passband instead. So far no one else has talked about this issue so I think it's an extremely niche use case that happens to be better suited to the V1 Nano. Personally I think it's a matter of using the right tool for the job, just as a cheap LCR meter will beat any VNA measuring impedances > 10k ohms. I could design a VNA that will work for very narrowband measurements, but to do that and *also* measure up to 3GHz, have high dynamic range, and still be able to adjust the sweep speed up would mean it would cost at least 10x what it costs now.

I really don't know what the communications hobbyists, like the amateur radio operators, are up to.  I had received comments that the Nano was designed for tuning antennas and that was really it's only intended use.   That seems to represent the majority of the amateur group. 

Someone asked me about home made crystal filters and it's common enough that there have been several articles published about them over the years.   I created a thread to talk about them and to your point, it wasn't very popular. 

https://www.eevblog.com/forum/rf-microwave/fun-with-crystal-filters/msg3036196/#msg3036196

Right tool for the job in my case was helping my friend flipper learn a little about VNAs before they leaped into buying one.   The original Nano works well for that.  As I have shown in several test cases, as long as I stay below 300MHz, it throws up some very impressive data for $50.   For 3GHz, I haven't done anything outside of measuring the included loads. 

Offline joeqsmithTopic starter

  • Super Contributor
  • ***
  • Posts: 11696
  • Country: us
Re: NanoVNA Custom Software
« Reply #717 on: November 14, 2020, 12:12:13 am »
Let's have a a little fun with some higher frequency bandpass filters.  While the original Nano can actually make some measurements in excess of a GHz, it does a poor job at best so I'll leave it out of the mix.   

For starts, this is a TOKO dielectric 915MHz band pass filter, PN# 4DFA-915E-10.    Both my old boat anchor and the NanoV2+ were swept from 700MHz to 1.1GHz.  Looking good.

Offline joeqsmithTopic starter

  • Super Contributor
  • ***
  • Posts: 11696
  • Country: us
Re: NanoVNA Custom Software
« Reply #718 on: November 14, 2020, 12:17:07 am »
Sweeping both VNAs from 890MHz to 940MHz.   Again, looks decent. 

Let's have a look at something with a bit sharper skirt.   In the last attachment, Yellow is the TOKO part we just looked at.  Red is a 9 element interdigital filter.   

Offline joeqsmithTopic starter

  • Super Contributor
  • ***
  • Posts: 11696
  • Country: us
Re: NanoVNA Custom Software
« Reply #719 on: November 14, 2020, 12:21:15 am »
Let's start by sweeping from 800MHz to 1.4GHz.    Ignore the floor, really it doesn't look too bad.   This filter has a fairly flat pass band.  Maybe a tenth.

Offline joeqsmithTopic starter

  • Super Contributor
  • ***
  • Posts: 11696
  • Country: us
Re: NanoVNA Custom Software
« Reply #720 on: November 14, 2020, 12:31:53 am »
Odd, not sure what the security issue is.

Sweeping from 1.01GHz to 1.135GHz.   I had ran the Nano a few times. 

***
Just for fun, I have attached the data using the original NanoVNA. 
« Last Edit: November 14, 2020, 12:53:07 am by joeqsmith »
 
The following users thanked this post: Grandchuck

Offline joeqsmithTopic starter

  • Super Contributor
  • ***
  • Posts: 11696
  • Country: us
Re: NanoVNA Custom Software
« Reply #721 on: November 14, 2020, 08:47:56 pm »
I recently finished repairs of a "working" 100W JFW attenuator.   I changed it to use a 20dB, 150W network.   While the original attenuator was rated for 1GHz,  the new network was spec'ed to a dB up to 3GHz.  I tried it and even with the poor launch (new part is not a perfect fit), it's basically a dB out. 

So hows the Nano V2+ compare?  Not too bad. 

Data was collected using the supplied cables.  I replaced the supplied thru with a higher grade part that can be torqued.  The load was replaced with the second best Mini-Circuits ANNE I had sorted.     

https://www.eevblog.com/forum/rf-microwave/fixed-attenuator-repair-mods/

One thing I have ran into twice now with the V2+,  if I set the samples to 400 and less, the unit appears VERY stable.  I've never seen it crash after several hours of operation.   Setting it to higher values, for example 800 was used for this test, seems to cause problems where the unit will no longer communicate.  I have to power cycle the V2+ in order to recover.    Outside of that,  I haven't seen anything else I would consider a bug when using the USB. 

****
Make that three times now.  The unit basically stops sending all data.   Looking at capture.png, I was sweeping from 300KHz to 4.58GHz (unit becomes unstable above the frequency).  Sending 800 data points per sweep, it hung after 22 sweeps.   I would guess I have ran it at least 3 hours solid at 400 points.  It does not appear to be tied to the frequency range.    This graph BTW, is looking at the thru.  The unit has a but of noise at the low end it increases as we move beyond 3GHz. 
« Last Edit: November 14, 2020, 09:23:49 pm by joeqsmith »
 

Offline joeqsmithTopic starter

  • Super Contributor
  • ***
  • Posts: 11696
  • Country: us
Re: NanoVNA Custom Software
« Reply #722 on: November 14, 2020, 11:38:27 pm »
I dialed back the sample points to try and get a better look at the noise.


Noise1:  1200 sweeps 300K to 4.58GHz.
Noise3:  To zoom into the area of the low band, changed the start and stop to 99.847MHz to 99.852MHz
Note the spur is close to 99.85MHz. 

Noise4/5:  Even with 100 samples and such a narrow sweep, the spur isn't always captured.  It looks like one particular frequency.  It's amplitude varies a fair amount. 


Offline joeqsmithTopic starter

  • Super Contributor
  • ***
  • Posts: 11696
  • Country: us
Re: NanoVNA Custom Software
« Reply #723 on: November 15, 2020, 12:28:36 am »
Narrowing the span much further, reducing the number of points to 4, turning off the color mesh, we can clearly see this is a single data point.  Oddly of the 3800 sweeps, there appears to only be three states. 

Offline joeqsmithTopic starter

  • Super Contributor
  • ***
  • Posts: 11696
  • Country: us
Re: NanoVNA Custom Software
« Reply #724 on: November 15, 2020, 03:10:06 am »
Running similar tests with the V2+4.  First thing I noticed is that using the same 800 data points has yet to cause it to hang.    I also found that this particular unit would go unstable at a much lower frequency.   4.4GHz seems to be stable.

Noise7:  Sweep 300K to 4.4GHz, 800 points per sweep.   Notice the very low frequency noise is gone.  We can also see the unit drifting a bit as it warms up.  Something is happening around 900MHz.

Noise8: Looking below 1GHz.  Pretty decent.   
Noise9: Sweeping from 850 to 950, looking at raw data, we can see some short of shift happening at 910MHz.  Shouldn't cause any problems.


I like the speed of the V2+4 and having the ability to pull more samples without crashing.   I was sweeping in small segments with the original Nano to increase the resolution in order to look at narrow band parts.   Now I have all these samples and can't put them to use.   I want my cake and to be able to eat it too!! 
 
The following users thanked this post: Grandchuck


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf