<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>point.free - Space</title>
    <subtitle>Notes from Christina Sørensen — software engineer, NixOS Steering Committee, author of eza.</subtitle>
    <link rel="self" type="application/atom+xml" href="https://point.free/tags/space/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://point.free"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2025-01-05T06:00:00+00:00</updated>
    <id>https://point.free/tags/space/atom.xml</id>
    <entry xml:lang="en">
        <title>Tracking Sattelites with Consumer Components</title>
        <published>2025-01-05T06:00:00+00:00</published>
        <updated>2025-01-05T06:00:00+00:00</updated>
        
        <author>
          <name>
            
              Christina Sørensen
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://point.free/blog/first-tinygs-station/"/>
        <id>https://point.free/blog/first-tinygs-station/</id>
        
        <content type="html" xml:base="https://point.free/blog/first-tinygs-station/">&lt;h2 id=&quot;a-global-network-of-ground-stations&quot;&gt;A Global Network of Ground Stations&lt;&#x2F;h2&gt;
&lt;p&gt;At &lt;a href=&quot;https:&#x2F;&#x2F;events.ccc.de&#x2F;congress&#x2F;2024&#x2F;infos&#x2F;index.html&quot;&gt;38c3&lt;&#x2F;a&gt; I attended a
workshop on building a sattelite ground stations for communicating with LoRa
based sattelites, typically used for research or weather probes.&lt;&#x2F;p&gt;
&lt;p&gt;Generally speaking, these are so called
&lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;CubeSat&quot;&gt;“cubesats”&lt;&#x2F;a&gt;, which are small,
&lt;em&gt;relatively&lt;&#x2F;em&gt; inexpensive sattelites usually built up of off the shelf components
in a modular fashion. In fact, it turns out that with one of these inexpensive
sattelites, a small launch would actually &lt;em&gt;only&lt;&#x2F;em&gt; cost in the range of
$50,000-$100,000, not a small amount, but still, a lot more accessible than what
you would initially imagine. Combine this with LoRa (literally &lt;strong&gt;Lo&lt;&#x2F;strong&gt;ng
&lt;strong&gt;Ra&lt;&#x2F;strong&gt;nge)  — a proprietary radio communication technique — and you have the
components for a globe spanning network of sattelites and amatur ground
stations.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;point.free&#x2F;blog&#x2F;first-tinygs-station&#x2F;nano_rack_cube_sat.jpg&quot; alt=&quot;Nano Rack Cube Sat after being deployed from the ISS&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;This has lead to a suprising amount of these &lt;a href=&quot;https:&#x2F;&#x2F;tinygs.com&#x2F;satellites&quot;&gt;sattelites currently in low-earth
orbit around the globe&lt;&#x2F;a&gt;. Typically these aren’t
geostationary (meaning located over the same point on the planet at all times),
and so, it is useful for e.g. a smaller university to have access to a globe
spanning network of sattelite stations.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;tinygs&quot;&gt;TinyGS&lt;&#x2F;h2&gt;
&lt;p&gt;Enter &lt;a href=&quot;https:&#x2F;&#x2F;tinygs.com&#x2F;&quot;&gt;TinyGS, tiny ground stations&lt;&#x2F;a&gt;. TinyGS is an open
network of Ground stations distributed across the globe, run by amateurs. It
allows operating LoRa based weather probes, sattelites, and other “flying
objects”, using consumer electronics.&lt;&#x2F;p&gt;
&lt;p&gt;The basic idea is that you get an ESP32 as well as a some sort of LoRa module,
an antenna, and flash the tinygs firmware onto it. Then you just connect it to
the tinygs servers using MQTT, and you will be able to opearte your board on the
tinygs website, as well as being able to contribute to the global sattelite
tracking effort.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;point.free&#x2F;blog&#x2F;first-tinygs-station&#x2F;TinyGS_architecture.png&quot; alt=&quot;TinyGS software architecture diagram&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;h2 id=&quot;build-your-own-ground-station&quot;&gt;Build your own Ground Station&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;hardware&quot;&gt;Hardware&lt;&#x2F;h3&gt;
&lt;p&gt;If you wanna build your own, the easiest possible route is just to acquire a
&lt;code&gt;LoRa32 V2.1_1.6 - 433MHZ CH9102F&lt;&#x2F;code&gt; board. Usually you can find these online, and
make sure that you get one with a small antenna.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;point.free&#x2F;blog&#x2F;first-tinygs-station&#x2F;lora-board.png&quot; alt=&quot;LoRa32 V2.1_1.6 - 433MHZ CH9102F (With ANT500 antenna for reasons)&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;You’ll need to flash the firmware, the easiest way is to use the &lt;a href=&quot;https:&#x2F;&#x2F;installer.tinygs.com&#x2F;&quot;&gt;TinyGS web
flashing tool&lt;&#x2F;a&gt;, and sorry, but you’ll need to use
a chrome based browser for this.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;setup&quot;&gt;Setup&lt;&#x2F;h3&gt;
&lt;p&gt;What’s worse, you’ll also need to install telegram, and create an account, as
the TinyGS projects communications mainly happen there, and that means the
registration bot for your new board also lives on telegram.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;t.me&#x2F;joinchat&#x2F;DmYSElZahiJGwHX6jCzB3Q&quot;&gt;Join the TinyGS telegram group
here&lt;&#x2F;a&gt;, and then start a
conversation with &lt;a href=&quot;https:&#x2F;&#x2F;t.me&#x2F;tinygs_personal_bot&quot;&gt;the tinygs personal bot
here&lt;&#x2F;a&gt;. Also, make sure you join the TinyGS
community chat in the group first, as the bot will require you to be a member
before signing you up. When you are in that chat, send the &lt;code&gt;&#x2F;start&lt;&#x2F;code&gt; command to
the bot for some info about it’s usage. You’re mainly just interested in the
&lt;code&gt;&#x2F;mqtt&lt;&#x2F;code&gt; command, which gives you your credentials for the mqtt server.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;point.free&#x2F;blog&#x2F;first-tinygs-station&#x2F;tinybot.png&quot; alt=&quot;Registering My Own Station meoweather with the bot.&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Now with your credentials, and your participation in the TinyGS community (hi!),
you’ll want to plug in your flashed board. After a few moments, it should start
it’s own WiFi AP, that you can connect to. On the screen of your board, it
should show the IP address that you’ll then want to connect to on the boards
WiFi. This will give you a configuration inteface.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;point.free&#x2F;blog&#x2F;first-tinygs-station&#x2F;TinyGS_dashboard.png&quot; alt=&quot;TinyGS Dashboard&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Here, you enter the configuration, and then configure a ground station name,
create an admin password (to be used with the &lt;code&gt;admin&lt;&#x2F;code&gt; account), enter the WiFI
SSID and Password that you want the board to use for internet connectivity, your
lattitude and longitude (this doesn’t have to be &lt;em&gt;exact&lt;&#x2F;em&gt;, but should be vaguely
correct withing 25km~ because it is used to determine what sattelites to try and
connect to), and a timezone. Further, you’ll want to add your MQTT credentials
from the telegram bot.&lt;&#x2F;p&gt;
&lt;p&gt;If you’ve done everything correctly, you’ll receive a message on telegram from
the bot, like I did in the above screenshot. You’re now on the network.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;start-operating-your-sattelite&quot;&gt;Start operating your sattelite&lt;&#x2F;h3&gt;
&lt;p&gt;After you’ve setup your station, you’ll want to &lt;code&gt;&#x2F;login&lt;&#x2F;code&gt; with the bot to be able to operate it fully.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;point.free&#x2F;blog&#x2F;first-tinygs-station&#x2F;login.png&quot; alt=&quot;Sending &#x2F;login command to bot to get passwordless login link.&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;This will give you access to even more information about your device, and the
ability to edit it’s description and image, and to control how it is tracking
sattelites, or setup manual tracking if you wanna just track something specific,
or you don’t like the automatic selection.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;point.free&#x2F;blog&#x2F;first-tinygs-station&#x2F;operate.png&quot; alt=&quot;The operator overview&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Below that, you’ll find a log of the packets you have recieved so far.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;point.free&#x2F;blog&#x2F;first-tinygs-station&#x2F;captures.png&quot; alt=&quot;Captured pacets&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Notice here that the red circle indicated a CRC checksum error, meaning you recieved a faulty package. Also notice that there are two packets with a CRC error that were caught by just one station (meaning just your station). In this case, if you click on the packet, you’ll get the text that:&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;Unrecognized packet. This packet does not match the known structure of this
satellite. It might be an unknown packet or just terrestrial noise.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;However, for those that don’t have a CRC error, that’s a real sattelite packet you’ve caught. Well done!. If you click on it you can even read the details about what you caught.&lt;&#x2F;p&gt;
&lt;p&gt;For example, the &lt;code&gt;HOD-HOD-1A&lt;&#x2F;code&gt; capture from above provides the following information when you click on it.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;point.free&#x2F;blog&#x2F;first-tinygs-station&#x2F;capture.png&quot; alt=&quot;HOD-HOD-1A capture&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;As you can see, it shows what the content of the packet was, both as text, hexadecimal, and parsed json that you can expand and browse through. Below that, you’ll see a list of other stations that caught the packet. The view to the side shows the geographical location of the stations that caught the sattelite communication.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;i-wanna-capture-more-packets&quot;&gt;I wanna capture more packets!&lt;&#x2F;h3&gt;
&lt;p&gt;As you will likely realize after running your station for a few days, you’re
probably not capturing a lot of packets. This is because the default antenna
doesn’t really perform well, and likely, you’ll also ideally want to make sure
that your station is outside, and isn’t obstructed, and that weather conditions
are favorable (anecdotally, I also tend to capture much more packets at night).&lt;&#x2F;p&gt;
&lt;p&gt;I’ll not elaborate more on this in this post, as it is something I’m working on
myself, but I may follow up later with a separate post on what it takes to
increase the amount of packets you capture. In short, you’ll want a 1&#x2F;4-wave
ground plane antenna.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;obligatory-conclusion&quot;&gt;Obligatory Conclusion&lt;&#x2F;h2&gt;
&lt;p&gt;With inexpensive consumer hardware, it is possible to build your own sattelite
ground station, and join a globe spanning network of space enthusiasts capturing
sattelite data.&lt;&#x2F;p&gt;
&lt;p&gt;That is pretty cool :3&lt;&#x2F;p&gt;
</content>
        
    </entry>
</feed>
