¿ªÔÆÌåÓý

Date

Re: VU2SPF - Universal VFO/BFO with Si5351 and TFT touch screen for BITX like txcvr - Release v2.5

Jack Purdum
 

My problem is that I tend to build QRP stuff, which is on the small side with very low mass. These Mickey Mouse hands end up pushing the rig across the table when I use a touch screen. OTOH, I've used some 100W transceivers with touch screen features and it works better because its mass doesn't let it move easily. I guess it's the same old answer: "It depends."

Jack, W8TEE



From: Michael Hagen <motdog@...>
To: [email protected]
Sent: Tuesday, October 10, 2017 10:21 PM
Subject: Re: [BITX20] VU2SPF - Universal VFO/BFO with Si5351 and TFT touch screen for BITX like txcvr - Release v2.5

Me to.? Don't have enough Windex to get the slobber off the screen!
Mike, WA6ISP

On 10/10/2017 7:08 PM, Steve Black via Groups.Io wrote:
I hate touch screens! Fat fingers and shaky hands with tiny screens are a bad combination. Steve kb1chu

On 10/10/2017 09:41 PM, Jack Purdum via Groups.Io wrote:
Very interesting videos.

Does anyone know of a study of the preference of hams between touch screen and knobs/buttons?

Jack, W8TEE



From: Joe <joeman2116@...>
To: [email protected]
Sent: Tuesday, October 10, 2017 6:58 PM
Subject: [BITX20] VU2SPF - Universal VFO/BFO with Si5351 and TFT touch screen for BITX like txcvr - Release v2.5

·¡³æ±è±ð°ù¾±³¾±ð²Ô³Ù±ð°ù¡¯²õ
Universal VFO/BFO with Si5351 and TFT touch screen for BITX like txcvr
?
Author - VU2SPF,? SP Bhatnagar,??Bhavnagar, INDIA?? ?
? ?
Project Support - VE1BWV, Joseph Basque, CANADA
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ??
?
(Ver 2.5)
DOWNLOAD
?
Watch videos produced by Joe Basque on YouTube ?- Look for VU2SPF / VE1BWV.
Also on Facebook BITX group.
?


Main Features :
?
?
?
- Uses low cost Si5351 for generating two independent VFO and BFO frequencies.
- Touch screen controlled UI on colour TFT.
- Two VFOs A/B and one Memory VFO.
- 100 memory channels for storing frequently used stations (more channels possible)
- Switch between VFO and Memory by touch.
- Both VFO and BFO are adjustable from screen / buttons. Also works with fixed BFO systems like HF Sig¡¯s Bitx40.
- Some touch buttons are Two Sided (left and right half of button works independently) .
- Some touch buttons are Single Push type.
- Saving to EEPROM on demand (not automatic, thus reducing memory write operations to extend life? of CPU).
- Uses low cost MCUFriend 2.4¡± / 2.8¡± colour display.
- Horizontal S-meter.
- Preset Ham Bands. Band Limits are hard coded / adjustable in program code.
- Continuous frequency output mode (frequency generator mode).
- Uses standard Arduino Mega 2560. No soldering and assembled in short time with any standard 5351 breakout board.
- Also available a special shield designed for freq generator and other control lines ( our 5351 breakout board) which mounts on the Arduino Mega in the remaining space next to TFT.
- Also possible to connect external rotary encoder and? buttons working parallelly with Touch screen controls.
- PTT from Touch screen or external switch (mic / front panel / foot switch ) with toggle or continuous press types.
- PTT timeout to reduce Final amplifier heating.
- Many user programmable parameters.
- Can control several bands by controlling BPFs and LPFs from digital pins of Arduino Mega under Program control. Thus easy implementation for multibander rigs.
- Many digital outputs and Analog inputs for? additional? controls still available for other extensions on Mega.
?
User Interface?
All functions of the VFO are carried out by touching in the button area. The screen has several touch buttons and their corresponding information is displayed on the button itself. The function of each button is described below:
?
VFO button: Repeatedly touching this button rotates between? VFO A, VFO B and Memory(M) VFO. This selects the VFO which will be active. A, B or M is displayed below this button and to the left of frequency display.
?
Mem ## : Shows the currently selected memory channel number (01 to 100). On touching right half of the button the memory number increases from 00 to 100. Touching the left half of this button decreases memory channel number. On changing the memory number,? the stored information (vfo frequency, bfo frequency, sideband) from EEPROM memory is read and copied to VFO M. If the M was selected using VFO button, the selected frequency will be output on VFO. If A or B are selected then memory contents would be displayed below frequency button on right side as M xxxxxxxx.
?
Rx / Tx : on touching? Rx button the PTT is activated and the button turns RED with Tx displayed. If PTT Timeout is active (using ¡®TxTmO¡¯ button below) then it would automatically go back to Receive mode after a preset time out (this time is user controlled in program). In this mode the remaining time is also displayed in seconds on Red Tx button .
?
Frequency Display : The? selected active vfo is displayed here. On selecting a different VFO or MemCh the display shows previously saved frequency for that VFO. Touching anywhere in the right half of this display button increases frequency by frequency steps displayed below it in the center (1Hz to 1MHz). Similarly the touch in left half of button would decrease the frequency by step Hz.
?
Secondary Frequency Display : Below the active frequency button the other two VFOs are displayed for information. If VFO A is active, then VFO B and Memory VFO are displayed under the main frequency display. Similarly when Mem VFO is active the VFO A and B are displayed below. (These are purely for information of non active VFOs? and are not active buttons and have no effect on touching.)
?
Band : Displays the HAM band corresponding to current active VFO. Touching right / left half of this button sequentially changes the bands. Band frequency limits can be set in the program. There is a continuous freq generator mode for in between band frequencies.
?
Steps : This button displays and changes current step size. Initial power up step size is 1KHz. Step size can be increased or decreased by touching right half or left? half of the button. Steps are sequenced in powers of 10, from 1 Hz to 1MHz.(1Hz, 10Hz, 100Hz, 1kHz, 10kHz, 100kHz, 1MHz).
?
Side Band : Switching between USB and LSB is done by touching this button. The side band switching is done by adjusting the VFO frequency alone for fixed BFO rigs (e.g. Bitx40 from HFSigs)? and by adjusting BFO frequency for programmable BFO? types of rigs.
?
BFO : The current BFO frequency is displayed here and can be increased or decreased by step size by touching on right and left half of the button. This is the real experimenter¡¯s button and is kept with a view that the same VFO/BFO generator could be used with a variety of transceivers having different BFO requirements (e.g. Bitx with 10 MHz xtal filter needs BFO around 9.9940 MHz? while a Bitx using 12 MHz xtal filter needs a BFO of about 11.9940 MHz). It is real fun listening to radio while adjusting BFO frequency in small steps to get best sounding station.
?
VFO > < Mem :? (displayed as V > <M)??? On touching the left half of this button the currently selected VFO (A or B) will be copied to Memory VFO ( not saved yet on EEPROM), the right half of the button will copy the content of Memory VFO on the currently selected VFO (A/B).
?
SAVE : Touching this button will save currently active VFO in EEPROM memory. VFOs A, B and 100 Memory channels are kept on EEPROM. Only currently displayed VFO is saved to its corresponding memory location. It saves vfo and bfo frequencies and current sideband. During save process the text display changes to SAVING.
?
TxTmO : (PTT_Time_Out Activate button) : This button will activate the Time out function of PTT. The PTT would automatically get deactivated after the timeout period. The period is adjustable from within the program. Very useful when using toggle PTT
?
The Three Fx buttons are yet to assigned. Your suggestions are welcome for functions of these buttons.
?
?
The Hardware
MODIFIED ATMEGA - ADDED SOCKETS ON THE REAR?
To keep the hardware assembling at minimum we use? standard off the shelf components.? A standard Arduino Mega 2560 is the base system on which compatible TFT display cum touch screen shield is mounted. A standard breakout board for frequency generating chip 5351 may be connected to Arduino using two control wires (SCL, SCK),? and of course the common ground wire plus the 3 V or 5 V power? supply. A PCB for 5351 is also designed for the more adventurous hams. Details of the PCB with schematic are given later.? All buttons are 22 connected between the pin and ground.
?
Though all operations of this VFO are controlled from the touch panel, for those who prefer or need buttons and rotary encoder, it is easy to connect push buttons for almost all functions and also a standard rotary encoder. For connecting the external encoder and buttons a number of pins are available on Arduino board. These pins are allocated in the sketch and can be reallocated by user.
?
?
The Arduino Sketch
?
The arduino program or sketch is accomplishes all functions related to VFO and BFO needed in a typical transceiver like Bitx. Due to varieties in the transceiver design, the sketch is kept flexible and may be adopted for a particular transceiver using some parameters in the program. Details are given in a separate section below. To make the large sketch manageable, it is divided into smaller parts, all of which must reside in the same directory.? The main sketch is called TFT_VFO_SPF_vxxx.ino, where vxxx indicated its version.? This and remaining 5 parts of the sketch must be located in a directory with the name of TFT_VFO_SPF_vxxx, all the other programs should also be placed in the same folder. The names and brief details of these sketches are :
?
1.? TFT_VFO_SPF_vxxx.ino?? - the main program where the execution begins.
2.? EPROMAnything.h? - Handles read write to EPROM where some of the settings are saved
3.? CommonFns.ino? - All functions which are common for? operation
4.? DispPos.ino? - Calculations regarding displays
5.? Displays.ino ¨C All functions needed to display various parameters
6.? saveNsetup.ino? - functions for setup and various types of saves
?
?
User Programmable Parameters
?
Inside the TFT_VFO_SPF_vxxx.ino sketch somewhere near the beginning, there is a section named ¡°USER SELECTABLE DEFINITIONS¡±.? Parameters may be changed/ adjusted as suited to hardware and operational practice. The? ¡°#define¡±? statements are used to select parameters, based on which, some decisions are made later in the program. To define parameters these statements should be uncommented. Similarly, to undefine, there should be two slashes (//) at the beginning of the line.? Many of these are hardware dependent, e.g. model of the bitx or other transceiver. Briefly some of these are explained below:
?
FIXED_BFO ¨C It is defined? if the fixed frequency BFO is generated by onboard oscillator and cannot be altered dynamically by the program (e.g. in Bitx40 from Hfsig, the BFO is fixed xtal Oscillator producing about 11997000Hz). The other option may be to generate BFO from one of the three oscillators of Si5351 chip.
?
IF_12MHZ or IF_10MHZ -? Newer Bitx¡¯s use 12 MHz xtals as IF Filter. Earlier models had 10MHz IF. Only one of these should be defined.
?
Si5351correction ¨C This parameter is used to compensate for minor differences in output frequency of Si5351 IC. Generally a program to calibrate and find this offset ships with the Ether kit¡¯s 5351 library.
?
To accommodate amazing variety in TFT displays, we have to define the display type and some parameters for different displays. A few of these displays have been tested and more may be included soon. For example? elegoo923 and? MCUF0x154 are names given to typical displays. These may not be standard names. More display types may find their place in this section of the program.
?
Several push buttons may be connected to predefined pins as shown below and this allocation may be changed here in this section. One typical Example:
#define BandSelect??? 53
indicates that a button connected at Pin D53 will change bands on repeated push. Similarly many other functional buttons are defined and used. There is a short description of the function of that Arduino pin as comments on the same line.
?
ts_delay? - sets the? delay between touch button to reduce sensitivity. Some touch buttons may trigger several times when touched briefly, if this delay is small.
?
Tx_timeout? - set time in sec for which the Tx works continuously and then switches back to Rx in Tx Time out mode (toggled by TxTmO button)
?
offset and? if_offset ¨C? compensate for the difference in frequency, These offsets are to be? determined experimentally by tuning to a known frequency station.?
?
?
Building Notes
?
Several Methods and Tips which? have been used to? put this project together
?
  1. One method? - A separate shield board? developed to accompany the TFT. It contains a Si5351 as VFO/BFO generator and also an extender, as all free digital I/O pins and Analog Inputs have been brought out on the edge of the board on the other side to make it easier to connect to main board as well as keep the front? reasonably flat for fitting on the front panel of the homebrewed.? VU2SPF has designed the circuits and PCB. which you can build / produce, home brew style.

  2. The second method is to use a display, and Adafruit Si5351 DDS board and a modified Atmega 2560. Using this method you can plug the display directly into the Atmega. Next you add strip sockets to the rear pins of the atmega.. This allows you to plug the required and or optional external wiring to external devices and from the rear of the atmega. Without the mod the front is mostly covered by the display which makes it difficult to get access to the atmega pins.

  3. The same as method 2, except just solder wires directly to the rear of the Atmega

  4. Hash or noise control - After building several versions of this project I found digital hash noise to be quite low.? But additional filtering will make it even better.? I have used simple hash filters using a 1000mfd cap followed a 2 - 12 ohm resistor in series with another 10000mfd cap. Basically two capacitors? with a resistor in between, simple but very effective.?? Use shielded cable where possible, especially from the dds output to the radio VFO connection.? Also, shielded cable from the rotary encoder is a good idea¡­. if you decide to add one¡­..however, Touch control by itself is very good..
?
?
SOFTWARE NOTES
?
  1. The internal arduino code has many user options. There are 3 areas at the beginning of the code which the user may need to change.

  2. ?Fixed or Variable BFOs. .depending on your radio, the code can take care of it for you

  3. Display selections.? currently 2 choices, but you can add your own

  4. IF freq - depending on your radio you will need to choose. 10 mhz and 12 mhz.

  5. TXTimeout Timer - is set for 60 but you can just change the variable for whatever value you desire.

  6. The code for the BAND selection? is implemented, all you have to do is pick the band and match it to the atmega pin - + 5v.

  7. There are many predefined buttons available , just pick the one you want and add your switch.? On side to the atmega pin and the other to ground. These are optional as the touch control has all the functions? already.

ENJOY.
73
VE1BWV




-- 
Mike Hagen, WA6ISP
10917 Bryant Street
Yucaipa, Ca. 92399
(909) 918-0058
PayPal ID  "MotDog@..."
Mike@...



Re: Multibanding a Bitx40 questions

Jack Purdum
 

"Seems like something for big project?...Lots more than you need for BitX?"

Very true...heh, heh, heh...

Jack, W8TEE


From: Michael Hagen <motdog@...>
To: [email protected]
Sent: Tuesday, October 10, 2017 9:40 PM
Subject: Re: [BITX20] Multibanding a Bitx40 questions

I just bought a Teensy Weenie 3.6 because of this group.? Wow, lots of pins and Yes the Arduino conversion works.
I have run some of the examples.? Don't know what I will do with it?
48 Pins and lots of Speed. Memory card slot?
So, it does work in Arduino IDE with little pain.
Seems like something for big project?
Mouser or Spark Fun, about $30.
Lots more than you need for BitX?
Mike, WA6ISP
10/2017 6:19 PM, Jack Purdum via Groups.Io wrote:
Allard has crammed an amazing amount of functionality into that poor Nano and its resource base is just about gone. It might be time to upgrade to a Mega 2560 or maybe even a Teensy if the horsepower is needed. I don't understand the advantage of the rotary switch over a rotary encoder. That would give you the flexibility to use a state machine to control band switching. After locking Allard in the claustrophobic space of the Nano, a Mega would feel like the Grand Canyon to him...imagine what he would do with that resource base! Seems to me that this is a cards-on-the-table-anything-goes moment for builders.

Jack, W8TEE



From: "Smitty, KR6ZY" <mark-groupsio@...>
To: [email protected]
Sent: Tuesday, October 10, 2017 9:02 PM
Subject: Re: [BITX20] Multibanding a Bitx40 questions

I've got the QRP Labs parts to make this happen (2x Relay boards, and 80m, 60m, 40m, and 20m LPFs and BPFs) but haven't started the mods yet.? Life always gets hectic during Autumn, so I'm hoping I have more time to work on this come January (after my daughter's ballet season.)

The one thing I haven't figured out yet is how to select the band.? We could do it in software on the display with knob/buttons, then have the Raduino output a band select signal.? Would require a GPIO for every band, or some fancy interface hardware to reduce the number of pins used, and the current modifications supported by Allard's software just don't have this many pins.

Instead, I'm thinking of using a 2P6T rotary switch like [1], and doing two things with it:
1: Put a voltage divider ladder on one pole that generates an analog voltage to send to the microcontroller to sense which position the switch is in.? All 6 positions (and a lot more) can be sensed with a single pin.? Then, the Raduino will know which VFO frequency to use.

2: Use the other pole to drive the relay boards directly.? No RF through the switch (we'd need 4 poles for that, and we'd still need a way to mount all the filters!), just a 5v line to select which relay on the relay boards is energized.? One line can drive both relay boards. (Just make sure you have the filters in the same positions!)

Any better ideas?

-Mark

[1]

On 10/10/2017 05:07 PM, Dexter N Muir wrote:
Hi David
?Until code shows up, the prep-work can be done. Lift the bits of the BPF an LPF from the BitX if needed, possibly reconstruct as an external, install the relay kit and hard-wire-enable the 40m (from the BitX or external). The when code shows up (or you learn to do it) do the switching thing.
Best of luck - DexZL2DEX




-- 
Mike Hagen, WA6ISP
10917 Bryant Street
Yucaipa, Ca. 92399
(909) 918-0058
PayPal ID  "MotDog@..."
Mike@...



Re: VU2SPF - Universal VFO/BFO with Si5351 and TFT touch screen for BITX like txcvr - Release v2.5

Vince Vielhaber
 

I'm used to 'em. Three of my scopes are touch screen. You eventually get used to it.

Vince.

On 10/10/2017 10:08 PM, Steve Black via Groups.Io wrote:
I hate touch screens! Fat fingers and shaky hands with tiny screens are
a bad combination. Steve kb1chu


On 10/10/2017 09:41 PM, Jack Purdum via Groups.Io wrote:
Very interesting videos.

Does anyone know of a study of the preference of hams between touch
screen and knobs/buttons?

Jack, W8TEE


------------------------------------------------------------------------
*From:* Joe <joeman2116@...>
*To:* [email protected]
*Sent:* Tuesday, October 10, 2017 6:58 PM
*Subject:* [BITX20] VU2SPF - Universal VFO/BFO with Si5351 and TFT
touch screen for BITX like txcvr - Release v2.5

*·¡³æ±è±ð°ù¾±³¾±ð²Ô³Ù±ð°ù¡¯²õ *
*Universal VFO/BFO with Si5351 and TFT touch screen for BITX like txcvr *

*Author - VU2SPF, SP Bhatnagar, Bhavnagar, INDIA *
* <>
* *
*Project Support - VE1BWV, Joseph Basque, CANADA*
*
*

(Ver 2.5)
DOWNLOAD

Watch videos produced by Joe Basque on YouTube - Look for VU2SPF /
VE1BWV.
Also on Facebook BITX group.



*Main Features :*




- Uses low cost Si5351 for generating two independent VFO and BFO
frequencies.
- Touch screen controlled UI on colour TFT.
- Two VFOs A/B and one Memory VFO.
- 100 memory channels for storing frequently used stations (more
channels possible)
- Switch between VFO and Memory by touch.
- Both VFO and BFO are adjustable from screen / buttons. Also works
with fixed BFO systems like HF Sig¡¯s Bitx40.
- Some touch buttons are Two Sided (left and right half of button
works independently) .
- Some touch buttons are Single Push type.
- Saving to EEPROM on demand (not automatic, thus reducing memory
write operations to extend life of CPU).
- Uses low cost MCUFriend 2.4¡± / 2.8¡± colour display.
- Horizontal S-meter.
- Preset Ham Bands. Band Limits are hard coded / adjustable in program
code.
- Continuous frequency output mode (frequency generator mode).
- Uses standard Arduino Mega 2560. No soldering and assembled in short
time with any standard 5351 breakout board.
- Also available a special shield designed for freq generator and
other control lines ( our 5351 breakout board) which mounts on the
Arduino Mega in the remaining space next to TFT.
- Also possible to connect external rotary encoder and buttons
working parallelly with Touch screen controls.
- PTT from Touch screen or external switch (mic / front panel / foot
switch ) with toggle or continuous press types.
- PTT timeout to reduce Final amplifier heating.
- Many user programmable parameters.
- Can control several bands by controlling BPFs and LPFs from digital
pins of Arduino Mega under Program control. Thus easy implementation
for multibander rigs.
- Many digital outputs and Analog inputs for additional controls
still available for other extensions on Mega.

*User Interface*
All functions of the VFO are carried out by touching in the button
area. The screen has several touch buttons and their corresponding
information is displayed on the button itself. The function of each
button is described below:

*VFO button*: Repeatedly touching this button rotates between VFO A,
VFO B and Memory(M) VFO. This selects the VFO which will be active. A,
B or M is displayed below this button and to the left of frequency
display.

*Mem ## *: Shows the currently selected memory channel number (01 to
100). On touching right half of the button the memory number increases
from 00 to 100. Touching the left half of this button decreases memory
channel number. On changing the memory number, the stored information
(vfo frequency, bfo frequency, sideband) from EEPROM memory is read
and copied to VFO M. If the M was selected using VFO button, the
selected frequency will be output on VFO. If A or B are selected then
memory contents would be displayed below frequency button on right
side as M xxxxxxxx.

*Rx / Tx *: on touching Rx button the PTT is activated and the button
turns RED with Tx displayed. If PTT Timeout is active (using ¡®TxTmO¡¯
button below) then it would automatically go back to Receive mode
after a preset time out (this time is user controlled in program). In
this mode the remaining time is also displayed in seconds on Red Tx
button .

*Frequency Display* : The selected active vfo is displayed here. On
selecting a different VFO or MemCh the display shows previously saved
frequency for that VFO. Touching anywhere in the right half of this
display button increases frequency by frequency steps displayed below
it in the center (1Hz to 1MHz). Similarly the touch in left half of
button would decrease the frequency by step Hz.

*Secondary Frequency Display* : Below the active frequency button the
other two VFOs are displayed for information. If VFO A is active, then
VFO B and Memory VFO are displayed under the main frequency display.
Similarly when Mem VFO is active the VFO A and B are displayed below.
(These are purely for information of non active VFOs and are not
active buttons and have no effect on touching.)

*Band* : Displays the HAM band corresponding to current active VFO.
Touching right / left half of this button sequentially changes the
bands. Band frequency limits can be set in the program. There is a
continuous freq generator mode for in between band frequencies.

*Steps* : This button displays and changes current step size. Initial
power up step size is 1KHz. Step size can be increased or decreased by
touching right half or left half of the button. Steps are sequenced
in powers of 10, from 1 Hz to 1MHz.(1Hz, 10Hz, 100Hz, 1kHz, 10kHz,
100kHz, 1MHz).

*Side Band* : Switching between USB and LSB is done by touching this
button. The side band switching is done by adjusting the VFO frequency
alone for fixed BFO rigs (e.g. Bitx40 from HFSigs) and by adjusting
BFO frequency for programmable BFO types of rigs.

*BFO* : The current BFO frequency is displayed here and can be
increased or decreased by step size by touching on right and left half
of the button. This is the real /experimenter¡¯s button/ and is kept
with a view that the same VFO/BFO generator could be used with a
variety of transceivers having different BFO requirements (e.g. Bitx
with 10 MHz xtal filter needs BFO around 9.9940 MHz while a Bitx
using 12 MHz xtal filter needs a BFO of about 11.9940 MHz). It is real
fun listening to radio while adjusting BFO frequency in small steps to
get best sounding station.

*VFO > < Mem *: (displayed as V > <M) On touching the left half of
this button the currently selected VFO (A or B) will be copied to
Memory VFO ( not saved yet on EEPROM), the right half of the button
will copy the content of Memory VFO on the currently selected VFO (A/B).

*SAVE* : Touching this button will save currently active VFO in EEPROM
memory. VFOs A, B and 100 Memory channels are kept on EEPROM. Only
currently displayed VFO is saved to its corresponding memory location.
It saves vfo and bfo frequencies and current sideband. During save
process the text display changes to SAVING.

*TxTmO* : (PTT_Time_Out Activate button) : This button will activate
the Time out function of PTT. The PTT would automatically get
deactivated after the timeout period. The period is adjustable from
within the program. Very useful when using toggle PTT

The Three Fx buttons are yet to assigned. Your suggestions are welcome
for functions of these buttons.


*The Hardware*
MODIFIED ATMEGA - ADDED SOCKETS ON THE REAR
To keep the hardware assembling at minimum we use standard off the
shelf components. A standard Arduino Mega 2560 is the base system on
which compatible TFT display cum touch screen shield is mounted. A
standard breakout board for frequency generating chip 5351 may be
connected to Arduino using two control wires (SCL, SCK), and of
course the common ground wire plus the 3 V or 5 V power supply. A PCB
for 5351 is also designed for the more adventurous hams. Details of
the PCB with schematic are given later. All buttons are 22 connected
between the pin and ground.

Though all operations of this VFO are controlled from the touch panel,
for those who prefer or need buttons and rotary encoder, it is easy to
connect push buttons for almost all functions and also a standard
rotary encoder. For connecting the external encoder and buttons a
number of pins are available on Arduino board. These pins are
allocated in the sketch and can be reallocated by user.


*The Arduino Sketch*

The arduino program or sketch is accomplishes all functions related to
VFO and BFO needed in a typical transceiver like Bitx. Due to
varieties in the transceiver design, the sketch is kept flexible and
may be adopted for a particular transceiver using some parameters in
the program. Details are given in a separate section below. To make
the large sketch manageable, it is divided into smaller parts, all of
which must reside in the same directory. The main sketch is called
TFT_VFO_SPF_vxxx.ino, where vxxx indicated its version. This and
remaining 5 parts of the sketch must be located in a directory with
the name of TFT_VFO_SPF_vxxx, all the other programs should also be
placed in the same folder. The names and brief details of these
sketches are :

1. TFT_VFO_SPF_vxxx.ino - the main program where the execution begins.
2. EPROMAnything.h - Handles read write to EPROM where some of the
settings are saved
3. CommonFns.ino - All functions which are common for operation
4. DispPos.ino - Calculations regarding displays
5. Displays.ino ¨C All functions needed to display various parameters
6. saveNsetup.ino - functions for setup and various types of saves


*User Programmable Parameters*

Inside the TFT_VFO_SPF_vxxx.ino sketch somewhere near the beginning,
there is a section named ¡°USER SELECTABLE DEFINITIONS¡±. Parameters
may be changed/ adjusted as suited to hardware and operational
practice. The ¡°#define¡± statements are used to select parameters,
based on which, some decisions are made later in the program. To
define parameters these statements should be uncommented. Similarly,
to undefine, there should be two slashes (//) at the beginning of the
line. Many of these are hardware dependent, e.g. model of the bitx or
other transceiver. Briefly some of these are explained below:

FIXED_BFO ¨C It is defined if the fixed frequency BFO is generated by
onboard oscillator and cannot be altered dynamically by the program
(e.g. in Bitx40 from Hfsig, the BFO is fixed xtal Oscillator producing
about 11997000Hz). The other option may be to generate BFO from one of
the three oscillators of Si5351 chip.

IF_12MHZ or IF_10MHZ - Newer Bitx¡¯s use 12 MHz xtals as IF Filter.
Earlier models had 10MHz IF. Only one of these should be defined.

Si5351correction ¨C This parameter is used to compensate for minor
differences in output frequency of Si5351 IC. Generally a program to
calibrate and find this offset ships with the Ether kit¡¯s 5351 library.

To accommodate amazing variety in TFT displays, we have to define the
display type and some parameters for different displays. A few of
these displays have been tested and more may be included soon. For
example elegoo923 and MCUF0x154 are names given to typical displays.
These may not be standard names. More display types may find their
place in this section of the program.

Several push buttons may be connected to predefined pins as shown
below and this allocation may be changed here in this section. One
typical Example:
#define BandSelect 53
indicates that a button connected at Pin D53 will change bands on
repeated push. Similarly many other functional buttons are defined and
used. There is a short description of the function of that Arduino pin
as comments on the same line.

ts_delay - sets the delay between touch button to reduce
sensitivity. Some touch buttons may trigger several times when touched
briefly, if this delay is small.

Tx_timeout - set time in sec for which the Tx works continuously and
then switches back to Rx in Tx Time out mode (toggled by TxTmO button)

offset and if_offset ¨C compensate for the difference in frequency,
These offsets are to be determined experimentally by tuning to a
known frequency station.


*_Building Notes_*

*_Several Methods and Tips which have been used to put this project
together_*


1. One method - A separate shield board developed to accompany the
TFT. It contains a Si5351 as VFO/BFO generator and also an
extender, as all free digital I/O pins and Analog Inputs have been
brought out on the edge of the board on the other side to make it
easier to connect to main board as well as keep the front
reasonably flat for fitting on the front panel of the homebrewed.
VU2SPF has designed the circuits and PCB. which you can build /
produce, home brew style.

2. The second method is to use a display, and Adafruit Si5351 DDS
board and a _modified Atmega 2560_. Using this method you can plug
the display directly into the Atmega. Next you add strip sockets
to the rear pins of the atmega.. This allows you to plug the
required and or optional external wiring to external devices and
from the rear of the atmega. Without the mod the front is mostly
covered by the display which makes it difficult to get access to
the atmega pins.

3. The same as method 2, except just _solder wires directly to the
rear_ of the Atmega

4. *_Hash or noise control_* - After building several versions of
this project I found digital hash noise to be quite low. But
additional filtering will make it even better. I have used simple
hash filters using a 1000mfd cap followed a 2 - 12 ohm resistor in
series with another 10000mfd cap. Basically two capacitors with a
resistor in between, simple but very effective. Use shielded
cable where possible, especially from the dds output to the radio
VFO connection. Also, shielded cable from the rotary encoder is a
good idea¡­. if you decide to add one¡­..however, Touch control by
itself is very good..



*_SOFTWARE NOTES_*


1. The internal arduino code has many user options. There are 3 areas
at the beginning of the code which the user may need to change.

2. Fixed or Variable BFOs. .depending on your radio, the code can
take care of it for you

3. Display selections. currently 2 choices, but you can add your own

4. IF freq - depending on your radio you will need to choose. 10 mhz
and 12 mhz.

5. TXTimeout Timer - is set for 60 but you can just change the
variable for whatever value you desire.

6. The code for the BAND selection is implemented, all you have to
do is pick the band and match it to the atmega pin - + 5v.

7. There are many predefined buttons available , just pick the one
you want and add your switch. On side to the atmega pin and the
other to ground. These are optional as the touch control has all
the functions already.



ENJOY.
73
VE1BWV

--
Michigan VHF Corp.


Re: VU2SPF - Universal VFO/BFO with Si5351 and TFT touch screen for BITX like txcvr - Release v2.5

 

¿ªÔÆÌåÓý

Me to.? Don't have enough Windex to get the slobber off the screen!

Mike, WA6ISP


On 10/10/2017 7:08 PM, Steve Black via Groups.Io wrote:

I hate touch screens! Fat fingers and shaky hands with tiny screens are a bad combination. Steve kb1chu


On 10/10/2017 09:41 PM, Jack Purdum via Groups.Io wrote:
Very interesting videos.

Does anyone know of a study of the preference of hams between touch screen and knobs/buttons?

Jack, W8TEE



From: Joe <joeman2116@...>
To: [email protected]
Sent: Tuesday, October 10, 2017 6:58 PM
Subject: [BITX20] VU2SPF - Universal VFO/BFO with Si5351 and TFT touch screen for BITX like txcvr - Release v2.5

·¡³æ±è±ð°ù¾±³¾±ð²Ô³Ù±ð°ù¡¯²õ
Universal VFO/BFO with Si5351 and TFT touch screen for BITX like txcvr
?
Author - VU2SPF,? SP Bhatnagar,??Bhavnagar, INDIA?? ?
? ?
Project Support - VE1BWV, Joseph Basque, CANADA
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ??
?
(Ver 2.5)
DOWNLOAD
?
Watch videos produced by Joe Basque on YouTube ?- Look for VU2SPF / VE1BWV.
Also on Facebook BITX group.
?


Main Features :
?
?
?
- Uses low cost Si5351 for generating two independent VFO and BFO frequencies.
- Touch screen controlled UI on colour TFT.
- Two VFOs A/B and one Memory VFO.
- 100 memory channels for storing frequently used stations (more channels possible)
- Switch between VFO and Memory by touch.
- Both VFO and BFO are adjustable from screen / buttons. Also works with fixed BFO systems like HF Sig¡¯s Bitx40.
- Some touch buttons are Two Sided (left and right half of button works independently) .
- Some touch buttons are Single Push type.
- Saving to EEPROM on demand (not automatic, thus reducing memory write operations to extend life? of CPU).
- Uses low cost MCUFriend 2.4¡± / 2.8¡± colour display.
- Horizontal S-meter.
- Preset Ham Bands. Band Limits are hard coded / adjustable in program code.
- Continuous frequency output mode (frequency generator mode).
- Uses standard Arduino Mega 2560. No soldering and assembled in short time with any standard 5351 breakout board.
- Also available a special shield designed for freq generator and other control lines ( our 5351 breakout board) which mounts on the Arduino Mega in the remaining space next to TFT.
- Also possible to connect external rotary encoder and? buttons working parallelly with Touch screen controls.
- PTT from Touch screen or external switch (mic / front panel / foot switch ) with toggle or continuous press types.
- PTT timeout to reduce Final amplifier heating.
- Many user programmable parameters.
- Can control several bands by controlling BPFs and LPFs from digital pins of Arduino Mega under Program control. Thus easy implementation for multibander rigs.
- Many digital outputs and Analog inputs for? additional? controls still available for other extensions on Mega.
?
User Interface?
All functions of the VFO are carried out by touching in the button area. The screen has several touch buttons and their corresponding information is displayed on the button itself. The function of each button is described below:
?
VFO button: Repeatedly touching this button rotates between? VFO A, VFO B and Memory(M) VFO. This selects the VFO which will be active. A, B or M is displayed below this button and to the left of frequency display.
?
Mem ## : Shows the currently selected memory channel number (01 to 100). On touching right half of the button the memory number increases from 00 to 100. Touching the left half of this button decreases memory channel number. On changing the memory number,? the stored information (vfo frequency, bfo frequency, sideband) from EEPROM memory is read and copied to VFO M. If the M was selected using VFO button, the selected frequency will be output on VFO. If A or B are selected then memory contents would be displayed below frequency button on right side as M xxxxxxxx.
?
Rx / Tx : on touching? Rx button the PTT is activated and the button turns RED with Tx displayed. If PTT Timeout is active (using ¡®TxTmO¡¯ button below) then it would automatically go back to Receive mode after a preset time out (this time is user controlled in program). In this mode the remaining time is also displayed in seconds on Red Tx button .
?
Frequency Display : The? selected active vfo is displayed here. On selecting a different VFO or MemCh the display shows previously saved frequency for that VFO. Touching anywhere in the right half of this display button increases frequency by frequency steps displayed below it in the center (1Hz to 1MHz). Similarly the touch in left half of button would decrease the frequency by step Hz.
?
Secondary Frequency Display : Below the active frequency button the other two VFOs are displayed for information. If VFO A is active, then VFO B and Memory VFO are displayed under the main frequency display. Similarly when Mem VFO is active the VFO A and B are displayed below. (These are purely for information of non active VFOs? and are not active buttons and have no effect on touching.)
?
Band : Displays the HAM band corresponding to current active VFO. Touching right / left half of this button sequentially changes the bands. Band frequency limits can be set in the program. There is a continuous freq generator mode for in between band frequencies.
?
Steps : This button displays and changes current step size. Initial power up step size is 1KHz. Step size can be increased or decreased by touching right half or left? half of the button. Steps are sequenced in powers of 10, from 1 Hz to 1MHz.(1Hz, 10Hz, 100Hz, 1kHz, 10kHz, 100kHz, 1MHz).
?
Side Band : Switching between USB and LSB is done by touching this button. The side band switching is done by adjusting the VFO frequency alone for fixed BFO rigs (e.g. Bitx40 from HFSigs)? and by adjusting BFO frequency for programmable BFO? types of rigs.
?
BFO : The current BFO frequency is displayed here and can be increased or decreased by step size by touching on right and left half of the button. This is the real experimenter¡¯s button and is kept with a view that the same VFO/BFO generator could be used with a variety of transceivers having different BFO requirements (e.g. Bitx with 10 MHz xtal filter needs BFO around 9.9940 MHz? while a Bitx using 12 MHz xtal filter needs a BFO of about 11.9940 MHz). It is real fun listening to radio while adjusting BFO frequency in small steps to get best sounding station.
?
VFO > < Mem :? (displayed as V > <M)??? On touching the left half of this button the currently selected VFO (A or B) will be copied to Memory VFO ( not saved yet on EEPROM), the right half of the button will copy the content of Memory VFO on the currently selected VFO (A/B).
?
SAVE : Touching this button will save currently active VFO in EEPROM memory. VFOs A, B and 100 Memory channels are kept on EEPROM. Only currently displayed VFO is saved to its corresponding memory location. It saves vfo and bfo frequencies and current sideband. During save process the text display changes to SAVING.
?
TxTmO : (PTT_Time_Out Activate button) : This button will activate the Time out function of PTT. The PTT would automatically get deactivated after the timeout period. The period is adjustable from within the program. Very useful when using toggle PTT
?
The Three Fx buttons are yet to assigned. Your suggestions are welcome for functions of these buttons.
?
?
The Hardware
MODIFIED ATMEGA - ADDED SOCKETS ON THE REAR?
To keep the hardware assembling at minimum we use? standard off the shelf components.? A standard Arduino Mega 2560 is the base system on which compatible TFT display cum touch screen shield is mounted. A standard breakout board for frequency generating chip 5351 may be connected to Arduino using two control wires (SCL, SCK),? and of course the common ground wire plus the 3 V or 5 V power? supply. A PCB for 5351 is also designed for the more adventurous hams. Details of the PCB with schematic are given later.? All buttons are 22 connected between the pin and ground.
?
Though all operations of this VFO are controlled from the touch panel, for those who prefer or need buttons and rotary encoder, it is easy to connect push buttons for almost all functions and also a standard rotary encoder. For connecting the external encoder and buttons a number of pins are available on Arduino board. These pins are allocated in the sketch and can be reallocated by user.
?
?
The Arduino Sketch
?
The arduino program or sketch is accomplishes all functions related to VFO and BFO needed in a typical transceiver like Bitx. Due to varieties in the transceiver design, the sketch is kept flexible and may be adopted for a particular transceiver using some parameters in the program. Details are given in a separate section below. To make the large sketch manageable, it is divided into smaller parts, all of which must reside in the same directory.? The main sketch is called TFT_VFO_SPF_vxxx.ino, where vxxx indicated its version.? This and remaining 5 parts of the sketch must be located in a directory with the name of TFT_VFO_SPF_vxxx, all the other programs should also be placed in the same folder. The names and brief details of these sketches are :
?
1.? TFT_VFO_SPF_vxxx.ino?? - the main program where the execution begins.
2.? EPROMAnything.h? - Handles read write to EPROM where some of the settings are saved
3.? CommonFns.ino? - All functions which are common for? operation
4.? DispPos.ino? - Calculations regarding displays
5.? Displays.ino ¨C All functions needed to display various parameters
6.? saveNsetup.ino? - functions for setup and various types of saves
?
?
User Programmable Parameters
?
Inside the TFT_VFO_SPF_vxxx.ino sketch somewhere near the beginning, there is a section named ¡°USER SELECTABLE DEFINITIONS¡±.? Parameters may be changed/ adjusted as suited to hardware and operational practice. The? ¡°#define¡±? statements are used to select parameters, based on which, some decisions are made later in the program. To define parameters these statements should be uncommented. Similarly, to undefine, there should be two slashes (//) at the beginning of the line.? Many of these are hardware dependent, e.g. model of the bitx or other transceiver. Briefly some of these are explained below:
?
FIXED_BFO ¨C It is defined? if the fixed frequency BFO is generated by onboard oscillator and cannot be altered dynamically by the program (e.g. in Bitx40 from Hfsig, the BFO is fixed xtal Oscillator producing about 11997000Hz). The other option may be to generate BFO from one of the three oscillators of Si5351 chip.
?
IF_12MHZ or IF_10MHZ -? Newer Bitx¡¯s use 12 MHz xtals as IF Filter. Earlier models had 10MHz IF. Only one of these should be defined.
?
Si5351correction ¨C This parameter is used to compensate for minor differences in output frequency of Si5351 IC. Generally a program to calibrate and find this offset ships with the Ether kit¡¯s 5351 library.
?
To accommodate amazing variety in TFT displays, we have to define the display type and some parameters for different displays. A few of these displays have been tested and more may be included soon. For example? elegoo923 and? MCUF0x154 are names given to typical displays. These may not be standard names. More display types may find their place in this section of the program.
?
Several push buttons may be connected to predefined pins as shown below and this allocation may be changed here in this section. One typical Example:
#define BandSelect??? 53
indicates that a button connected at Pin D53 will change bands on repeated push. Similarly many other functional buttons are defined and used. There is a short description of the function of that Arduino pin as comments on the same line.
?
ts_delay? - sets the? delay between touch button to reduce sensitivity. Some touch buttons may trigger several times when touched briefly, if this delay is small.
?
Tx_timeout? - set time in sec for which the Tx works continuously and then switches back to Rx in Tx Time out mode (toggled by TxTmO button)
?
offset and? if_offset ¨C? compensate for the difference in frequency, These offsets are to be? determined experimentally by tuning to a known frequency station.?
?
?
Building Notes
?
Several Methods and Tips which? have been used to? put this project together
?
  1. One method? - A separate shield board? developed to accompany the TFT. It contains a Si5351 as VFO/BFO generator and also an extender, as all free digital I/O pins and Analog Inputs have been brought out on the edge of the board on the other side to make it easier to connect to main board as well as keep the front? reasonably flat for fitting on the front panel of the homebrewed.? VU2SPF has designed the circuits and PCB. which you can build / produce, home brew style.

  2. The second method is to use a display, and Adafruit Si5351 DDS board and a modified Atmega 2560. Using this method you can plug the display directly into the Atmega. Next you add strip sockets to the rear pins of the atmega.. This allows you to plug the required and or optional external wiring to external devices and from the rear of the atmega. Without the mod the front is mostly covered by the display which makes it difficult to get access to the atmega pins.

  3. The same as method 2, except just solder wires directly to the rear of the Atmega

  4. Hash or noise control - After building several versions of this project I found digital hash noise to be quite low.? But additional filtering will make it even better.? I have used simple hash filters using a 1000mfd cap followed a 2 - 12 ohm resistor in series with another 10000mfd cap. Basically two capacitors? with a resistor in between, simple but very effective.?? Use shielded cable where possible, especially from the dds output to the radio VFO connection.? Also, shielded cable from the rotary encoder is a good idea¡­. if you decide to add one¡­..however, Touch control by itself is very good..
?
?
SOFTWARE NOTES
?
  1. The internal arduino code has many user options. There are 3 areas at the beginning of the code which the user may need to change.

  2. ?Fixed or Variable BFOs. .depending on your radio, the code can take care of it for you

  3. Display selections.? currently 2 choices, but you can add your own

  4. IF freq - depending on your radio you will need to choose. 10 mhz and 12 mhz.

  5. TXTimeout Timer - is set for 60 but you can just change the variable for whatever value you desire.

  6. The code for the BAND selection? is implemented, all you have to do is pick the band and match it to the atmega pin - + 5v.

  7. There are many predefined buttons available , just pick the one you want and add your switch.? On side to the atmega pin and the other to ground. These are optional as the touch control has all the functions? already.

ENJOY.
73
VE1BWV




-- 
Mike Hagen, WA6ISP
10917 Bryant Street
Yucaipa, Ca. 92399
(909) 918-0058
PayPal ID  "MotDog@..."
Mike@...


Re: VU2SPF - Universal VFO/BFO with Si5351 and TFT touch screen for BITX like txcvr - Release v2.5

 

No problem just add the buttons it does both

Joe
VE1BWV

On Tue, Oct 10, 2017 at 11:08 PM, Steve Black via Groups.Io <kb1chu@...> wrote:

I hate touch screens! Fat fingers and shaky hands with tiny screens are a bad combination. Steve kb1chu


On 10/10/2017 09:41 PM, Jack Purdum via Groups.Io wrote:
Very interesting videos.

Does anyone know of a study of the preference of hams between touch screen and knobs/buttons?

Jack, W8TEE



From: Joe <joeman2116@...>
To: [email protected]
Sent: Tuesday, October 10, 2017 6:58 PM
Subject: [BITX20] VU2SPF - Universal VFO/BFO with Si5351 and TFT touch screen for BITX like txcvr - Release v2.5

·¡³æ±è±ð°ù¾±³¾±ð²Ô³Ù±ð°ù¡¯²õ
Universal VFO/BFO with Si5351 and TFT touch screen for BITX like txcvr
?
Author - VU2SPF,? SP Bhatnagar,??Bhavnagar, INDIA?? ?
? ?
Project Support - VE1BWV, Joseph Basque, CANADA
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ??
?
(Ver 2.5)
DOWNLOAD
?
Watch videos produced by Joe Basque on YouTube ?- Look for VU2SPF / VE1BWV.
Also on Facebook BITX group.
?


Main Features :
?
?
?
- Uses low cost Si5351 for generating two independent VFO and BFO frequencies.
- Touch screen controlled UI on colour TFT.
- Two VFOs A/B and one Memory VFO.
- 100 memory channels for storing frequently used stations (more channels possible)
- Switch between VFO and Memory by touch.
- Both VFO and BFO are adjustable from screen / buttons. Also works with fixed BFO systems like HF Sig¡¯s Bitx40.
- Some touch buttons are Two Sided (left and right half of button works independently) .
- Some touch buttons are Single Push type.
- Saving to EEPROM on demand (not automatic, thus reducing memory write operations to extend life? of CPU).
- Uses low cost MCUFriend 2.4¡± / 2.8¡± colour display.
- Horizontal S-meter.
- Preset Ham Bands. Band Limits are hard coded / adjustable in program code.
- Continuous frequency output mode (frequency generator mode).
- Uses standard Arduino Mega 2560. No soldering and assembled in short time with any standard 5351 breakout board.
- Also available a special shield designed for freq generator and other control lines ( our 5351 breakout board) which mounts on the Arduino Mega in the remaining space next to TFT.
- Also possible to connect external rotary encoder and? buttons working parallelly with Touch screen controls.
- PTT from Touch screen or external switch (mic / front panel / foot switch ) with toggle or continuous press types.
- PTT timeout to reduce Final amplifier heating.
- Many user programmable parameters.
- Can control several bands by controlling BPFs and LPFs from digital pins of Arduino Mega under Program control. Thus easy implementation for multibander rigs.
- Many digital outputs and Analog inputs for? additional? controls still available for other extensions on Mega.
?
User Interface?
All functions of the VFO are carried out by touching in the button area. The screen has several touch buttons and their corresponding information is displayed on the button itself. The function of each button is described below:
?
VFO button: Repeatedly touching this button rotates between? VFO A, VFO B and Memory(M) VFO. This selects the VFO which will be active. A, B or M is displayed below this button and to the left of frequency display.
?
Mem ## : Shows the currently selected memory channel number (01 to 100). On touching right half of the button the memory number increases from 00 to 100. Touching the left half of this button decreases memory channel number. On changing the memory number,? the stored information (vfo frequency, bfo frequency, sideband) from EEPROM memory is read and copied to VFO M. If the M was selected using VFO button, the selected frequency will be output on VFO. If A or B are selected then memory contents would be displayed below frequency button on right side as M xxxxxxxx.
?
Rx / Tx : on touching? Rx button the PTT is activated and the button turns RED with Tx displayed. If PTT Timeout is active (using ¡®TxTmO¡¯ button below) then it would automatically go back to Receive mode after a preset time out (this time is user controlled in program). In this mode the remaining time is also displayed in seconds on Red Tx button .
?
Frequency Display : The? selected active vfo is displayed here. On selecting a different VFO or MemCh the display shows previously saved frequency for that VFO. Touching anywhere in the right half of this display button increases frequency by frequency steps displayed below it in the center (1Hz to 1MHz). Similarly the touch in left half of button would decrease the frequency by step Hz.
?
Secondary Frequency Display : Below the active frequency button the other two VFOs are displayed for information. If VFO A is active, then VFO B and Memory VFO are displayed under the main frequency display. Similarly when Mem VFO is active the VFO A and B are displayed below. (These are purely for information of non active VFOs? and are not active buttons and have no effect on touching.)
?
Band : Displays the HAM band corresponding to current active VFO. Touching right / left half of this button sequentially changes the bands. Band frequency limits can be set in the program. There is a continuous freq generator mode for in between band frequencies.
?
Steps : This button displays and changes current step size. Initial power up step size is 1KHz. Step size can be increased or decreased by touching right half or left? half of the button. Steps are sequenced in powers of 10, from 1 Hz to 1MHz.(1Hz, 10Hz, 100Hz, 1kHz, 10kHz, 100kHz, 1MHz).
?
Side Band : Switching between USB and LSB is done by touching this button. The side band switching is done by adjusting the VFO frequency alone for fixed BFO rigs (e.g. Bitx40 from HFSigs)? and by adjusting BFO frequency for programmable BFO? types of rigs.
?
BFO : The current BFO frequency is displayed here and can be increased or decreased by step size by touching on right and left half of the button. This is the real experimenter¡¯s button and is kept with a view that the same VFO/BFO generator could be used with a variety of transceivers having different BFO requirements (e.g. Bitx with 10 MHz xtal filter needs BFO around 9.9940 MHz? while a Bitx using 12 MHz xtal filter needs a BFO of about 11.9940 MHz). It is real fun listening to radio while adjusting BFO frequency in small steps to get best sounding station.
?
VFO > < Mem :? (displayed as V > <M)??? On touching the left half of this button the currently selected VFO (A or B) will be copied to Memory VFO ( not saved yet on EEPROM), the right half of the button will copy the content of Memory VFO on the currently selected VFO (A/B).
?
SAVE : Touching this button will save currently active VFO in EEPROM memory. VFOs A, B and 100 Memory channels are kept on EEPROM. Only currently displayed VFO is saved to its corresponding memory location. It saves vfo and bfo frequencies and current sideband. During save process the text display changes to SAVING.
?
TxTmO : (PTT_Time_Out Activate button) : This button will activate the Time out function of PTT. The PTT would automatically get deactivated after the timeout period. The period is adjustable from within the program. Very useful when using toggle PTT
?
The Three Fx buttons are yet to assigned. Your suggestions are welcome for functions of these buttons.
?
?
The Hardware
MODIFIED ATMEGA - ADDED SOCKETS ON THE REAR?
To keep the hardware assembling at minimum we use? standard off the shelf components.? A standard Arduino Mega 2560 is the base system on which compatible TFT display cum touch screen shield is mounted. A standard breakout board for frequency generating chip 5351 may be connected to Arduino using two control wires (SCL, SCK),? and of course the common ground wire plus the 3 V or 5 V power? supply. A PCB for 5351 is also designed for the more adventurous hams. Details of the PCB with schematic are given later.? All buttons are 22 connected between the pin and ground.
?
Though all operations of this VFO are controlled from the touch panel, for those who prefer or need buttons and rotary encoder, it is easy to connect push buttons for almost all functions and also a standard rotary encoder. For connecting the external encoder and buttons a number of pins are available on Arduino board. These pins are allocated in the sketch and can be reallocated by user.
?
?
The Arduino Sketch
?
The arduino program or sketch is accomplishes all functions related to VFO and BFO needed in a typical transceiver like Bitx. Due to varieties in the transceiver design, the sketch is kept flexible and may be adopted for a particular transceiver using some parameters in the program. Details are given in a separate section below. To make the large sketch manageable, it is divided into smaller parts, all of which must reside in the same directory.? The main sketch is called TFT_VFO_SPF_vxxx.ino, where vxxx indicated its version.? This and remaining 5 parts of the sketch must be located in a directory with the name of TFT_VFO_SPF_vxxx, all the other programs should also be placed in the same folder. The names and brief details of these sketches are :
?
1.? TFT_VFO_SPF_vxxx.ino?? - the main program where the execution begins.
2.? EPROMAnything.h? - Handles read write to EPROM where some of the settings are saved
3.? CommonFns.ino? - All functions which are common for? operation
4.? DispPos.ino? - Calculations regarding displays
5.? Displays.ino ¨C All functions needed to display various parameters
6.? saveNsetup.ino? - functions for setup and various types of saves
?
?
User Programmable Parameters
?
Inside the TFT_VFO_SPF_vxxx.ino sketch somewhere near the beginning, there is a section named ¡°USER SELECTABLE DEFINITIONS¡±.? Parameters may be changed/ adjusted as suited to hardware and operational practice. The? ¡°#define¡±? statements are used to select parameters, based on which, some decisions are made later in the program. To define parameters these statements should be uncommented. Similarly, to undefine, there should be two slashes (//) at the beginning of the line.? Many of these are hardware dependent, e.g. model of the bitx or other transceiver. Briefly some of these are explained below:
?
FIXED_BFO ¨C It is defined? if the fixed frequency BFO is generated by onboard oscillator and cannot be altered dynamically by the program (e.g. in Bitx40 from Hfsig, the BFO is fixed xtal Oscillator producing about 11997000Hz). The other option may be to generate BFO from one of the three oscillators of Si5351 chip.
?
IF_12MHZ or IF_10MHZ -? Newer Bitx¡¯s use 12 MHz xtals as IF Filter. Earlier models had 10MHz IF. Only one of these should be defined.
?
Si5351correction ¨C This parameter is used to compensate for minor differences in output frequency of Si5351 IC. Generally a program to calibrate and find this offset ships with the Ether kit¡¯s 5351 library.
?
To accommodate amazing variety in TFT displays, we have to define the display type and some parameters for different displays. A few of these displays have been tested and more may be included soon. For example? elegoo923 and? MCUF0x154 are names given to typical displays. These may not be standard names. More display types may find their place in this section of the program.
?
Several push buttons may be connected to predefined pins as shown below and this allocation may be changed here in this section. One typical Example:
#define BandSelect??? 53
indicates that a button connected at Pin D53 will change bands on repeated push. Similarly many other functional buttons are defined and used. There is a short description of the function of that Arduino pin as comments on the same line.
?
ts_delay? - sets the? delay between touch button to reduce sensitivity. Some touch buttons may trigger several times when touched briefly, if this delay is small.
?
Tx_timeout? - set time in sec for which the Tx works continuously and then switches back to Rx in Tx Time out mode (toggled by TxTmO button)
?
offset and? if_offset ¨C? compensate for the difference in frequency, These offsets are to be? determined experimentally by tuning to a known frequency station.?
?
?
Building Notes
?
Several Methods and Tips which? have been used to? put this project together
?
  1. One method? - A separate shield board? developed to accompany the TFT. It contains a Si5351 as VFO/BFO generator and also an extender, as all free digital I/O pins and Analog Inputs have been brought out on the edge of the board on the other side to make it easier to connect to main board as well as keep the front? reasonably flat for fitting on the front panel of the homebrewed.? VU2SPF has designed the circuits and PCB. which you can build / produce, home brew style.

  2. The second method is to use a display, and Adafruit Si5351 DDS board and a modified Atmega 2560. Using this method you can plug the display directly into the Atmega. Next you add strip sockets to the rear pins of the atmega.. This allows you to plug the required and or optional external wiring to external devices and from the rear of the atmega. Without the mod the front is mostly covered by the display which makes it difficult to get access to the atmega pins.

  3. The same as method 2, except just solder wires directly to the rear of the Atmega

  4. Hash or noise control - After building several versions of this project I found digital hash noise to be quite low.? But additional filtering will make it even better.? I have used simple hash filters using a 1000mfd cap followed a 2 - 12 ohm resistor in series with another 10000mfd cap. Basically two capacitors? with a resistor in between, simple but very effective.?? Use shielded cable where possible, especially from the dds output to the radio VFO connection.? Also, shielded cable from the rotary encoder is a good idea¡­. if you decide to add one¡­..however, Touch control by itself is very good..
?
?
SOFTWARE NOTES
?
  1. The internal arduino code has many user options. There are 3 areas at the beginning of the code which the user may need to change.

  2. ?Fixed or Variable BFOs. .depending on your radio, the code can take care of it for you

  3. Display selections.? currently 2 choices, but you can add your own

  4. IF freq - depending on your radio you will need to choose. 10 mhz and 12 mhz.

  5. TXTimeout Timer - is set for 60 but you can just change the variable for whatever value you desire.

  6. The code for the BAND selection? is implemented, all you have to do is pick the band and match it to the atmega pin - + 5v.

  7. There are many predefined buttons available , just pick the one you want and add your switch.? On side to the atmega pin and the other to ground. These are optional as the touch control has all the functions? already.

ENJOY.
73
VE1BWV





Re: Multibanding a Bitx40 questions

 

You can attach an I2C input/output chip like the MCP23017, which will not use any more Arduino IO pins (it will use the same pins that the SI5351 is connected to), but will give access to 16 more pins that can be either inputs or outputs.?

?


Re: VU2SPF - Universal VFO/BFO with Si5351 and TFT touch screen for BITX like txcvr - Release v2.5

Steve Black
 

¿ªÔÆÌåÓý

I hate touch screens! Fat fingers and shaky hands with tiny screens are a bad combination. Steve kb1chu


On 10/10/2017 09:41 PM, Jack Purdum via Groups.Io wrote:

Very interesting videos.

Does anyone know of a study of the preference of hams between touch screen and knobs/buttons?

Jack, W8TEE



From: Joe <joeman2116@...>
To: [email protected]
Sent: Tuesday, October 10, 2017 6:58 PM
Subject: [BITX20] VU2SPF - Universal VFO/BFO with Si5351 and TFT touch screen for BITX like txcvr - Release v2.5

·¡³æ±è±ð°ù¾±³¾±ð²Ô³Ù±ð°ù¡¯²õ
Universal VFO/BFO with Si5351 and TFT touch screen for BITX like txcvr
?
Author - VU2SPF,? SP Bhatnagar,??Bhavnagar, INDIA?? ?
? ?
Project Support - VE1BWV, Joseph Basque, CANADA
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ??
?
(Ver 2.5)
DOWNLOAD
?
Watch videos produced by Joe Basque on YouTube ?- Look for VU2SPF / VE1BWV.
Also on Facebook BITX group.
?


Main Features :
?
?
?
- Uses low cost Si5351 for generating two independent VFO and BFO frequencies.
- Touch screen controlled UI on colour TFT.
- Two VFOs A/B and one Memory VFO.
- 100 memory channels for storing frequently used stations (more channels possible)
- Switch between VFO and Memory by touch.
- Both VFO and BFO are adjustable from screen / buttons. Also works with fixed BFO systems like HF Sig¡¯s Bitx40.
- Some touch buttons are Two Sided (left and right half of button works independently) .
- Some touch buttons are Single Push type.
- Saving to EEPROM on demand (not automatic, thus reducing memory write operations to extend life? of CPU).
- Uses low cost MCUFriend 2.4¡± / 2.8¡± colour display.
- Horizontal S-meter.
- Preset Ham Bands. Band Limits are hard coded / adjustable in program code.
- Continuous frequency output mode (frequency generator mode).
- Uses standard Arduino Mega 2560. No soldering and assembled in short time with any standard 5351 breakout board.
- Also available a special shield designed for freq generator and other control lines ( our 5351 breakout board) which mounts on the Arduino Mega in the remaining space next to TFT.
- Also possible to connect external rotary encoder and? buttons working parallelly with Touch screen controls.
- PTT from Touch screen or external switch (mic / front panel / foot switch ) with toggle or continuous press types.
- PTT timeout to reduce Final amplifier heating.
- Many user programmable parameters.
- Can control several bands by controlling BPFs and LPFs from digital pins of Arduino Mega under Program control. Thus easy implementation for multibander rigs.
- Many digital outputs and Analog inputs for? additional? controls still available for other extensions on Mega.
?
User Interface?
All functions of the VFO are carried out by touching in the button area. The screen has several touch buttons and their corresponding information is displayed on the button itself. The function of each button is described below:
?
VFO button: Repeatedly touching this button rotates between? VFO A, VFO B and Memory(M) VFO. This selects the VFO which will be active. A, B or M is displayed below this button and to the left of frequency display.
?
Mem ## : Shows the currently selected memory channel number (01 to 100). On touching right half of the button the memory number increases from 00 to 100. Touching the left half of this button decreases memory channel number. On changing the memory number,? the stored information (vfo frequency, bfo frequency, sideband) from EEPROM memory is read and copied to VFO M. If the M was selected using VFO button, the selected frequency will be output on VFO. If A or B are selected then memory contents would be displayed below frequency button on right side as M xxxxxxxx.
?
Rx / Tx : on touching? Rx button the PTT is activated and the button turns RED with Tx displayed. If PTT Timeout is active (using ¡®TxTmO¡¯ button below) then it would automatically go back to Receive mode after a preset time out (this time is user controlled in program). In this mode the remaining time is also displayed in seconds on Red Tx button .
?
Frequency Display : The? selected active vfo is displayed here. On selecting a different VFO or MemCh the display shows previously saved frequency for that VFO. Touching anywhere in the right half of this display button increases frequency by frequency steps displayed below it in the center (1Hz to 1MHz). Similarly the touch in left half of button would decrease the frequency by step Hz.
?
Secondary Frequency Display : Below the active frequency button the other two VFOs are displayed for information. If VFO A is active, then VFO B and Memory VFO are displayed under the main frequency display. Similarly when Mem VFO is active the VFO A and B are displayed below. (These are purely for information of non active VFOs? and are not active buttons and have no effect on touching.)
?
Band : Displays the HAM band corresponding to current active VFO. Touching right / left half of this button sequentially changes the bands. Band frequency limits can be set in the program. There is a continuous freq generator mode for in between band frequencies.
?
Steps : This button displays and changes current step size. Initial power up step size is 1KHz. Step size can be increased or decreased by touching right half or left? half of the button. Steps are sequenced in powers of 10, from 1 Hz to 1MHz.(1Hz, 10Hz, 100Hz, 1kHz, 10kHz, 100kHz, 1MHz).
?
Side Band : Switching between USB and LSB is done by touching this button. The side band switching is done by adjusting the VFO frequency alone for fixed BFO rigs (e.g. Bitx40 from HFSigs)? and by adjusting BFO frequency for programmable BFO? types of rigs.
?
BFO : The current BFO frequency is displayed here and can be increased or decreased by step size by touching on right and left half of the button. This is the real experimenter¡¯s button and is kept with a view that the same VFO/BFO generator could be used with a variety of transceivers having different BFO requirements (e.g. Bitx with 10 MHz xtal filter needs BFO around 9.9940 MHz? while a Bitx using 12 MHz xtal filter needs a BFO of about 11.9940 MHz). It is real fun listening to radio while adjusting BFO frequency in small steps to get best sounding station.
?
VFO > < Mem :? (displayed as V > <M)??? On touching the left half of this button the currently selected VFO (A or B) will be copied to Memory VFO ( not saved yet on EEPROM), the right half of the button will copy the content of Memory VFO on the currently selected VFO (A/B).
?
SAVE : Touching this button will save currently active VFO in EEPROM memory. VFOs A, B and 100 Memory channels are kept on EEPROM. Only currently displayed VFO is saved to its corresponding memory location. It saves vfo and bfo frequencies and current sideband. During save process the text display changes to SAVING.
?
TxTmO : (PTT_Time_Out Activate button) : This button will activate the Time out function of PTT. The PTT would automatically get deactivated after the timeout period. The period is adjustable from within the program. Very useful when using toggle PTT
?
The Three Fx buttons are yet to assigned. Your suggestions are welcome for functions of these buttons.
?
?
The Hardware
MODIFIED ATMEGA - ADDED SOCKETS ON THE REAR?
To keep the hardware assembling at minimum we use? standard off the shelf components.? A standard Arduino Mega 2560 is the base system on which compatible TFT display cum touch screen shield is mounted. A standard breakout board for frequency generating chip 5351 may be connected to Arduino using two control wires (SCL, SCK),? and of course the common ground wire plus the 3 V or 5 V power? supply. A PCB for 5351 is also designed for the more adventurous hams. Details of the PCB with schematic are given later.? All buttons are 22 connected between the pin and ground.
?
Though all operations of this VFO are controlled from the touch panel, for those who prefer or need buttons and rotary encoder, it is easy to connect push buttons for almost all functions and also a standard rotary encoder. For connecting the external encoder and buttons a number of pins are available on Arduino board. These pins are allocated in the sketch and can be reallocated by user.
?
?
The Arduino Sketch
?
The arduino program or sketch is accomplishes all functions related to VFO and BFO needed in a typical transceiver like Bitx. Due to varieties in the transceiver design, the sketch is kept flexible and may be adopted for a particular transceiver using some parameters in the program. Details are given in a separate section below. To make the large sketch manageable, it is divided into smaller parts, all of which must reside in the same directory.? The main sketch is called TFT_VFO_SPF_vxxx.ino, where vxxx indicated its version.? This and remaining 5 parts of the sketch must be located in a directory with the name of TFT_VFO_SPF_vxxx, all the other programs should also be placed in the same folder. The names and brief details of these sketches are :
?
1.? TFT_VFO_SPF_vxxx.ino?? - the main program where the execution begins.
2.? EPROMAnything.h? - Handles read write to EPROM where some of the settings are saved
3.? CommonFns.ino? - All functions which are common for? operation
4.? DispPos.ino? - Calculations regarding displays
5.? Displays.ino ¨C All functions needed to display various parameters
6.? saveNsetup.ino? - functions for setup and various types of saves
?
?
User Programmable Parameters
?
Inside the TFT_VFO_SPF_vxxx.ino sketch somewhere near the beginning, there is a section named ¡°USER SELECTABLE DEFINITIONS¡±.? Parameters may be changed/ adjusted as suited to hardware and operational practice. The? ¡°#define¡±? statements are used to select parameters, based on which, some decisions are made later in the program. To define parameters these statements should be uncommented. Similarly, to undefine, there should be two slashes (//) at the beginning of the line.? Many of these are hardware dependent, e.g. model of the bitx or other transceiver. Briefly some of these are explained below:
?
FIXED_BFO ¨C It is defined? if the fixed frequency BFO is generated by onboard oscillator and cannot be altered dynamically by the program (e.g. in Bitx40 from Hfsig, the BFO is fixed xtal Oscillator producing about 11997000Hz). The other option may be to generate BFO from one of the three oscillators of Si5351 chip.
?
IF_12MHZ or IF_10MHZ -? Newer Bitx¡¯s use 12 MHz xtals as IF Filter. Earlier models had 10MHz IF. Only one of these should be defined.
?
Si5351correction ¨C This parameter is used to compensate for minor differences in output frequency of Si5351 IC. Generally a program to calibrate and find this offset ships with the Ether kit¡¯s 5351 library.
?
To accommodate amazing variety in TFT displays, we have to define the display type and some parameters for different displays. A few of these displays have been tested and more may be included soon. For example? elegoo923 and? MCUF0x154 are names given to typical displays. These may not be standard names. More display types may find their place in this section of the program.
?
Several push buttons may be connected to predefined pins as shown below and this allocation may be changed here in this section. One typical Example:
#define BandSelect??? 53
indicates that a button connected at Pin D53 will change bands on repeated push. Similarly many other functional buttons are defined and used. There is a short description of the function of that Arduino pin as comments on the same line.
?
ts_delay? - sets the? delay between touch button to reduce sensitivity. Some touch buttons may trigger several times when touched briefly, if this delay is small.
?
Tx_timeout? - set time in sec for which the Tx works continuously and then switches back to Rx in Tx Time out mode (toggled by TxTmO button)
?
offset and? if_offset ¨C? compensate for the difference in frequency, These offsets are to be? determined experimentally by tuning to a known frequency station.?
?
?
Building Notes
?
Several Methods and Tips which? have been used to? put this project together
?
  1. One method? - A separate shield board? developed to accompany the TFT. It contains a Si5351 as VFO/BFO generator and also an extender, as all free digital I/O pins and Analog Inputs have been brought out on the edge of the board on the other side to make it easier to connect to main board as well as keep the front? reasonably flat for fitting on the front panel of the homebrewed.? VU2SPF has designed the circuits and PCB. which you can build / produce, home brew style.

  2. The second method is to use a display, and Adafruit Si5351 DDS board and a modified Atmega 2560. Using this method you can plug the display directly into the Atmega. Next you add strip sockets to the rear pins of the atmega.. This allows you to plug the required and or optional external wiring to external devices and from the rear of the atmega. Without the mod the front is mostly covered by the display which makes it difficult to get access to the atmega pins.

  3. The same as method 2, except just solder wires directly to the rear of the Atmega

  4. Hash or noise control - After building several versions of this project I found digital hash noise to be quite low.? But additional filtering will make it even better.? I have used simple hash filters using a 1000mfd cap followed a 2 - 12 ohm resistor in series with another 10000mfd cap. Basically two capacitors? with a resistor in between, simple but very effective.?? Use shielded cable where possible, especially from the dds output to the radio VFO connection.? Also, shielded cable from the rotary encoder is a good idea¡­. if you decide to add one¡­..however, Touch control by itself is very good..
?
?
SOFTWARE NOTES
?
  1. The internal arduino code has many user options. There are 3 areas at the beginning of the code which the user may need to change.

  2. ?Fixed or Variable BFOs. .depending on your radio, the code can take care of it for you

  3. Display selections.? currently 2 choices, but you can add your own

  4. IF freq - depending on your radio you will need to choose. 10 mhz and 12 mhz.

  5. TXTimeout Timer - is set for 60 but you can just change the variable for whatever value you desire.

  6. The code for the BAND selection? is implemented, all you have to do is pick the band and match it to the atmega pin - + 5v.

  7. There are many predefined buttons available , just pick the one you want and add your switch.? On side to the atmega pin and the other to ground. These are optional as the touch control has all the functions? already.

ENJOY.
73
VE1BWV




Re: VU2SPF - Universal VFO/BFO with Si5351 and TFT touch screen for BITX like txcvr - Release v2.5

Jack Purdum
 

Very interesting videos.

Does anyone know of a study of the preference of hams between touch screen and knobs/buttons?

Jack, W8TEE



From: Joe <joeman2116@...>
To: [email protected]
Sent: Tuesday, October 10, 2017 6:58 PM
Subject: [BITX20] VU2SPF - Universal VFO/BFO with Si5351 and TFT touch screen for BITX like txcvr - Release v2.5

·¡³æ±è±ð°ù¾±³¾±ð²Ô³Ù±ð°ù¡¯²õ
Universal VFO/BFO with Si5351 and TFT touch screen for BITX like txcvr
?
Author - VU2SPF,? SP Bhatnagar,??Bhavnagar, INDIA?? ?
? ?
Project Support - VE1BWV, Joseph Basque, CANADA
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ??
?
(Ver 2.5)
DOWNLOAD
?
Watch videos produced by Joe Basque on YouTube ?- Look for VU2SPF / VE1BWV.
Also on Facebook BITX group.
?


Main Features :
?
?
?
- Uses low cost Si5351 for generating two independent VFO and BFO frequencies.
- Touch screen controlled UI on colour TFT.
- Two VFOs A/B and one Memory VFO.
- 100 memory channels for storing frequently used stations (more channels possible)
- Switch between VFO and Memory by touch.
- Both VFO and BFO are adjustable from screen / buttons. Also works with fixed BFO systems like HF Sig¡¯s Bitx40.
- Some touch buttons are Two Sided (left and right half of button works independently) .
- Some touch buttons are Single Push type.
- Saving to EEPROM on demand (not automatic, thus reducing memory write operations to extend life? of CPU).
- Uses low cost MCUFriend 2.4¡± / 2.8¡± colour display.
- Horizontal S-meter.
- Preset Ham Bands. Band Limits are hard coded / adjustable in program code.
- Continuous frequency output mode (frequency generator mode).
- Uses standard Arduino Mega 2560. No soldering and assembled in short time with any standard 5351 breakout board.
- Also available a special shield designed for freq generator and other control lines ( our 5351 breakout board) which mounts on the Arduino Mega in the remaining space next to TFT.
- Also possible to connect external rotary encoder and? buttons working parallelly with Touch screen controls.
- PTT from Touch screen or external switch (mic / front panel / foot switch ) with toggle or continuous press types.
- PTT timeout to reduce Final amplifier heating.
- Many user programmable parameters.
- Can control several bands by controlling BPFs and LPFs from digital pins of Arduino Mega under Program control. Thus easy implementation for multibander rigs.
- Many digital outputs and Analog inputs for? additional? controls still available for other extensions on Mega.
?
User Interface?
All functions of the VFO are carried out by touching in the button area. The screen has several touch buttons and their corresponding information is displayed on the button itself. The function of each button is described below:
?
VFO button: Repeatedly touching this button rotates between? VFO A, VFO B and Memory(M) VFO. This selects the VFO which will be active. A, B or M is displayed below this button and to the left of frequency display.
?
Mem ## : Shows the currently selected memory channel number (01 to 100). On touching right half of the button the memory number increases from 00 to 100. Touching the left half of this button decreases memory channel number. On changing the memory number,? the stored information (vfo frequency, bfo frequency, sideband) from EEPROM memory is read and copied to VFO M. If the M was selected using VFO button, the selected frequency will be output on VFO. If A or B are selected then memory contents would be displayed below frequency button on right side as M xxxxxxxx.
?
Rx / Tx : on touching? Rx button the PTT is activated and the button turns RED with Tx displayed. If PTT Timeout is active (using ¡®TxTmO¡¯ button below) then it would automatically go back to Receive mode after a preset time out (this time is user controlled in program). In this mode the remaining time is also displayed in seconds on Red Tx button .
?
Frequency Display : The? selected active vfo is displayed here. On selecting a different VFO or MemCh the display shows previously saved frequency for that VFO. Touching anywhere in the right half of this display button increases frequency by frequency steps displayed below it in the center (1Hz to 1MHz). Similarly the touch in left half of button would decrease the frequency by step Hz.
?
Secondary Frequency Display : Below the active frequency button the other two VFOs are displayed for information. If VFO A is active, then VFO B and Memory VFO are displayed under the main frequency display. Similarly when Mem VFO is active the VFO A and B are displayed below. (These are purely for information of non active VFOs? and are not active buttons and have no effect on touching.)
?
Band : Displays the HAM band corresponding to current active VFO. Touching right / left half of this button sequentially changes the bands. Band frequency limits can be set in the program. There is a continuous freq generator mode for in between band frequencies.
?
Steps : This button displays and changes current step size. Initial power up step size is 1KHz. Step size can be increased or decreased by touching right half or left? half of the button. Steps are sequenced in powers of 10, from 1 Hz to 1MHz.(1Hz, 10Hz, 100Hz, 1kHz, 10kHz, 100kHz, 1MHz).
?
Side Band : Switching between USB and LSB is done by touching this button. The side band switching is done by adjusting the VFO frequency alone for fixed BFO rigs (e.g. Bitx40 from HFSigs)? and by adjusting BFO frequency for programmable BFO? types of rigs.
?
BFO : The current BFO frequency is displayed here and can be increased or decreased by step size by touching on right and left half of the button. This is the real experimenter¡¯s button and is kept with a view that the same VFO/BFO generator could be used with a variety of transceivers having different BFO requirements (e.g. Bitx with 10 MHz xtal filter needs BFO around 9.9940 MHz? while a Bitx using 12 MHz xtal filter needs a BFO of about 11.9940 MHz). It is real fun listening to radio while adjusting BFO frequency in small steps to get best sounding station.
?
VFO > < Mem :? (displayed as V > <M)??? On touching the left half of this button the currently selected VFO (A or B) will be copied to Memory VFO ( not saved yet on EEPROM), the right half of the button will copy the content of Memory VFO on the currently selected VFO (A/B).
?
SAVE : Touching this button will save currently active VFO in EEPROM memory. VFOs A, B and 100 Memory channels are kept on EEPROM. Only currently displayed VFO is saved to its corresponding memory location. It saves vfo and bfo frequencies and current sideband. During save process the text display changes to SAVING.
?
TxTmO : (PTT_Time_Out Activate button) : This button will activate the Time out function of PTT. The PTT would automatically get deactivated after the timeout period. The period is adjustable from within the program. Very useful when using toggle PTT
?
The Three Fx buttons are yet to assigned. Your suggestions are welcome for functions of these buttons.
?
?
The Hardware
MODIFIED ATMEGA - ADDED SOCKETS ON THE REAR?
To keep the hardware assembling at minimum we use? standard off the shelf components.? A standard Arduino Mega 2560 is the base system on which compatible TFT display cum touch screen shield is mounted. A standard breakout board for frequency generating chip 5351 may be connected to Arduino using two control wires (SCL, SCK),? and of course the common ground wire plus the 3 V or 5 V power? supply. A PCB for 5351 is also designed for the more adventurous hams. Details of the PCB with schematic are given later.? All buttons are 22 connected between the pin and ground.
?
Though all operations of this VFO are controlled from the touch panel, for those who prefer or need buttons and rotary encoder, it is easy to connect push buttons for almost all functions and also a standard rotary encoder. For connecting the external encoder and buttons a number of pins are available on Arduino board. These pins are allocated in the sketch and can be reallocated by user.
?
?
The Arduino Sketch
?
The arduino program or sketch is accomplishes all functions related to VFO and BFO needed in a typical transceiver like Bitx. Due to varieties in the transceiver design, the sketch is kept flexible and may be adopted for a particular transceiver using some parameters in the program. Details are given in a separate section below. To make the large sketch manageable, it is divided into smaller parts, all of which must reside in the same directory.? The main sketch is called TFT_VFO_SPF_vxxx.ino, where vxxx indicated its version.? This and remaining 5 parts of the sketch must be located in a directory with the name of TFT_VFO_SPF_vxxx, all the other programs should also be placed in the same folder. The names and brief details of these sketches are :
?
1.? TFT_VFO_SPF_vxxx.ino?? - the main program where the execution begins.
2.? EPROMAnything.h? - Handles read write to EPROM where some of the settings are saved
3.? CommonFns.ino? - All functions which are common for? operation
4.? DispPos.ino? - Calculations regarding displays
5.? Displays.ino ¨C All functions needed to display various parameters
6.? saveNsetup.ino? - functions for setup and various types of saves
?
?
User Programmable Parameters
?
Inside the TFT_VFO_SPF_vxxx.ino sketch somewhere near the beginning, there is a section named ¡°USER SELECTABLE DEFINITIONS¡±.? Parameters may be changed/ adjusted as suited to hardware and operational practice. The? ¡°#define¡±? statements are used to select parameters, based on which, some decisions are made later in the program. To define parameters these statements should be uncommented. Similarly, to undefine, there should be two slashes (//) at the beginning of the line.? Many of these are hardware dependent, e.g. model of the bitx or other transceiver. Briefly some of these are explained below:
?
FIXED_BFO ¨C It is defined? if the fixed frequency BFO is generated by onboard oscillator and cannot be altered dynamically by the program (e.g. in Bitx40 from Hfsig, the BFO is fixed xtal Oscillator producing about 11997000Hz). The other option may be to generate BFO from one of the three oscillators of Si5351 chip.
?
IF_12MHZ or IF_10MHZ -? Newer Bitx¡¯s use 12 MHz xtals as IF Filter. Earlier models had 10MHz IF. Only one of these should be defined.
?
Si5351correction ¨C This parameter is used to compensate for minor differences in output frequency of Si5351 IC. Generally a program to calibrate and find this offset ships with the Ether kit¡¯s 5351 library.
?
To accommodate amazing variety in TFT displays, we have to define the display type and some parameters for different displays. A few of these displays have been tested and more may be included soon. For example? elegoo923 and? MCUF0x154 are names given to typical displays. These may not be standard names. More display types may find their place in this section of the program.
?
Several push buttons may be connected to predefined pins as shown below and this allocation may be changed here in this section. One typical Example:
#define BandSelect??? 53
indicates that a button connected at Pin D53 will change bands on repeated push. Similarly many other functional buttons are defined and used. There is a short description of the function of that Arduino pin as comments on the same line.
?
ts_delay? - sets the? delay between touch button to reduce sensitivity. Some touch buttons may trigger several times when touched briefly, if this delay is small.
?
Tx_timeout? - set time in sec for which the Tx works continuously and then switches back to Rx in Tx Time out mode (toggled by TxTmO button)
?
offset and? if_offset ¨C? compensate for the difference in frequency, These offsets are to be? determined experimentally by tuning to a known frequency station.?
?
?
Building Notes
?
Several Methods and Tips which? have been used to? put this project together
?
  1. One method? - A separate shield board? developed to accompany the TFT. It contains a Si5351 as VFO/BFO generator and also an extender, as all free digital I/O pins and Analog Inputs have been brought out on the edge of the board on the other side to make it easier to connect to main board as well as keep the front? reasonably flat for fitting on the front panel of the homebrewed.? VU2SPF has designed the circuits and PCB. which you can build / produce, home brew style.

  2. The second method is to use a display, and Adafruit Si5351 DDS board and a modified Atmega 2560. Using this method you can plug the display directly into the Atmega. Next you add strip sockets to the rear pins of the atmega.. This allows you to plug the required and or optional external wiring to external devices and from the rear of the atmega. Without the mod the front is mostly covered by the display which makes it difficult to get access to the atmega pins.

  3. The same as method 2, except just solder wires directly to the rear of the Atmega

  4. Hash or noise control - After building several versions of this project I found digital hash noise to be quite low.? But additional filtering will make it even better.? I have used simple hash filters using a 1000mfd cap followed a 2 - 12 ohm resistor in series with another 10000mfd cap. Basically two capacitors? with a resistor in between, simple but very effective.?? Use shielded cable where possible, especially from the dds output to the radio VFO connection.? Also, shielded cable from the rotary encoder is a good idea¡­. if you decide to add one¡­..however, Touch control by itself is very good..
?
?
SOFTWARE NOTES
?
  1. The internal arduino code has many user options. There are 3 areas at the beginning of the code which the user may need to change.

  2. ?Fixed or Variable BFOs. .depending on your radio, the code can take care of it for you

  3. Display selections.? currently 2 choices, but you can add your own

  4. IF freq - depending on your radio you will need to choose. 10 mhz and 12 mhz.

  5. TXTimeout Timer - is set for 60 but you can just change the variable for whatever value you desire.

  6. The code for the BAND selection? is implemented, all you have to do is pick the band and match it to the atmega pin - + 5v.

  7. There are many predefined buttons available , just pick the one you want and add your switch.? On side to the atmega pin and the other to ground. These are optional as the touch control has all the functions? already.

ENJOY.
73
VE1BWV



Re: Multibanding a Bitx40 questions

 

¿ªÔÆÌåÓý

Sure, if we want to replace the Raduino with something else...? ...if only we knew someone on this list who was building such a beast...? ;-)

Yes, that's absolutely true.? The mod I mention wouldn't take much code space or RAM space.? Maybe some RAM if you wanted to keep a per-band VFO.? The limiting factor on my rig at least is Digital I/O, and both the micro's you mention solve that problem, and then some.? But it is a far more involved modification to the BitX than just adding some components.

-Mark

On 10/10/2017 06:19 PM, Jack Purdum via Groups.Io wrote:

Allard has crammed an amazing amount of functionality into that poor Nano and its resource base is just about gone. It might be time to upgrade to a Mega 2560 or maybe even a Teensy if the horsepower is needed. I don't understand the advantage of the rotary switch over a rotary encoder. That would give you the flexibility to use a state machine to control band switching. After locking Allard in the claustrophobic space of the Nano, a Mega would feel like the Grand Canyon to him...imagine what he would do with that resource base! Seems to me that this is a cards-on-the-table-anything-goes moment for builders.

Jack, W8TEE



From: "Smitty, KR6ZY" <mark-groupsio@...>
To: [email protected]
Sent: Tuesday, October 10, 2017 9:02 PM
Subject: Re: [BITX20] Multibanding a Bitx40 questions

I've got the QRP Labs parts to make this happen (2x Relay boards, and 80m, 60m, 40m, and 20m LPFs and BPFs) but haven't started the mods yet.? Life always gets hectic during Autumn, so I'm hoping I have more time to work on this come January (after my daughter's ballet season.)

The one thing I haven't figured out yet is how to select the band.? We could do it in software on the display with knob/buttons, then have the Raduino output a band select signal.? Would require a GPIO for every band, or some fancy interface hardware to reduce the number of pins used, and the current modifications supported by Allard's software just don't have this many pins.

Instead, I'm thinking of using a 2P6T rotary switch like [1], and doing two things with it:
1: Put a voltage divider ladder on one pole that generates an analog voltage to send to the microcontroller to sense which position the switch is in.? All 6 positions (and a lot more) can be sensed with a single pin.? Then, the Raduino will know which VFO frequency to use.

2: Use the other pole to drive the relay boards directly.? No RF through the switch (we'd need 4 poles for that, and we'd still need a way to mount all the filters!), just a 5v line to select which relay on the relay boards is energized.? One line can drive both relay boards. (Just make sure you have the filters in the same positions!)

Any better ideas?

-Mark

[1]

On 10/10/2017 05:07 PM, Dexter N Muir wrote:
Hi David
?Until code shows up, the prep-work can be done. Lift the bits of the BPF an LPF from the BitX if needed, possibly reconstruct as an external, install the relay kit and hard-wire-enable the 40m (from the BitX or external). The when code shows up (or you learn to do it) do the switching thing.
Best of luck - DexZL2DEX





Re: Multibanding a Bitx40 questions

 

¿ªÔÆÌåÓý

I just bought a Teensy Weenie 3.6 because of this group.? Wow, lots of pins and Yes the Arduino conversion works.

I have run some of the examples.? Don't know what I will do with it?

48 Pins and lots of Speed. Memory card slot?

So, it does work in Arduino IDE with little pain.

Seems like something for big project?

Mouser or Spark Fun, about $30.

Lots more than you need for BitX?

Mike, WA6ISP

10/2017 6:19 PM, Jack Purdum via Groups.Io wrote:
Allard has crammed an amazing amount of functionality into that poor Nano and its resource base is just about gone. It might be time to upgrade to a Mega 2560 or maybe even a Teensy if the horsepower is needed. I don't understand the advantage of the rotary switch over a rotary encoder. That would give you the flexibility to use a state machine to control band switching. After locking Allard in the claustrophobic space of the Nano, a Mega would feel like the Grand Canyon to him...imagine what he would do with that resource base! Seems to me that this is a cards-on-the-table-anything-goes moment for builders.

Jack, W8TEE



From: "Smitty, KR6ZY" <mark-groupsio@...>
To: [email protected]
Sent: Tuesday, October 10, 2017 9:02 PM
Subject: Re: [BITX20] Multibanding a Bitx40 questions

I've got the QRP Labs parts to make this happen (2x Relay boards, and 80m, 60m, 40m, and 20m LPFs and BPFs) but haven't started the mods yet.? Life always gets hectic during Autumn, so I'm hoping I have more time to work on this come January (after my daughter's ballet season.)

The one thing I haven't figured out yet is how to select the band.? We could do it in software on the display with knob/buttons, then have the Raduino output a band select signal.? Would require a GPIO for every band, or some fancy interface hardware to reduce the number of pins used, and the current modifications supported by Allard's software just don't have this many pins.

Instead, I'm thinking of using a 2P6T rotary switch like [1], and doing two things with it:
1: Put a voltage divider ladder on one pole that generates an analog voltage to send to the microcontroller to sense which position the switch is in.? All 6 positions (and a lot more) can be sensed with a single pin.? Then, the Raduino will know which VFO frequency to use.

2: Use the other pole to drive the relay boards directly.? No RF through the switch (we'd need 4 poles for that, and we'd still need a way to mount all the filters!), just a 5v line to select which relay on the relay boards is energized.? One line can drive both relay boards. (Just make sure you have the filters in the same positions!)

Any better ideas?

-Mark

[1]

On 10/10/2017 05:07 PM, Dexter N Muir wrote:
Hi David
?Until code shows up, the prep-work can be done. Lift the bits of the BPF an LPF from the BitX if needed, possibly reconstruct as an external, install the relay kit and hard-wire-enable the 40m (from the BitX or external). The when code shows up (or you learn to do it) do the switching thing.
Best of luck - DexZL2DEX




-- 
Mike Hagen, WA6ISP
10917 Bryant Street
Yucaipa, Ca. 92399
(909) 918-0058
PayPal ID  "MotDog@..."
Mike@...


Re: Multibanding a Bitx40 questions

Jack Purdum
 

Allard has crammed an amazing amount of functionality into that poor Nano and its resource base is just about gone. It might be time to upgrade to a Mega 2560 or maybe even a Teensy if the horsepower is needed. I don't understand the advantage of the rotary switch over a rotary encoder. That would give you the flexibility to use a state machine to control band switching. After locking Allard in the claustrophobic space of the Nano, a Mega would feel like the Grand Canyon to him...imagine what he would do with that resource base! Seems to me that this is a cards-on-the-table-anything-goes moment for builders.

Jack, W8TEE



From: "Smitty, KR6ZY" <mark-groupsio@...>
To: [email protected]
Sent: Tuesday, October 10, 2017 9:02 PM
Subject: Re: [BITX20] Multibanding a Bitx40 questions

I've got the QRP Labs parts to make this happen (2x Relay boards, and 80m, 60m, 40m, and 20m LPFs and BPFs) but haven't started the mods yet.? Life always gets hectic during Autumn, so I'm hoping I have more time to work on this come January (after my daughter's ballet season.)

The one thing I haven't figured out yet is how to select the band.? We could do it in software on the display with knob/buttons, then have the Raduino output a band select signal.? Would require a GPIO for every band, or some fancy interface hardware to reduce the number of pins used, and the current modifications supported by Allard's software just don't have this many pins.

Instead, I'm thinking of using a 2P6T rotary switch like [1], and doing two things with it:
1: Put a voltage divider ladder on one pole that generates an analog voltage to send to the microcontroller to sense which position the switch is in.? All 6 positions (and a lot more) can be sensed with a single pin.? Then, the Raduino will know which VFO frequency to use.

2: Use the other pole to drive the relay boards directly.? No RF through the switch (we'd need 4 poles for that, and we'd still need a way to mount all the filters!), just a 5v line to select which relay on the relay boards is energized.? One line can drive both relay boards. (Just make sure you have the filters in the same positions!)

Any better ideas?

-Mark

[1]

On 10/10/2017 05:07 PM, Dexter N Muir wrote:
Hi David
?Until code shows up, the prep-work can be done. Lift the bits of the BPF an LPF from the BitX if needed, possibly reconstruct as an external, install the relay kit and hard-wire-enable the 40m (from the BitX or external). The when code shows up (or you learn to do it) do the switching thing.
Best of luck - DexZL2DEX




Re: Multibanding a Bitx40 questions

 

¿ªÔÆÌåÓý

I've got the QRP Labs parts to make this happen (2x Relay boards, and 80m, 60m, 40m, and 20m LPFs and BPFs) but haven't started the mods yet.? Life always gets hectic during Autumn, so I'm hoping I have more time to work on this come January (after my daughter's ballet season.)

The one thing I haven't figured out yet is how to select the band.? We could do it in software on the display with knob/buttons, then have the Raduino output a band select signal.? Would require a GPIO for every band, or some fancy interface hardware to reduce the number of pins used, and the current modifications supported by Allard's software just don't have this many pins.

Instead, I'm thinking of using a 2P6T rotary switch like [1], and doing two things with it:
1: Put a voltage divider ladder on one pole that generates an analog voltage to send to the microcontroller to sense which position the switch is in.? All 6 positions (and a lot more) can be sensed with a single pin.? Then, the Raduino will know which VFO frequency to use.

2: Use the other pole to drive the relay boards directly.? No RF through the switch (we'd need 4 poles for that, and we'd still need a way to mount all the filters!), just a 5v line to select which relay on the relay boards is energized.? One line can drive both relay boards. (Just make sure you have the filters in the same positions!)

Any better ideas?

-Mark

[1]

On 10/10/2017 05:07 PM, Dexter N Muir wrote:

Hi David

?Until code shows up, the prep-work can be done. Lift the bits of the BPF an LPF from the BitX if needed, possibly reconstruct as an external, install the relay kit and hard-wire-enable the 40m (from the BitX or external). The when code shows up (or you learn to do it) do the switching thing.

Best of luck - DexZL2DEX



raduino v1.25.1 released (touch keyer)

 

Hi,
I've just released raduino v1.25.1, download it from

In this release:
  • included some minor bug corrections to the touch keyer calibration routine
  • updated the operating instructions

Happy BitX-ing!
73 Allard PE1NWL


Re: Multibanding a Bitx40 questions

 

Hi David

?Until code shows up, the prep-work can be done. Lift the bits of the BPF an LPF from the BitX if needed, possibly reconstruct as an external, install the relay kit and hard-wire-enable the 40m (from the BitX or external). The when code shows up (or you learn to do it) do the switching thing.

Best of luck - DexZL2DEX


Re: Multibanding a Bitx40 questions

 

I have the relay kit and almost all the lpfs. Other than the board and relays being 5v it's easy to build super small and the lpf/bpfs work great.
?
?I have used mine as a stand alone lpf for my 500mw in 10w out amp. I too am going to try and make my bitx multi band. I have been waiting until people who know more about code and hardware to post data.

I would wing it but don't know anything about code. I plan to just remove the 40m bpf/lpf and add two of the relay kits one bpf one lpf, 5 bands in all.?
One day....hihi

?73
? ? David


Re: BITX QSO Night, Sunday, October 8, 7pm Local Time, 7277 kHz in North America, 7177 kHz elsewhere

 

Calling on 7277

On Oct 8, 2017 4:26 PM, "John P" <j.m.price@...> wrote:
You're welcome! I'm not hearing anyone else either. Probably nobody else got my frequency change message. Net seems to be gone from 7.277, but now had broadcast QRM on it.
--
John - WA2FZW


VU2SPF - Universal VFO/BFO with Si5351 and TFT touch screen for BITX like txcvr - Release v2.5

 

·¡³æ±è±ð°ù¾±³¾±ð²Ô³Ù±ð°ù¡¯²õ

Universal VFO/BFO with Si5351 and TFT touch screen for BITX like txcvr

?

Author - VU2SPF,? SP Bhatnagar,??Bhavnagar, INDIA?? ?

? ?

Project Support - VE1BWV, Joseph Basque, CANADA

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ??

?

(Ver 2.5)

DOWNLOAD
?

Watch videos produced by Joe Basque on YouTube ?- Look for VU2SPF / VE1BWV.

Also on Facebook BITX group.

?



Main Features :

?

?

?

- Uses low cost Si5351 for generating two independent VFO and BFO frequencies.

- Touch screen controlled UI on colour TFT.

- Two VFOs A/B and one Memory VFO.

- 100 memory channels for storing frequently used stations (more channels possible)

- Switch between VFO and Memory by touch.

- Both VFO and BFO are adjustable from screen / buttons. Also works with fixed BFO systems like HF Sig¡¯s Bitx40.

- Some touch buttons are Two Sided (left and right half of button works independently) .

- Some touch buttons are Single Push type.

- Saving to EEPROM on demand (not automatic, thus reducing memory write operations to extend life? of CPU).

- Uses low cost MCUFriend 2.4¡± / 2.8¡± colour display.

- Horizontal S-meter.

- Preset Ham Bands. Band Limits are hard coded / adjustable in program code.

- Continuous frequency output mode (frequency generator mode).

- Uses standard Arduino Mega 2560. No soldering and assembled in short time with any standard 5351 breakout board.

- Also available a special shield designed for freq generator and other control lines ( our 5351 breakout board) which mounts on the Arduino Mega in the remaining space next to TFT.

- Also possible to connect external rotary encoder and? buttons working parallelly with Touch screen controls.

- PTT from Touch screen or external switch (mic / front panel / foot switch ) with toggle or continuous press types.

- PTT timeout to reduce Final amplifier heating.

- Many user programmable parameters.

- Can control several bands by controlling BPFs and LPFs from digital pins of Arduino Mega under Program control. Thus easy implementation for multibander rigs.

- Many digital outputs and Analog inputs for? additional? controls still available for other extensions on Mega.

?

User Interface?

All functions of the VFO are carried out by touching in the button area. The screen has several touch buttons and their corresponding information is displayed on the button itself. The function of each button is described below:

?

VFO button: Repeatedly touching this button rotates between? VFO A, VFO B and Memory(M) VFO. This selects the VFO which will be active. A, B or M is displayed below this button and to the left of frequency display.

?

Mem ## : Shows the currently selected memory channel number (01 to 100). On touching right half of the button the memory number increases from 00 to 100. Touching the left half of this button decreases memory channel number. On changing the memory number,? the stored information (vfo frequency, bfo frequency, sideband) from EEPROM memory is read and copied to VFO M. If the M was selected using VFO button, the selected frequency will be output on VFO. If A or B are selected then memory contents would be displayed below frequency button on right side as M xxxxxxxx.

?

Rx / Tx : on touching? Rx button the PTT is activated and the button turns RED with Tx displayed. If PTT Timeout is active (using ¡®TxTmO¡¯ button below) then it would automatically go back to Receive mode after a preset time out (this time is user controlled in program). In this mode the remaining time is also displayed in seconds on Red Tx button .

?

Frequency Display : The? selected active vfo is displayed here. On selecting a different VFO or MemCh the display shows previously saved frequency for that VFO. Touching anywhere in the right half of this display button increases frequency by frequency steps displayed below it in the center (1Hz to 1MHz). Similarly the touch in left half of button would decrease the frequency by step Hz.

?

Secondary Frequency Display : Below the active frequency button the other two VFOs are displayed for information. If VFO A is active, then VFO B and Memory VFO are displayed under the main frequency display. Similarly when Mem VFO is active the VFO A and B are displayed below. (These are purely for information of non active VFOs? and are not active buttons and have no effect on touching.)

?

Band : Displays the HAM band corresponding to current active VFO. Touching right / left half of this button sequentially changes the bands. Band frequency limits can be set in the program. There is a continuous freq generator mode for in between band frequencies.

?

Steps : This button displays and changes current step size. Initial power up step size is 1KHz. Step size can be increased or decreased by touching right half or left? half of the button. Steps are sequenced in powers of 10, from 1 Hz to 1MHz.(1Hz, 10Hz, 100Hz, 1kHz, 10kHz, 100kHz, 1MHz).

?

Side Band : Switching between USB and LSB is done by touching this button. The side band switching is done by adjusting the VFO frequency alone for fixed BFO rigs (e.g. Bitx40 from HFSigs)? and by adjusting BFO frequency for programmable BFO? types of rigs.

?

BFO : The current BFO frequency is displayed here and can be increased or decreased by step size by touching on right and left half of the button. This is the real experimenter¡¯s button and is kept with a view that the same VFO/BFO generator could be used with a variety of transceivers having different BFO requirements (e.g. Bitx with 10 MHz xtal filter needs BFO around 9.9940 MHz? while a Bitx using 12 MHz xtal filter needs a BFO of about 11.9940 MHz). It is real fun listening to radio while adjusting BFO frequency in small steps to get best sounding station.

?

VFO > < Mem :? (displayed as V > <M)??? On touching the left half of this button the currently selected VFO (A or B) will be copied to Memory VFO ( not saved yet on EEPROM), the right half of the button will copy the content of Memory VFO on the currently selected VFO (A/B).

?

SAVE : Touching this button will save currently active VFO in EEPROM memory. VFOs A, B and 100 Memory channels are kept on EEPROM. Only currently displayed VFO is saved to its corresponding memory location. It saves vfo and bfo frequencies and current sideband. During save process the text display changes to SAVING.

?

TxTmO : (PTT_Time_Out Activate button) : This button will activate the Time out function of PTT. The PTT would automatically get deactivated after the timeout period. The period is adjustable from within the program. Very useful when using toggle PTT

?

The Three Fx buttons are yet to assigned. Your suggestions are welcome for functions of these buttons.

?

?

The Hardware

MODIFIED ATMEGA - ADDED SOCKETS ON THE REAR?

To keep the hardware assembling at minimum we use? standard off the shelf components.? A standard Arduino Mega 2560 is the base system on which compatible TFT display cum touch screen shield is mounted. A standard breakout board for frequency generating chip 5351 may be connected to Arduino using two control wires (SCL, SCK),? and of course the common ground wire plus the 3 V or 5 V power? supply. A PCB for 5351 is also designed for the more adventurous hams. Details of the PCB with schematic are given later.? All buttons are 22 connected between the pin and ground.

?

Though all operations of this VFO are controlled from the touch panel, for those who prefer or need buttons and rotary encoder, it is easy to connect push buttons for almost all functions and also a standard rotary encoder. For connecting the external encoder and buttons a number of pins are available on Arduino board. These pins are allocated in the sketch and can be reallocated by user.

?

?

The Arduino Sketch

?

The arduino program or sketch is accomplishes all functions related to VFO and BFO needed in a typical transceiver like Bitx. Due to varieties in the transceiver design, the sketch is kept flexible and may be adopted for a particular transceiver using some parameters in the program. Details are given in a separate section below. To make the large sketch manageable, it is divided into smaller parts, all of which must reside in the same directory.? The main sketch is called TFT_VFO_SPF_vxxx.ino, where vxxx indicated its version.? This and remaining 5 parts of the sketch must be located in a directory with the name of TFT_VFO_SPF_vxxx, all the other programs should also be placed in the same folder. The names and brief details of these sketches are :

?

1.? TFT_VFO_SPF_vxxx.ino?? - the main program where the execution begins.

2.? EPROMAnything.h? - Handles read write to EPROM where some of the settings are saved

3.? CommonFns.ino? - All functions which are common for? operation

4.? DispPos.ino? - Calculations regarding displays

5.? Displays.ino ¨C All functions needed to display various parameters

6.? saveNsetup.ino? - functions for setup and various types of saves

?

?

User Programmable Parameters

?

Inside the TFT_VFO_SPF_vxxx.ino sketch somewhere near the beginning, there is a section named ¡°USER SELECTABLE DEFINITIONS¡±.? Parameters may be changed/ adjusted as suited to hardware and operational practice. The? ¡°#define¡±? statements are used to select parameters, based on which, some decisions are made later in the program. To define parameters these statements should be uncommented. Similarly, to undefine, there should be two slashes (//) at the beginning of the line.? Many of these are hardware dependent, e.g. model of the bitx or other transceiver. Briefly some of these are explained below:

?

FIXED_BFO ¨C It is defined? if the fixed frequency BFO is generated by onboard oscillator and cannot be altered dynamically by the program (e.g. in Bitx40 from Hfsig, the BFO is fixed xtal Oscillator producing about 11997000Hz). The other option may be to generate BFO from one of the three oscillators of Si5351 chip.

?

IF_12MHZ or IF_10MHZ -? Newer Bitx¡¯s use 12 MHz xtals as IF Filter. Earlier models had 10MHz IF. Only one of these should be defined.

?

Si5351correction ¨C This parameter is used to compensate for minor differences in output frequency of Si5351 IC. Generally a program to calibrate and find this offset ships with the Ether kit¡¯s 5351 library.

?

To accommodate amazing variety in TFT displays, we have to define the display type and some parameters for different displays. A few of these displays have been tested and more may be included soon. For example? elegoo923 and? MCUF0x154 are names given to typical displays. These may not be standard names. More display types may find their place in this section of the program.

?

Several push buttons may be connected to predefined pins as shown below and this allocation may be changed here in this section. One typical Example:

#define BandSelect??? 53

indicates that a button connected at Pin D53 will change bands on repeated push. Similarly many other functional buttons are defined and used. There is a short description of the function of that Arduino pin as comments on the same line.

?

ts_delay? - sets the? delay between touch button to reduce sensitivity. Some touch buttons may trigger several times when touched briefly, if this delay is small.

?

Tx_timeout? - set time in sec for which the Tx works continuously and then switches back to Rx in Tx Time out mode (toggled by TxTmO button)

?

offset and? if_offset ¨C? compensate for the difference in frequency, These offsets are to be? determined experimentally by tuning to a known frequency station.?

?

?

Building Notes

?

Several Methods and Tips which? have been used to? put this project together

?

  1. One method? - A separate shield board? developed to accompany the TFT. It contains a Si5351 as VFO/BFO generator and also an extender, as all free digital I/O pins and Analog Inputs have been brought out on the edge of the board on the other side to make it easier to connect to main board as well as keep the front? reasonably flat for fitting on the front panel of the homebrewed.? VU2SPF has designed the circuits and PCB. which you can build / produce, home brew style.

  2. The second method is to use a display, and Adafruit Si5351 DDS board and a modified Atmega 2560. Using this method you can plug the display directly into the Atmega. Next you add strip sockets to the rear pins of the atmega.. This allows you to plug the required and or optional external wiring to external devices and from the rear of the atmega. Without the mod the front is mostly covered by the display which makes it difficult to get access to the atmega pins.

  3. The same as method 2, except just solder wires directly to the rear of the Atmega

  4. Hash or noise control - After building several versions of this project I found digital hash noise to be quite low.? But additional filtering will make it even better.? I have used simple hash filters using a 1000mfd cap followed a 2 - 12 ohm resistor in series with another 10000mfd cap. Basically two capacitors? with a resistor in between, simple but very effective.?? Use shielded cable where possible, especially from the dds output to the radio VFO connection.? Also, shielded cable from the rotary encoder is a good idea¡­. if you decide to add one¡­..however, Touch control by itself is very good..

?

?

SOFTWARE NOTES

?

  1. The internal arduino code has many user options. There are 3 areas at the beginning of the code which the user may need to change.

  2. ?Fixed or Variable BFOs. .depending on your radio, the code can take care of it for you

  3. Display selections.? currently 2 choices, but you can add your own

  4. IF freq - depending on your radio you will need to choose. 10 mhz and 12 mhz.

  5. TXTimeout Timer - is set for 60 but you can just change the variable for whatever value you desire.

  6. The code for the BAND selection? is implemented, all you have to do is pick the band and match it to the atmega pin - + 5v.

  7. There are many predefined buttons available , just pick the one you want and add your switch.? On side to the atmega pin and the other to ground. These are optional as the touch control has all the functions? already.


ENJOY.
73
VE1BWV


"pop" at 7159.2

 

This may belong to the "Your Set Not Ours" Department, but I'm wondering: Has anyone else noticed a distinct "pop" or "knock" while dialling down on receive from 7159.3 to 7159.2??
It only happens for me in one direction--going up from 7159.2 to 7159.3 makes no unusual sound. My Raduino uses pavelmc's (CO7WT) code, and I'm in LSB. Any idea what might cause it?

-Michael VE1LEB


Re: Bitx40 order - black hole #bitx40help

 

"Had 2", Chris?

DHL, as presented on the hfsigs website, is always an option. Their courier service may be faster than Post, bit it's a pity it's like the farmer's getting his cows serviced (there's a song about that, by Martin Curtis, but I doubt it's ever been recorded).


Re: Multibanding a Bitx40 questions

 

I am interested in buying and multi banding a second bitx, and would like to know how well the qrp labs bandpass and low pass filters work, and if anyone is using the qrp labs relay board to switch them.

Thanks

Brent