This Spewed Out of the Internet #24

0511-0701-3118-0930Here’s another update of interesting important stuff spewing forth from the internet.

The Noise Blankers continue to run amuck on these interwebz, with cutting edge reporting like this: Amateur Radio Club Indicted on Ferritte Trafficking Charges, Special Event Station to Mark Departure of Mother-In-Law, and Man Claims CQ Contest Victory Despite No Contacts. In a related matter, still no word on the status of the Lost Island DX Society (LIDS).

The FISTS CW Club has a web page that measures your callsign weight. The basic idea is that shorter is better, so plug your callsign in and the ham with the lowest score wins! Mine weighs 52, what’s yours?

The ARRL Field Day information is available for download. The logo looks pretty good this year! field day 2013

Plain Old Telephone Service (POTS) is on the way out.

Lots of new content on HamRadioSchool.com.  Stu W0STU has been discussing the Technician License Question of the Week and I contributed some Shack Talk articles.

And remember, everything on the internet is true because the government is watching it.

73, Bob K0NR


Bob Witte, KØNR, is a regular contributor to AmateurRadio.com and writes from Colorado, USA. Contact him at [email protected].

Hacking the Baofeng UV-3R

hacked-uv-3r

While I was searching around for information for the UV5R hacking I have previously done, I came across some schematics for the UV3R. From a first glance it looked like the CPU could be flashed. In fact, in the schematics it looked like they even left the programming pads on the PCB. The UV3R is very similar to the UV5R, except for its lower power and lack of a good LCD and a keypad. Other then that, the two radios have the same RDA1846 chip that is controlled by a CPU.

The CPU used on the UV3R is the MC81F8616 which is capable of being re-flashed many times. Better still, the manufacture of the the chip Abov has all the documentations, the compilers and the programmers for this chip.

Chip Documentation (MC81F8616):
http://www.abov.co.kr/eng/product/info/view.php?dev=mc81f8816
C Compiler: http://www.abov.co.kr/eng/tool/hms800_cc.php

This got me very encouraged since it would be much simpler to hack this radio then removing the CPU on the UV5R; I attempted before. I quickly ordered one, took it apart as soon as it arrived and traced the programming pads (I did not even use, just turn it on to make sure its not DOA).

hacked-uv-3r-2

After looking at the datasheets and their USB programmer program, I was able to trace the protocol and re flash the chip using an arduino. As expected, they had the security bit set, so I could not read the original firmware. However, I was able to erase the chip and upload new code. Fortunately it was not too difficult to figure out how everything functions thanks for the schematics and my previous experience hacking the uv5r. My biggest problem was getting the LCD to function properly since it was a bit mislabeled in the schematics.

As a proof of concept I had the radio tuned to 145.525MHz and listens to a signal. When a strong signal is received it played back 3 dtmf tones as can be seen in the video below.

Anyone is welcome to help and you can start by checking out the code from here:

https://github.com/lelazary/UV3RMod

I also started a thread on the UV3R yahoo groups for anyone wanting to pitch in ideas for the firmware (given the limitations of the RDA1846 chip and 16K of memory). I am not going to promise to implement everything, but if its not to difficult, I will try to. However, since this is going to be open source firmware, you could always try to change it yourself (I will always be willing to help).

Here are my list (if the feature makes it to the repository at
https://github.com/lelazary/UV3RMod/blob/master/WISHLIST
then it would probably be implemented):

Mode 1) Quick interface to program rx freq, tx freq, power and PL code very quickly for repeaters. No offset, you just start with the rx freq and shift it by whichever amount you want. This will allow allow you to turn off the tx, or operate satellites.
At any point during this mode, you can hold the mem channel and it will ask you which number you want to save this to.

Mode 2) Memory mode will allow you to go through your saved memory. At any point you can press menu and change more details about the channel.  The details will include power with granular level, DTMF TX/RX, and other functions TBD. This mode will show the channel name and the freq underneath it.

Mode 4) Satellite Mode: Auto tuning of the frequency with response to the Doppler shift.

Mode 5) Digital mode. Hopefully I could add some text base digital data for rx and tx. You might need to tx the text using morse code since there is no alpha numeric keypad on the radio. The digital mode will also include a store and repeat message forwarding.

Mode 6) Computer mode: All the functions of the radio including the RDA1846 registers, TX, and RX will be controlled through the serial port on the radio.

Mode 7) Fox/Hunt  mode. Can be used to transmit a signal intermittently (like call sign morse code). Or send the RSSI signal into the audio, and with a directional antenna you can go hunting.

Mode 8) Advance mode: Any RDA 1846 register can be set manually and saved for during startup.

Mode 9) If the digital mode works, then RF programming of the radio. This will allow anyone to send you repeater information from their memory locations. I will work by selecting a memory channel to rx, and pressing a button. Then on another radio you can send the programming info.

Programmer Protocol

The implementation of this protocol along with the arduino code and the ongoing firmware can be cloned from github.
https://github.com/lelazary/UV3RMod

Here is the protocol used to get into the chip and program it: A 9V is set on the reset pin (VPP) to enter programing mode.
Protocol sending over SPI LSB first. After almost every byte, the chip will pulse the data line to indicate ACK.

Get Chip ID: 0x55 0xAA 0x5A 0xA5 0x01 0x00 0x00 0x05 0x00 wait 1ms for response should be 0x82

Program fuse bits

Get Chip ID   : 0x55 0xAA 0x5A 0xA5 0x01 0x00 0x00 0x05 0x00 wait 1ms for response should be 0x82
30ms delay
Set Mode      : 0x55 0xAA 0x5A 0xA5 0x01 0x00 0x00 0x05 0x08 wait 1ms for response should be 0x01
30ms delay
set 20FF to 0 : 0x55 0xAA 0x5A 0xA5 0x02 0x00 0x00 0x03 0x05 0x00 wait 1ms for response should be 0x55

Erase Chip   :
Get Chip ID   : 0x55 0xAA 0x5A 0xA5 0x01 0x00 0x00 0x05 0x00 wait 1ms for response should be 0x82
30ms delay
Erase         : 0x55 0xAA 0x5A 0xA5 0x01 0x00 0x00 0x03 0x01 wait 1ms for response should be 0x55
2 sec delay
set 20FF to 0 : 0x55 0xAA 0x5A 0xA5 0x02 0x00 0x00 0x03 0x05 0x00 wait 1ms for response should be 0x55

Read Data:
Get Chip ID    : 0x55 0xAA 0x5A 0xA5 0x01 0x00 0x00 0x05 0x00 wait 1ms for response should be 0x82
30ms delay30ms delay
Set Read range: 0x55 0xAA 0x5A 0xA5 0x05 0x00 0x00 0x04 0xC0 0x00 0xC0 0xFF 0x00 <wait for data to go high> read 255 bytes
30ms delay
Set Memory Mode: 0x55 0xAA 0x5A 0xA5 0x01 0x00 0x00 0x05 0x08 wait 1ms for 0x00

Program Data:
Get Chip ID                 : 0x55 0xAA 0x5A 0xA5 0x01 0x00 0x00 0x05 0x00 wait 1ms for response should be 0x82
30ms delay
Set Memory Mode             : 0x55 0xAA 0x5A 0xA5 0x01 0x00 0x00 0x05 0x08 wait 1ms for 0x00
30ms delay
Set program range and data  : 0x55 0xAA 0x5A 0xA5 0x80 0xC0 0x00 0x00 <128 bytes> wait 1ms for 0x55

Set Memory Mode: 0x55 0xAA 0x5A 0xA5 0x01 0x00 0x00 0x05 0x08 wait 1ms for 0x00

DIY instructions for performing this hack

Disclaimer: This hack is a work in progress. If you perform this hack you might transmit on frequencies outside the allowable amateur bands. For now I am keeping the TX amplifiers off, so the radio will not transmit more then a hundred feet. However, anyone can always go into the code and turn them back on. If you do so, you are responsible to insure that you know what you are doing, and take the necessary precaution when transmitting.  I will not be responsible for any damage cause by the radio or to the radio. Remember, once you erase the original firmware, there is no way of getting it back, so the radio will be a brick until you upload the firmware; but if you got this far, then that is exactly what you want.

For this hack you will need an arduino,  NPN transistor (I used 2n394), 1K and 10K resistors, and a 9 volt battery. You could just use a 9V battery and a 10K resistor, but you would need to manually connect the VPP to 10K -> 9V and GND. If you want to do any kind of development, then the transistor is your option.
Connect everything according to the diagram bellow:

hacked-uv-3r-3

I made a small interface with the transistor and a connector so I can plug and unplug the programmer. When the programmer is plugged in, the radio will not function. You will need to disconnect the GND,VPP and VDD for the radio to boot up normally. A connector would allow you to plug the radio for programming and unplug it for testing.

hacked-uv-3r-4

Once you have everything connected, check out the code from here:
https://github.com/lelazary/UV3RMod

Upload the arduino sketch programmer/chipFlash/chipFlash.ino into the arduino
Go into the programmer directory, connect the programmer and the +5V power supply that came with the radio and run the python script uv3rFlash.py . If you choose not to build the transistor circuit then start with the vpp connect to GND, switch it to +9V, run the command, and switch it back to GND.

./uv3rFlash.py -p /dev/ttyUSB0 -e

This will erase the chip using the arduino attached to /dev/ttyUSB0. If you are on windows then use COM5 instead of the /dev/ttyUSB0 or whichever com port the arduino is using.

Then you can run

./uv3rFlash.py -p /dev/ttyUSB0 -w ../firmware/uv3r_firmware.hex

If there are no errors, unplug the programmer, and you should have a brand new firmware on the radio

Troubleshooting:
If something is not working correctly, you can go into the arduino serial monitor program and use the raw commands to see what is going own.

//Protocol
//   CMD      Param               Description
//   S                                        Enter ISP mode
//   C                                        Exit  ISP mode
//   I                                          Get Chip ID
//   F             HH                      Flash config register with hex HH
//   E                                         Erase flash memory
//   P            AAAA LL DDDD…     Program memory with starting at address AAAA length LL and data DDDDDD (2char hex code)
//   R           SSSS EEEE           Read memory from address SSSS to EEEE
//On success return OK
//On failure return ERR

For example typing
SIC <enter>
will start the ISP mode, get the chip id and then close ISP mode. I looks like the chip id is 82, so that is what I am checking in the code. If you are not getting 00 for the id, then something is probably wrong with the connections (check the +5 and vpp).

You may also be interested in these posts on my website:

UV5R hack
http://www.liorelazary.com/index.php?option=com_content&view=article&id=49:hacking-the-baofeng-uv5r&catid=14:baofeng-uv5r&Itemid=17

TX d-start data with the UV5R and filters off.
http://www.liorelazary.com/index.php?option=com_content&view=article&id=50:txrx-digital-data-using-the-uv5r&catid=14:baofeng-uv5r&Itemid=17

Good Luck.

 


Lior Elazary, KK6BWA, is a special contributor to AmateurRadio.com and writes from California, USA.

A low power FM transmitter with your Raspberry Pi

After seeing the piece about making the Raspberry Pi into a WSPR transmitter, I was also intrigued that it could be made to be an FM transmitter using the PiFM code.

Sure enough it can! I followed the instructions on the Imperial College Robotics website then downloaded the code and compiled it up. The default sound file that’s transmitted is a simple tone, but you could easily record a WAV file announcing your callsign!

What a clever bit of code by Oliver Mattos and Oskar Weigl! I’m not a bad programmer, but I wouldn’t have known where to start with this!

I didn’t even bother putting an aerial on the GPIO pin – I wasn’t looking for DX! The RF signal was strong enough to be detected by handheld receivers on the desk.

Great fun! Just the sort of thing for a snowy March day.

I am so pleased with the Raspberry Pi. What fun I have had with it, since I got it at Christmas. Unwisely, I have agreed to do a talk about ‘Life of My Pi’ at the Harwell Amateur Radio Club on April 9th. I’d better get around to preparing it, but there’s certainly going to be plenty of material.


Tim Kirby, G4VXE, is a regular contributor to AmateurRadio.com and writes from Oxfordshire, England. Contact him at [email protected].

Is this progress?

The home improvements have overrun. The shack is still full of the contents of two other rooms. I won’t regain access to the PC and radios until early next week. I am typing this slowly and with considerable difficulty on the touch screen of my Android tablet.
Is this progress? Give me a computer with a proper keyboard any time.

Julian Moss, G4ILO, is a regular contributor to AmateurRadio.com and writes from Cumbria, England. Contact him at [email protected].

Do You Google+ ?

Do you Google+ ?

After an initial flurry on interest in Google+ I couldn’t quite decide what it was for. Like many people I keep contact with friends and family on facebook and it servers a purpose, I can’t say I actually like the platform but it does keep me in contact. Google+ is a similar swervice but for a while I couldn’t understand what it was actually for. If nobody I knew was on it then what use is it to me?

Over the past few months a number of different additions have been made to it. There are now communities that seem to be well populated including several for Ham radio.

Again I wasn’t really sure how these things would benefit me, especially as time seems to disappear very quickly at the moment. But yesterday it struck me that you get out what you put in. Not exactly innovative thinking but I posted a question on one community and was pleasantly surprised to see the responses came quickly and they were relevant. Having tested the water I think its time I used it a bit more, not just a personal news service from various blogs and sites now that Google Reader is going to be shut down.

So if you fancy dipping a toe into the various communities I can recommend it. I struggle to actually explain what the service is but as a geek I’ve found it useful in keeping myself up to date with my interests.


Alex Hill, G7KSE, is a regular contributor to AmateurRadio.com and writes from Cumbria, UK. Contact him at [email protected].

One Mo’ Time !

Fox Hunter’s Code of Conduct
I will listen, and listen, and then listen again before calling.
I will only call if I can copy the Fox station properly (so that I will know for certain that he is calling me and no one else).
I will not interfere with the Fox station nor anyone calling and will never tune up on the Fox frequency or in the QSX slot.
I will double check to make sure I am operating split, if necessary.
I will use full break-in if at all possible.
I will wait for the Fox station to end a contact before I call.
I will always send my full call sign.
I will call and then listen for a reasonable interval. I will not call continuously.
I will not transmit when the Fox station calls another call sign, not mine.
I will not transmit when the Fox station queries a call sign not like mine.
When the Fox station calls me, I will send only the required exchange of RST – S/P/C – Name – Power out
I will be thankful if and when I do make a contact.
I will resort to attempting duplicate contacts only if I am very certain that I was not heard the first time.
I will respect my fellow hams and conduct myself so as to earn their respect.
72 de Larry W2LJ
QRP – When you care to send the very least!

Larry Makoski, W2LJ, is a regular contributor to AmateurRadio.com and writes from New Jersey, USA. Contact him at [email protected].

A Raspberry Pi as a WSPR beacon

Thanks to the Southgate Amateur Radio news, I’ve just seen that Guido, PE1NNZ has turned a Raspberry Pi into a 10mW WSPR transmitter that works up to 250MHz. Just a low pass filter and an antenna are required in addition to the Raspberry Pi and the software.

The code is available here

The Readme file at Github says the following:

Makes a very simple WSPR beacon from your RasberryPi by connecting GPIO

 port to Antanna (and LPF), operates on LF, MF, HF and VHF bands from
 0 to 250 MHz.

Credits:
  Credits goes to Oliver Mattos and Oskar Weigl who implemented PiFM [1]
  based on the idea of exploiting RPi DPLL as FM transmitter. Dan MD1CLV
  combined this effort with WSPR encoding algorithm from F8CHK, resulting
  in WsprryPi a WSPR beacon for LF and MF bands. Guido PE1NNZ extended
  this effort with DMA based PWM modulation of fractional divider that was
  part of PiFM, allowing to operate the WSPR beacon also on HF and VHF bands.

  [1] PiFM code from http://www.icrobotics.co.uk/wiki/index.php/Turning_the_Raspberry_Pi_Into_an_FM_Transmitter

To use:
  In order to transmit legally, a HAM Radio License is required for running
  this experiment. The output is a square wave so a low pass filter is REQUIRED.
  Connect a low-pass filter to GPIO4 (GPCLK0) and Ground pins on your
  Raspberry Pi, connect an antenna to the LPF. The GPIO4 and GND pins can be
  found on header P1 pin 7 and 9 respectively, the pin closest to P1 label is
  pin 1 and its  3rd and 4th neighbour is pin 7 and 9 respectively, see this
  link for pin layout: http://elinux.org/RPi_Low-level_peripherals
  The expected power output is 10mW (+10dBm) in a 50 Ohm load. This looks
  neglible, but when connected to a simple dipole antenna this may result in
  reception reports ranging up to several thousands of kilometers.

  This software is using system time to determine the start of a WSPR
  transmissions, so keep the system time synchronised within 1sec precision,
  i.e. use NTP network time synchronisation or set time manually with date
  command. Reception reports are logged on Weak Signal Propagation Reporter
  Network: http://wsprnet.org/drupal/wsprnet/spots

  As the WSPR band is only 200 Hz wide, some frequency calibration may be needed
  to ensure that the transmission is done within the WSPR band. You can correct
  the frequency error manually in the command line or adjust CAL_PLL_CLK in the
  code.

Usage:
  sudo ./wspr <callsign> <locator> <power in dBm> <frequency in Hz>
        e.g.: sudo ./wspr K1JT FN20 10 7040074

  WSPR is used on the following frequencies (local restriction may apply):
     LF   137400 – 137600
     MF   475600 – 475800
    160m  1838000 – 1838200
     80m  3594000 – 3594200
     60m  5288600 – 5288800
     40m  7040000 – 7040200
     30m  10140100 – 10140300
     20m  14097000 – 14097200
     17m  18106000 – 18106200
     15m  21096000 – 21096200
     12m  24926000 – 24926200
     10m  28126000 – 28126200
      6m  50294400 – 50294600
      4m  70092400 – 70092600
      2m  144490400 -144490600

Compile:
  gcc -lm -std=c99 wspr.c -owspr
 
This looks amazing! Congratulations to Guido and also to Dan Ankers, MD1CLV whose work led to Guido’s enhancements.

Tim Kirby, G4VXE, is a regular contributor to AmateurRadio.com and writes from Oxfordshire, England. Contact him at [email protected].

Subscribe FREE to AmateurRadio.com's
Amateur Radio Newsletter

 
We never share your e-mail address.


Do you like to write?
Interesting project to share?
Helpful tips and ideas for other hams?

Submit an article and we will review it for publication on AmateurRadio.com!

Have a ham radio product or service?
Consider advertising on our site.

Are you a reporter covering ham radio?
Find ham radio experts for your story.

How to Set Up a Ham Radio Blog
Get started in less than 15 minutes!


  • Matt W1MST, Managing Editor