RaDAR – Testing the new BKW using ZL1RS BB05 balloon as a reference

A few ZS hams had fun this past week looking out for the ZL1RS balloon passing through South Africa on it’s second voyage around the world! Because we went away for the weekend I did a field deployment to to continue monitoring the balloon’s signal on 20m WSPR.

It was an ideal opportunity to compare antennas too especially the “New BKW” (Now referred to as the “GSF” – G0GSF) I have strung up in the trees semi permanently in KG34ac.

Because I used my smartphone as an Internet hotspot I had to house everything in the car although it’s pretty safe to leave the equipment in the field!

Besides the static it was a pretty noiseless environment RF wise!

The environment itself was peaceful!!!

My friend Pierre ZS6A commented on Facebook  (We had been having fun doing comparisons for most of the week from home) :

Pierre van Deventer Eddie Leighton
Your field setup is working very well.
Since this morning you have generated 15 spots Vs. my 7 spots.
You are also consistently reporting better signals compared to me.
I am pretty sure this is due to your rural location.

Note the GSF antenna could also have added spice to the pudding 🙂 Although there was an odd 300km difference in distance between myself and other ZS6 operators it was a good comparison. All stations had good antennas.

Timestamp Call MHz SNR Drift Grid Pwr Reporter RGrid km az

 

2018-05-19 09:44  ZL1RS  14.097192  -15  1  NF03  0.01  ZS6BNE  KG34ac  5283  267
 2018-05-19 09:44  ZL1RS  14.097197  -26  1  NF03  0.01  ZS6KN  KG44bj  5112  268
 2018-05-19 09:44  ZL1RS  14.097184  -14  1  NF03  0.01  FR5ZX  LG78pu  3013  298
 2018-05-19 09:44  ZL1RS  14.097169  -28  1  NF03  0.01  VU3KAZ  MK82tu  5501  356
 2018-05-19 09:44  ZL1RS  14.097197  -20  1  NF03  0.01  JH3APN  PM74tq  9730  42
 2018-05-19 09:24  ZL1RS  14.097192  -14  1  NF03  0.01  ZS6BNE  KG34ac  5283  267
 2018-05-19 09:24  ZL1RS  14.097184  -6  0  NF03  0.01  FR5ZX  LG78pu  3013  298
 2018-05-19 09:24  ZL1RS  14.097197  -24  0  NF03  0.01  ZS6KN  KG44bj  5112  268
 2018-05-19 09:14  ZL1RS  14.097192  -11  1  NF03  0.01  ZS6BNE  KG34ac  5283  267
 2018-05-19 09:14  ZL1RS  14.097185  -2  0  NF03  0.01  FR5ZX  LG78pu  3013  298
 2018-05-19 09:14  ZL1RS  14.097197  -25  0  NF03  0.01  ZS6KN  KG44bj  5112  268
 2018-05-19 09:14  ZL1RS  14.097202  -27  1  NF03  0.01  KPH  CM88mc  17898  78
 2018-05-19 09:14  ZL1RS  14.097183  -20  0  NF03  0.01  DP0GVN  IB59uh  6181  204
 2018-05-19 09:04  ZL1RS  14.097196  -25  0  NF04  0.01  VK3AXF  QF33fn  5774  112
 2018-05-19 09:04  ZL1RS  14.097193  -13  0  NF04  0.01  ZS6BNE  KG34ac  5291  266
 2018-05-19 09:04  ZL1RS  14.097198  -25  0  NF04  0.01  ZS6KN  KG44bj  5116  267
 2018-05-19 09:04  ZL1RS  14.097170  -27  0  NF04  0.01  ZS6RL  KG33nh  5155  265
 2018-05-19 09:04  ZL1RS  14.097186  -9  0  NF04  0.01  FR5ZX  LG78pu  2963  296
 2018-05-19 09:04  ZL1RS  14.097184  -21  0  NF04  0.01  DP0GVN  IB59uh  6283  203
 2018-05-19 08:54  ZL1RS  14.097185  -27  0  NF04  0.01  VK5EI  PF95gd  5155  107
 2018-05-19 08:54  ZL1RS  14.097169  -27  0  NF04  0.01  ZS6A  KG43eu  5068  267
 2018-05-19 08:54  ZL1RS  14.097196  -14  0  NF04  0.01  VK3AXF  QF33fn  5774  112
 2018-05-19 08:54  ZL1RS  14.097171  -24  0  NF04  0.01  ZS6RL  KG33nh  5155  265
 2018-05-19 08:54  ZL1RS  14.097186  -18  0  NF04  0.01  FR5ZX  LG78pu  2963  296
 2018-05-19 08:54  ZL1RS  14.097193  -12  0  NF04  0.01  ZS6BNE  KG34ac  5291  266
 2018-05-19 08:54  ZL1RS  14.097198  -23  0  NF04  0.01  ZS6KN  KG44bj  5116  267
 2018-05-19 08:44  ZL1RS  14.097198  -26  0  MF94  0.01  ZS6KN  KG44bj  4935  268
 2018-05-19 08:44  ZL1RS  14.097193  -11  1  MF94  0.01  ZS6BNE  KG34ac  5110  267
 2018-05-19 08:44  ZL1RS  14.097196  -23  0  MF94  0.01  VK3AXF  QF33fn  5942  112
 2018-05-19 08:44  ZL1RS  14.097169  -28  1  MF94  0.01  ZS6RL  KG33nh  4975  266
 2018-05-19 08:34  ZL1RS  14.097193  -15  0  MF94  0.01  ZS6BNE  KG34ac  5110  267
 2018-05-19 08:34  ZL1RS  14.097170  -26  -1  MF94  0.01  ZS6RL  KG33nh  4975  266
 2018-05-19 08:34  ZL1RS  14.097185  -23  0  MF94  0.01  VK5EI  PF95gd  5328  108
 2018-05-19 08:34  ZL1RS  14.097196  -22  0  MF94  0.01  VK3AXF  QF33fn  5942  112
 2018-05-19 08:34  ZL1RS  14.097184  -27  0  MF94  0.01  DP0GVN  IB59uh  6211  204
 2018-05-19 08:34  ZL1RS  14.097186  -5  0  MF94  0.01  FR5ZX  LG78pu  2802  298
 2018-05-19 08:34  ZL1RS  14.097197  -24  0  MF94  0.01  ZS6KN  KG44bj  4935  268
 2018-05-19 08:24  ZL1RS  14.097197  -22  0  MF94  0.01  ZS6KN  KG44bj  4935  268
 2018-05-19 08:24  ZL1RS  14.097195  -20  0  MF94  0.01  VK3AXF  QF33fn  5942  112
 2018-05-19 08:24  ZL1RS  14.097192  -17  1  MF94  0.01  ZS6BNE  KG34ac  5110  267
 2018-05-19 08:24  ZL1RS  14.097186  0  0  MF94  0.01  FR5ZX  LG78pu  2802  298
 2018-05-19 08:14  ZL1RS  14.097192  -13  0  MF94  0.01  ZS6BNE  KG34ac  5110  267
 2018-05-19 08:14  ZL1RS  14.097188  -22  0  MF94  0.01  VK7JJ  QE38lr  5808  118
 2018-05-19 08:14  ZL1RS  14.097195  -21  0  MF94  0.01  VK3AXF  QF33fn  5942  112
 2018-05-19 08:14  ZL1RS  14.097197  -20  0  MF94  0.01  ZS6KN  KG44bj  4935  268
 2018-05-19 08:14  ZL1RS  14.097169  -23  1  MF94  0.01  ZS6RL  KG33nh  4975  266
 2018-05-19 08:04  ZL1RS  14.097169  -27  1  MF94  0.01  ZS6RL  KG33nh  4975  266
 2018-05-19 08:04  ZL1RS  14.097195  -19  0  MF94  0.01  VK5MR  PF89kk  5350  101
 2018-05-19 08:04  ZL1RS  14.097186  -18  0  MF94  0.01  FR5ZX  LG78pu  2802  298
 2018-05-19 08:04  ZL1RS  14.097197  -23  0  MF94  0.01  ZS6KN  KG44bj  4935  268
 2018-05-19 08:04  ZL1RS  14.097188  -20  0  MF94  0.01  VK7JJ  QE38lr  5808  118
 2018-05-19 08:04  ZL1RS  14.097185  -26  0  MF94  0.01  VK2XN  QF59ar  6518  107
 2018-05-19 08:04  ZL1RS  14.097196  -18  0  MF94  0.01  VK3AXF  QF33fn  5942  112
 2018-05-19 07:54  ZL1RS  14.097185  -23  0  MF94  0.01  FR5ZX  LG78pu  2802  298
 2018-05-19 07:54  ZL1RS  14.097188  -11  0  MF94  0.01  VK7JJ  QE38lr  5808  118
 2018-05-19 07:54  ZL1RS  14.097192  -10  0  MF94  0.01  ZS6BNE  KG34ac  5110  267
 2018-05-19 07:54  ZL1RS  14.097196  -22  0  MF94  0.01  ZS6KN  KG44bj  4935  268
 2018-05-19 07:54  ZL1RS  14.097195  -20  0  MF94  0.01  VK3AXF  QF33fn  5942  112
 2018-05-19 07:44  ZL1RS  14.097195  -20  0  MF94  0.01  VK3AXF  QF33fn  5942  112
 2018-05-19 07:44  ZL1RS  14.097196  -23  0  MF94  0.01  ZS6KN  KG44bj  4935  268
 2018-05-19 07:44  ZL1RS  14.097192  -13  0  MF94  0.01  ZS6BNE  KG34ac  5110  267
 2018-05-19 07:44  ZL1RS  14.097186  -26  0  MF94  0.01  FR5ZX  LG78pu  2802  298
 2018-05-19 07:34  ZL1RS  14.097184  -19  0  MF94  0.01  EA8BFK  IL38bo  12039  293
 2018-05-19 07:34  ZL1RS  14.097196  -23  0  MF94  0.01  VK3AXF  QF33fn  5942  112
 2018-05-19 07:34  ZL1RS  14.097170  -27  0  MF94  0.01  ZS6RL  KG33nh  4975  266
 2018-05-19 07:34  ZL1RS  14.097191  -12  0  MF94  0.01  ZS6BNE  KG34ac  5110  267
 2018-05-19 07:34  ZL1RS  14.097188  -16  1  MF94  0.01  VK7JJ  QE38lr  5808  118
 2018-05-19 07:34  ZL1RS  14.097186  -5  0  MF94  0.01  FR5ZX  LG78pu  2802  298
 2018-05-19 07:34  ZL1RS  14.097196  -25  0  MF94  0.01  ZS6KN  KG44bj  4935  268
 2018-05-19 07:24  ZL1RS  14.097184  -23  0  MF94  0.01  EA8BFK  IL38bo  12039  293
 2018-05-19 07:24  ZL1RS  14.097191  -13  1  MF94  0.01  ZS6BNE  KG34ac  5110  267
 2018-05-19 07:24  ZL1RS  14.097186  -3  0  MF94  0.01  FR5ZX  LG78pu  2802  298
 2018-05-19 07:24  ZL1RS  14.097196  -25  0  MF94  0.01  ZS6KN  KG44bj  4935  268
 2018-05-19 07:24  ZL1RS  14.097196  -14  1  MF94  0.01  VK3AXF  QF33fn  5942  112
 2018-05-19 07:24  ZL1RS  14.097170  -29  1  MF94  0.01  ZS6RL  KG33nh  4975  266
 2018-05-19 07:14  ZL1RS  14.097196  -25  0  MF84  0.01  ZS6KN  KG44bj  4755  269
 2018-05-19 07:14  ZL1RS  14.097191  -12  0  MF84  0.01  ZS6BNE  KG34ac  4929  268
 2018-05-19 07:14  ZL1RS  14.097196  -15  0  MF84  0.01  VK3AXF  QF33fn  6109  113
 2018-05-19 07:14  ZL1RS  14.097170  -26  1  MF84  0.01  ZS6RL  KG33nh  4794  267
 2018-05-19 07:14  ZL1RS  14.097210  -18  0  MF84  0.01  VK6NJP  OF88bi  3630  95
 2018-05-19 07:14  ZL1RS  14.097186  -16  0  MF84  0.01  FR5ZX  LG78pu  2645  301
 2018-05-19 07:04  ZL1RS  14.097169  -27  0  MF84  0.01  ZS6A  KG43eu  4706  269
 2018-05-19 07:04  ZL1RS  14.097199  -4  0  MF84  0.01  VK6ZT  OF78sq  3589  94
 2018-05-19 07:04  ZL1RS  14.097169  -24  0  MF84  0.01  ZS6RL  KG33nh  4794  267
 2018-05-19 07:04  ZL1RS  14.097186  -19  0  MF84  0.01  FR5ZX  LG78pu  2645  301
 2018-05-19 07:04  ZL1RS  14.097196  -16  0  MF84  0.01  VK3AXF  QF33fn  6109  113
 2018-05-19 07:04  ZL1RS  14.097230  -24  0  MF84  0.01  F61695  LG79sc  2644  302
 2018-05-19 07:04  ZL1RS  14.097196  -20  0  MF84  0.01  ZS6KN  KG44bj  4755  269
 2018-05-19 06:54  ZL1RS  14.097188  -19  0  MF84  0.01  VK7JJ  QE38lr  5968  119
 2018-05-19 06:54  ZL1RS  14.097189  -9  1  MF84  0.01  ZS6BNE  KG34ac  4929  268
 2018-05-19 06:54  ZL1RS  14.097199  -9  0  MF84  0.01  VK6ZT  OF78sq  3589  94
 2018-05-19 06:54  ZL1RS  14.097196  -24  0  MF84  0.01  ZS6KN  KG44bj  4755  269
 2018-05-19 06:54  ZL1RS  14.097186  -22  1  MF84  0.01  FR5ZX  LG78pu  2645  301
 2018-05-19 06:54  ZL1RS  14.097196  -25  0  MF84  0.01  VK3AXF  QF33fn  6109  113
 2018-05-19 06:54  ZL1RS  14.097187  -29  0  MF84  0.01  VK3BVW  QF22qf  5967  114
 2018-05-19 06:44  ZL1RS  14.097197  -8  1  MF84  0.01  VK6ZT  OF78sq  3589  94
 2018-05-19 06:44  ZL1RS  14.097196  -24  0  MF84  0.01  ZS6KN  KG44bj  4755  269
 2018-05-19 06:44  ZL1RS  14.097185  -24  0  MF84  0.01  FR5ZX  LG78pu  2645  301
 2018-05-19 06:44  ZL1RS  14.097188  -15  0  MF84  0.01  ZS6BNE  KG34ac  4929  268
 2018-05-19 06:44  ZL1RS  14.097196  -16  0  MF84  0.01  VK3AXF  QF33fn  6109  113
 2018-05-19 06:44  ZL1RS  14.097185  -22  0  MF84  0.01  ZL1RS1  RF64vs  8358  123
 2018-05-19 06:34  ZL1RS  14.097184  -23  0  MF84  0.01  ZL1RS1  RF64vs  8358  123
 2018-05-19 06:34  ZL1RS  14.097194  -13  0  MF84  0.01  VK3AXF  QF33fn  6109  113
 2018-05-19 06:34  ZL1RS  14.097230  -23  0  MF84  0.01  F61695  LG79sc  2644  302
 2018-05-19 06:34  ZL1RS  14.097185  -7  0  MF84  0.01  FR5ZX  LG78pu  2645  301
 2018-05-19 06:34  ZL1RS  14.097195  -27  0  MF84  0.01  ZS6KN  KG44bj  4755  269
 2018-05-19 06:34  ZL1RS  14.097187  -13  0  MF84  0.01  ZS6BNE  KG34ac  4929  268
 2018-05-19 06:24  ZL1RS  14.097197  -6  1  MF84  0.01  VK6ZT  OF78sq  3589  94
 2018-05-19 06:24  ZL1RS  14.097185  -16  1  MF84  0.01  FR5ZX  LG78pu  2645  301
 2018-05-19 06:24  ZL1RS  14.097231  -16  1  MF84  0.01  F61695  LG79sc  2644  302
 2018-05-19 06:24  ZL1RS  14.097195  -26  1  MF84  0.01  ZS6KN  KG44bj  4755  269
 2018-05-19 06:24  ZL1RS  14.097186  -16  1  MF84  0.01  ZS6BNE  KG34ac  4929  268
 2018-05-19 06:24  ZL1RS  14.097185  -28  1  MF84  0.01  VK3BVW  QF22qf  5967  114
 2018-05-19 06:24  ZL1RS  14.097187  -16  1  MF84  0.01  VK7JJ  QE38lr  5968  119
 2018-05-19 06:24  ZL1RS  14.097195  -18  1  MF84  0.01  VK3AXF  QF33fn  6109  113
 2018-05-19 06:24  ZL1RS  14.097195  -16  1  MF84  0.01  VK5MR  PF89kk  5527  102
 2018-05-19 06:24  ZL1RS  14.097185  -21  1  MF84  0.01  VK5EI  PF95gd  5501  108
 2018-05-19 06:24  ZL1RS  14.097185  -21  1  MF84  0.01  ZL1RS1  RF64vs  8358  123
 2018-05-19 06:24  ZL1RS  14.097170  -27  1  MF84  0.01  ZS6RL  KG33nh  4794  267
 2018-05-19 06:14  ZL1RS  14.097198  -4  1  MF85  0.01  VK6ZT  OF78sq  3597  95
 2018-05-19 06:14  ZL1RS  14.097233  -13  0  MF85  0.01  F61695  LG79sc  2587  300
 2018-05-19 06:14  ZL1RS  14.097170  -26  1  MF85  0.01  ZS6RL  KG33nh  4800  266
 2018-05-19 06:14  ZL1RS  14.097196  -20  0  MF85  0.01  VK3AXF  QF33fn  6153  114
 2018-05-19 06:14  ZL1RS  14.097196  -22  1  MF85  0.01  ZS6KN  KG44bj  4757  268
 2018-05-19 06:14  ZL1RS  14.097185  -15  1  MF85  0.01  ZS6BNE  KG34ac  4934  267
 2018-05-19 06:14  ZL1RS  14.097186  -7  0  MF85  0.01  FR5ZX  LG78pu  2589  299
 2018-05-19 06:14  ZL1RS  14.097185  -14  0  MF85  0.01  ZL1RS1  RF64vs  8419  123
 2018-05-19 06:14  ZL1RS  14.097186  -18  1  MF85  0.01  VK5EI  PF95gd  5536  109
 2018-05-19 06:04  ZL1RS  14.097190  -18  0  MF85  0.01  VK5KJP  PF95gd  5536  109
 2018-05-19 06:04  ZL1RS  14.097186  -12  0  MF85  0.01  VK5EI  PF95gd  5536  109
 2018-05-19 06:04  ZL1RS  14.097196  -22  0  MF85  0.01  VK3AXF  QF33fn  6153  114
 2018-05-19 06:04  ZL1RS  14.097184  -16  0  MF85  0.01  ZS6BNE  KG34ac  4934  267
 2018-05-19 06:04  ZL1RS  14.097186  -5  1  MF85  0.01  FR5ZX  LG78pu  2589  299
 2018-05-19 06:04  ZL1RS  14.097235  -13  0  MF85  0.01  F61695  LG79sc  2587  300
 2018-05-19 06:04  ZL1RS  14.097171  -21  1  MF85  0.01  ZS6RL  KG33nh  4800  266
 2018-05-19 06:04  ZL1RS  14.097186  -19  0  MF85  0.01  ZL1RS1  RF64vs  8419  123
 2018-05-19 06:04  ZL1RS  14.097170  -25  1  MF85  0.01  ZS6A  KG43eu  4710  268
 2018-05-19 06:04  ZL1RS  14.097196  -21  1  MF85  0.01  ZS6KN  KG44bj  4757  268
 2018-05-19 06:04  ZL1RS  14.097198  -8  1  MF85  0.01  VK6ZT  OF78sq  3597  95
 2018-05-19 05:54  ZL1RS  14.097196  -17  0  MF85  0.01  ZS6KN  KG44bj  4757  268
 2018-05-19 05:54  ZL1RS  14.097181  -14  0  MF85  0.01  ZS6BNE  KG33bu  4915  267

 

Certainly the GSF antenna and the environment showed good results…..

73 de Eddie ZS6BNE

 

Advertisements

RaDAR – APRS

A rather new discussion on our local forum led me to do a little research on APRS again. I posed a few questions. Interesting to see there is a little APRS activity in South Africa.

Is it being put to good use or only an indicator of a very few vehicle movements?
Is any messaging done through the network?
How many active weather stations are there nowadays?
What are the main coverage areas?
Are there still 300 baud HF gateways?

An answer from Andrew ZS5CEY, “DMR radios with GPS can post their positions to APRS via our Brandmeister DMR Master (providing radio set up to do this). This also allows two-way messaging between DMR radios and APRS, and is supposed on all the DMR repeaters”. I need to do a little study on this technology.

Paul ZS1V replied, “Hamnet WC and GS both use 2m APRS during events and WC have used it for multi-day missing persons searches with WSAR also”.

I went to apsr.fi and did a few searches and was pleasantly surprised!

Cape town

Natal

and Gauteng!

Great to see all the active weather stations!

Hennie ZS6EY provided some port info, “You can also connect to http://zs6ey.no-ip.org:14501 on all three ports”. Andy ZS5CEY also mentioned a backup server URL, “You can connect to my backup server at http://www.easytracking.co.za and the port you want to connect to”.

Maybe time to look into APRS again. I have a KAM XL lying around doing nothing!

Just got Xastir running under Zorin OS 12.3 Linux 🙂

Yet Another APRS Client (YAAC)

RaDAR Challenge – Adapting strategies

The first RaDAR Challenge for 2018 took place on Saturday. I chose the four hours between 14:00 and 18:00 CAT (12:00 to 16:00 UTC). Attempting an intercontinental R2R was part of the plan.

I left on foot at 14:00 to travel at least a kilometer and be ready for the AO-91 cubesat pass at 14:36. I hoped to make 5 QSO’s via the satellite but it was quite a low elevation pass to the west which would be even lower for the general HamSat group in South Africa.

I managed good exchanges with Tom ZS1TA and Charles ZS1CF but battled with Tienie ZS6MHH for a grid exchange. Could I count the contact? I don’t think so. The satellite moved north where there is general QRM from central Africa and further QSO’s were impossible.

I had my HF kit with me and hastily set up an HF station to make further QSO’s before I could move. I made QSO’s with Justin ZS6JGP, Thanie ZS4AZ (A big supporter of SOTA and RaDAR) and Sid ZS5AYC. Not counting the QSO with Tienie gave me a total of five QSO’s so I could pack up and move. The strategy was to do the next leg as a mobile station with DX in mind.

I walked to where the car was parked, dumped the kit in the boot and went for a 6km drive returning to my favorite spot in the park and set up the link dipole once again, adjusted for 40m. Here I worked Sid ZS5AYC again, he had already moved to a new grid. I worked Sid’s wife, Adele ZS5APT too then Thanie ZS4AZ again, our supporter. That was three QSO’s and I needed another two. 20m was full of CW contest activity AGAIN! Our CW sked frequency, 14.061 was busy. I went to 15m, it was quiet except for the FT8 frequency. I did a WSPR test at 5W and the results were not too inspiring.

Then I thought, let me try FT8, a mode I’ve never used before. I had my netbook with me running Elementary OS Linux with WSJT-X installed. I connected the Signalink USB to my 897d running off two 7A/Hr SLABS and set it to 40W. I used the 40m section of the link dipole and tuned using the AT897 LDG ATU. I made my first digital FT8 QSO’s. It was just too easy, the computer automatically adjusting for the next information exchange. It had no value other than making a computerized QSO.

I’m in two minds about FT8 for it’s use in RaDAR but at this stage the QSO’s counted, at least the first two so I had an excess of one QSO. It made little sense (At the time) to move any further and thought I’d look out for Greg N4KGL and possible other RaDAR stations and called continuously on 21.061 CW.

These were the only RBN spots I got from the Reverse beacon Network.

I did however manage to work two CW stations from Germany. QSB was very deep though. That was the end of my RaDAR Challenge time period. I managed two locations. Five bonus points for the first satellite contact. Five bonus points for a contact with another RaDAR station, Sid ZS5AYC. Five QSO’s for position 1 and five QSO’s for position two. The excess of three QSO’s could not be counted. Points calculation 40.

If I had moved to a third location I could have made the bonus points for the first QSO with a DX station on CW but chose not to move. I could ignore the FT8 QSO’s but that is a technicality we must discuss. PSK31 is a different story and would most certainly count as a digital modes QSO.

An interesting poll in ZS (Just started)

RaDAR – Arduino controlled robotics

Something I started almost two decades ago but with Arduino’s and modern cheap sensors, my interest has once again been awakened. The knowledge will work it’s way into RaDAR for sure!!!

I’m building a self balancing (Two wheeler) rover robot using scrapped wiper motors I bought around the year 2001. Meet the new Mach 2018 roving robot 🙂

Infrared sensors have been installed at each corner to serve as obstacle avoidance sensors. Specific motor movements have been programmed in the event of an obstacle being detected within a 5cm range. This is the first intelligence the robot will carry on which I will build further. Ultrasonic range sensors will be next, a very effective solution to detect obstacles up to a few meters away which can be accurate up to 5mm!!!

I have installed a tiny screen to display simple diagnostics.

My Arduino code so far for this is as follows:

/*

Mach 2018 – driven by Arduino.

Eddie Leighton – 23rd March 2018

*/

#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

// ———————————————————————————-

int RPWM_Output = 5;
int LPWM_Output = 6;

int M2RPWM_Output = 9;
int M2LPWM_Output = 10;

// ———————————————————————————-

int LED = 13; // Use the onboard Uno LED

int RBObstaclePin = 0; // This is our input pin
int RBObstacle = HIGH; // HIGH MEANS NO OBSTACLE

int LBObstaclePin = 1;
int LBObstacle = HIGH;

int LFObstaclePin = 2;
int LFObstacle = HIGH;

int RFObstaclePin = 3;
int RFObstacle = HIGH;

// ———————————————————————————-

void setup()

{

display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3C

display.clearDisplay();
display.display();

display.setTextColor(WHITE);
display.setTextSize(2);

display.setCursor(10,0);
display.print(“Mach 2018”);
display.display();

// ———————————————————————————–

pinMode(RPWM_Output, OUTPUT);
pinMode(LPWM_Output, OUTPUT);

pinMode(M2RPWM_Output, OUTPUT);
pinMode(M2LPWM_Output, OUTPUT);

// ———————————————————————————–

pinMode(RBObstaclePin, INPUT);
pinMode(LBObstaclePin, INPUT);

pinMode(RFObstaclePin, INPUT);
pinMode(LFObstaclePin, INPUT);

pinMode(LED, OUTPUT);

}

void loop()
{

display.clearDisplay();
display.display();

display.setTextColor(WHITE);
display.setTextSize(2);

display.setCursor(10,0);
display.print(“Mach 2018”);

display.setTextSize(1);

// ———————————————————————————–

RBObstacle = digitalRead(RBObstaclePin);

if (RBObstacle == LOW)
{

display.setCursor(10,40);
display.print(“Right back”);
digitalWrite(LED, HIGH);
display.display();

stopBOT(); // STOP
delay (100); // Motors still

slowFWD(); // Move forward slowly
delay(1000); // for one second

stopBOT();
delay (100);

slowSpinCW (); // Spin slowly clockwise
delay(1000); // for one second

stopBOT();
delay (100);

display.clearDisplay();
display.display();

}

// ———————————————————————————–

LBObstacle = digitalRead(LBObstaclePin);

if (LBObstacle == LOW)
{

display.setCursor(10,40);
display.print(“Left back”);
digitalWrite(LED, HIGH);
display.display();

stopBOT();
delay (100);

slowFWD();
delay(1000);

stopBOT();
delay (100);

slowSpinCCW (); // Spin anti-clockwise
delay(1000); // for one second

stopBOT();
delay (100);

display.clearDisplay();
display.display();

}

// ———————————————————————————–

LFObstacle = digitalRead(LFObstaclePin);

if (LFObstacle == LOW)
{

display.setCursor(10,40);
display.print(“Left front”);
digitalWrite(LED, HIGH);
display.display();

stopBOT();
delay (100);

slowREV(); // Move backwards slowly
delay(1000); // for one second

stopBOT();
delay (100);

slowSpinCW ();
delay(1000);

stopBOT();
delay (100);

display.clearDisplay();
display.display();

}

// ———————————————————————————–

RFObstacle = digitalRead(RFObstaclePin);

if (RFObstacle == LOW)
{

display.setCursor(10,40);
display.print(“Right front”);
digitalWrite(LED, HIGH);
display.display();

stopBOT();
delay (100);

slowREV();
delay(1000);

stopBOT();
delay (100);

slowSpinCCW ();
delay(1000);

stopBOT();
delay (100);

display.clearDisplay();
display.display();

}

}

// — Mach motor control for specific movements ————————————-

void slowFWD () {

int reversePWM = -(400 – 511) / 2; // Left motor slow forward
analogWrite(LPWM_Output, 0);
analogWrite(RPWM_Output, reversePWM);

int M2forwardPWM = -(400 – 511) / 2; // Right motor slow forward
analogWrite(M2LPWM_Output, M2forwardPWM);
analogWrite(M2RPWM_Output, 0);

}

// ———————————————————————————–

void slowREV () {

int forwardPWM = (600 – 512) / 2; // Left motor slow reverse
analogWrite(LPWM_Output, forwardPWM);
analogWrite(RPWM_Output, 0);

int M2reversePWM = (600 – 512) / 2; // Right motor slow reverse
analogWrite(M2LPWM_Output, 0);
analogWrite(M2RPWM_Output, M2reversePWM);

}

// ———————————————————————————–

void stopBOT () {

int reversePWM = -(500 – 511) / 2; // Left motor STOP
analogWrite(LPWM_Output, 0);
analogWrite(RPWM_Output, reversePWM);

int M2forwardPWM = -(500 – 511) / 2; // Right motor STOP
analogWrite(M2LPWM_Output, M2forwardPWM);
analogWrite(M2RPWM_Output, 0);

}

// ———————————————————————————–

void fastFWD () {

int reversePWM = -(600 – 511) / 2; // Left motor fast forward
analogWrite(LPWM_Output, 0);
analogWrite(RPWM_Output, reversePWM);

int M2forwardPWM = -(600 – 511) / 2; // Right motor fast forward
analogWrite(M2LPWM_Output, M2forwardPWM);
analogWrite(M2RPWM_Output, 0);

}

// ———————————————————————————–

void fastREV () {

int forwardPWM = (400 – 512) / 2; // Left motor fast reverse
analogWrite(LPWM_Output, forwardPWM);
analogWrite(RPWM_Output, 0);

int M2reversePWM = (400 – 512) / 2; // Right motor fast reverse
analogWrite(M2LPWM_Output, 0);
analogWrite(M2RPWM_Output, M2reversePWM);

}

// ———————————————————————————–

void slowSpinCW () {

int reversePWM = -(400 – 511) / 2; // Left motor slow forward
analogWrite(LPWM_Output, 0);
analogWrite(RPWM_Output, reversePWM);

int M2reversePWM = (600 – 512) / 2; // Right motor slow reverse
analogWrite(M2LPWM_Output, 0);
analogWrite(M2RPWM_Output, M2reversePWM);

}

// ———————————————————————————–

void slowSpinCCW () {

int forwardPWM = (600 – 512) / 2; // Left motor slow reverse
analogWrite(LPWM_Output, forwardPWM);
analogWrite(RPWM_Output, 0);

int M2forwardPWM = -(400 – 511) / 2; // Right motor slow forward
analogWrite(M2LPWM_Output, M2forwardPWM);
analogWrite(M2RPWM_Output, 0);

}

===========================================================================================

Next test, hoping to send variable speeds to the motors, essential when implementing self balancing!!!

/*

Mach 2018 – driven by Arduino.

Eddie Leighton – 23rd March 2018

*/

#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

// ———————————————————————————-

int RPWM_Output = 5;
int LPWM_Output = 6;

int M2RPWM_Output = 9;
int M2LPWM_Output = 10;

// ———————————————————————————-

int LED = 13; // Use the onboard Uno LED

int RBObstaclePin = 0; // This is our input pin
int RBObstacle = HIGH; // HIGH MEANS NO OBSTACLE

int LBObstaclePin = 1;
int LBObstacle = HIGH;

int LFObstaclePin = 2;
int LFObstacle = HIGH;

int RFObstaclePin = 3;
int RFObstacle = HIGH;

// ———————————————————————————-

void setup()

{

display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3C

display.clearDisplay();
display.display();

display.setTextColor(WHITE);
display.setTextSize(2);

display.setCursor(10,0);
display.print(“Mach 2018”);
display.display();

// ———————————————————————————–

pinMode(RPWM_Output, OUTPUT);
pinMode(LPWM_Output, OUTPUT);

pinMode(M2RPWM_Output, OUTPUT);
pinMode(M2LPWM_Output, OUTPUT);

// ———————————————————————————–

pinMode(RBObstaclePin, INPUT);
pinMode(LBObstaclePin, INPUT);

pinMode(RFObstaclePin, INPUT);
pinMode(LFObstaclePin, INPUT);

pinMode(LED, OUTPUT);

}

void loop()
{

display.clearDisplay();
display.display();

display.setTextColor(WHITE);
display.setTextSize(2);

display.setCursor(10,0);
display.print(“Mach 2018”);

display.setTextSize(1);

// — Slow to fast, forward ———————————————————

for (int i=50; i >= -50; i–){

FWD(i);

delay(10);

}

stopBOT();
delay (100);

// — Slow to fast, reverse ———————————————————

for (int i=50; i >= -50; i–){

REV(i);

delay(10);

}

stopBOT();
delay (100);

// ———————————————————————————–

RBObstacle = digitalRead(RBObstaclePin);

if (RBObstacle == LOW)
{

display.setCursor(10,40);
display.print(“Right back”);
digitalWrite(LED, HIGH);
display.display();

stopBOT(); // STOP
delay (100); // Motors still

slowFWD(); // Move forward slowly
delay(1000); // for one second

stopBOT();
delay (100);

slowSpinCW (); // Spin slowly clockwise
delay(1000); // for one second

stopBOT();
delay (100);

display.clearDisplay();
display.display();

}

// ———————————————————————————–

LBObstacle = digitalRead(LBObstaclePin);

if (LBObstacle == LOW)
{

display.setCursor(10,40);
display.print(“Left back”);
digitalWrite(LED, HIGH);
display.display();

stopBOT();
delay (100);

slowFWD();
delay(1000);

stopBOT();
delay (100);

slowSpinCCW (); // Spin anti-clockwise
delay(1000); // for one second

stopBOT();
delay (100);

display.clearDisplay();
display.display();

}

// ———————————————————————————–

LFObstacle = digitalRead(LFObstaclePin);

if (LFObstacle == LOW)
{

display.setCursor(10,40);
display.print(“Left front”);
digitalWrite(LED, HIGH);
display.display();

stopBOT();
delay (100);

slowREV(); // Move backwards slowly
delay(1000); // for one second

stopBOT();
delay (100);

slowSpinCW ();
delay(1000);

stopBOT();
delay (100);

display.clearDisplay();
display.display();

}

// ———————————————————————————–

RFObstacle = digitalRead(RFObstaclePin);

if (RFObstacle == LOW)
{

display.setCursor(10,40);
display.print(“Right front”);
digitalWrite(LED, HIGH);
display.display();

stopBOT();
delay (100);

slowREV();
delay(1000);

stopBOT();
delay (100);

slowSpinCCW ();
delay(1000);

stopBOT();
delay (100);

display.clearDisplay();
display.display();

}

}

// — Mach motor control for specific movements ————————————-

void slowFWD () {

int reversePWM = -(400 – 511) / 2; // Left motor slow forward
analogWrite(LPWM_Output, 0);
analogWrite(RPWM_Output, reversePWM);

int M2forwardPWM = -(400 – 511) / 2; // Right motor slow forward
analogWrite(M2LPWM_Output, M2forwardPWM);
analogWrite(M2RPWM_Output, 0);

}

// ———————————————————————————–

void slowREV () {

int forwardPWM = (600 – 512) / 2; // Left motor slow reverse
analogWrite(LPWM_Output, forwardPWM);
analogWrite(RPWM_Output, 0);

int M2reversePWM = (600 – 512) / 2; // Right motor slow reverse
analogWrite(M2LPWM_Output, 0);
analogWrite(M2RPWM_Output, M2reversePWM);

}

// ———————————————————————————–

void stopBOT () {

int reversePWM = -(500 – 511) / 2; // Left motor STOP
analogWrite(LPWM_Output, 0);
analogWrite(RPWM_Output, reversePWM);

int M2forwardPWM = -(500 – 511) / 2; // Right motor STOP
analogWrite(M2LPWM_Output, M2forwardPWM);
analogWrite(M2RPWM_Output, 0);

}

// ———————————————————————————–

void fastFWD () {

int reversePWM = -(600 – 511) / 2; // Left motor fast forward
analogWrite(LPWM_Output, 0);
analogWrite(RPWM_Output, reversePWM);

int M2forwardPWM = -(600 – 511) / 2; // Right motor fast forward
analogWrite(M2LPWM_Output, M2forwardPWM);
analogWrite(M2RPWM_Output, 0);

}

// ———————————————————————————–

void fastREV () {

int forwardPWM = (400 – 512) / 2; // Left motor fast reverse
analogWrite(LPWM_Output, forwardPWM);
analogWrite(RPWM_Output, 0);

int M2reversePWM = (400 – 512) / 2; // Right motor fast reverse
analogWrite(M2LPWM_Output, 0);
analogWrite(M2RPWM_Output, M2reversePWM);

}

// ———————————————————————————–

void slowSpinCW () {

int reversePWM = -(400 – 511) / 2; // Left motor slow forward
analogWrite(LPWM_Output, 0);
analogWrite(RPWM_Output, reversePWM);

int M2reversePWM = (600 – 512) / 2; // Right motor slow reverse
analogWrite(M2LPWM_Output, 0);
analogWrite(M2RPWM_Output, M2reversePWM);

}

// ———————————————————————————–

void slowSpinCCW () {

int forwardPWM = (600 – 512) / 2; // Left motor slow reverse
analogWrite(LPWM_Output, forwardPWM);
analogWrite(RPWM_Output, 0);

int M2forwardPWM = -(400 – 511) / 2; // Right motor slow forward
analogWrite(M2LPWM_Output, M2forwardPWM);
analogWrite(M2RPWM_Output, 0);

}

// ———————————————————————————–

void FWD (int spoed) {

// Slow 50 ….. to …… fast -50

int reversePWM = spoed; // Left motor forward
analogWrite(LPWM_Output, 0);
analogWrite(RPWM_Output, reversePWM);

int M2forwardPWM = spoed; // Right motor forward
analogWrite(M2LPWM_Output, M2forwardPWM);
analogWrite(M2RPWM_Output, 0);

}

// ———————————————————————————–

void REV (int spoed) {

// Slow 50 ….. to …… fast -50

int forwardPWM = spoed; // Left motor reverse
analogWrite(LPWM_Output, forwardPWM);
analogWrite(RPWM_Output, 0);

int M2reversePWM = spoed; // Right motor reverse
analogWrite(M2LPWM_Output, 0);
analogWrite(M2RPWM_Output, M2reversePWM);

}

RaDAR – The new ZS6BKW Maak Toe field measurements

I took part in the local 40m Hamnet contest this weekend using my FT817ND and 9:1 UNUN fed long wire hanging over a high tree branch. My deployment point was close to where I have hung the new ZS6BKW antenna (“Maak toe”), published in the March 2018 Radcom magazine by Brian Austin G0GSF, high up in the trees. I worked two SOTA stations during the exercise.

Propagation wasn’t the best so I spent some “Off time” taking some measurements on the BKW using the 817’s SWR indicator to determine “SWR”. I drew up the following chart as an indication of what the values looked like graphically. Note no tuner was in line.

The green values are for 40m and on the lower part of the band no SWR could be seen but started to lift halfway up the band at 7.1 MHz so the antenna is resonating low on the 40m band. Ideal for CW, Digital modes and SSB.

The brown values are for 10m and a dip in SWR can be clearly seen starting from 28.4 MHz where no SWR could be seen for at least 300 kHz and where the SWR started to slowly climb around 28.8 MHz. At 29.3 MHz the SWR indicator showed 5 bars. The antenna is resonating nicely on the SSB portion of the 10m band. A tuner will be needed for the CW and Digital modes portion of the band.

The yellow values are for 20m and best, but not low, in the CW portion of the band. A SWR indication of 1 bar is really not that critical but the antenna seems to be resonating below the 20m band.

The cyan values are for 17m and the SWR was hovering around 2 to 3 points which would definitely indicate the need for an ATU. The 12m band even more so!

All in all the antenna, in general, is resonating low and may need further trimming of the open wire feeder. I have already removed around a meter but the length is totally reliant on the open wire feed line’s velocity factor (VF).

This antenna was not designed for, and DOES NOT work on 30m and 15m.

The antenna lives in the trees ….. in KG34ac.

73 de Eddie ZS6BNE

RaDAR – Smartphones

Quite a few years ago in the early days of Android I invested in a top of the range Samsung Galaxy Note (It came at the price of a FT817), one of the first “Note” phones. It was my way of getting to know this popular operating system in my job as technology manager. I discovered HamGPS an app capable of using the phones GPS to determine a 10 character maidenhead grid. This immediately became part of RaDAR.

It was in the days where I had no cell phone contract and used the method, “Pay as you go” on the MTN network. I worked this way from way back when I had a Nokia 3310 and even before that, a NEC! Then while on “early retirement” my XYL convinced me to take out a cell phone contract with cell c – it was the biggest mistake of my life! The phone they gave me was a Sony C4 which really had an excellent camera for photos and videos but that was about all. I constantly lost signal and the touch screen became a disaster half way through the contract and could not be replaced. On Friday I terminated the two year contract in it’s final month so by this time next month I will be contract free – and free!

In the meantime I’m using my XYL’s old Sony and have given my old “Note” to Eduan, my grandson. So that leaves me without the capability of determining 10 character maidenhead grids as the Sony I have now doesn’t have a built in GPS!

Maybe this is a good thing that I get back to using my very old Garmin Legend handheld GPS last used with APRS, even via FM satellites!

I can now only determine a 6 character grid square …… but, let’s see how it goes.