Observation Scheduler on Network

After a nice code push, scheduling observation functionality is now complete in SatNOGS Network website. The website is now able to dynamically calculate and schedule observation windows given a satellite for all available Ground Stations. The functionality works like this:

The observer enters the New Observation page. After selecting a Satellite and associated Transponder desired, the observer selects the timeframe for the observation. The timeframe selection is constrained in the future with maximum width being 8 hours (this could change as we scale the Network). After hitting ‘Calculate Observation’ the system returns a proposed Timeline of the observation, that includes the Ground Stations to be used and their individual observational windows. For this calculation we use PyEphem library and input the Ground Station locations, Satellite TLE, and timeframe desired.

Once the proposed timeline is reviewed and/or modified the observer can schedule the observation by hitting ‘Schedule Observation’. This creates the Observation in our database as planned, together with its associated individual observations for the Stations.

The Stations, through the Client, query the Network API frequently for scheduled individual observations.They then execute them on time, and push back the recorded data to Network, for further analysis by the Observers (making them also publicly available!)

Optimization of the Scheduling functionality will be further pursued. Ideas like deduplication of overlapping (more than 50%) individual observations, and accounting for horizon constrains are already in the works, and will be evaluated (in terms of their efficiency) as the Network scales up.

Check our code here and a live dev website here.
(requires registration for testing the New Observation functionality. Feel free to abuse!)

You can check a sceencast of the workflow in SatNOGS Network below:

SatNOGS now equipped with Diplexer

We’ve been thinking for some time that there is no need to install two separate RTL-SDR dongles to cover both VHF and UHF. It increases power consumption on WR703N without actually having any benefit, as using two dongles simultaneously is limited by the CPU power and network bandwidth.

A diplexer would allow the connection of a single dongle on both antennas. After studying the theory behind filters, we decided to implement a pair of Chebyshev filters. This type of filter has very steep roll-off and the maximum ripple can be a design parameter.

The two filters, a high-pass to attenuate the VHF band and a low-pass to attenuate the UHF band, should be crossing at exactly 288MHz@-3dB. Attenuation on each band should be at least 50dB. We calculated that a 9-pole Chabyshev filter would match these requirements and started designing a prototype on Qucs. Qucs is an open source circuit simulator which helped us verify that our calculations are correct.

3383541414367111666

8845441414367138983

LPF

7904481414367275380

The LPF has a maximum insertion loss of 0.4dB in VHF. The attenuation in UHF is more that 60dB. Some ripple can be observed on the chart, but it should not affect reception of narrow band signals.

HPF

8406941414367299660

The HPF has a maximum insertion loss of 0.2 dB in UHF. The attenuation in VHF is more that 80dB.

Special care has been taken to ensure minimal cross-talk between the two filters. The bottom layer of the PCB is a complete ground plane and two copper shieldings have been solder on top of each filter.

9707121414367816053

1566151414367827758

Please note, that this diplexer can be used only for receiving. For transmission, a higher grade of components (high voltage caps, high current inductors) should be used.

5698821414368058560

All source files can be found in our github repo here.

More pics from the diplexer can be found here.

API on SatNOGS Network

The SatNOGS Network website has had the focus in terms of development from our software team in the past week. While the major functionality (observation calculation and scheduling) is coming along nicely (thanks to libraries like python-ephem) we are also delivering other needed functionality. This time it was a public, well documented, open API.

Based on Django REST Framework, we deployed an API that matches our current DB model and enables other applications or services to query SatNOGS Network for information about Ground Stations, Observations, Data, Transponders or even Satellites.

You can check the code in our repo , or play around with it in our dev instance.

298711414272140835

For now authenticated users of the website are the only ones with POST (write) access, anyone else can view only (GET). We are planning API-key based access so that Stations can submit recorded Data once they are done with their scheduled part of the observation.

Extreme conditions considerations – Radome

In order to achieve global coverage, a network of Ground Stations would have to have nodes in places that are not entirely friendly environments. Desert hot, ice cold, gusty, monsoon rainy, mountain dry and forest humid could be some descriptions of possible locations SatNOGS would have to survive in.

Apart from the obvious networking considerations (internet connection and power) which are not in the scope of our project (and are dealt with existing solutions), SatNOGS has some physical constrains, especially around wind and water.

The relatively compact design, our current antennas and the targeted IP55 protection marking are indeed a slight advantage on moderate wind and rainy situations, but we had to do more to ensure reliable operations on rainy and windy hilltops and locations.

The way to protect antenna tracking mechanisms (especially dish antennas but not only) has been long known in the industry and in military. The name of it Radome (Radar-Dome). Radomes provide weather protection (ice, heat, rain, wind) especially combined with an environmental control system, and ensure uninterrupted operation for moving tracking mechanisms.

After extensive search on the webz we could not find any DIY and/or Open project for a Radome, so we decided to design, build and document one for SatNOGS.

We started with the desired shape and size. A geodesic dome (3V frequency) provides a good approximation of a sphere (less air drag) while not requiring large amounts of material. For the size, we modeled SatNOGS with a typical antenna setup (Helical and Yagi) and calculated the extremes. We ended up with a sphere of 1.5m radius, 1.2m from the ground.8103441414183780536

 

The material selected for construction is PVC tubes for struts (cheap and light-weigth) and ABS connectors (3D printable and durable). The Base is an aluminum (L channel) pentagon that can be bolted on the ground. It is important to emphasize that all materials (except the base pentagon) are non-conductive and dielectric. If Aluminum (or any other metal) was to be used, Quasi-Random patterns would have to mandate the design to avoid interference with the RF signals. For the outer surface many materials were considered, and Shrink Wrap seems to be the most cost-effective, easily applied and durable solution (check here for examples).

Gathering all materials is not hard, especially when you have access to a 3D printer. The overall cost is just below 130 USD.2728161414186279380

 

Construction is pretty straightforward. You start with the pentagon and work your way to the middle. Then you start from the top working your way down, until you are left with two hemispheres. Once those are connected in place you lay out the shrink wrap and using a heat gun you apply it in place.

4144831414186896895

Depending on the materials you would choose, some bonding might be needed between connectors and struts. (epoxy glue would do just fine). Shrink Wrap would take care of the final rigidity of the structure.

Unfortunately shipping times for shrink wrap as not as fast as we expected so we only finished the skeleton of the radome and we are waiting for the final layer to apply it by next week. (an new log will be posted for this!)

The end result is really impressive taking into account resources used. The structure is really light-weight so 2 people can fit it on SatNOGS by lifting it and lowering it on top of it. Then you would secure the pentagon on the ground and you are ready to go!1304161414187677993

 

Designs (CAD and STLs) are available in our repo, and once the shrink wrap arrives we will be posting a detailed how-to guide.

 

 

Portability for SatNOGS ground station

Most of the times you would want your ground station to be stable. Secured on a metal beam on top of a building, protected, homed and zeroed where no-one and nothing could disturb it. That is the ideal situation.

For those of us though that like adventures and want to carry a ground station with us on a field trip (DXing, Iridium flare hunts or even mountaineering) having SatNOGS be portable would be a huge advantage.

Luckily (actually… by design) the main gear mechanical assembly is a lightweight box with 3 beams sticking out. Easily carried even as a backpack. Antennas can be detached and especially the yagi ones, disassembled and carried as a long beam. But where would you put your ground station on? That called for a tripod!

We did have a tripod design (v1) early on (check designs here) but it was not really easily constructed and not easily deployable. So we focused on a new design.4056311414017834614

Version 2 is much more easily constructed, considerably more stable and totally portable as it collapses in a single beam. We tested it dozens of times on the field over the past couple of weeks and it is stable enough to allow reliable operations for a typical SatNOGS setup (UHF and VHF antennas mounted too). The cost of it? Aprox 15 USD 🙂

Designs and models can be found in our github repo here.

Bill of materials here. And guess what? We love documentation 🙂 So here are some step by step instructions to build it yourself!

537261414017515586

 

 

Observation page with data

Continuing the development of SatNOGS Network, we focused on enhancing the observation results page. Check out how it looks overall:

5334781412703749106

What is new?

Timeline

The new timeline view gives a quick overview on the data that each ground station collected within the observation timeframe. On the left you can see the list of the Ground Stations that participated in the observation and on the right you can check the timeblocks each ground station got data. We used the nice d3-timeline js plugin for it.

7640811412705500984

Data View

Each data that is associated with an observation is displayed in a new panel-based section. The data we collect can be either text (decoded messages) or sound (available for further processing). We dealt with the hardest one first. We used Wavesurfer.js to visualize the waveform (HTML5, WebAudio and Canvas FTW!) and added the ability for playback directly in the browser. A download link is also available.

3787081412705788098

The code for the implementation of the new views is already pushed in our repos. Soon we will be updating the dev instance with mock data so that you can check out the new functionality yourself.

 

SatNOGS going Helix

An important part of the instrumentation of our ground station is the Antennas. Early on the SatNOGS team designed and constructed 2 Yagis for UHF and VHF bands. The UHF Yagi design was essentially a cross Yagi design trying to address the circular polarization issue. Based on the experimental operation of the ground station we were sure we can do something better.

Satellites are tumbling and turning, thus if the transmission of the transponder is done in a single dimension polarization you better match this polarity to get the optimum gain. (if not you will loose 30dB) (check here for details). We decided that a Helical antenna would give SatNOGS a better chance for an optimal reception, so we needed to design, document and build one.

3168501411926300419

There are a couple of theoretical models for Axial-mode Helical Antennas. Most notable are the Emerson one and the Kraus. We decided to go for Emerson, given our wavelengths, construction constrains and overall size. As we were going for UHF band 437Mhz seemed like a popular frequency for satellite communications and we centered around it. As for the circular polarization we designed a Left-Hand one (as we already had a Right-hand cross-Yagi design).

Dimitris worked on a modular and extensible design that can be used on other bands too. 3D printed parts and off the self items is the classical recipe that we followed. The result is a sturdy and easy to construct antenna. Initial tests are showing improvements compared to our cross-yagi UHF which is a win!

9322231411926334250

The design can be found here, bill of materials here and a detailed documentation on how to build here.

1072571411926572665

Optimization of the antenna is crucial. We invested considerable amount of time towards that and there is always room for improvement in matching, constructions and details [1]. More NEC calculations will follow and we expect more fixes as we go.

[1] http://users.ece.gatech.edu/~az30/Downloads/HelixAPMagazineSubmission.pdf

SatNOGS Ground Station v2

2535381411594790981

The time we’ve all been waiting for, has come. We are proud to release v2 of SatNOGS Ground Station (Tracking Box) with many upgrades and fixes from the previous version. Notably:

  • Redesigned Axis Gear Assemblies. They are now smaller, more robust and reliable based around a much more powerful NEMA 17 Stepper Motor. The two assemblies are now structurally connected, making the whole assembly much more rigid. Also we redesigned the Worm Gear for improved printability on 3D printers.
  • Integrated electronics. We designed and built a new PCB to house all electronics (Arduino, and Stepper Drivers) along with an additional PCB as a PSU for voltage regulation and neater cable management. (see previous post)
  • Reworked stepper driving code, featuring a much cleaner code, acceleration and deceleration in movement, stop functions and early opto-homing support. (see previous post)

8353771411595308993

Tripod and On-board computer (TP-Link) stayed the same, with developments on them coming down the road.

A detailed Bill of Materials is available here.

We have also compiled a detailed construction guide, with step by step instructions on how to assemble the Ground Station Tracking box for both Mechanical and Electronics components.

http://satnogs.dozuki.com/c/SatNOGS_Hardware

3118771411594720263

All Designs and 3D printable files can be found here and all PCB files for our electronics shields can be found here.

Development does not stop with v2, and we are already working on the homing/zeroing code that will enable the homing parts we included in v2 to function. Moreover based on more testing we are applying to v2 and feedback from the community, we expect minor fixes to be released soon.

 

We can’t wait to see v2 out there, built by others, so get started and/or provide feedback!

Axis homing tests

Using the first version of satNOGS hardware we figured out that some times due to various reasons (software, mechanical or power malfunctions) the rotator might end up in an unknown position.

At that point, the only way to resolve that situation was to manually reset the rotator to home position (pointing at the north with zero altitude). Therefore, since we wanted the rotator to operate without human supervision, we decided that an automatic homing system was crucial.

At first thought we tried an IMU, which turned out to be too noisy and affected by the rest of the systems so we ended up with a pair of opto-swithes which are manually set at the first run.

6154471411922216479

The mounts and activators of the switches are designed in a way that they remain modular and independent of the rest of the tracking hardware so that they can be fitted in previous or future versions.

Our intention is to write two homing functions in the arduino code

The first one, which is already written, is called when the arduino boots for the first time or after power loss. In this function, the rotator scans around the current location until it finds home position. Below you can see a video in action:

The second one runs after every tracking job or on demand through the serial interface and just moves the tracker to the home position. This way, whenever a new traking job begins the user knows that the job starts from zero position.

You can check the code in our repo, and the designs for the hardware too.

It was always our intention to have SatNOGS ground station as unattended as possible in terms of operation. We are now much closer to it!

Acceleration tests in stepper motors

Stepper motor and axis movement should be accelerated, decelerated and smooth. This is important for a variety of reasons including less strain on the axis and the gears, plus inertia compensation.

Agis with Manthos spend some time looking into some options and finally agreed to implement acceleration resulting to smooth tracking using an Arduino Library and amending it a bit. The results is pure awesomeness for our tracker:

 

This code and implementation goes straight in our v2 design. Code can be found in our repository.

#smoothie