Sunday, December 1, 2019

Moving to a new domain

I've recently decided to get a little more active with blogging and posting my projects. With so much time on my hands, and so many projects I'm involved in, I find it silly not to get serious sharing what I'm doing.

So, with that said, I am moving what few posts I have here over to brewinanddoin.com.

I hope to start including all of my ham radio, electronics, raspberry pi, and brewing projects.

See you there!

Jim - AB9LM

Wednesday, September 19, 2018

Vistaprint QSL cards

I was in the market for some new QSL cards. I checked the usual QSL sources and they were a little pricier than I wanted. I had previously ordered some stuff from Vistaprint and was very satisfied with the outcome.

Using inkscape and some high res pictures, I proceeded to design a cool card front and back.





















The color was maybe not quite as bright as I expected, but the price was just right and they are beautiful and glossy. 50 for 13.50 (after discount).
The image was designed as a 4x6, but I added cut lines to make it 5.5 x 3.5.

While I was at it, I decided to order some special gifts to include with any OP that's running QRP :)


Yep... It's a coaster.


Sunday, February 5, 2017

FYBO and the Android keyer

Well, FYBO was a total bust for me. I setup in the backyard with a 40m EFHW, HB1B, J38 and the Android keyer. The temperature was about 20 degrees and breezy. I found that I was getting much colder than I expected. Initially I had a hard time finding an open frequency to call CQ since there were so many other contests going this weekend. The contest ops were sending way faster than I could copy, so I had no chance of working any of them. I managed to work 1 FYBO station - Nick WA5BDU. (I recognized the callsign from the QRP-L)

Anyway, I gave up after about 45 minutes because I started picking terrible EMI from somewhere and could hardly pick out anyone. I normally have an S7 noise floor in my house, but outside is mostly quiet... Of course not this time.

The Android keyer worked well, but I realized that it might have been best to use a 10 turn pot instead of a fixed value resistor, because as the circuit got cold, the frequency shifted some. As a result, I had to adjust the sidetone on the Android app to find the LM567's frequency. Also, I should consider some RFI mitigation because unless I kept the keyer away from the feedline, the circuit was a bit sporatic.

Oh well. Maybe someday I'll move somewhere with more property and ZERO neighbors to cause EMI.

Friday, February 3, 2017

Homebrew Android based keyer

Every year the QRP group Arizona ScQRPions host a field day contest called FYBO (Freeze Your Butt Off). The premise is like any other radio contest except it takes place out doors in the cold, and your score multiplier is based on the lowest temperature at your operating position.
This will be my first CW contest that I'll participate in. I only use a straight key, and for sure don't want to send CQ FYBO DE AB9LM for the duration of the contest.

Rather than programming a micro controller with my message, I decided to use an already existing device that can hold any number of messages, has a thermometer, browser, and clock: My Android device.

From the App store, I downloaded Androidomatic Keyer to handle the generation of code. To actually key my radio, I built an LM567 tone decoder circuit "hard coded" for 1khz. I've been sitting on a package of 10 of these things and haven't yet come up with a use for them. This seemed like a great application.

I followed the schematic from http://www.m0tgn.com/2015/07/cw-decoder-electronics.html
to get me in the general ball park. Getting the frequency set was a real pain using a trimmer, so I opted to use a 4.7k resistor instead. Using the formula 1/(4.7k X .22uF) put me pretty close to 1khz.

There is a bit of a sweet spot for setting the frequency and the volume level, but once found, it doesn't miss a beat.
I even plugged the input to the audio out of my TS-830 and it kept up fine with the speed demons on 14.015

The video below is a demonstration of the interface at work.
Using this circuit, I may see if I can make a CW decoder for the pizero.

Hopefully the propagation Gods smile on me tomorrow, or at least hope my CW isn't too rusty.

Thursday, February 2, 2017

TS-830s -- Fixed!

The new capacitors arrived today. Of course I forgot to take a picture of the caps or of the installation... But I'm very pleased to say that this is exactly what the issue was.

After soldering in the new capacitors, bypass cap, and bleeder resistor, the output peaks 100 watts and HV is back up to 800v like it should be.

Wow... I finally fixed something.

Saturday, January 28, 2017

TS-830s low power output


Last summer I acquired a Kenwood TS-830s from the estate sale of William Morris - WA9HSK. The radio was in excellent condition and worked perfectly from the moment I powered it up. I've had a couple hundred contacts in the short time I've owned it. With the help of my wife Julie, handling the logging and the extra set of ears, I participated in the 2016 Illinois QSO party where I made almost 200 contacts.


The other day while tuning up, I found that I couldn't load up for more than 40 watts. I checked all my connections and SWR, but just couldn't get much power out. The plate's were loading only about half the normal current and the HV meter indicated only about 400 volts. A few minutes of research and I found that the HV capacitors are the likely culprit.


I bled off the voltage from the capacitors, clipped the wires, and tested with my DMM. Ah hah! One immediately shows infinite resistance, while the other jumped high and very slowly decreased. Based on this test method, I don't actually know which one is bad, but at least I know that one of them is... which would explain why I'm only getting about half of the expected voltage. Normally when these capacitors go bad, there is some visible sign, puffing, leakage, etc... but not in this case.

Fortunately for me, K4EAA runs a webstore that caters to TS-830 owners that wish to keep these great radios in working order. For $30 shipped, I'm getting the 2 HV caps, 2 bypass caps, and 2 bleeding resistors. http://k4eaa.com/hv-150b.html

Once they arrive and I get them installed, I'll post a followup.

Wednesday, February 3, 2016

Straight Key Keyer

There was talk recently on the QRP-L mailing list about making an automatic keyer that could record and playback a straight key.  Oddly enough, this is something that I've always considered doing. I'm a fan of the Farnsworth CW method, and I typically need a longer space between letters to accurately copy what I'm receiving. One issue I have always had with other keyers is that the time between characters isn't usually adjustable.

The solution seemed like an easy enough job for any PIC with an EEPROM. After a little fiddling I came up with a simple but effective code in MPLAB XC8. My PIC of choice was a 16LF1938. This chip really is overkill for this application, but it at least gives me tons of room to expand to other functions as I decide.

PORTB.3 = output
PORTB.0 = yellow LED recording indicator
PORTB.1 = key
PORTB.2 = record/play/cancel button


This video is a quick demonstration of how it will record anything, including a sloppy fist.

  1. Is key pressed?
    1. Key radio.
  2. Is record button held down for 3 seconds?
    1. Erase eeprom.
    2. Watch for first key press.
      1. Loop until key is released. Checking every 10ms. (This gives a total recordable time of 2.55 seconds per mark or space.)
      2. Record the duration in EEPROM and increment the EEPROM address.
      3. Record duration until key pressed again or until 2.54s reached. Increment EEPROM address.
      4. Continue loop until record button is pressed again.
  3. When record button is clicked briefly, EEPROM is 'played back' in a key down/key up rotating format until an EEPROM value of 255 is read, or EEPROM address of 255 is reached which equates to ~126 marks (more than enough for even the windiest CQ call).
That's all there is to it. I've posted my code below incase anyone is interested. I realize using interrupts would be much more efficient, but this was just a quick hack job to get it working. Also, I'm hardly a programmer, just a tinkerer...


 /*  
  * File:  SKeyer.c  
  * Author: AB9LM  
  *  
  * Created on January 26, 2016, 6:06 PM  
  */  
 #define _XTAL_FREQ 8000000  
 #include <xc.h>  
 // #pragma config statements should precede project file includes.  
 // Use project enums instead of #define for ON and OFF.  
 // CONFIG1  
 #pragma config FOSC = INTOSC  // Oscillator Selection (INTOSC oscillator: I/O function on CLKIN pin)  
 #pragma config WDTE = OFF    // Watchdog Timer Enable (WDT disabled)  
 #pragma config PWRTE = OFF   // Power-up Timer Enable (PWRT disabled)  
 #pragma config MCLRE = OFF   // MCLR Pin Function Select (MCLR/VPP pin function is digital input)  
 #pragma config CP = OFF     // Flash Program Memory Code Protection (Program memory code protection is disabled)  
 #pragma config CPD = OFF    // Data Memory Code Protection (Data memory code protection is disabled)  
 #pragma config BOREN = ON    // Brown-out Reset Enable (Brown-out Reset enabled)  
 #pragma config CLKOUTEN = OFF  // Clock Out Enable (CLKOUT function is disabled. I/O or oscillator function on the CLKOUT pin)  
 #pragma config IESO = ON    // Internal/External Switchover (Internal/External Switchover mode is enabled)  
 #pragma config FCMEN = ON    // Fail-Safe Clock Monitor Enable (Fail-Safe Clock Monitor is enabled)  
 // CONFIG2  
 #pragma config WRT = OFF    // Flash Memory Self-Write Protection (Write protection off)  
 #pragma config PLLEN = OFF    // PLL Enable (4x PLL enabled)  
 #pragma config STVREN = ON   // Stack Overflow/Underflow Reset Enable (Stack Overflow or Underflow will cause a Reset)  
 #pragma config BORV = LO    // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), low trip point selected.)  
 #pragma config LVP = ON     // Low-Voltage Programming Enable (Low-voltage programming enabled)  
 //End config  
 char address;  
 void blink_yellow(void);  
 void system_setup(){  
  OSCCON = 0b01110000;  
  OPTION_REG = 0b00000000;  
  TRISB = 0b00000110;  
  PORTB = 0b00000000;  
  TRISC = 0b00010000;  
  ANSELB = 0b00000000;  
  WPUB1 = 1;  
  WPUB2 = 1;  
 }  
 void delay_ms(unsigned int milliseconds)  
 {  
   while(milliseconds > 0)  
   {  
    milliseconds--;  
     __delay_us(990);  
   }  
 }  
 void erase_eeprom(){  
   char i = 0;  
   for(i=0; i != 255; i++){  
     eeprom_write(i, 0xff);  
   }  
 }  
 void record_mark(){  
   char count = 0;  
   while(!RB1){  
     LATBbits.LATB3 = 1;  
     count += 1;  
     delay_ms(10);  
   }  
   LATBbits.LATB3 = 0;  
   eeprom_write(address, count);  
 }  
 void record_space(){  
   char count = 0;  
   while(RB1){  
     count += 1;  
     delay_ms(10);  
     if(!RB2 | count == 255){  
       eeprom_write(address, count - 1);  
       break;  
     }  
   }  
   eeprom_write(address, count);  
 }  
 void blink_yellow(void){  
   LATBbits.LATB0 = 0;    
   delay_ms(50);  
   LATBbits.LATB0 = 1;  
   delay_ms(50);  
   LATBbits.LATB0 = 0;  
 }  
 void send_eeprom(){  
   char delay = 0x00;  
   char address = 0x00;  
   while(delay != 0xFF){  
     if(!RB1){  
       LATBbits.LATB3 = 0;  
       blink_yellow();  
       delay_ms(100);  
       while(!RB1){}  
       break;  
     }  
     delay = eeprom_read(address);  
     if(delay == 0xFF){  
       break;  
     }  
     LATBbits.LATB3 = 1;  
     delay_ms(delay * 10);  
     LATBbits.LATB3 = 0;  
     address += 1;  
     delay = eeprom_read(address);  
     delay_ms(delay * 10);  
     address += 1;  
   }  
 }  
 int main(){  
   address = 0x00;  
   int ms_count = 0;  
   system_setup();  
   while(1){  
     if(RB1 == 0){  
       LATBbits.LATB3 = 1;  
     }  
     else{  
       LATBbits.LATB3 = 0;  
     }  
     ms_count = 0;  
     while(!RB2){  
       ms_count += 1;  
       delay_ms(10);  
       if(RB2){  
         delay_ms(100);  
         send_eeprom();  
       }  
       if(ms_count > 200){  
         erase_eeprom();  
         address = 0x00;  
         while(1){  
           LATBbits.LATB0 = 1;  
           while(!RB2){}  
           if(!RB1){  
             record_mark();  
             address += 1;  
             record_space();  
             address += 1;  
             eeprom_write(0xFF,address);  
           }          
           if(!RB2 | address >= 0xF0){  
             while(!RB2){}  
             LATBbits.LATB0 = 0;  
             delay_ms(100);  
             break;  
           }  
         }  
       }  
     }  
   }  
   return 0;  
 }  

Wednesday, August 5, 2015

Windows 8 / Linux dual boot fix.

For some time I had tried to setup my OEM windows 8 pc (UEFI) to dual boot Linux Mint. I could successfully install Linux and boot into it... that is until I decided to boot back to Windows.
Windows would constantly overwrite the boot record and I'd be stuck back at square one. Although my Linux partition is still intact, I couldn't boot into it.

Recently I found a post from an individual detailing the command to use from within Windows to fix the boot record as to boot to grub.

From Windows, hit [Windows + x].
Click 'command prompt (administrator)'
Type the following command:
bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
After rebooting, I'm again presented with grub. Success.

Since that original post was so hard to find initially for me, I thought I'd include it here in case it helps anyone out with the same predicament. ... By the way, if you upgrade to Windows 10, it will screw up the boot record also, so you'll have to run this fix again.

Saturday, April 26, 2014

FT-817 - Welcome to the blown finals club.

For the TL;DR version, skip  to the bottom...
 
Well, it's been a long miserable winter with very little to look forward to.

Spring is finally here, and I decided to ring it in properly with one of my favorite outdoor activities: QRP on the patio. The batteries on my Yaesu FT-817 had gone completely dead over the winter, so I charged them up for 8 hours and to the patio I went.

With everything setup, I was eager to call CQ. Except... I was noticing an output of only about 100mW. After double-checking my connections and settings, I retreated to the garage to investigate the problem. After a few minutes of Googling, I had my answer. Apparently there's a bug with the 817 that if the battery is allowed to go below a certain charge level, the unit does something that destroys the final mosfets. Sure enough... that seemed to be exactly what I had.

I'm well aware of the dangers to the 817 finals by over driving the TX, overheating, bad antenna match, and etc, so I've always been cautious with those issues. Absolutely ridiculous.

So basically it seems that if you abuse the finals, they may blow. If you don't use it at all, it may blow. Fortunately I was able to find a buyer for it, so I'll apply some of the proceeds from the sale to building a new rig from scratch. Ah well... I guess that's what I truly enjoy doing anyway.

PS Yaesu - I'll happily accept a replacement unit. Thanks

TL;DR;

Yaesu FT-817 finals died from the battery going completely dead. It's apparently a known issue.

Sunday, December 1, 2013

PS3 YLOD - it's back.

Previously I documented my attempt at resolving the PS3 YLOD issue for good.

Unfortunately, that fix only lasted a few weeks or so. I've since repeated the same routine several times and only gained a few days at best.

So... Looks like the arctic silver fix isn't going to take care of it in my case. Oh well.

Monday, November 19, 2012

Playstation 3 YLOD fix?

A couple months back my PS3 stopped working. It turns out I was a victim of the dreaded 'yellow light of death', or YLOD.
This occurs from poor cooling of the GPU chip, which eventually causes the chip to become unsoldered at certain points.
A quick Google search for PS3 YLOD uncovered dozens of fix videos on youtube. They entail taking apart the unit, and with a heat gun, reflowing the solder on the chip.

Initially this fix worked. The playstation played for a few hours, then died again :(
I had gone through the same process several times, each time the fix would last shorter and shorter.

Finally on a posting, someone mentioned removing the heat spreader plate from the GPU and replacing the dried up thermal compound between the chip and the spreader. The posting was prefaced by saying that there's a good chance you'll permanently damage the chip while trying to remove the heat spreader, but I had nothing to lose at this point.

Taking the heat gun, I heated the plate a little, and with a putty knife, popped off the heat plate.
I cleaned off all old thermal paste, reran the heat gun to reflow the chip again,  and applied a new dab of Arctic Silver 5, (grain of rice sized dab),  to the middle of the chip.

After putting back the heat plate and reassembly, everything was hooked back up. It's been in use for a couple weeks without flaw. My kid has been using it heavily w/ MW2,3, and GhostBusters.
So far, it's holding together longer than previous fixes. It really looks like it's fixed this time.

So, if you've tried the reflow and it's not working any more, you might wanna give this process a shot. It may or may not work, but it worked for me.



Sunday, September 18, 2011

40m EFHW for the Tiny Tornado

Keeping with the theme of ultra compact, I made a 40m end fed halfwave coupler based on the suggestion from http://www.nfarl.org/mart/node/34

Forgive the blurriness of the picture, but it's basically just an 11uH inductor in an L network w/ a 50pF trimmer. RCA plug on the left, euro binding post on the right.

Here it is all cased up in a short piece of 1/2 cpvc. Adjustment hole on top, and binding screw to connect the 1/2 wave wire is on the left.
It's raining today, so I haven't had a chance to take it out and throw up a wire to test it, but on my ft817 it indicates no SWR... So it's a start.

73 and good QRPing
Jim - AB9LM


Tuesday, September 13, 2011

40m Tiny Tornado w/ PTO

I recently completed building a 40m Tiny Tornado with PTO VFO from scrounged parts.

Tiny Tornado details can be found at:
http://www.indianapolis.net/QRPp-I/KA8MAV_VFO-TT-40.html

I wanted a small cw transceiver that was easy to build, super cheap, and that would fit inside my favorite project enclosure.




Although I wanted to fit the 9v battery inside, I felt that it was a waste of precious altoids real estate.
Instead, I soldered some 9v snaps to a piece of PCB and attached it to the side. Doing this, I'm left w/ some extra room to put a key, or maybe an earbud.





The circuitry turned out a bit messier than I would have liked... I'm certainly no master at Manhattan style building. Not to mention, after soldering the board into the tin, I realized I still needed to drill some holes in the chasis. Booo!

Anyway.. The important part is that it works, and works well as far as I'm concerned. I'm able to tune the entire 40m band... From the CW side, all the way to the end of the phone portion. After a couple minutes of warmup, the VFO is quite stable. With a tuned antenna connected, I'm able to copy even weak signals with little trouble. Although this is a direct conversion receiver, and would need a RIT ordinarily, I think that keying down pulls the VFO just enough to give me the proper amount of shift. .. Which is a good thing, because I dunno how to put a RIT into this PTO VFO.

Into a dummy load, I measured about 300mw on a 9v. I've not had a QSO yet, but very close. I heard a station calling CQ, so I replied... He came back with AB9DM? My attempt to correct him failed as my paddle hose up.

I plan to post a video showing the audio, but as of this writing, I have S9 QRN at my location.
I'll also be putting up a pic of the compact EFHW tuner that I'm working on exclusively for this rig.

73 and good QRPing
Jim - AB9LM

Wednesday, January 20, 2010

FT-817 data jack / Vox mod

The 817 allows you to setup the data port for SSB type data for modes like PSK31, RTTY, Hell, etc...
But I recently found the need to use FM through the data port. In this case, the internal VOX feature would be handy. Unfortunately, FM is not an option through the data port.

A few days ago, I stumbled upon a mod for the FT-817 that enables the internal VOX feature through the data port.
The original how-to can be found here.



The IC of interest is on the bottom side of the board.
If that photo is too small to see, you basically run a 10k resistor from pin 12 to pin 4 or 1.
I used some 30 gauge wire soldered to the resistor, glued the resistor to the board and then ran my wires and soldered to the chip. Needless to say, the soldering was quite delicate work.


Ignore the jumper and the red wording.
That was from the original document.
Note the orange resistor I drew in, this is
where I put mine.

Reassemble and give it the test. Put the rig into FM mode, turn on VOX, and hook up the data interface. You may need to turn up the VOX gain.
Important: Unplug the microphone! It's easy to forget that with VOX on for data, the mic is still picking up your background noise.

After doing this mod, I set my radio up and fired up echolink. I was able to quickly setup an echolink repeater and use my HT to connect to echolink enabled repeaters all over the world.

IC-706 stock microphone repair. HM-103

A friend of mine was recently faced with a broken tension clip on the RJ-45 of an HM-103 mic. (Stock microphone for the IC-706Mk1)
I offered to replace the connector knowing how easy it should be to just crimp on a new one.

WRONG!

After lopping off the defective end, I was shocked to find that the wire colors in the connector didn't match the colors in the chopped end.

With the flat side facing you the connector was as follows:
Empty,Black,Empty,Green,Black,White,Blue,Empty

The wires in the cable were: Black,Green,Bare,White,Blue,Red.

I couldn't even tell on the chopped end where the bare or red wires go. I searched the web up and down and found several people looking for the same solution. I never found an answer, so I resorted to surgery on the broken end.
I finally discovered that the red wire was simply not used, and the bare wire was surrounded with heat shrink to make crimping easier inside the connector.

So, the correct pin layout is: Blank,Black,Blank,Green,Bare,White,Blue,Blank

I crimped the new end on, and voila. Worked FB.

Hopefully this helps anyone that find themselves needing to make this repair.