Satellite image pager interference

Although many satellite images are captured with little or tolerable degradation, due to the effects of near band or in band pager interference, some images are more badly affected. This image received from Meteor M2, June 20 2017, orbit number 15301, 11:00 hours, 137.900 MHz, shows the effect of both in band and near band data transmissions from local, ( Oxford, UK )  high power pager style systems.

Orbitron DDE Azimuth Elevation To Serial

Control a satellite rotator automatically from Orbitron by sending it the azimuth (or other properties) via serial.

A while ago I wrote some code to listen to Orbitron using it’s DDE inter-process comms and send the satellite information string over serial to potentially drive an aerial rotator.

I’ve since updated the code and thought I would share it here.

Using DdeOrbitronToSerial

  • Firstly install Orbitron.
    • Update 13-02-2019: Orbitron doesn’t seem to work well unless you run it as admin – it can’t save files to its install dir and won’t pick up config changes. One work-around may be a custom install location.
  • Download (June-2019) and unzip it to somewhere sensible.
  • Open the install directory of Orbitron and find Setup.cfg (example path below)
    • C:\Program Files (x86)\Orbitron\Config\Setup.cfg
  • Add a similar line as below to Setup.cfg: (obviously changing paths to where you unzipped things) As per Orbitron’s documentation:

    List of available drivers. New drivers can be added by editing [Drivers] section of Config\Setup.cfg file. Example config line: MyDriver=d:\MyDriver.exe

  • Don’t directly run the exe, you have to launch it from Orbtron itself by going to the rotor/radio tab, selecting the correct DDE driver, in this case it’s DDEOrbitronToSerial. Then click the button to the right of the dropdown to start sending data and launch the application:


  • The DDEOrbitronToSerial application should now launch and you will be able to select your COM port and output the satellite data to the serial port.
    • NB: You can edit additional options such as com port baud rate in the config file by clicking the open config button.

Any bug reports or feature requests are welcome!


  • June 2019 – Added latest release with a bug fix:
    • FIXED: Certain USB to serial chips would only receive a few characters.

Dual AD9850 in Quadrature and finer phase adjustment

Project: Adjustable frequency dual AD9850 DDS units with output adjustable phase from 0 to 180 degrees in 11.25 phase increments.

-Arduino Uno R3
-2x 9850 DDS units
-Arduino software written in Arduino IDE version    1.6.8
-Computer running serial terminal client software to send commands over serial port

The AD9850 has five bits that control the phase allowing for 11.25 (360/32) degree phase adjustment resolution.

The original code provides a way to adjust frequency while keeping a constant phase difference of 90 degrees.

The modified code gives finer phase adjustment in 11.25 degree increments from 0 to 180 degrees.

The menu of commands is sent to the serial terminal software when the Arduino is powered on:
as      DDS A sine o/p
ac      DDS A cos o/p
bs      DDS B sine o/p
bc      DDS B cos o/p
To adjust phase type b0000, b1125, b…, b16875, b18000
To set DDSB 90 behind DDSA: set as and bc
To set DDSB 90 ahead of DDSA: set as and b18000
To set DDSB 45 ahead of DDSA: set as and b4500
To setup DDSB 45 behind DDSA: setup as and b13500
To setup DDSB 11.25 behind DDSA: setup as and b7875
To setup DDSB 11.25 ahead of DDSA: setup as and b10125
phase is adjustable by 11.25 degrees from 0 to 180 degrees
Set ac and bc for 180 degrees out of phase. as and bs for in phase
100Hz   example
100kHz  example
1MHz    example
pins    list pins
When unit powers on DDSB lags DDSA by 90 degrees

Laravel TokenMismatchException VerifyCsrfToken.php

While learning Laravel I came across the error:

laravel TokenMismatchException in VerifyCsrfToken.php line 67

This seems to be a breaking change between when the latest laracast tutorials were recorded and the version I am using.

This was due to a hidden field not being on a form which is required when using POST.

The fix was to add:

{!! csrf_field() !!}

For example:

<form method="POST" action="/cards/{{$card->id}}/notes">
<div class="form-group">
<textarea name="body" class="form-control"></textarea>

<div class="form-group">
<button type="submit" class="btn btn-primary">Add Note</button>

{!! csrf_field() !!}