Friday, September 19, 2014

Decapping a Small CFPX-5 Crystal

In preparation for building the "Smaller Bandpass Filter" (see previous post), I wanted to see how these very small Crystals are made. The crystals packages CFPX-5 measures 3.2 x 2.5 mm, the actual contained crystal must be very-very small.

I had a spare 16MHz Crystal that was sacrificed to satisfy my curiosity.  I removed the lid by grinding away the at the edges.

3.2 x 2.5 mm 16MHz Crystal
For scale, the edge of a Dime is shown.

The photo shows the small crystal chip inside of a cavity supported by two gold plated corners on two gold rounded mounds. The electrical connection appears to be just a gold-on-gold contact, with a dab of silicone on each terminal for shock mount. The other end is free floating without support.
3.3 x 2.5 mm 16MHz Crystal
In my efforts to DECAP the lid, I broke the crystal, as can be seen in the photo, the crack runs from upper right to lower mid. On inspection of the edge of the fracture, the crystal appear to be thick in the middle and thin on the edges. Perhaps etching is used to adjust to published tolerance.

I an not sure that I can expect much from these when used is a multiple crystal Bandpass Filter, but it will be a fun experiment. I expect too much drive level will be the biggest concern. As per Farhan's original circuit, I will use 8 of these to build the filter.

--

Thursday, September 11, 2014

Minima - Smaller Bandpass Filter

OK, ok, . . . I have NOT finished my Minima Audio Modules yet,  . . . What am I doing designing another RF circuit?

Well, I like RF circuits, and not so much for Audio Circuits. As I have stated before, the audio Capacitors are too big for my liking and building interests.

This new RF circuit is a Trial Bandpass Filter using very-VERY small crystals (2x2.5mm). I know, small SMT crystals may not perform well as a Bandpass Filter, but I could not pass up the chance to experiment with them.

My first Minima Bandpass Filter is 1x2 inches (2 sq inches).

My Original Minima Bandpass Filter Module
The new Filter will only be 0.8x1 inches (0.8 sq inch).
New Smaller Bandpass Filter
About 2.5 times smaller than the Original
The boards are on order from OshPark.com, three boards will only be $4.00.

I am not sure this will work well for the Minima Bandpass Filter, but it will be a fun experiment and, I really enjoy small projects.

--

Monday, September 8, 2014

Minima - Wayne's Build

Sunday I had a chance to work with Jeff - KO7M via Skype for a few hours. He has the loan of Wayne's (NB6M) Minima Transceiver for a few weeks while Wayne is on vacation - Thanks Wayne.

A large part of the discussion was about "How to Use Git and GitHub" for software development.

Wayne's Mimima
Afterwards, we decided to try to update Wayne's Minima to my latest Alternate Tuning Method transceiver control code. Wayne had previously downloaded and was using a much older copy of my code. The older copy did NOT have many of the NEW and current features and functions. Our goal was to exercise these new features on Wayne's hardware.

When we first downloaded my NEW Revision, Wayne's Minima went NUTS, with a loud Buzzing sound on all frequencies.

We reinstalled the old software and the Buzz went away.

Something that I had done over the last few weeks has made my software almost useless. With a little work, and via the process of elimination (removing sections of code), Jeff was able to track down the offending routine.

I had inappropriately moved two of the PTT Pin Initialization Statements to within the main TX/RX Idle Loop. This pin is also used to control the TX/RX relay. Rapid re-initialization of the PTT pin was producing hash that the receiver was picking up. Removing the two nu-necessary and redundant statements solved the problem. Initialization of the PTT pin is now done between Receive and Transmit and then when switched back.

The GitHub copy has now been updated.

While we had Wayne's Minima NOW working so well with the new updated code, I wanted to exercise each of the new functions. Wayne does not yet have a "seventh" push button installed, and therefore we had to use a jumper wire as a switch to access some of the functions. For the full list of new functions that I have added to Farhan's original Minima code, see Link. Everything worked better than expected - I am a Happy Camper.

One of my main interest was to see how well the CW ID and MACRO's worked, and how well the QRSS Beacon worked. They actually worked much better than expected!!

The Non-Volatile Save and Load of User Memories worked as expected. Dial Calibration for both USB and LSB was an easy task.

Over the next few weeks, Jeff will be introducing some new hardware support and functionality for the Minima. He has plans for multiple Si570's (VFO and BFO), other I2C Displays and more. See his blog at: http://ko7m.blogspot.com/search/label/Minima.

Contributing to the Minima Hardware and Software has been a very rewarding and interesting project, . . . Thanks, Farhan.

--

Sunday, August 24, 2014

Minima - Planned Panel

Some design progress

Along with my Minima LAB modules (see previous post) I plan to actually build a Minima Transceiver.

This is what I think the front panel will look like. It will be created on brushed double sided copper clad PCB material with nomenclature applied via the Toner Transfer Method. A light protective layer of shellac (or varnish) will be applied.

The rest of the chassis will be double sided copper clad PCB material also.

I take inspiration from Dave's - AA7EE wonderful Chassis that he has built for his projects. His blog is a must-see! . . . I can only hope to be maybe 10% as artful.

My Minima - Planned Panel
Note: A front panel PTT Button may not be necessary depending on the Mic/Phone/Headset used. But, when the switch is absent within the Mic, the panel PTT can be used.

The Reset Button will be mounted on the back of the chassis.

--

Wednesday, August 20, 2014

Minima - Split Operation

For the last few days I have been finalizing the last little bits of code necessary to implement "Split Operation".  I had a bug that just eluded my understanding, I just could NOT see the "forest" for the "trees".

To get another set of eyes on it, I ask Jeff - KO7M to take a look. I sent him the code files and we chatted a few minutes before he left work and was heading home. AND THEN, WHILE DRIVING home we chatted some more on his cell, he was debugging the Sketch from memory !

I guess that is one of the great skills he learned when doing similar software consulting for many years at Microsoft.

I do not know how he does it. As always, he zeroed right in to the problem, we found the fault and I had a solution before he got home.

A few minutes to rewrite a few line, and the problem was solved.

So now, "Split Operation" works on the Minima using my "Alternate Tuning Method". See previous posts for details.

While in "Split Mode" the "A:" VFO is displayed as "a:", similar for "B:" is "b:".

The Displayed VFO is always Receive frequency, while the "other" VFO is used for Transmit.  Regardless, the system will only allow Transmit within the Ham Bands.

Thanks, Jeff !

--

Saturday, August 16, 2014

Minima - My Audio Chain

My Minima Build is still progressing slowly, I have received the audio modules back form OSHPark.com and now doing a trial mock-up (fit) with the Audio Mother Board.

As with all of my Minima Build, it is being produced in modules, so that they can be replaced with other experimental circuits. This is NOT the most economical or desirable building technique for producing a working radio. But, for my LAB experiments this is the most flexible.
My Minima - Audio Modules
From far to near, the modules are:
  • Side Tone Oscillator
  • Mic Pre-Amp
  • Relay Control
  • Receiver Audio Pre-Amp
  • Audio Power Amp
  • Power Supply and Regulator
Each of the module's PCB are about 1 inch square and the cost for each is about $5 (for 3 copies) at OSHPark.com.  I am looking for shorter header or sockets for the final assembly.

The Audio Mother Board has all of the I/O to support the modules.

Unfortunately, OSHPark is trying out some new faster production processes which my board were a part of, the silk screen image as received was not clipped at the copper pads, as it should have been.  OSHPark is now in the process of  producing new replacement boards.

--

Minima - One Builders Success

John - MI0DFG
For the last few months I have been working with John - MI0DFG while programming and testing new operational options for the Minima Transceiver Controller.

John is an avid Hardware Builder and he has produced some very impressive Homebrew equipment. My Minima hardware build is still in progress. While developing the Alternate Tuning Method for the Minima, John has been willing to test a few of my program modification.

Because John is 8 time zones away, we have been communicating via e-mail, and only recently via skyp.

John has provided photos of his build which includes the RF386 Power Amp - very impressive! 

Jeff - KO7M and I put them together into this Video.


The build is very impressive, and the resulting receiver audio performance is also impressive.

Thanks, John and Farhan.


Note: Permission was granted to make and publish this video. Although inconvenienced, NO electrons were harmed and were returned to their origin during the filming and audio recording :-)

--

Wednesday, August 13, 2014

Git and GitHub - For Sotfware Development

Beware, this post may be contagious.

My confession: over the last few weeks I have become a "Git and GitHub Junkie" !

During my work career I have used several Software Development Tools. Most have had some sort of Revision Control, the simplest is no control at all, where files are backed up by the user. Others automate the process, and provide tools to allow the user to see the difference between revisions. In general, most just document the time line of a software project and provide a snap shot of the project when requested. That is, they provide a one dimensional view of a software project.

As an analogy comparison, Git and GitHub provides a three dimensional view or "branches" to a software project. Where simultaneous branches are used for; Development, Experimentation, Patches, HotFixes, and Deployment,  all from within one software project environment. When complete, branches can be merged to update the project, history is maintained for project completeness.

The "GitHub" is the network accessible repository, where others can access your published project.

The "Git"  is the local environment on your computer, where the actual work is typically done. There are command-line and GUI window operations to control the local software development, and which all work with most program development/editor tools.

When necessary, local Git Tools provide means to transfer status and data to-or-from the networked "GitHub". Internally and during transfers, Git and GitHub protects the data from corruption and miss handling with sophisticated cryptographic methods. The use of cryptographic methods is NOT for obscuration nor security, but is simply used to maintain data integrity. What goes into the network or local repository, will come out exactly as it went in.

Each view of a project is call a "branch", Git provides (almost) simultaneous views of a software project. For the developer, a simple command switches between branches.

Typical Local Developer commands are as follows, my linux command-line alases are shown within parentheses, "()":
  • List the current branches = (gbr), git branch 
  • Switch branches = (gco ...), git checkout <branch name>
  • Create a new branch (clone of current) = (gco -b ...), git checkout -b <a new branch name>
  • Save current branch edits = (gci ...), git commit -a -m "A quick note that is saved in history"
  • Merge another branch with the current = (gmg ...), git merge <other branch name>
  • Get current status = (gst), git status 
  • Upload to the GitHub = (gpu ...), git push --all
  • To get Help = git --help

There are other commands that do more sophisticated things, but the basics as listed above will do most things for a new user.

Branches can be named anything, but typical branch names are: "Release", "Dev" (development), "HotFix", "Exp" (experimental). These are then divided into yet other branches to support actual development effort.

For example; When HotFix1234 is finished, it would be merged into HotFix, which could be merged into Dev, and which would ultimatly be merged into Release at the appropriate time. Note: Multiple HotFixNN's could be worked on at the same time, if they effect different sections of code, they will merge without conflicts, otherwise the conflicts will need to be resolved during the merge process. Tools are available to assist with conflict resolution.

My GitHub repository is https://github.com/wa0uwh, over time more software projects will be included.

My current Git software project is "Minima - Alternate Tuning Method" (see previous posts).


Yes,  . . . I am a Git and GitHub Junkie,  . . . and with help,   I am finally willing to admit it !!

--

Wednesday, August 6, 2014

Minima - My Button Help Text

UPDATED: Aug 8, 2014 15:49
UPDATED: Aug 9, 2014 16:51
UPDATED: Aug 10, 2014 17:05
UPDATED: Aug 17, 2014 02:03
UPDATED: Aug 20, 2014 22:01
UPDATED: Aug 29, 2014 13:02
UPDATED: Sep 23, 2014 10:04 

My Minima Controller Alternate Tuning Method Help Text


Tuning Knob Operations, used for both Frequency and RIT

   Tuning POT = Incremental Near Center
   Tuning POT = Auto Increment Near Extremes
   Tuning POT = Faster Auto Increment At Extremes


Button Operations

   Btn1 is the original Minima FN Button
   Btn2-Btn7 are added, see: http://goo.gl/Ca1JUz


   Btn1 Single_Press = Toggles: RIT Mode ON/OFF 
   Btn1 Double_Press = Swap A/B VFO's, Cancels any Pending Edit-IF-Freq 
   Btn1   Long_Press = VFO Copy, A>B or B>A
 
   Btn2 Single_Press =  Left, Move Frequency Cursor 
   Btn3 Single_Press = Right, Move Frequency Cursor
 
   Btn4 Single_Press = Select: USB, LSB, or Auto USB (default) 
   Btn4 Double_Press = Loads User-Preferences from Non-Volatile Memory
   Btn4   Long_Press = Saves User-Preferences  to  Non-Volatile Memory
   Btn4  Alt_PressFN = Toggles: Split Operation ON/OFF
   Btn4  Alt_PressLF_CUR = Starts CW Macro MSG1, Key down to abort
   Btn4  Alt_PressRT_CUR = Starts CW Macro MSG2, Key down to abort
 
   Btn5 Single_Press =   Up, Change HAM Band (saves current Freq and SSB Mode) 
   Btn6 Single_Press = Down, Change HAM Band (saves current Freq and SSB Mode)
 
   Btn7 Single_Press = Toggles: Tune/Cursor-Move Mode
   Btn7 Double_Press = Toggles: Menu Mode
   Btn7   Long_Press = Display, and Edit IF-Freq, Saves IF-Freq
   Btn7  Alt_PressLF = Toggles: Tune 2500Hz Mode ON/OFF
   Btn7  Alt_PressLF_CUR = Starts QRSS Beacon Macro MSG1, Key down to abort
   Btn7  Alt_PressRT_CUR = Starts QRSS Beacon Macro MSG2, Key down to abort

   Where: 
       "Alt_PressFN" = First press a BtnN (while holding) quickly press FN and
                          release FN, then release BtnN

       "Alt_PressLT" = First press a BtnN (while holding) quickly press LEFT and
                          release LEFT, then release BtnN

       "Alt_PressRT" = Similar to LEFT
 
       "Alt_PressLT_CUR" = First press a BtnN (while holding) quickly press LEFT-Cursor and
                          release LEFT-Cursor, then release BtnN

       "Alt_PressRT_CUR" = Similar to LEFT-Cursor


IF Frequency Adjustment (Dial Calibration)

    1. Select a Sideband
    2. Adjust VFO Display to the expected Zero Beat Frequency of a Standard
    3. Long-Press btn7
    4. Zero Beat, adjust as necessary with the Cursor and Dial, or the RIT
    5. To Complete Calibration, Long-Press btn7 (or, to abort IF CAL - Double-Press FN)
    6. To Save to Non-Volatile Memory Double-Press btn4
    7. Do the same for the other Sideband


User-Preferences

   The Current Saved/Loaded User-Preference Include:

       The Current Band, Frequency and Sideband Selection
       The Last Frequency and Sideband used within each Ham Bands
       USB and LSB IF-Freq Adjustments
       The Current VFO "A/B" (or "I" if in  IF-Freq Edit Mode)

   Excluded from User-Preferences Save/Load are:

       RIT
       Cursor Position

   The goal of saved User-Preferences is to return the Receiver
   to a previously saved configuration at the next Power-ON or Processor Reset.
 

Factory Reset = Holding any Button at Power-ON or Processor Reset.

   Note: previously saved User-Preference can be re-loaded with another
   Power-ON, Reset, or with the Load Button.


Error and Status Messages

   Load Fail = The internal Non-Volatile ID does not match the current Rev
   of the Save/Load code, please re-save User-Preferences.

   Load Fail CSum = The internal Check-Sum of the Non-Volatile Memory does
   not match as expected, please re-save User-Preferences.

   Loading nnnB = This is the size of the User-Preferences Loaded
      from Non-Volatile Memory.

   Storing nnnB = This is the size of the User-Preferences Saved
      to Non-Volatile Memory.



Note: When the IF Frequency is Set to Zero, the Controller can be used as a handy signal source. The software is available at:


The Development (Dev) Respository is available at:


This list will be updated as the Controller Software changes.

--

Tuesday, August 5, 2014

Minima - Software Progress 2

Current State

Updated: Aug 7, 2014 11:26
Updated: Aug 9, 2014 18:32
Updated: Aug 14, 2014 18:20
Updated: Aug 20, 2014 21:59
Updated: Sep 1, 2014 06:44
Updated: Sep 23, 2014 10:12

See the next post for help text, and here for a users successful build.

The additional functions that my Minima Alternate Tuning Method Repository provides are as following.
  • High resolution, plus/minus 1Hz Tuning (thanks to Jeff - KO7M).
  • Near Normal Dial Tuning Method as found on most Dial Radio system.
  • Support for six additional buttons
  • Tuning Cursor positioning via Left/Right push buttons.
  • Automatic (original) or Manual Selection of Sideband via push button.
  • Ham Band Switching via Up and Down push buttons
  • Nine Ham Band Memories, with Frequency and Sideband Saved
  • Two Memories for each Band, implemented and saved as "A" and "B" VFO
  • RF386 Power Amplifier Filter Selection via generated clock pulses on PD7 (pin13).  Note: It works now, with new revised timing pulses.
  • Tuning by 2500Hz Steps (similar to FT-817, mode set via button 7)
  • Re-Center Tuning Knob while any Button, Key, or PTT is pressed, without changing the Freq
  • RIT Mode, implemented as +-990Hz in 10Hz Steps
  • Limit TX to within the Ham Bands (currently, the user must control Sidebands out side of the Ham Bands)
  • Include Jeff -KO7M Si570 Driver "Tuning Click Fix"
  • Frequency Dial Calibration via IF Frequency Adjustment
  • IF Configuration and Adjustments
  • On demand, save user specified Band Memories into non-volatile memory, and retrieved on power up.
  • Factory Reset - By Holding any Button at Power-ON or Processor Reset
  • Split, Cross-Band or In-Band operations; Transmit on "A" VFO and Receive on "B" VFO (Note: I need to check the Regulations to see if Split operations is legal on HF?)
  • Automatic CW ID and/or CW CQ Calling Memories.
  • Two CW Macros and Two QRSS Macros Beacon
  • User Preference Menu Edit Mode
The software can be access at:


Some Plans

Additional functions that are currently being planned, are:
  • Implement option for UK Band Limits and Default Frequencies

Long Term Plans

Some longer term implementation ideas include:
  • Implement WSPR, and PropNET Transmit Beacon modes.
  • Limits imposed on modes, based on Band Plans, i.e., SSB Transmit only in phone section. A "digital" mode could allow computer controlled transmit via a sound card on Upper Sideband.
  • etc, etc
--