Provided by: xsmc-calc_1.0.0-6.1_amd64 bug


       xsmc - An X Smith Chart Calulator for RF impedance matching


       xsmc [ -h ]


       xsmc  is  a  X  application  that  allow to do all the calculation usually done on a Smith
       Chart.  It permits to make  calculation  for  network  composed  by  resistor,  capacitor,
       inductance,  and  trasmission  (also  as  stub).  Network topology is limitated to series,
       parallel and as trasmissive for trasmission line. No  series  connection  are  allowed  in
       parallel  branch,  neither  parallel connection in series branch.  Trasmission line can be
       placed as quadrupole or as a parallel or series stub, either  opened  or  shorted  at  the
       other end.

       Calculation  procedure  starts  with  setting  initial impedance to be match, next network
       elements are added and tuned to obtain the desidered impedance value.

       The network so obtained can be saved in spice format for other analisys.

       The initial (start) impedance is thought as "the load" so when adding a  trasmission  line
       placed  as  a  quadrupole  rotation  is  clockwise, going "toward generator"; generator is
       placed after the last network element, as can be seen from spice output.


       -h     A little help.


       xsmc dosn't have menu or such simple command explained in its windows, since it's intended
       for  an exentesive use where several repetitive command has to be issued during a session.
       So nearly all the command has to be issued  as  a  single  keystroke.   This  is,  in  the
       author's  opinion,  the  preferable way for very specialistic programs that has to be used

       q      Quit the program.

       1      Toggle visualization of impedance (Z) circle

       2      Toggle visualization of admittance (Y) circle

       3      Toggle visualization of reflection coefficient (RHO) circle

       4      Toggle visualization of constant Q circle

       s      Set start point
                  z: set start point as impedance
                  y: set start point as admittance
                  r: set start point as refletction coefficient

       0 (zero)
              Set characteristic impedance z0

       f      Set frequency (f0)

       a      Add a network element (see dialog window explaination):
                  r: add a resistor
                  l: add an inductor
                  c: add a capacitor
                  t: add a transmission line or stub

       i      Insert a network element before the highlighted element, as in 'a'

       d      Delete the currently highligthed element

       Curs Up
              Highlight previous element

       Curs Down
              Highlight next element

       Curs Left
              Decrease the first field of currently highlighted element

       Curs Rigth
              Increase the first field of currently highlighted element

       Shift+Curs Left
              Decrease the second field of currently highlighted element

       Shift+Curs Rigth
              Increase the second field of currently highlighted element

       Page Up
              Increase the tuning increment

       Page Down
              Decrease the tuning increment

       w      Write network file:
                  s: spice format
                  r: RFCS format (to be implemented, when RFCS will exist)

       =      Change first field and placement of currently highlighted element

       *** Of future implementation ***

                     o      Start optimization, ESC to stop.

                     l      Lock currently highlighted element for optimization

                     p      Print smitchart on a postscript file

              DIALOG WIN

              The interactive command that require data input uses a common entry  point  located
              in  the  bottom  right of the window, called the dialog win. It's a three row entry
              point: the top one show the item to be introduced, that is the title of the  dialog
              win.  The  intermediate  one  can  exist  or  not  depend on the kind of data to be
              inserted: if present is a single key choice; when the choice is done this  menu  is
              replaced by a letter indicating the choice done.  The bottom line is the entry line
              when values are supplied (for current version cursor indicating where keypress will
              be echoed are not implemented).

              The  format  for data entry can be a single number, or a more complex string. First
              of all every number can be supplyed using standar prefix for unit of measure i.e.:

                     a      (atto) 1e-18

                     f      (femto) 1e-15

                     p      (pico) 1e-12

                     n      (nano) 1e-9

                     u      (micro) 1e-6

                     m      (milli) 1e-3

                     k      (kilo) 1e3

                     M      (mega) 1e6

                     G      (giga) 1e9

                     T      (tera) 1e12
              Note that for spice output format mega is written as MEG instead of M, that will be
              otherwise recognized by spice as milli.

              Where  a  complex  number is required both the rectangular and the polar format are
              recognized: the former can be supplied as '12.3-j456m'  while  the  latter  can  be
              supplied  as  '34.2  145' meaning a modulus of 34.2 with a phase of 145 degrees. If
              the complex number is purely immaginary only something like 'j82' can be  supplied,
              while if immaginary part is zero a single number can be given.

              When  the  data  to  be  inserted in the last line must contain both a number and a
              placement (i.e. the resistor value and if it is placed in series  or  in  parallel)
              the  placement  must  be  specified  after the value as a single letter (see below)
              separated by a space.

                     s      Series placement

                     p      Parallel placement

                     t      Trasmission line placed in trasmissive mode, i.e. as a quadrupole

                     o      Open parallel stub

                     c      Short parallel stub

                     a      Open series stub

                     l      Short series stub
              And if you are again in dubt about how placement are save the network  as  a  spice
              file and look at it...


       The single window of xsmc is divided in four parts:

       -      The  Smith  chart  itself in the upper left portion, where arcs and constant circle
              are drawn.

       -      The vertical bar on the rigth of the Smith chart, where initial, final  and  cursor
              impedance are presented togheter general data.

       -      The  horizontal  bar  on  the  bottom  of Smith chart where the network element are

       -      The dialog portion in the lower right portion, where data are introduced.


       Let's try a simple example to understand  how  xsmc  work.  Suppose  to  have  a  load  of
       10-j35ohm  to  be  matched to 50+j0ohm at an operating frequency of 15.5MHz and we can use
       only concentrated reactive elements, i.e. inductances and capacitors.

       So start with setting operating frequency: press 'f' and in the dialog win the string 'f0'
       appear;  since the data requested is a single number the middle line is unused, and in the
       bottom line the frequency can be introduced. Type the string '15.5M' and then  enter.  Now
       in the vertical bar the frequency entered is displayed.

       Next  set  the  start point impedance: press 's' and in the dialog win top line appear the
       title "Start Point"; in the middle line the choices "Z Y Rho" are displayed, so press  'z'
       to  insert  starting point as impedance. The choices' string are substituted by the actual
       choice, that's 'z'. Now the impedance can be entered as the string small oval (3x2pixel!).

       The network has now to be constructed, use 'a' command to add  elements  to  network.  Let
       start  with  a series inductance of 800nH, so press 'a' and then chose 'l', next introduce
       the value as '800n s' and enter that means 800nH placed in series. This  value  is  really
       too  large,  use  left  cursor  to reduce a bit. Up to where? Let's help you displaing the
       admittance constant circles pressing '2', the arc should arrive to the  G=1  circle  (also
       called the mirror circle), it's arround 546nH.

       Now  add  a  capacitor in parallel connection, saying of 200pF: press 'a' then 'c' and now
       insert the string '200p p'. Now the admittance circles may confuse, remove it by  pressing
       '2'  again.  The value of 200pF is too small, enlarge it by pressing the left cursor up to
       get the end point near to the chart's center. The point reached with 429pF has nearly zero
       imaginary but is 43ohm of real part instead of 50ohm.

       So back to the inductance and try to modify it, with cursor up move to the first component
       and then try to change the inductance value by pressing cursor left and right. The changes
       are  too  large  and  50+j0  cannot be reached. So press PageDown and the "tunestep" value
       shown in the vertical bar is reduced from 10% to 5%, try again  to  use  curors  left  and
       right.  Better. Now do the same on the capacitor, moving to it by pressing cursor down and
       than adjusting value as for the inductance.

       Final values should be arround 568nH and 408pF. Now you want to see what appen  using  the
       closest  standard  commercial  values,  that  is 560nH and 390pF in the E12 series. Select
       (with cursor up), if needed, the inductance and then press '=', the dialog  window  appear
       (middle  line  is  unused)  and  the  string  '560n  s' has to be introduced. Next move to
       capacitor (curs down) and pressing '=' here insert  '390p  p'.  The  final  result  is  of
       SWR=1.14, if it's enough for you...

       Moving  the  mouse  to  the point where the to arcs ends you can see that the point has an
       impedance of about 10+j20ohm.

       Trasmission line and resistor can be  used  similary  refer  to  the  section  INTERACTIVE
       COMMANDS  for knowing how they can be placed.  The major difference with transmission line
       is that they have to parameter, the electrical lenght and the caracteristic impedance: the
       former  can  be adjusted with cursor left/rigth as for resistor, inductance and capacitor;
       the latter can be adjusted with Shift+cursor left/right.  For  introducing  parameter  for
       transmission line the string to be entered in the bottom line of dialog win must be

       "<electrical length [deg]> <characteristic impedance> <placement>".

       Now  the  network  can  be saved pressing 'w': actually only spice format is supported, so
       type 's' and than enter a valid filename, e.g. 'net1.cir'. The file so  generated  can  be
       now  analized  with  spice  simulator;  maybe  you are intereste in simulating it sweeping
       arround 15.5MHz, so modify the line

            .ac lin 1  15.50MEG  15.50MEG


            .ac lin 51  10MEG  30MEG

       and run spice.


       xsmc dosen't need  any  (configuration)  file.   File  describing  the  network  currently
       analized  can be generated, it's only needed that a minimum file permission is allowed, if
       not the program can, however work, but data cannot be saved.


       xsmc dosen't need any special file (such as fifos, etc...).


       xsmc dosen't care about environment.


       Porting can be very very difficult, since all is based on X windows programming,  but  for
       other platform a plenty of similar program are available, free and good one too.


       ·  When  in dialog window if resizing or other windows signal occour the dialog session is

       Help me to find  more.


       In order of importance and urgence:

       · Automatic optimization function, comprising a target settting (not alwais  one  want  to
       match to z0) and a component locking.

       · Postscript printing of chart and arcs.

       · Cursor in the dialog window.

       · Auxiliary window for error reporting instead of stderr.


       This program is free software; you can redistribute it and/or modify it under the terms of
       the GNU General Public License as  published  by  the  Free  Software  Foundation;  either
       version 2 of the License, or (at your option) any later version.


        Lapo Pieri  (IK5NAX)

        Home address: via A. dei Corbizi 9  I-50127 Firenze Italy
        Phone: +39 055 410209
        packet radio: