I have been looking at different ways of tracking the balloon, mostly by use of radio, as the alternative is using GSM networks, which are not the most reliable in every place in the Western Cape, and it does not span to the upper atmosphere.
I found a few options, ranging from the Spot: Gen 3 tracker, which is a personal tracker for hikers or anything that needs tracking, to DIY radio trackers that can be used with an Arduino microcontroller. However, all of the methods cost more than $150, which is way out of my budget allocation.
After some deeper digging, I found a radio chip that could be purchased from England for £30.00, but it would cost double that in shipping. This chip was perfect for what I needed, as it had a 200km range, all while being powered by 10 milliWatts. I wanted to see if there was any more information on this chip and after scouring through some of the deeper parts of the internet, I found the original blueprints for the chip that I could potentially send to manufacturers here in Cape Town. However, upon opening the file, I realized I had no experience or knowledge about anything to do with electrical engineering, I thought it best to maybe leave that as a backup plan.
However, this got me thinking about maybe using a less powerful chip to relay the GPS data back, and using a more efficient method of sending the data, resulting in further distance for the same power and data.
When thinking of efficiency, I think of the Romans and how simple their number system was. The only symbols needed are I, which is a single unit, and V, which is five units. With those two you can make any number. Sort of. In traditional Roman Numerals, there are many other symbols, such as X, which means ten, L, which means fifty, C, which means one hundred, etc. However, instead of assigning values to each of these different symbols, I thought it more efficient to only assign values to two of them, of which I could create the rest.
Another nice system, although not that efficient, is Morse code. This code uses only dots and dashes to communicate, which is similar to binary, which only uses ones and zeros. I wanted to see if there was a way to create my own binary computer language inspired by the Roman number system and Morse code.
I would assign a dot, to the Roman numeral I, and a dash to the numeral V. Then the same rules used in the Roman number system apply to this. If a dot comes after a dash, it is added to the total value, however, if it is before, it is subtracted:
· = 1
– = 5
·- = 1 before 5, which is 4
-· = 1 after 5, which is 6
With this method, it is possible to make a more efficient language. I drew up a table in word and started assigning different symbols to the 10 basic units 0-9, along with a value for a point, a space and a negative:
|
Morse allocation |
Representing |
|
·-· |
0 |
|
· |
1 |
|
·· |
2 |
|
··· |
3 |
|
·- |
4 |
|
– |
5 |
|
-· |
6 |
|
-·· |
7 |
|
-··· |
8 |
|
·– |
9 |
|
— |
. |
|
— |
[space] |
|
-·- |
– |
I now had a way of representing all of these numbers using 4 or less symbols from a binary language. Next I had to find out what kind of value the GPS chip would be giving out. The most basic output would look like this: -33.988620, 19.319535. The most complex would look like this: 33°59’19.0″S 19°19’10.3″E.
I would have to have a bit of code running that would convert the GPS output and change it be able to send more efficiently. This would be the ideal output: -33.9886 19.3195. The code would have removed the last two decimal places, as they only account for about 6m2 on the ground, which is practically nothing and would help me save power. In addition to this, the comma was replaced with a single space, removing another character.
Once I knew what the final value to be sent out would look like, I could convert it to my language:
-·-_···_···_—_·–_-···_-···_-·_—_·_·–_—_···_·_·–_–
(The spaces are replaced with underscores, just for easier viewing.)
Although this is actually more characters than the original, it is more efficient. “Why?”, You ask. Simple. Remember I was talking about efficiently assigning values to the symbols earlier? Right, well in computer binary, integer numbers are also assigned a value, using ones and zeros. For instance, 1 in computer language, is 00110001. This is using the ASCII character, which is what computers use. However, 1 in binary is just 1. So although I have more characters on the surface, in terms of binary numbers I have less.
-33.9886 19.3195 in ASCII would look like this:
00101101001100110011001100101110001110010011100000111000001101100010000000110001001110010010111000110011001100010011100100110101
This has 128 characters, which is equal to 16 bytes (remember, there are 1024b in a kilobyte)
Now if we take my values:
-·-_···_···_—_·–_-···_-···_-·_—_·_·–_—_···_·_·–_–
1 = ·
11 = –
0 = no space
00 = _
Now we can turn my language into binary:
110101100101010010101001101100101101100110101010011010101001101001101101100101010010010110110011
My binary number has 96 characters, equal to 12 bytes, 25% less than the traditional computing methods.
In theory, if I were to build this, I would be able to boost the signal 25% further than advertised, however I’m sure that I could make this even more efficient by using a hybrid of binary and Morse, combined with only expecting numbers and removing the need for the spaces, points and negatives, combined with removing the first digit of the latitude and longitude, since it will not travel that far. If I were to be serious about this, I could probably get to 50%+ efficiency, however I’ll rest on my efforts for now.
All of this is theory and I will use as a last resort, but I am determined to find a tracker that is cost effective and able to track to extreme heights and distances.
I will contact Michael from Intermet Africa soon, perhaps he knows of cheap trackers that I could use, but first I need to get all of these school tests and exams out of the way…




