Cantenna Testing

I was member of Melbourne Wireless for some time while I lived in Abbotsford (node CIA).

During this time I tested the beam pattern of a Harris Coffee Tin used as a circular waveguide. The polar plot below summarises the results. Essentially, the device under test, a harris coffee can of internal diameter 98mm, with a tuned 1/4 (28mm of copper instead of 31mm) wave stub was placed on a post and rotated in an anechoic chamber. From about 8m away, a series of measurements of received signal power were taken by a spectrum analyser. A signal generator was used to launch a constant 10dBm at 2.462 GHz (choice of frequency is a long story, I’ve now forgotten) through a source at the device under test. The directivity or gain of this cantenna is found to be between 6 and 7dBi. I did intend at that time to make modifications and perform further testing to determine the improvement gained by adding an extra length of can to make it 5/4 guide wavelengths long; a choke; a spreader. It’s been some years since I’ve had access to the equipment and the chamber though, in fact I think with the movement of Telstra’s research laboratory team into the CBD, it is likely the facility no longer exists.

Network Architecture

I also did some thinking at that time about feasible ways to construct a network architecture to provide some degree of mesh routing for the wireless community of Melbourne. There are slides to document the design thoughts (also in PPT format.)

Test Result Overview

Gain approximately 6.5dB in a quite symmetric lobe.

At 2.462 GHz

At 2.462 GHz

 

Detailed Test Results

Recorded by: Roger Venning
Date: ########
Frequency: 2.462GHz
Device under test: Cantenna no. 1
Equipment: Signal generator: 10dBm output power. <src?>.  Measurements with Spectrum analyser.
Seems that you would expect to receive -44dBm from an isotropic radiator with this setup.
Azimuth Magnitude – dBm (Azimuth) Magnitude (mW) Normalised gain (azimuth) Elevation Magnitude – dBm (Elevation) Magnitude (mW) Normalised gain (elevation) mean (mW) Average normalised gain
0 -37.15 1.90E-04 7.1 0 -37.8 1.70E-04 6.4 1.80E-04 6.8
5 -37.22 1.90E-04 7 5 -37.71 1.70E-04 6.5 1.80E-04 6.8
10 -37.45 1.80E-04 6.8 10 -37.8 1.70E-04 6.4 1.70E-04 6.6
15 -37.83 1.60E-04 6.4 15 -38.01 1.60E-04 6.2 1.60E-04 6.3
20 -38.31 1.50E-04 5.9 20 -38.38 1.50E-04 5.9 1.50E-04 5.9
25 -38.92 1.30E-04 5.3 25 -38.9 1.30E-04 5.3 1.30E-04 5.3
30 -39.6 1.10E-04 4.6 30 -39.53 1.10E-04 4.7 1.10E-04 4.7
35 -40.34 9.20E-05 3.9 35 -40.34 9.20E-05 3.9 9.20E-05 3.9 3dB
40 -41.27 7.50E-05 3 40 -41.3 7.40E-05 2.9 7.40E-05 3
45 -42.31 5.90E-05 1.9 45 -42.36 5.80E-05 1.9 5.80E-05 1.9
50 -43.29 4.70E-05 1 50 -43.45 4.50E-05 0.8 4.60E-05 0.9
55 -44.44 3.60E-05 -0.2 55 -44.42 3.60E-05 -0.2 3.60E-05 -0.2
60 -45.82 2.60E-05 -1.6 60 -45.29 3.00E-05 -1 2.80E-05 -1.3
65 -47.37 1.80E-05 -3.1 65 -46 2.50E-05 -1.8 2.20E-05 -2.4
70 -48.65 1.40E-05 -4.4 70 -46.61 2.20E-05 -2.4 1.80E-05 -3.3
75 -49.84 1.00E-05 -5.6 75 -47.65 1.70E-05 -3.4 1.40E-05 -4.4
80 -51.13 7.70E-06 -6.9 80 -49.17 1.20E-05 -4.9 9.90E-06 -5.8
85 -52.62 5.50E-06 -8.4 85 -50.17 9.60E-06 -5.9 7.50E-06 -7
90 -53.99 4.00E-06 -9.7 90 -50.24 9.50E-06 -6 6.70E-06 -7.5
95 -55.28 3.00E-06 -11 95 -50.74 8.40E-06 -6.5 5.70E-06 -8.2
100 -56.4 2.30E-06 -12.2 100 -52.86 5.20E-06 -8.6 3.70E-06 -10
105 -57.5 1.80E-06 -13.3 105 -55.45 2.90E-06 -11.2 2.30E-06 -12.1
110 -58.61 1.40E-06 -14.4 110 -55.09 3.10E-06 -10.8 2.20E-06 -12.3
115 -59.19 1.20E-06 -14.9 115 -54.34 3.70E-06 -10.1 2.40E-06 -11.9
120 -59.52 1.10E-06 -15.3 120 -55.59 2.80E-06 -11.3 1.90E-06 -12.9
125 -59.66 1.10E-06 -15.4 125 -57.6 1.70E-06 -13.4 1.40E-06 -14.3
130 -59.54 1.10E-06 -15.3 130 -56.72 2.10E-06 -12.5 1.60E-06 -13.7
135 -59.59 1.10E-06 -15.3 135 -54.76 3.30E-06 -10.5 2.20E-06 -12.3
140 -60.12 9.70E-07 -15.9 140 -54.2 3.80E-06 -10 2.40E-06 -12
145 -61.1 7.80E-07 -16.9 145 -55.68 2.70E-06 -11.4 1.70E-06 -13.4
150 -62.31 5.90E-07 -18.1 150 -59.96 1.00E-06 -15.7 8.00E-07 -16.7
155 -63.3 4.70E-07 -19.1 155 -64.9 3.20E-07 -20.7 4.00E-07 -19.8
160 -62.13 6.10E-07 -17.9 160 -67 2.00E-07 -22.8 4.10E-07 -19.7
165 -59.57 1.10E-06 -15.3 165 -61 7.90E-07 -16.8 9.50E-07 -16
170 -57.36 1.80E-06 -13.1 170 -58.34 1.50E-06 -14.1 1.70E-06 -13.6
175 -56.12 2.40E-06 -11.9 175 -57.05 2.00E-06 -12.8 2.20E-06 -12.3
180 -55.8 2.60E-06 -11.6 180 -57.16 1.90E-06 -12.9 2.30E-06 -12.2
185 -56.14 2.40E-06 -11.9 185 -59.29 1.20E-06 -15 1.80E-06 -13.2
190 -56.95 2.00E-06 -12.7 190 -62.36 5.80E-07 -18.1 1.30E-06 -14.6
195 -58.25 1.50E-06 -14 195 -60.24 9.50E-07 -16 1.20E-06 -14.9
200 -60.25 9.40E-07 -16 200 -55.6 2.80E-06 -11.4 1.80E-06 -13.1
205 -62.6 5.50E-07 -18.4 205 -52.79 5.30E-06 -8.5 2.90E-06 -11.1
210 -64.04 3.90E-07 -19.8 210 -51.45 7.20E-06 -7.2 3.80E-06 -10
215 -63.42 4.50E-07 -19.2 215 -51.29 7.40E-06 -7 3.90E-06 -9.8
220 -61.7 6.80E-07 -17.5 220 -51.86 6.50E-06 -7.6 3.60E-06 -10.2
225 -60.49 8.90E-07 -16.2 225 -52.69 5.40E-06 -8.4 3.10E-06 -10.8
230 -59.7 1.10E-06 -15.5 230 -53.5 4.50E-06 -9.3 2.80E-06 -11.3
235 -58.9 1.30E-06 -14.7 235 -53.5 4.50E-06 -9.3 2.90E-06 -11.2
240 -58.6 1.40E-06 -14.4 240 -53.59 4.40E-06 -9.3 2.90E-06 -11.2
245 -58.8 1.30E-06 -14.6 245 -55.35 2.90E-06 -11.1 2.10E-06 -12.5
250 -58.58 1.40E-06 -14.3 250 -57.05 2.00E-06 -12.8 1.70E-06 -13.5
255 -57.6 1.70E-06 -13.4 255 -54.53 3.50E-06 -10.3 2.60E-06 -11.6
260 -56.33 2.30E-06 -12.1 260 -52.44 5.70E-06 -8.2 4.00E-06 -9.7
265 -55.61 2.70E-06 -11.4 265 -51.86 6.50E-06 -7.6 4.60E-06 -9.1
270 -55.15 3.10E-06 -10.9 270 -51.93 6.40E-06 -7.7 4.70E-06 -9
275 -53.73 4.20E-06 -9.5 275 -51.77 6.70E-06 -7.5 5.40E-06 -8.4
280 -51.84 6.50E-06 -7.6 280 -51.29 7.40E-06 -7 7.00E-06 -7.3
285 -50.15 9.70E-06 -5.9 285 -50.67 8.60E-06 -6.4 9.10E-06 -6.2
290 -48.68 1.40E-05 -4.4 290 -50.03 9.90E-06 -5.8 1.20E-05 -5.1
295 -47.3 1.90E-05 -3.1 295 -48.82 1.30E-05 -4.6 1.60E-05 -3.8
300 -46.12 2.40E-05 -1.9 300 -47.37 1.80E-05 -3.1 2.10E-05 -2.5
305 -45.2 3.00E-05 -1 305 -45.98 2.50E-05 -1.7 2.80E-05 -1.3
310 -44.18 3.80E-05 0.1 310 -44.89 3.20E-05 -0.6 3.50E-05 -0.3
315 -42.98 5.00E-05 1.3 315 -43.93 4.00E-05 0.3 4.50E-05 0.8
320 -41.73 6.70E-05 2.5 320 -42.98 5.00E-05 1.3 5.90E-05 1.9
325 -40.64 8.60E-05 3.6 325 -41.99 6.30E-05 2.3 7.50E-05 3
330 -39.77 1.10E-04 4.5 330 -41.08 7.80E-05 3.2 9.20E-05 3.9 3dB
335 -39 1.30E-04 5.2 335 -40.17 9.60E-05 4.1 1.10E-04 4.7
340 -38.36 1.50E-04 5.9 340 -39.39 1.20E-04 4.9 1.30E-04 5.4
345 -37.85 1.60E-04 6.4 345 -38.79 1.30E-04 5.5 1.50E-04 5.9
350 -37.48 1.80E-04 6.8 350 -38.31 1.50E-04 5.9 1.60E-04 6.4
355 -37.22 1.90E-04 7 355 -38.01 1.60E-04 6.2 1.70E-04 6.6
3.80E-05

Recent Posts

Slackbot on Raspberry Pi

As per Benjie.Me and Neopixels on Raspberry and also JGarff

import re
import time
import json
from slackclient import SlackClient
import time
from neopixel import *


# LED strip configuration:
LED_COUNT = 8 # Number of LED pixels.
LED_PIN = 18 # GPIO pin connected to the pixels (must support PWM!).
LED_FREQ_HZ = 800000 # LED signal frequency in hertz (usually 800khz)
LED_DMA = 5 # DMA channel to use for generating signal (try 5)
LED_BRIGHTNESS = 20 # Set to 0 for darkest and 255 for brightest
LED_INVERT = False # True to invert the signal (when using NPN transistor level shift)


def theaterChase(strip, color, wait_ms=50, iterations=2):
 """Movie theater light style chaser animation."""
 for j in range(iterations):
 for q in range(3):
 for i in range(0, strip.numPixels(), 3):
 strip.setPixelColor(i+q, color)
 strip.show()
 time.sleep(wait_ms/1000.0)
 for i in range(0, strip.numPixels(), 3):
 strip.setPixelColor(i+q, 0)



# Create NeoPixel object with appropriate configuration.
strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, LED_FREQ_HZ, LED_DMA, LED_INVERT, LED_BRIGHTNESS)
# Intialize the library (must be called once before other functions).
strip.begin()


# Slack integration
slack_client = SlackClient(YOUR_API_KEY_HERE)


# Fetch your Bot's User ID
user_list = slack_client.api_call("users.list")
for user in user_list.get('members'):
 if user.get('name') == "labs-pi":
 slack_user_id = user.get('id')
 break


# Start connection
if slack_client.rtm_connect():
 print "Connected!"

 while True:
 for message in slack_client.rtm_read():
 if 'text' in message and message['text'].startswith("<@%s>" % slack_ user_id):

 print "Message received: %s" % json.dumps(message, indent=2)

 message_text = message['text'].\
 split("<@%s>" % slack_user_id)[1].\
 strip()

 if re.match(r'.*light.*on.*', message_text, re.IGNORECASE):
 theaterChase(strip, Color(127,127,127))
 slack_client.api_call(
 "chat.postMessage",
 channel=message['channel'],
 text="Lights are now on",
 as_user=True)

 if re.match(r'.*light.*off.*', message_text, re.IGNORECASE):
 theaterChase(strip, Color(0,0,0))
 slack_client.api_call(
 "chat.postMessage",
 channel=message['channel'],
 text="Lights are now off",
 as_user=True)

 time.sleep(1)
Posted in IT
  1. Windows 10 Boot Recovery or Not Comments Off on Windows 10 Boot Recovery or Not
  2. 20 Minute VC – the schizophrenia of raising v.s. running the business Comments Off on 20 Minute VC – the schizophrenia of raising v.s. running the business
  3. SaaStr 2017 Comments Off on SaaStr 2017
  4. Testing Openstack with Ansible and all-in-one install on Hyper-V Comments Off on Testing Openstack with Ansible and all-in-one install on Hyper-V
  5. Testing glusterfs on centos Comments Off on Testing glusterfs on centos
  6. Cropping multiple images with Gimp and script-fu Comments Off on Cropping multiple images with Gimp and script-fu
  7. The dangers and opportunities of statistical multiplexing gain Comments Off on The dangers and opportunities of statistical multiplexing gain
  8. Home again Comments Off on Home again
  9. Bristol Street Art Comments Off on Bristol Street Art