Mostrar Mensajes

Esta seccin te permite ver todos los posts escritos por este usuario. Ten en cuenta que slo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - EA1DDO

Páginas: [1] 2
1
Todo lo demás / Q5 Signal - Transverters
« en: Julio 06, 2019, 09:07:16 pm »
Hola,

La gente de Down East Microwave "DEMI" han vendido su negocio a una nueva empresa llamada Q5 Signal.

http://q5signal.com/



Esta nueva empresa tiene a la venta muchos transverters desde 50 MHz hasta 1296 MHz.

73, Máximo - EA1DDO

2
Todo sobre Antenas / Antena Helicoidal
« en: Julio 02, 2019, 04:08:43 pm »
Hola,

Hace unos meses, en donde trabajo, un compañero tenía un problema y y le dije que probara con polarización circular. Pero al parecer ya no había de esas antenas.
Sin decirle nada, me propuse hacer una y regalársela.

Toda la historia está aquí: http://www.ea1ddo.es/Antena_Helicoidal.php

Me llevó bastante tiempo pues no tengo mucho libre, y la fui haciendo con cosas caseras y piezas de ferretería, pero quedó bien.
Y cuando la llevé a la oficina fue toda una sorpresa.

73, Máximo - EA1DDO

3
Analisis de Equipos comerciales / Nuevo Elecraft K4
« en: Junio 14, 2019, 11:58:21 am »
Hola,

Elecraft a anunciado el nuevo K4.

https://elecraft.com/products/k4-transceiver

Es un equipo 100% SDR.
Al ser SDR ofrece dos receptores.
Tiene la pantalla del P3.
Habrá tres modelos: K4, K4D (dos receptores independientes) y K4HD (filtros extra).

Precio de salida: $3999 = € 3550



73, Máximo - EA1DDO

4
Analisis de Equipos comerciales / Ruido de Fase - Comparación equipos
« en: Abril 25, 2019, 02:39:08 pm »
Hola,

Quería seguir un poco los comentarios que empecé en este otro hilo:

https://www.ure.es/foros/hf/nuevo-icom-ic7851-numeros-de-miedo/#post-266195

Ruido de fase en Tx a 2Khz dBc/Hz
Tablas de la revista QST

Yaesu FT Dx-101D-150
Anand-8000DLE-141
IC-7610-139
Flex-6700-138
K3S-138
Orion-137
IC-7851-125
Anand-100D-125
K3-122
Hilberling-120
FT Dx-5000-120
TS-890S-118
TS-990S-110
TS-590SG-106
IC-7800-102




 [ You are not allowed to view attachments ]







 [ You are not allowed to view attachments ]



 [ You are not allowed to view attachments ]

 [ You are not allowed to view attachments ]

5
Analisis de Equipos comerciales / Icom IC-7610 Technical report v3
« en: Enero 24, 2019, 10:08:23 pm »
Hola,

Icom acaba de publicar el Technical report v3 del IC-7610.
Se puede descargar el PDF aquí: https://www.icomuk.co.uk/files/icom/PDF/newsFile/IC-7610_Technical_Report_Vol3_Eng.pdf

73, Máximo - EA1DDO

 [ You are not allowed to view attachments ]

6
Todo lo demás / Steve G3TXQ D.E.P.
« en: Enero 01, 2019, 07:07:22 pm »
Hola,

Lamento comentar que Steve G3TXQ nos ha dejado para siempre.
Tenía un cáncer desde hace un par de años que finalmente se lo ha llevado.

Nos quedarán los recuerdos y siempre será recordado por sus magníficos trabajos, sobre todo con los choques.

 [ You are not allowed to view attachments ]
D.E.P. Steve G3TXQ

Máximo - EA1DDO

7
Todo sobre Antenas / Nueva tienda de Hartmut DG7YBN - Blade dipolo
« en: Diciembre 04, 2018, 11:13:31 am »
Hola,

Anunciar que el amigo Hartmut DG7YBN se ha lanzado y ha creado una tienda en línea donde comprar algunas  piezas difíciles de encontrar para construir Yagi.
Una de esas piezas son sus famosos excitados Blade.

http://www.7arrays.com/



También vende soportes para los elementos, previos de Rx, cinta aislante liquida Spinner, y más cosas.

Incluso ofrece el servicio de cálculo y/o optimización de antenas a usuarios individuales.



73. Máximo - EA1DDO

8
Hola,

Icom ha anunciado el nuevo IC-9700 para principios del año que viene, sobre Febrero 2019.
Parece que va a tener un precio atractivo, sobre los €1800 ... veremos.

El aparato parece que usa la caja del IC-7300.
Por la parte de atrás se pueden ver salidas independientes para 144, 432 y 1200 MHz, todas de serie.
También hay una toma de Ethernet, pero no se exactamente que funciones ofrecerá.





• All mode, tri-band transceiver covering 144 MHz, 430 MHz as well as 1.2GHz
• Supports CW/AM/SSB/FM/RTTY and D-STAR Digital Voice and Digital Data modes
• 144MHz and 430MHz band is direct sampling. The 1.2GHz uses down conversions as well.
• Full duplex operation/ Dual Watch (no VHF/VHF or UHF/UHF capability.)
• PA will provide a powerful 100 W (144 MHz), 75 W (430 MHz) and 10 W (1200 MHz) output
• 4.3" touchscreen colour TFT LCD
• Smooth satellite operation with normal/reverse tracking and 99 satellite channels
• D-STAR provides clear digital audio
• Voice recording/playback function (SD memory card)
• Audio scope
• CW full break-in

73, Máximo - EA1DDO

9
Todo lo demás / Wimo ha comprado EAntenna
« en: Agosto 29, 2018, 11:38:32 am »
Hola,

Pues parece que Wimo no para.
Recientemente Wimo ya había comprado Ultra-Beam, como comenté en este mismo foro, pues ahora también han comprado EAntenna.
Al igual que con Ultra-Beam, se van a llevar la fabrica a Alemania, y desde allí seguirán haciéndolas, de hecho, Rod EA7JX se va para allá con su familia.

Como resultado de eso, HamRadio.es creo que se va a traspasar.

Citar

WiMo acquires EAntenna

Herxheim, August 24., 2018

Germany’s largest provider of amateur radio products announces the acquisition of the spanish antenna manufacturer EAntenna.
EAntenna

WiMo Antennen und Elektronik GmbH (Herxheim) will take over sales, service, manufacturing and the trademark of the Spanish manufacturer of short-wave antennas, ‘EAntenna’ from Brenes (Spain). EAntenna has been manufacturing a broad range of HF and VHF / UHF antennas, masts and accessories since 2010. The antennas are used internationally by radio amateurs and commercial radio services for worldwide voice and data communications, and are offered by 20 distributors worldwide.

Volkmar Junge, Managing Director of WiMo: “WiMo has been the largest distributor of EAntenna for a very long time now. Our sales and service teams know the entire EAntenna product portfolio. As we already have our own production lines for a wide range of antennas, we see great leverage in the consolidation of the Spanish production into our manufacturing in Herxheim. This will enable us to provide our customers with the premium support they are used to getting from WiMo’s own product range.”

The former owner of EAntenna, Rodrigo Herrera, EA7JX, will move to Herxheim with his family. Both he and his wife Angeles, who also has extensive knowledge of the EAntenna product portfolio, will continue to work for WiMo after the takeover. Rodrigo Herrera: “We now have the chance to develop the EAntenna product portfolio and take it to a totally new level with a very strong partner. We are very happy and excited to be able to work for WiMo in Germany.”

Volkmar Junge: “The fact that key personnel of EAntenna will continue to work for us is going to ensure that there will be a smooth transition of the production and customer orders can continue to be delivered on-time. At this point, we have enough EAntenna products on stock and lead-times should be below three weeks. In addition we can now offer Spanish, Portuguese and Italian support for our entire product portfolio and we expect to improve our presence in these countries.”

Production will move from Spain to Herxheim in September 2018.

    WiMo Antennen und Elektronik GmbH is Germany’s largest provider of amateur radio equipment, antennas and accessories. With more than 40 employees, the company location in Herxheim (Rhineland-Palatinate, district Südliche Weinstraße) is home to a production facility for antennas, cables and accessories. In addition, WiMo offers amateur radio gear from most well-known manufacturers plus a wide range of accessories with more than 4500 products.
    EAntenna is an owner-managed company in Brenes (Andalucia, Spain). With 6 employees, Rodrigo Herrara has been building up a renowned brand for antennas for almost 10 years.


73, Máximo - EA1DDO

10
Todo sobre Antenas / WIMO ha comprado Ultra-Beam
« en: Agosto 08, 2018, 12:46:46 pm »
Hola,

Ayer he visto que WIMO ha comprado el fabricante italiano de antenas dinámicas Ultra-Beam.

Según dicen en su página, han comprado la marca y los detalles de fabricación para llevarse a Alemania la fabricación, distribución y venta de las antenas.

En Italia queda una distribución independiente solamente para los clientes italianos; www.antennahub.it

 [ You are not allowed to view attachments ]

73, Máximo

11
Hola,

He visto otro interesante proyecto con Arduino para rotores y lo pongo aquí por si le sirve a alguien:

http://100nf.blogspot.com/2016/06/arduino-mega2560-based-antenna-rotator.html







Código: [Seleccionar]
/*
 * An Arduino code  of Antenna Rotator Controller.
 * Copyright (c) 2016 Vinod E S (VU3ESV) , Jayaprakash L V (VU2JLH)
 * Version 1.0 - initial release
 * Version 1.1 - Inflight Entry after holding the "*" Key for 3 seconds

  * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.


 Harware Information :-

 1) Arduino Mega 2560R3 or its clones
 2) HMC5883 Accelerometer
 3) I2C Expander (NXP)
 4) 2.8Inch TFT Display
 5) Momentary push button switchs
 6) Potentiometer
 7) H-Bridge for driving the Motors
 */

#include <Wire.h> //I2C Arduino Library
#include <UTFT.h> // UTFT Library from Henning Karlsen (http://www.rinkydinkelectronics.com/library.php)
#include <UTFT_Geometry.h> //UTFT Geometry Library from Henning Karlsen (http://www.rinkydinkelectronics.com/library.php)
#include <Keypad.h>
#include <EEPROM.h>

const int centreX  = 320;
const int centreY  = 160;
const int diameter = 130;
const int x_Offset = 30;
const int y_Offset = 128;
const int z_Offset = 0;
const byte rows = 4; // Four rows
const byte cols = 3; // Three columns
const int maxDegreeDigits = 3; //maximum allowed input length
const int fixedInflight = 5;
const long maxInflight = 25;

extern uint8_t BigFont[];
extern uint8_t SmallFont[];
extern uint8_t SevenSegmentFull[];

#define BLACK   0x0000
#define BLUE    0x001F
#define RED     0xF800
#define GREEN   0x07E0
#define CYAN    0x07FF
#define MAGENTA 0xF81F
#define YELLOW  0xFFE0
#define WHITE   0xFFFF
#define ORANGE  0xFF00
#define address 0x1E //0011110b, I2C 7bit address of HMC5883
#define EEPROM_ModeStatus_Location 10     // The starting address of the EEPROM where the data is Stored (10.11.12.13)
#define EEPROMSetpointLocation        14
#define EEPROM_ScaleMax_Location        18
#define EEPROMInflightLocation        22

struct EEPROMValue   //EEPROM Data Structure : Taken from G0MGX DDS VFO Code 
{
  union{
    long Value;
    struct
    {
      unsigned char Byte1;
      unsigned char Byte2;
      unsigned char Byte3;
      unsigned char Byte4;
    }
    __attribute__((packed));
  }
  __attribute__((packed));
}
__attribute__((packed));

inline long ReadEEPROMValue(int16_t EEPROMStartAddress);              //Reads the values from EEPROM Like Calibration , set Parameters, etc
inline void SaveEEPROMValue(int16_t EEPROMStartAddress, long Value);  //Save the Value to EEPROM startingfrom the given StartAddress (4 Bytes of Data)
inline double ReadAngleFromAccelerometer(int x_Offset, int y_Offset);
inline void ResetInputBuffer(void);

// Define the Keymap
char keys[rows][cols] =
{
  {
    '1','2','3'                 }
  ,
  {
    '4','5','6'                 }
  ,
  {
    '7','8','9'                 }
  ,
  {
    '*','0','#'                 }
};

boolean UserEntryStarted = false;
boolean UserEntryFinished = true;
boolean InflightEntryStarted = false;
boolean InflightEntryFinished = true;
boolean stopFlag = true;
boolean modeValue = false;    // modeValue = false (Manual Mode), modeValue = true (Auto Mode)
boolean inputSelection = false; // false  =  SetPoint Input , True = inflight input

char KeyEntries[3];        //3 characters to store 0 to 360 Degrees
char dataBuffer[60];
char formattedDataBuffer[3];

int dx;
int dy;
int last_dx;
int last_dy;
int bufPtr = 0;
int CWMotor  =  10;
int CCWMotor = 11;
int Stop_ResumeSignal = 12;
int Manual_Auto_Mode = 13;
int ManualSpeedControl = 9;

long UserEntry = 0;
long DegreeInput = 0;
long Inflight = 0;
long storedModeValue = 0;
long scaleMax  = 0;

double angle = 0;

//Normal Keyboard Connected To Arduino
// Connect keypad ROW0, ROW1, ROW2 and ROW3 to these Arduino pins.
byte rowPins[rows] = {
  8, 7, 6, 5 };
// Connect keypad COL0, COL1 and COL2 to these Arduino pins.
byte colPins[cols] = {
  4, 3, 2 };

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, rows, cols );

UTFT utftDisplay(ILI9481,38,39,40,41);

#define  FormatData(x) strcpy_P(dataBuffer, PSTR(x))

void setup(){
  Serial.begin(9600);
  utftDisplay.InitLCD();
  utftDisplay.InitLCD(LANDSCAPE);
  utftDisplay.clrScr();
  utftDisplay.setFont(BigFont);
  utftDisplay.setColor(255, 0, 0);
  utftDisplay.print("ANTENNA ROTATOR ", LEFT, 16);
  utftDisplay.print("CONTROLLER ", 40, 40);
  utftDisplay.drawLine(440, 160, 460, 160);
  utftDisplay.drawLine(180, 160, 200, 160);
  utftDisplay.drawLine(320, 20, 320, 40);
  utftDisplay.drawLine(320, 280, 320, 300);
  utftDisplay.setColor(255, 255, 0);
  utftDisplay.print("BEAM DIR", LEFT, 87);
  utftDisplay.setFont(SmallFont);
  utftDisplay.setColor(255, 100, 100);
  utftDisplay.print("SET DIR", LEFT, 210);
  utftDisplay.print("INFLIGHT", LEFT, 230);
  utftDisplay.setFont(BigFont);
  utftDisplay.setColor(255, 0, 0);
  utftDisplay.print("O", 95,  115);
  utftDisplay.setColor(255, 255, 255);
  utftDisplay.print("VU3ESV : VU2JLH",LEFT, 290);
  // Initialize I2C communications
  Wire.begin();
  //Put the HMC5883 IC into the correct operating mode
  Wire.beginTransmission(address); //open communication with HMC5883
  Wire.write(0x02); //select mode register
  Wire.write(0x00); //continuous measurement mode
  Wire.endTransmission();
  delay(300);
  last_dx = centreX;
  last_dy = centreY;

  DegreeInput = ReadEEPROMValue(EEPROMSetpointLocation);
  Inflight = ReadEEPROMValue(EEPROMInflightLocation);
  if(Inflight<fixedInflight)
  {
    Inflight = fixedInflight;
  }
  storedModeValue = ReadEEPROMValue(EEPROM_ModeStatus_Location);
  scaleMax = ReadEEPROMValue(EEPROM_ScaleMax_Location);
  if (storedModeValue ==0)
  {
    modeValue = false; //Manual Mode
  }
  else if (storedModeValue == 1)
  {
    modeValue = true;  // AutoMode
  }
  keypad.setDebounceTime(50);
  keypad.setHoldTime(3000);
  keypad.addEventListener(KeypadEventHandler); // Add an event listener for this keypad

  pinMode(ManualSpeedControl, OUTPUT);
  pinMode(CWMotor,OUTPUT);
  digitalWrite(CWMotor,LOW);
  pinMode(CCWMotor,OUTPUT);
  digitalWrite(CCWMotor,LOW);
  pinMode(Manual_Auto_Mode,INPUT);
  pinMode(Stop_ResumeSignal,INPUT);
  analogReference(DEFAULT);
}
double ReadAngleFromAccelerometer(int x_Offset, int y_Offset)
{
  //Tell the HMC5883 where to begin reading data
  Wire.beginTransmission(address);
  Wire.write(0x03); //select register 3, X MSB register
  Wire.endTransmission();
  //Read data from each axis, 2 registers per axis
  Wire.requestFrom(address, 6);
  int x,y,z; //triple axis data
  if(6<=Wire.available())
  {
    x = Wire.read() << 8 | Wire.read();
    z = Wire.read() << 8 | Wire.read();
    y = Wire.read() << 8 | Wire.read();
  }
  DrawRotatorPosition();
  return atan2((double)y + y_Offset,(double)x + x_Offset)* (180 / 3.141592654) + 180;
}
void loop()
{
  char key = keypad.getKey();
  angle = ReadAngleFromAccelerometer(y_Offset, x_Offset);
  if((digitalRead( Stop_ResumeSignal) == false)&& stopFlag == true)
  {
    stopFlag = false;
  }
  else if((digitalRead( Stop_ResumeSignal) == false)&& stopFlag == false)
  { 
    stopFlag = true;
  }
  if (stopFlag == true)
  { 
    digitalWrite(CWMotor,LOW);
    digitalWrite(CCWMotor,LOW);
    stopFlag = true;
    utftDisplay.setColor(0, 0, 0);
    utftDisplay.print("      ", RIGHT, 25);
  }
  else
  {
    if(((long)angle< DegreeInput )&& stopFlag == false)
    { 
      digitalWrite(CWMotor,HIGH);
      digitalWrite(CCWMotor,LOW);
      utftDisplay.setColor(0, 255, 255);
      utftDisplay.print("  CW ", RIGHT, 25);
    }
    if(((long)angle >DegreeInput)&& stopFlag == false)
    { 
      digitalWrite(CWMotor,LOW);
      digitalWrite(CCWMotor,HIGH);
      utftDisplay.setColor(0, 255, 255);
      utftDisplay.print(" CCW ", RIGHT, 25);
    }
    if(((long) angle == DegreeInput)||
      ((long) angle > DegreeInput-Inflight)&&
      ((long) angle < DegreeInput+ Inflight ))
    { 
      digitalWrite(CWMotor,LOW);
      digitalWrite(CCWMotor,LOW);
      stopFlag = true;
      utftDisplay.setColor(0, 0, 0);
      utftDisplay.print("      ", RIGHT, 25);
    }
  }
  if((digitalRead( Manual_Auto_Mode) == false) && modeValue == false )
  {
    modeValue = true; 
    SaveEEPROMValue(EEPROM_ModeStatus_Location, 1);
  }
  else if((digitalRead( Manual_Auto_Mode) == false) && modeValue == true )
  {
    modeValue = false;
    SaveEEPROMValue(EEPROM_ModeStatus_Location, 0);
  }
  if (modeValue ==  false)
  {
    if(stopFlag == false)
    {
      int spdValue = analogRead(A0);
      spdValue = map(spdValue, 0, 1023, 0 , 255);
      analogWrite(ManualSpeedControl, spdValue);
    }
    else
    {
      analogWrite(ManualSpeedControl, 0);
    }
    utftDisplay.setColor(0, 255, 255);
    utftDisplay.print("Manual ", RIGHT, 295);
  }
  else
  {
    if(stopFlag == false)
    {
      int rotationValue =abs( (int)(DegreeInput- (long) angle)); /* Irrespective of the Direction the difference in value needs to be considered for PWM
       // , Stoping is based on Cw/CCW outputs*/
      //Use Serial Print to check the value of rotationValue variable
      int scaleRotationValue =  rotationValue *4;
      int scaleMaxValue = scaleMax *4;
      int newSpeedValue = map(scaleRotationValue,0,scaleMaxValue, 0,255);   //The Scaling needs to be fine tuned based on the Test.   
      analogWrite(ManualSpeedControl, newSpeedValue);
    }
    else
    {
      analogWrite(ManualSpeedControl, 0);
    }
    utftDisplay.setColor(0, 255, 255);
    utftDisplay.print("    Auto ", RIGHT, 295);
  }
  dx = (diameter * cos((angle-90)*3.14/180)) + centreX;    // calculate X position
  dy = (diameter * sin((angle-90)*3.14/180)) + centreY;    // calculate Y position
  utftDisplay.setColor(BLACK);
  DrawArrow(last_dx,last_dy, centreX, centreY, 8, 8);        // Erase last arrow   
  utftDisplay.setColor(GREEN);
  DrawArrow(dx,dy, centreX, centreY, 8, 8);                  // Draw arrow in new position
  last_dx = dx;
  last_dy = dy;
  delay(25);
  utftDisplay.setFont(SevenSegmentFull);
  utftDisplay.setColor(255, 0, 127);
  int a =(int)angle;
  sprintf(formattedDataBuffer, FormatData("%03d"),a);
  utftDisplay.print(formattedDataBuffer, LEFT, 135);
  if(UserEntryFinished == true)
  {
    utftDisplay.setFont(BigFont);
    utftDisplay.setColor(0, 255, 0);
    utftDisplay.printNumI(DegreeInput,80,205);
  }
  if(InflightEntryFinished == true)
  {
    utftDisplay.setFont(BigFont);
    utftDisplay.setColor(0, 255, 0);
    utftDisplay.printNumI(Inflight,80,225);
  }
  utftDisplay.setFont(BigFont);
  utftDisplay.setColor(0, 100, 255);
  if((angle < 22.5)  || (angle > 337.5 ))utftDisplay.print("     North", LEFT, 260);
  if((angle > 22.5)  && (angle < 67.5 )) utftDisplay.print("North-East", LEFT, 260);
  if((angle > 67.5)  && (angle < 112.5 ))utftDisplay.print("      East", LEFT, 260);
  if((angle > 112.5) && (angle < 157.5 ))utftDisplay.print("South-East", LEFT, 260);
  if((angle > 157.5) && (angle < 202.5 ))utftDisplay.print("     South", LEFT, 260);
  if((angle > 202.5) && (angle < 247.5 ))utftDisplay.print("South-West", LEFT, 260);
  if((angle > 247.5) && (angle < 292.5 ))utftDisplay.print("      West", LEFT, 260);
  if((angle > 292.5) && (angle < 337.5 ))utftDisplay.print("North-West", LEFT, 260);
}

void KeypadEventHandler(KeypadEvent key)
{
  if (key != NO_KEY)
  {
    switch (keypad.getState())
    {
    case IDLE:
    case RELEASED:
      break;
    case HOLD:
      switch (key)
      {
        case '*':     
        if (inputSelection == true)
        {
          utftDisplay.setFont(BigFont);
          utftDisplay.setColor(255, 0, 127);
          utftDisplay.print("   ",80,225);
          ResetInputBuffer();
          UserEntry = 0;
          InflightEntryStarted = true;
          InflightEntryFinished = false;
        }
        break;
      }
      break;
    case PRESSED:
      switch (key)
      {
      case '#':
        if (inputSelection == false)
        {
          UserEntryFinished = true;
          UserEntryStarted = false;
          if((UserEntry < 360) )
          {
            //If the User SetPoint is less than Inflight then we can't accept the set point
            if(UserEntry> Inflight)
            {
              DegreeInput = UserEntry;
              SaveEEPROMValue(EEPROMSetpointLocation, DegreeInput);
              scaleMax = abs( (int)(DegreeInput- (long) angle));
              SaveEEPROMValue (EEPROM_ScaleMax_Location, scaleMax);
              utftDisplay.setFont(BigFont);
              utftDisplay.setColor(BLACK);
              utftDisplay.print("    ",80,205);
              stopFlag = false;
            }
            else
            {
              //Show Error in UI
            }   
          }
          else
          {
            utftDisplay.print("    ",80,205);
            DegreeInput = ReadEEPROMValue(EEPROMSetpointLocation);
          }
          inputSelection = true;
        }
        else
        {
          InflightEntryFinished = true;
          InflightEntryStarted = false;
          if((UserEntry < maxInflight) )
          {
            Inflight = UserEntry;
            SaveEEPROMValue(EEPROMInflightLocation, Inflight);
            utftDisplay.setFont(BigFont);
            utftDisplay.setColor(BLACK);
            utftDisplay.print("    ",80,225);
            stopFlag = false;
          }
          else
          {
            utftDisplay.print("    ",80,225);
            Inflight = ReadEEPROMValue(EEPROMInflightLocation);
          }
          inputSelection = false;
        }
        break;     
      case '*':
        if (inputSelection ==false)
        {
          utftDisplay.setFont(BigFont);
          utftDisplay.setColor(255, 0, 127);
          utftDisplay.print("   ",80,205);
          ResetInputBuffer();
          UserEntry = 0;
          UserEntryStarted = true;
          UserEntryFinished = false;
        }     
        break;
      case '0':
      case '1':
      case '2':
      case '3':
      case '4':
      case '5':
      case '6':
      case '7':
      case '8':
      case '9':
        if (bufPtr < maxDegreeDigits)
        {
          KeyEntries[bufPtr] = key;
          bufPtr++;         
          UserEntry = atol (KeyEntries);
          utftDisplay.setFont(BigFont);
          utftDisplay.setColor(255, 0, 127);
          if (UserEntryStarted == true)
          {
            utftDisplay.printNumI(UserEntry,80,205);
          }
          if (InflightEntryStarted == true)
          {
            utftDisplay.printNumI(UserEntry,80,225);
          }
        }
        break; 
      }
      break;
    }
  }
}

void DisplayUserEntry(int x, int y, String userData)
{
  utftDisplay.setColor(RED);
  utftDisplay.setFont(BigFont);
  utftDisplay.print(userData,x,y);
}

void DrawArrow(int x2, int y2, int x1, int y1, int arrowLength, int arrowWidth)
{
  float distance;
  int dx, dy, x2Outer,y2Outer,x3,y3,x4,y4,k;
  distance = sqrt(pow((x1 - x2), 2) + pow((y1 - y2), 2));
  dx = x2 + (x1 - x2) * arrowLength / distance;
  dy = y2 + (y1 - y2) * arrowLength / distance;
  k = arrowWidth / arrowLength;
  x2Outer = x2 - dx;
  y2Outer = dy - y2;
  x3 = y2Outer * k + dx;
  y3 = x2Outer * k + dy;
  x4 = dx - y2Outer * k;
  y4 = dy - x2Outer * k;
  utftDisplay.drawLine(x1, y1, x2, y2);
  utftDisplay.drawLine(x1, y1, dx, dy);
  utftDisplay.drawLine(x3, y3, x4, y4);
  utftDisplay.drawLine(x3, y3, x2, y2);
  utftDisplay.drawLine(x2, y2, x4, y4);
}

void DrawRotatorPosition()
{
  int dxOuter, dyOuter, dxi, dyi;
  utftDisplay.setColor(255, 128, 0);
  utftDisplay.drawCircle(centreX,centreY,diameter);  // Draw compass circle
  for (float i = 0; i <360; i = i + 22.5) {
    utftDisplay.setColor(255, 128, 0);
    dxOuter = diameter * cos((i-90)*3.14/180);
    dyOuter = diameter * sin((i-90)*3.14/180);
    dxi = dxOuter * 0.98;
    dyi = dyOuter * 0.98;
    utftDisplay.drawLine(dxi+centreX,dyi+centreY,dxOuter+centreX,dyOuter+centreY);
  }
  DisplayUserEntry((centreX-8),(centreY-157),"N");
  DisplayUserEntry((centreX-8),(centreY+145),"S");
  DisplayUserEntry((centreX+141),(centreY-7),"E");
  DisplayUserEntry((centreX-160),(centreY-7),"W");
}

void ResetInputBuffer()
{
  int length = sizeof(KeyEntries);
  for (int i = 0; i < length; i++)
  {
    KeyEntries[i] = '\0';
  }
  bufPtr = 0;
}

//Reads and returns the stored value specified in the EEPROM Start Address
long ReadEEPROMValue(int16_t EEPROMStartAddress)
{
  volatile EEPROMValue eepromVal;
  eepromVal.Byte1 = EEPROM.read(EEPROMStartAddress);
  eepromVal.Byte2 = EEPROM.read(EEPROMStartAddress+1);
  eepromVal.Byte3 = EEPROM.read(EEPROMStartAddress+2);
  eepromVal.Byte4 = EEPROM.read(EEPROMStartAddress+3);
  return eepromVal.Value;
}
/*Stores the specified value in the EEPROM  from Start Address
 EEPROM Write will only happens when the stored value and new value are different.
 This will save the number of Writes to the EEPROM.*/
void SaveEEPROMValue(int16_t EEPROMStartAddress, long Value)
{
  volatile EEPROMValue eepromVal;
  eepromVal.Value = ReadEEPROMValue(EEPROMStartAddress);
  if(eepromVal.Value != Value)
  {
    eepromVal.Value = Value;
    EEPROM.write(EEPROMStartAddress,eepromVal.Byte1);
    EEPROM.write(EEPROMStartAddress+1,eepromVal.Byte2);
    EEPROM.write(EEPROMStartAddress+2,eepromVal.Byte3);
    EEPROM.write(EEPROMStartAddress+3,eepromVal.Byte4);
  }
}

73, Máximo - EA1DDO

12
Analisis de Equipos comerciales / Yaesu FT Dx-101D - Primer Yaesu SDR
« en: Mayo 21, 2018, 05:42:28 pm »
Hola,

Pues tras muchos años de retraso (comparando con Flex, HPSDR, Icom, etc), por fin Yaesu acaba de presentar en Dayton su primera radio SDR, el FT Dx-101D.



De momento se sabe muy poco de ella, incluso en Dayton solo se podía ver, no tocar, ya que estaba dentro de una protección transparente.

 [ You are not allowed to view attachments ]

A todo lo que ahí dice, se puede añadir que la versión europea llevará la banda de 4m (70 MHz).

Otros datos;
Medidas 420×130×320mm
Peso 12kg
Fecha estima de venta: Octubre 2018


13
Hola,

El pasado fin de semana, aprovechando que uno de los días no llovió...  ??? monté una antena en mi casa, y hasta me dio tiempo a hacer un vídeo y subirlo a YouTube;

<a href="https://www.youtube.com/v/jo8YDS3ggdk" target="_blank" class="new_win">https://www.youtube.com/v/jo8YDS3ggdk</a>

Creo que voy a hacer una segunda parte para explicar mejor algunas cosas.

Gracias
73, Máximo - EA1DDO

14
Hola,

Ya hace un tiempo la gente de MarineTraffic estaba promocionando el tema de los barcos y regalaba receptores. Yo pedí uno y me lo enviaron.
Lo tengo en HK1H pero aún está "en pruebas", más que nada por que tengo que ponerle una antena decente e incluso un pequeño previo, para intentar recibir más lejos, vía tropo marina, etc.

Hace poco los de MarineTraffic se aliaron o unieron con los de FlightRadar24, los de los aviones.
También éstos promocionan el tema regalando receptores (kit completo) y me han enviado uno también para poner en HK1H, donde no hay muchos en esa zona.
Como aún no he podido ir por allá, lo he puesto aquí en casa para probarlo.

 [ You are not allowed to view attachments ]

El kit te lo envían completo, con receptor, antena, GPS, cables, etc.
El fabricante es SkySense, de Suecia.
Ya lo puse a funcionar ayer. No tiene ninguna dificultad ya que viene todo listo, cables con conectores preinstalados, etc. Enchufar y listo.

Pero traigo el tema aquí por la antena.
El kit trae una antena vertical, supongo que colineal, para la frecuencia de 1090 MHz.
Pensando en mejorar la recepción estoy pensando que tipo de antena se podría usar, mejor que la colineal.

Supongo que algo tipo satélites pero sin seguimiento, que abarque todo el cielo, desde el horizonte hasta la vertical a 90º.
Sin haber mirado nada aún, se me ocurre que un dipolo horizontal, sobre una placa metálica ya cumpliría. Para aumentar la ganancia y eliminar las zonas oscuras de las puntas del dipolo se me ocurre enfasar por ejemplo cuatro dipolos, poniendo dos cruzados respecto a los otros dos.
Eso y un previo, y casi listo. Me gustaría poner un filtro de algún tipo para cortar un poco las frecuencias no necesarias. A bote pronto podría ser un simple stub de 1/4 con un trozo de coaxial...

Si alguien sabe algo o quiere opinar, adelante.

Luego más tarde buscaré por internet a ver que han hecho otros.

Gracias

73, Máximo - EA1DDO


15
Hola,

Hace tiempo que tengo una idea.
En el campo militar lo usan hace tiempo, incluso en telefonía móvil le llaman Massive MIMO y beamforming.
Una versión muy sencilla, para nosotros los radioaficionados, podría ser lo siguiente.

Sería tener varias antenas, y en cada antena instalar un SDR. Todos los SDR estarían conectados a la misma LAN que de alguna manera tendrían que usar para sincronizarse.
Desde una aplicación de control se podría transmitir y recibir en fase o mejor, fuera de fase cada uno de los SDR. Al transmitir fuera de fase se podría deformar el haz según las necesidades.

En Rx ya existe, por ejemplo los SDR Anan tienen dos receptores coherentes independientes y sincronizados, y permiten jugar con el enfasamiento.

<a href="https://www.youtube.com/v/Z6sWVioDyrM" target="_blank" class="new_win">https://www.youtube.com/v/Z6sWVioDyrM</a>

Falta hacerlo en TX.

Y mi idea, sería colocar el SDR en el mismo boom de la antena, y luego vía Ethernet con fibra óptica, conectarlos a un conmutador (switch).

Con dos o tres antenas, que pueden ser verticales, Yagi o lo que sea, se podría lograr bastantes opciones, para deformar el lóbulo y adaptarlo a las necesidades. Por ejemplo bajando o elevando el ángulo de salida, horizontalmente para reducir ruido o mejorar la relación señal/ruido, direccionabilidad, etc.

Igual que se hace en Rx, supongo que se podría hacer en Tx.
Lo de colocar los SDR en la misma antena es para evitar problemas con los coaxiales.

¿Que os parece?

73, Máximo - EA1DDO


Páginas: [1] 2