f5npv.wordpress.com Open in urlscan Pro
192.0.78.12  Public Scan

URL: https://f5npv.wordpress.com/sdr-trx-remote-cw/comment-page-1/
Submission: On December 17 via api from US — Scanned from DK

Form analysis 3 forms found in the DOM

POST https://f5npv.wordpress.com/wp-comments-post.php

<form action="https://f5npv.wordpress.com/wp-comments-post.php" method="post" id="commentform" class="comment-form" novalidate="">
  <div id="comment-form__verbum" class="transparent"></div>
  <div class="verbum-form-meta"><input type="hidden" name="comment_post_ID" value="94" id="comment_post_ID">
    <input type="hidden" name="comment_parent" id="comment_parent" value="0">
    <input type="hidden" name="highlander_comment_nonce" id="highlander_comment_nonce" value="2e13abe5c9">
    <input type="hidden" name="verbum_show_subscription_modal" value="">
  </div>
  <p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="7500f0594c"></p>
  <p style="display: none !important;" class="akismet-fields-container" data-prefix="ak_"><label>Δ<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js"
      value="1734415767359">
    <script>
      document.getElementById("ak_js_1").setAttribute("value", (new Date()).getTime());
    </script>
  </p>
</form>

POST https://subscribe.wordpress.com

<form method="post" action="https://subscribe.wordpress.com" accept-charset="utf-8" style="display: none;">
  <div class="actnbr-follow-count">Join 71 other subscribers</div>
  <div>
    <input type="email" name="email" placeholder="Enter your email address" class="actnbr-email-field" aria-label="Enter your email address">
  </div>
  <input type="hidden" name="action" value="subscribe">
  <input type="hidden" name="blog_id" value="178493744">
  <input type="hidden" name="source" value="https://f5npv.wordpress.com/sdr-trx-remote-cw/comment-page-1/">
  <input type="hidden" name="sub-type" value="actionbar-follow">
  <input type="hidden" id="_wpnonce" name="_wpnonce" value="0e21cd9cc0">
  <div class="actnbr-button-wrap">
    <button type="submit" value="Sign me up"> Sign me up </button>
  </div>
</form>

<form id="jp-carousel-comment-form">
  <label for="jp-carousel-comment-form-comment-field" class="screen-reader-text">Write a Comment...</label>
  <textarea name="comment" class="jp-carousel-comment-form-field jp-carousel-comment-form-textarea" id="jp-carousel-comment-form-comment-field" placeholder="Write a Comment..."></textarea>
  <div id="jp-carousel-comment-form-submit-and-info-wrapper">
    <div id="jp-carousel-comment-form-commenting-as">
      <fieldset>
        <label for="jp-carousel-comment-form-email-field">Email (Required)</label>
        <input type="text" name="email" class="jp-carousel-comment-form-field jp-carousel-comment-form-text-field" id="jp-carousel-comment-form-email-field">
      </fieldset>
      <fieldset>
        <label for="jp-carousel-comment-form-author-field">Name (Required)</label>
        <input type="text" name="author" class="jp-carousel-comment-form-field jp-carousel-comment-form-text-field" id="jp-carousel-comment-form-author-field">
      </fieldset>
      <fieldset>
        <label for="jp-carousel-comment-form-url-field">Website</label>
        <input type="text" name="url" class="jp-carousel-comment-form-field jp-carousel-comment-form-text-field" id="jp-carousel-comment-form-url-field">
      </fieldset>
    </div>
    <input type="submit" name="submit" class="jp-carousel-comment-form-button" id="jp-carousel-comment-form-button-submit" value="Post Comment">
  </div>
</form>

Text Content

Skip to content

F5NPV – V85NPV

Amateur Radio – Ham Radio – Radioamateur

Menu + × expanded collapsed
 * HOME
 * Blog
 * The Shack
 * W8JK Antenna
 * W8JK/MOXON
 * ENDFED/EFHW Antenna & Choke
 * EndFed Random Wire ‘’ EFRW’’ Antenna
 * DX Commander Enhanced Ground Screen
 * Fuchskreis Antenna & Remote Wifi Automatic ATU
 * Cubical Quad Antenna 2 elements 5 bands
 * 1KW ANTENNA TUNER (WIFI)
 * PA0FRI S-Match ATU
 * UBITX V4
 * UBITX V5
 * UBITX Portable
 * SDR TRX & Remote Control
 * SDR TRX Remote CW
 * TRX & Shack Midi Controller
 * piHPSDR
 * Homebrew LMR SDR TRX
 * Homebrew uSDX TRX
 * IRF530 30w Mosfet Amplifier
 * uSDX SDR 1.02 Alternative Design
 * Homebrew FT8QRP AFP/FSK TRX
 * EL519/6P45S(6П45C) 300w HF AMPLIFIER
 * Pure Signal & RF sampler
 * Automatic LPF & Amplifier Controller
 * 1KW Wet Dummy Load
 * Links
 * My Lab
 * Logbook
 * Contact


SDR TRX REMOTE CW


CW REMOTE CONTROL SETUP

The good thing with SDR TRX is remote control capabilities:

 * My SDR is driven by Quisk with a Raspberry PI 3B+ with Rasbian Buster
 * For DATA mode i am using VNC
 * For Voice i am using Mumble and VNC
 * For CW i am using a mod from IW7DMH and for details please check the
   following
   website: https://iw7dmh.jimdofree.com/utilities-for-remote-operations/sw-keyer-for-remote-operations/

I can drive my Rig from the garden but even from internet or abroad. With all
the software open the Raspberry reach only 60% of CPU (Quisk + Mumble + Bash
sript + CQRLOG).

Regarding the Bash script , find hereafter the one for Rasbian Buster.

You need to install NMAP and GPIO libraries


INSTALL NMAP

In order to have NMAP capabilities for Network scanning (ncat) you need to
install it

 sudo apt-get install nmap

To verify the installation :

# nmap -V

Output example :

Nmap version 7.60 ( https://nmap.org )
Platform: x86_64-pc-linux-gnu
Compiled with: liblua-5.3.3 openssl-1.0.2g nmap-libssh2-1.8.0 libz-1.2.8 libpcre-8.39 libpcap-1.8.1 nmap-libdnet-1.12 ipv6
Compiled without:
Available nsock engines: epoll poll select


INSTALL NCAT

Nmap should install NCAT since most of the time they are in the same package .
Therefore it can happen you will need to install it manually



First verify if NCAT is installed :

# ncat -v

If you have no response it means you will need to install it manually .

Download the NCAT package from here : download NCAT package from
: http://ftp.us.debian.org/debian/pool/main/n/nmap/ncat_7.70+dfsg1-6+deb10u2_armhf.deb

#sudo dpkg -i ncat_7.70+dfsg1-6+deb10u2_armhf.deb
Then 
# ncat -v 
at this stage you should have the ncat 7.70 release installed in your BUSTER


VERIFY YOUR GPIO

To verify if your GPIO is installed :

In a terminal just type : gpio -v
you should have some result likely :
pi@raspberrypi:~ $ gpio -v
gpio version: 2.50

You can verify also typing :
pi@raspberrypi:~ $ gpio readall
Oops – unable to determine board type.
—> This means no gpio libraries are installed




INSTALL GPIO ON RASPBIAN BUSTER

You will need to install WIRINGPI

First you need to download:

wget https://project-downloads.drogon.net/wiringpi-latest.deb
--2019-08-29 10:30:42-- https://project-downloads.drogon.net/wiringpi-latest.deb
Résolution de project-downloads.drogon.net (project-downloads.drogon.net)… 188.246.205.22, 2a03:9800:10:7b::2
Connexion à project-downloads.drogon.net (project-downloads.drogon.net)|188.246.205.22|:443… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 52260 (51K) [application/x-debian-package]
Sauvegarde en : « wiringpi-latest.deb »
wiringpi-latest.deb 100%[===================&gt;] 51,04K 204KB/s ds 0,3s
2019-08-29 10:30:43 (204 KB/s) — « wiringpi-latest.deb » sauvegardé [52260/52260]

--------------------------------------------------------------------------------



Then to install :

sudo dpkg -i wiringpi-latest.deb
(Lecture de la base de données... 158515 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de wiringpi-latest.deb ...
Dépaquetage de wiringpi (2.52) sur (2.50) ...
Paramétrage de wiringpi (2.52) ...
Traitement des actions différées (« triggers ») pour man-db (2.8.5-2) ...

Then to verify

pi@raspberrypi:/tmp $ gpio -v
gpio version: 2.52
Copyright (c) 2012-2018 Gordon Henderson
This is free software with ABSOLUTELY NO WARRANTY.
For details type: gpio -warranty
Raspberry Pi Details:
Type: Pi 4B, Revision: 01, Memory: 2048MB, Maker: Sony 
* Device tree is enabled.
*--&gt; Raspberry Pi 4 Model B Rev 1.1
* This Raspberry Pi supports user-level GPIO access.
pi@raspberrypi:/tmp $

When you have installed the GPIO LIBRARIES you can verify it and type : gpio
readall

you should have a result likely :




TEST IT

To test the GPIO and your Hermes lite , you can use the following script


#! /bin/bash
gpio mode 27 out 
while true; do 
 gpio write 27 1
 sleep 1
 gpio write 27 0
 sleep 1
done



Your Hermes Lite should transmit a brief CW carrier


THE SCRIPT

The following Shell script will need to be started on your RPI in order to
initiate, scan and open the link for your Windows remote computer:

#!/bin/bash
sudo echo "27" > /sys/class/gpio/export
sleep 1
sudo echo "out" > /sys/class/gpio/gpio27/direction
sleep 1
sudo echo "1" > /sys/class/gpio/gpio27/value
sleep 1
PORT=11005
echo "========================================================="
echo "= Remote CW by IW7DMH mod by F5NPV for RASPBIAN BUSTER  ="
echo "=  Start listening on port $PORT ...ctrl+c to exit"     =
echo "========================================================="
while read line
do
    #echo $line
    #echo $line | od -An -t uC
    cmd=${line:0:1}
    #echo $cmd
    #echo $cmd | od -An -t uC

case "$cmd" in
    0) #echo "000"
       echo "1" > /sys/class/gpio/gpio27/value
       cat /sys/class/gpio/gpio27/value
       ;;
    1) #echo "111"
       echo "0" > /sys/class/gpio/gpio27/value
       cat /sys/class/gpio/gpio27/value
       ;;
    3) echo "Going to stop listener ..."
       break
       ;;
    *) #echo "unknown cmd"
       ;;   
esac
done < <((echo "Welcome. Please give me one of the following commands: 0 | 1 | 3") | ncat -k -l $PORT)
echo "... listener stopped."
GPIO.cleanup()
exit 0

--------------------------------------------------------------------------------

if you intend to reverse the GPIO wiring you will need to modify the code :


The following underline code should be modified

  0) #echo "000"
       echo "1" > /sys/class/gpio/gpio27/value
       cat /sys/class/gpio/gpio27/value
       ;;
    1) #echo "111"
       echo "0" > /sys/class/gpio/gpio27/value
       cat /sys/class/gpio/gpio27/value
       ;;

With 

  0) #echo "000"
       echo "0" > /sys/class/gpio/gpio27/value
       cat /sys/class/gpio/gpio27/value
       ;;
    1) #echo "111"
       echo "1" > /sys/class/gpio/gpio27/value
       cat /sys/class/gpio/gpio27/value
       ;;



Some pics for the CW interface and overview of the setup for RIG remote control

For the  Hermes Lite , you will need to connect the CN4 to the GPIO 27 on the
Raspberry + ground









SHARE THIS:

 * Twitter
 * Facebook
 * 

Like Loading...


19 THOUGHTS ON “SDR TRX REMOTE CW”

 1. Chris says:
    May 4, 2021 at 7:28 am
    
    Bonjour Rene, I notice in the top image it looks like quisk is showing cw
    skimmer output. Please tell me how this is done.
    
    Regards and thanks
    Chris
    
    LikeLike
    
    Reply
    1. F5NPV says:
       May 4, 2021 at 11:44 am
       
       Hello Chris ,
       
       This is not CW skimmer , the callsign are from DXCLUSTER server you can
       activate in QUISK configuration . You need to setup the dxcluster Address
       and port + the number of lines you want to be display
       73s Didier
       
       LikeLike
       
       Reply
       
    
 2. Charlie Rubenstein says:
    October 23, 2021 at 5:17 am
    
    Hello Rene: You mention for the Hermes Lite “you will need to connect the
    CN4 to the GPIO 27 on the Raspberry + ground”. I have a Hermes Lite 2. What
    is CN4? I planned to connect ground and GPIO 27 to a 3.5mm plug into the
    front of the HL2.
    
    Thanks,
    
    73 de Charlie KB8CR
    
    LikeLike
    
    Reply
    1. F5NPV says:
       October 23, 2021 at 9:47 am
       
       Hello Charlie , CN4 is the PTT Key plug from the front panel
       73s Didier
       
       LikeLike
       
       Reply
       1. Charlie Rubenstein says:
          October 23, 2021 at 9:14 pm
          
          Thank you Didier. I finally looked at the schematic, and saw that CN4
          *is* the Key/PTT plug on the front. I plan to build this interface for
          my HL2. I have a spare Raspberry Pi Zero that I plan to use. I am very
          impressed with the Hermes Lite. It rivals my Flex6400 and Flex3000 for
          RX performance. I also have a Pi4 with touchscreen that I am trying
          PiHPSDR on, and it is working well with the Hermes.
          
          I noticed on your website a picture where there is a box labeled “wifi
          PWR/SWR”. I am very interested in finding plans for a Power/SWR meter
          that can be read through a serial port, or via wifi. This is because
          all of my equipment is remote to my operating position. Also, if it
          can be read by a serial port, I can integrate it with NodeRed to be
          viewed on a browser.
          
          Best 73 mon ami,
          
          de Charlie KB8CR
          
          LikeLike
       
          
       2. F5NPV says:
          October 23, 2021 at 11:25 pm
          
          Hello,
          For the REMOTE WIFI SWR/PWR i will recommand :
          https://github.com/ra0sms/SWR_PWR_meter
          
          The best in town ; Mine is working ok but the one for RA0SMS is better
          
          i am using a lot my Hermes lite remotely from my sofa and i will
          recommand SDR CONSOLE . This Software is providing a better latency
          and buffer management against the lag from the wifi network.
          
          LikeLike
       
          
       3. Charlie Rubenstein says:
          October 23, 2021 at 10:00 pm
          
          Hello Didier:
          
          Well, I made a script from your site for Buster, and when I ran it, I
          got the following errors:
          
          pi@SDRPlay:~ $ ./remotecw.sh
          echo: write error: Invalid argument
          ./remotecw.sh: line 5: /sys/class/gpio/gpio27/direction: No such file
          or directory
          ./remotecw.sh: line 7: /sys/class/gpio/gpio27/value: No such file or
          directory
          “=========================================================”
          “= Remote CW by IW7DMH mod by F5NPV for RASPBIAN BUSTER =”
          “= Start listening on port 11005 …ctrl+c to exit” =
          “=========================================================”
          ./remotecw.sh: line 46: ncat: command not found
          ./remotecw.sh: line 46: 1: command not found
          ./remotecw.sh: line 46: 3”: command not found
          “… listener stopped.”
          
          I don’t know what I did wrong. I have nmap installed.
          
          73 de Charlie KB8CR
          
          LikeLike
       
          
       4. F5NPV says:
          October 23, 2021 at 11:23 pm
          
          Hello Charlie, according the error messages i think you forgot to
          install the GPIO libraries.
          
          In a terminal just type : gpio -v
          you should have some result likely :
          pi@raspberrypi:~ $ gpio -v
          gpio version: 2.50
          
          You can verify also typing :
          pi@raspberrypi:~ $ gpio readall
          Oops – unable to determine board type.
          —> This means no gpio libraries are installed
          
          When you have installed the GPIO LIBRARIES you can verify it and type
          : gpio readall
          
          73s Didier
          
          LikeLike
       
          
       5. F5NPV says:
          October 24, 2021 at 12:23 am
          
          Hello Charlie,
          
          I have updated the webpage and add all information for how to install
          the GPIO and NMAP in RASPBIAN and how to test it . i think it more
          clear now since i have realized it is a bit fuzzy regarding the
          initial and previous information provided.
          73s Didier
          
          LikeLike
       
          
       
    

    

 3. Charlie Rubenstein says:
    October 24, 2021 at 3:17 am
    
    I typed in gpio -v, and got this response:
    
    pi@SDRPlay:~ $ gpio -v
    gpio version: 2.52
    Copyright (c) 2012-2018 Gordon Henderson
    This is free software with ABSOLUTELY NO WARRANTY.
    For details type: gpio -warranty
    
    Raspberry Pi Details:
    Type: Pi 4B, Revision: 01, Memory: 4096MB, Maker: Sony
    * Device tree is enabled.
    *–> Raspberry Pi 4 Model B Rev 1.1
    * This Raspberry Pi supports user-level GPIO access.
    
    I tried the “gpio readall” and it gave me a whole list of each of the GPIO
    pins and their status.
    
    pi@SDRPlay:~ $ gpio readall
    +—–+—–+———+——+—+—Pi 4B–+—+——+———+—–+—–+
    | BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM |
    +—–+—–+———+——+—+—-++—-+—+——+———+—–+—–+
    | | | 3.3v | | | 1 || 2 | | | 5v | | |
    | 2 | 8 | SDA.1 | IN | 1 | 3 || 4 | | | 5v | | |
    | 3 | 9 | SCL.1 | IN | 1 | 5 || 6 | | | 0v | | |
    | 4 | 7 | GPIO. 7 | IN | 1 | 7 || 8 | 1 | IN | TxD | 15 | 14 |
    | | | 0v | | | 9 || 10 | 1 | IN | RxD | 16 | 15 |
    | 17 | 0 | GPIO. 0 | IN | 1 | 11 || 12 | 1 | IN | GPIO. 1 | 1 | 18 |
    | 27 | 2 | GPIO. 2 | IN | 1 | 13 || 14 | | | 0v | | |
    | 22 | 3 | GPIO. 3 | IN | 1 | 15 || 16 | 1 | IN | GPIO. 4 | 4 | 23 |
    | | | 3.3v | | | 17 || 18 | 1 | IN | GPIO. 5 | 5 | 24 |
    | 10 | 12 | MOSI | IN | 1 | 19 || 20 | | | 0v | | |
    | 9 | 13 | MISO | IN | 1 | 21 || 22 | 1 | IN | GPIO. 6 | 6 | 25 |
    | 11 | 14 | SCLK | IN | 1 | 23 || 24 | 1 | IN | CE0 | 10 | 8 |
    | | | 0v | | | 25 || 26 | 1 | IN | CE1 | 11 | 7 |
    | 0 | 30 | SDA.0 | IN | 1 | 27 || 28 | 1 | IN | SCL.0 | 31 | 1 |
    | 5 | 21 | GPIO.21 | IN | 1 | 29 || 30 | | | 0v | | |
    | 6 | 22 | GPIO.22 | IN | 1 | 31 || 32 | 1 | IN | GPIO.26 | 26 | 12 |
    | 13 | 23 | GPIO.23 | IN | 1 | 33 || 34 | | | 0v | | |
    | 19 | 24 | GPIO.24 | IN | 1 | 35 || 36 | 1 | IN | GPIO.27 | 27 | 16 |
    | 26 | 25 | GPIO.25 | IN | 1 | 37 || 38 | 1 | IN | GPIO.28 | 28 | 20 |
    | | | 0v | | | 39 || 40 | 1 | IN | GPIO.29 | 29 | 21 |
    +—–+—–+———+——+—+—-++—-+—+——+———+—–+—–+
    | BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM |
    +—–+—–+———+——+—+—Pi 4B–+—+——+———+—–+—–
    
    I think it is installed. But I still get the same errors.
    
    Charlie KB8CR
    
    LikeLike
    
    Reply
    
 4. Charlie Rubenstein says:
    October 24, 2021 at 3:29 am
    
    I see that I did not run dpkg on wiringpi. After doing so, I tried again,
    and still get an error(s). But now it responds with:
    
    pi@SDRPlay:~ $ ./remotecw
    =========================================================
    = Remote CW by IW7DMH mod by F5NPV for RASPBIAN BUSTER =
    = Start listening on port 11005 …ctrl+c to exit =
    =========================================================
    ./remotecw: line 36: ncat: command not found
    … listener stopped.
    ./remotecw: line 39: syntax error near unexpected token `exit’
    ./remotecw: line 39: `exit 0′
    
    Charlie KB8CR
    
    LikeLike
    
    Reply
    1. F5NPV says:
       October 24, 2021 at 7:21 am
       
       Hello,
       
       Ncat/Nmap are not installed properly
       
       you can try to download NCAT package from :
       http://ftp.us.debian.org/debian/pool/main/n/nmap/ncat_7.70+dfsg1-6+deb10u2_armhf.deb
       
       And then use dpkg to install it. Then run ncat -v in a terminal to verify
       it is installed
       73s Didier
       
       LikeLike
       
       Reply
       
    

    

 5. Charlie Rubenstein says:
    October 24, 2021 at 5:46 pm
    
    Thanks for the extra info. Yes, it appears that nmap installed but not ncat.
    I run the main script now, and get this:
    
    pi@SDRPlay:~ $ ./remotecw
    echo: write error: Device or resource busy
    =========================================================
    = Remote CW by IW7DMH mod by F5NPV for RASPBIAN BUSTER =
    = Start listening on port 11005 …ctrl+c to exit =
    =========================================================
    
    It looks like it is running now. I will have to connect to the GPIO pin now
    and test it.
    
    73 de Charlie KB8CR
    
    LikeLiked by 1 person
    
    Reply
    1. F5NPV says:
       October 24, 2021 at 9:39 pm
       
       All good Charlie, you will need to try now
       
       LikeLike
       
       Reply
       
    
 6. Charlie says:
    October 24, 2021 at 10:44 pm
    
    Thank you so much, Didier ! I’m awaiting a 4N35 optoisolator to connect it,
    but can see the 0’s and 1’s on the terminal when I key it, so I’m sure it’s
    working.
    
    73 de Charlie KB8CR
    
    LikeLike
    
    Reply
    
 7. Suitbert says:
    April 19, 2022 at 11:23 am
    
    Hello,
    when downloading the the CW-keyer-program I do get a message, that there is
    a “Trojan.Crypt.MSIL.Generic” included! Is there anything I can do? Is this
    topic known already? Thanks for your help.
    regards,
    Suitbert, DF2PI
    
    LikeLike
    
    Reply
    1. F5NPV says:
       April 19, 2022 at 1:35 pm
       
       Hello,
       
       i think you are referring to the program you found here
       https://iw7dmh.jimdofree.com/utilities-for-remote-operations/sw-keyer-for-remote-operations/.
       i downloaded the CW software years ago and maybe there is a new release
       infected by a virus. Maybe you can contact iw7dmh and check with him.
       73s Didier
       
       LikeLike
       
       Reply
       
    

    

 8. Dale says:
    December 26, 2022 at 8:25 am
    
    Didier, I found my remote RasPi CW bash script not working and eventually
    found your page. I have been using the IW7DMH version originally on my
    Apache SDR and now my Flex 6400. I think my Pi automatically upgraded to
    Bullseye which caused the original script to stop working. Thanks for
    providing a solution for my Flex and RasPi remote setup. Dale VK5DC
    
    LikeLike
    
    Reply
    1. F5NPV says:
       December 26, 2022 at 1:00 pm
       
       Hello Dale , since i am not using Raspbian bulleye i have no idea at this
       stage . I will recommand to check if Ncap, Nmap and Gpio are properly
       installed. You will need to check with Raspi-config if the Gpio are
       activated. My understanding is bulleye is providing a lot of issues to
       users and my recommandation is to stick on Buster for sure.
       73s Didier
       
       LikeLike
       
       Reply
       
    


LEAVE A COMMENT CANCEL REPLY

Δ

F5NPV – V85NPV, Create a free website or blog at WordPress.com.

 * Subscribe Subscribed
    * F5NPV - V85NPV
      
      Join 71 other subscribers
      
      Sign me up
    * Already have a WordPress.com account? Log in now.

 * Privacy
 *  * F5NPV - V85NPV
    * Customize
    * Subscribe Subscribed
    * Sign up
    * Log in
    * Copy shortlink
    * Report this content
    * View post in Reader
    * Manage subscriptions
    * Collapse this bar

 

Loading Comments...

 

Write a Comment...
Email (Required) Name (Required) Website

%d
Design a site like this with WordPress.com
Get started