Ublox NEO-6 GPS feeding an Arduino MEGA 2560 to display Latitude & Longitude on an LCD screen

The Ublox NEO-6 board cost about £5 with its antenna, including delivery. This feeds an Arduino MEGA 2560 with a 1602/HD44780 LCD Screen-Keypad Shield (for MEGA). I didn’t actually use the keypad buttons, but they are easy to program in. You might use one to flip between Lat/Long and Maidenhead Locator, for instance.

I fed about 4V, smoothed a bit, into the Vcc (+) and Gnd (-) on the NEO-6 card and 12V into the Arduino (when not powered via the USB cable from the PC).

The serial data came from the Tx pin on the NEO-6 and fed the pin 19 (Tx again!) on the Arduino board. (I did think Tx on the NEO-6 should feed Rx on the Arduino board, but that didn’t work). The NEO-6 drew about 70mA typically, but the current varied a lot.

The wiring diagram is simple. I used a 5V regulator on the project breadboard to power the NEO-6. The regulator got a bit hot, so I put a heatsink on it.



The ‘o’ in the top RH corner of the display indicates that the program has initialised and entered the main loop. The ‘s’ in the bottom RH corner indicates that the serial telemetry from the GPS card is being received (the white wire in the picture above). A flashing red LED on the NEO-6 card indicates satellites have been detected. When the lat/long display updates, then the NEO-6 has found a position.

I used float type variables lat and lon to hold the latitude and longitude floating point numbers. These seemed to hold 6 significant digits reliably. I used the dtostrf() function to format the numbers for display.

My lab/shack is well screened with sheets of insulation covered in aluminium foil, so GPS satellite signals are very weak. My Garmin Etrex GPS could see no satellites at all. The NEO-6 (with its separate little patch antenna plugged in) not only found satellites (a red LED on the board flashed), it also locked on to give a position. So the NEO-6 has a useful sensitivity. The little coax antenna socket has 3.3V on it, so I’m guessing the little patch antenna is active, not passive.

I compared the Etrex readings with the NEO-6 readings for the same position. They agreed up to the third decimal place (of degrees). I took the maximum and minimum readings over about an hour. Here are the differences between maximums and minimums:

    Etrex                    NEO-6

Lat:       0.00006                0.00014

Long:    0.00040                0.00025

So the Etrex varied less on latitude and the NEO-6 varied less on longitude, as different satellites dropped in and out.

I found that when I switched the IDE to Due that the program would not compile as the  dtostrf() function was missing. I’ll try to re-write the program in order to avoid dtostrf(). There seems to be some inconsistency between the libraries for the different types of Arduino.

Program below (supplied as is, no liability):

// GPS_NEO6_position_read-out_V3 (c) GJ Coyne G3YJR
#include <LiquidCrystal.h>
#include <TinyGPS.h>

float lat = 54.123456, lon = -2.123456; // declare variables for lat and long
static char lat_ch[13], lon_ch[13];

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);         // Set LCD interface pins

TinyGPS gps;                                            // declare gps object

void setup(){

Serial.begin(9600);              // connect Serial0 for PC comms

lcd.begin(16, 2);                    // initialise LCD screen
lcd.clear();                              // clear the LCD screen

Serial1.begin(9600);            // connect gps input on pin 19, Serial1

dtostrf(lat,10,5,lat_ch);       // lat_ch 10 chars, 5 after decimal point
dtostrf(lon,10,5,lon_ch);     // lon_ch 10 chars, 5 after decimal point

lcd.setCursor(0,0);               // col 0, row 0 (top row)
lcd.print(“LAT “);
lcd.setCursor(3,0);               // col 3, row 0 (top row)

lcd.setCursor(0,1);               // col 0, row 1 (bottom row)
lcd.print(“LON “);
lcd.setCursor(3,1);               // col 3, row 1 (bottom row)


void loop()

lcd.setCursor(15,0); lcd.print(“o”);   // ‘o’ in top rh corner for ‘On’
lcd.setCursor(15,1); lcd.print(” “);    // clear serial i/p received field
while(Serial1.available())     // check gps serial i/p data on pin 19, Serial1

// lower-case ‘s’ in top rh corner for Serial o/p received
lcd.setCursor(15,1); lcd.print(“s”);

if(gps.encode(Serial1.read()))     // fetch gps data


gps.f_get_position(&lat,&lon); // fetch latitude and longitude

dtostrf(lat,10,5,lat_ch);             // lat_ch 10 chars, 5 after decimal point
dtostrf(lon,10,5,lon_ch);          // lon_ch 10 chars, 5 after decimal point

lcd.setCursor(0,0);                    // col 0, row 0 (top row)
lcd.print(“LAT “);
lcd.setCursor(3,0);                    // col 3, row 0 (top row)

lcd.setCursor(0,1);                   // col 0, row 1 (bottom row)
lcd.print(“LON “);
lcd.setCursor(3,1);                   // col 3, row 1 (bottom row)





Auna iTuner CD – internet radio/DAB/FM tuner; Sony HCD-EH45DAB HiFi repair/modification.

The Sony Hifi (HCD-EH45DAB) has a DAB tuner, FM tuner and a CD player. It lacks presets for radio channels, so it takes 11 clicks to change from Radio 4 to the BBC World Service on DAB.


Also the Sony Hifi had had a fault with the volume knob for some time: turning the volume up might raise the volume, but it might also take it down. The knob was not a pot, but some sort of digital rotary sensor, probably feeding a microcontroller.

Inside the Sony HiFi I found a loose electrolytic capacitor on the main board. This capacitor tested faulty on an ESR meter, so I replaced it (33uF, 50V). Surprisingly this seemed to fix the volume control problem. Or maybe I re-seated some internal connectors and that fixed the problem? I don’t know.

I modified the Sony HiFi system by adding a pair of RCA/phono ‘audio in’ sockets on the back so that I could feed in the Auna tuner. I wired these to a new/replacement stereo audio jack on the front panel. The replacement jack socket has pass-through input pins (active when no jack is plugged in). I wired the pass-through pins to the new input sockets. There are red and white phono plugs plugged into them in the picture below.



Plus Points of the Auna:

  1.  It fitted nicely below the bread bin on the kitchen window sill.
  2. It has nice knobs for menu selection and volume control.
  3.  The DAB tuner is excellent and it is helpful to have the station information on the screen.
  4. It lets me listen to Sheffield Live!, Test Match Special, BBC Radio 4 Extra (ne BBC Radio 7), BBC World Service (such a blessing when the Archers is on Radio 4 and Dessert Island Disks with Sue Lawley is on Radio 4 Extra!) and Radio Jamaica (for jamming along when doing the washing up).
  5. Starting a Spotify app on a phone shows the Auna as a play option. Selecting this gives wireless play from the phone to the Auna.
  6. The audio distortion and noise levels are low.

Minus Points

1.  There is no pause for live radio. I want a pause in the same way that satellite TV can be paused.

2.  There is a clicky button labelled “Mode”. A more meaningless label is yet to be thought of. It turns out to be DAB/FM/Internet/Spotify selection. It is easy to miss your selection & you can’t go back, so you have to click your way through the list again. Please Auna, put a knob in for this, one that can turn both ways. Label it DAB/FM etc., because that is what it does.

3.  I opted for a black case. You need excellent eyesight and good lighting conditions to read the labels on the front panel. They are in a small font and grey on black is hard to read. The Auna comes with a small remote control. The labels on this are even harder to read than those on the front panel. A magnifying glass helps. Auna please consider your visually impaired users. There are lots of us!

4.  Setting it up in order to get the Internet Radio station lists is a bit fiddly. I was impressed that the list included Sheffield Live, a local community radio station.

5.  I want a set of pre-set buttons on the front panel which gives me instant selection of my favorite radio stations regardless of whether they are FM, DAB or internet stations.

6.  The audio out level seems rather low, so I’ve set the Sony’s volume level to its maximum.

7.  The menu system is clunky. Navigating down one level is fine. I don’t see how to go up one level using the controls on the front panel.

8.  I find internet radio stations drop out from time to time, but that is probably to do with the internet and the reliability of internet radio. The problem is that the Auna does not automatically re-connect. I have to go back to the pre-set & re-select it manually. I find I don’t listen to internet radio much as it is a frustrating experience; internet radio was the main reason I bought the tuner!

9.  When the list of pre-sets is selected, the selection highlight is always at the start of the list. It would be more helpful if it showed the last selected station.

(My apologies for the stray light in the photographs above).

2m + 70cm March contest 7/8-March-2020

This didn’t go as well as last year and conditions seemed poor.

On 2m I got a few contacts with stations on the continent and it was nice to work Mark EI3KD again. My best DX was DL0XS at 749 km,  however I must have logged this contact incorrectly, so I got no points for it. Surprisingly, I received a certificate for the highest placed station on 2m using 25W or less.


On 70cm I failed to work any continental stations at all, in spite of DF0MU being a good signal. My best DX was G3M at 320 km.



Problem: ASUS ZenPad 3s 10 fails to turn on/won’t start – magic spell

Generally this tablet works very well. Sometimes, for no apparent reason, it fails to turn on with the Power button (the small silver button about a quarter of the way down from the top on the right-hand side).

I keep forgetting how to clear this problem, so I am making a note here. The problem has happened a few times over the years.

I waved my fingers over the device and pronounced the following spell with gravity: Nil Desperandum Carborundrum! Then I held down the Volume-Down button (nearer the top on the RHS) and the Power button together for 5 seconds.

This elicits a sort of boot menu:

Select Boot Mode:

[Press VOLUME_DOWN to select item. Press VOLUME_UP to confirm.]

[Recovery    Node]                                             <<==

[Fastboot      Node]

[Normal        Boot]

Normal Boot sounded good, so I clicked Volume-Down twice to select it and Volume-Up to activate it. I got the ASUS banner & then the PIN screen. I entered the PIN & it booted fine.

Then I shut the tablet down.

Holding down the Power button alone (for about 6 seconds) worked then to start the tablet.

Now I’ve shared this magic spell with you, I have to shoot you.

This reminds me of a wonderful T-shirt from tech support days. On the front it said: It should just work…