seen from Colombia
seen from Moldova
seen from United States

seen from India
seen from Moldova
seen from China

seen from Singapore
seen from China
seen from China
seen from United States
seen from Yemen
seen from Malaysia

seen from Poland
seen from Germany

seen from Philippines

seen from United States

seen from United States
seen from United Kingdom

seen from United States
seen from Hong Kong SAR China

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
SSTV Image Received on 14.23 MHz USB by S59GCD in Malic, Slovenia on 2026-05-26 20:13Z Zulu. Scottie 2 #SSTV #AmateurRadio #HamRadio #GMDATT IQS3
С пятой попытки. Затягивают гайки и не дают просто так купить...
2025-09-19/20 - Base Step Beta - Italy - 14.230 Mhz - 20 Metri -SSTV Tutte --->https://www.stepart.it/index.php/it/ma/rx-tx-radio/31-ricezioni/ricezione-sstv/61-2025-09-19-20-sstv.html
Icom Inc. has released a new PDF booklet titled "The IC-905 Development Philosophy and Commitment" offering a unique insight into the creation of the innovative IC-905 Multi-Band Transceiver.
Click the link to read more!

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
Morseduino keyboard based CW keyer
Based on an Arduino nano and CardKB mini keyboard. The parts you need to build it are
Arduino nano
CardKB mini keyboard
BC547 NPN transistor
1K resistor
5v reed relay
Socket for the reed relay
Stereo jack for the output
Two on-off-on switches, for speed and power
3D printer to make the enclosure
link to enclosure below
Morseduino by M0YNWArduino based CW keyer built around the cardKB mini keyboard. Printed in ABS, fit the arduino, switches, jack and re
Wire up the speed switch with the centre pin to D13 of the Arduino, this is the reference pin. Connect the either side of the speed switch to D2 and D3 respectively
Wiring up the relay
The diode is not needed with a reed relay IC
The Arduino code
You will need this for the hardware to work, copy and paste it into Arduino IDE. Please respect my work and leave the top comment in.
/*
(c) 12/10/2024 Morseduino by Robert Rayner, M0YNW
This software has no warranty and you use it at your own risk.
*/
#include <Wire.h>
// Define pins for relay and LED
const int relayPin = 7; // relay output
const int ledPin = LED_BUILTIN; // built in LED (specify pin number if using an external LED)
const int speedSwitchA = 2; // Pin connected to one side of the switch
const int speedSwitchB = 3; // Pin connected to the other side of the switch
const int fastWPM = 20; // Fast speed (20 WPM)
const int slowWPM = 12; // Slow speed (12 WPM)
int wpm = fastWPM; // Default WPM is set to fast
// Morse code timing variables
int dotDuration, dashDuration, elementSpace, letterSpace, wordSpace;
// Morse code representation for characters (A-Z, 0-9, /, =, . ?)
const char* morseCodeMap[43] = {
".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", // A-J
"-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", // K-T
"..-", "...-", ".--", "-..-", "-.--", "--..", // U-Z
"-----", ".----", "..---", "...--", "....-", ".....", "-....", // 0-5
"--...", "---..", "----.", // 6-9
"-..-.", "..--..", "-...-", ".-.-.-" //Special characters: / . ? =
};
// CardKB I2C address
#define CARDKB_ADDR 0x5F
// Function to map character to Morse code
const char* getMorseCode(char c) {
if (c >= 'A' && c <= 'Z') {
return morseCodeMap[c - 'A'];
} else if (c >= '0' && c <= '9') {
return morseCodeMap[26 + (c - '0')];
} else if (c == '/') {
return morseCodeMap[36]; // Morse for /
} else if (c == '?') {
return morseCodeMap[37]; // Morse for ,
} else if (c == '=') {
return morseCodeMap[38]; // Morse for =
} else if (c == '.') {
return morseCodeMap[39]; // Morse for .
} else {
return ""; // Return empty for unsupported characters
}
}
// Function to read the slide switch and set WPM
void readSpeedSwitch() {
// Read both switch states with internal pull-up resistors enabled
int switchAState = digitalRead(speedSwitchA);
int switchBState = digitalRead(speedSwitchB);
// Update WPM if one switch is high and the other is low
if (switchAState == LOW && switchBState == HIGH) {
wpm = fastWPM; // Set WPM to fast speed (20 WPM)
} else if (switchAState == HIGH && switchBState == LOW) {
wpm = slowWPM; // Set WPM to slow speed (12 WPM)
}
// Update timing variables based on the current WPM
updateWpmTiming();
}
// Function to transmit Morse code
void transmitMorse(const char* morse) {
while (*morse) {
if (*morse == '.') {
digitalWrite(relayPin, HIGH);
digitalWrite(ledPin, HIGH); // Turn on LED
delay(dotDuration);
digitalWrite(relayPin, LOW);
digitalWrite(ledPin, LOW); // Turn off LED
delay(elementSpace);
} else if (*morse == '-') {
digitalWrite(relayPin, HIGH);
digitalWrite(ledPin, HIGH); // Turn on LED
delay(dashDuration);
digitalWrite(relayPin, LOW);
digitalWrite(ledPin, LOW); // Turn off LED
delay(elementSpace);
}
morse++;
}
delay(letterSpace); // Space between letters
}
// Function to read a key from CardKB
char readCardKB() {
char key = '\0'; // Initialize with null character
Wire.requestFrom(CARDKB_ADDR, 1); // Request one byte from the CardKB
if (Wire.available()) {
key = Wire.read(); // Read the byte from the CardKB
}
return key; // Return the key (or null if nothing was read)
}
// Update WPM and timing variables based on new WPM
void updateWpmTiming() {
dotDuration = 1200 / wpm;
dashDuration = dotDuration * 3;
elementSpace = dotDuration;
letterSpace = dotDuration * 3;
wordSpace = dotDuration * 7;
}
void setup() {
Serial.begin(9600);
pinMode(relayPin, OUTPUT);
pinMode(ledPin, OUTPUT); // Set the LED pin as OUTPUT
Wire.begin(); // Initialize I2C communication with the CardKB
// Enable internal pull-up resistors for the switch pins
pinMode(speedSwitchA, INPUT_PULLUP);
pinMode(speedSwitchB, INPUT_PULLUP);
digitalWrite(13, HIGH); //connect this to the centre pin of the speed switch
updateWpmTiming(); // Set initial WPM and timing values
}
void loop() {
// Read the current position of the slide switch
readSpeedSwitch();
// Read key from CardKB
char c = readCardKB();
if (c != '\0') { // If a key was pressed
Serial.print("Key pressed: ");
Serial.println(c);
const char* morse = getMorseCode(toupper(c)); // Convert to uppercase and get Morse code
if (morse[0] != '\0') { // If valid Morse code
transmitMorse(morse);
} else if (c == ' ') { // Handle space between words
delay(wordSpace);
}
}
}
Just had our live stream on my YouTube channel (NW7US) - check it out. You can fast forward past the "Stand By" period at the beginning. This is my first Space Weather and Radio Propagation livestream. Feedback is welcomed!
Join us for an informal live stream chat session about current space weather -- the Sun/Earth connection -- including sunspot activity, sola
This will occur every Sunday at about the same time - 21:15 UTC.
Spread the word!
73 de NW7US
..
"S.O.S. is for emergencies. S.O.N. is for quality time."