Author: admin
How to adjust your parabolic antenna for QO-100 / Es’Hail amateur radio geostationary satellite
VIDEO. How to adjust your dish for QO-100 geostationary satellite:
- Find Astra 28,2 degrees (strong signals in Northern Europe and Central Europe) with a low cost satfinder with sound / analog meter
- This is one of the most eastern TV satellites that are very strong, so you can start east and move towards south until you find the first strong satellite on your satfinder (you should find Astra 28,2)
- Now move a slight bit more to the south until you are out of the strong Ku band lobe of the Astra 28,2
- You should point in the correct direction (elevation is the same in practice)
- If you have a generic LNB the IF should be on 739,7 MHz. Your SDR should be able to tune to that QRG
Join our FB group (exclusively for licenced radio amateurs by the respective government administrations) https://www.facebook.com/groups/252645695661305/members/
Quatar Oscar 100 Geostationary Satellite / QO-100, Es’Hailsat, new Facebook Group for licensed radio amateurs
There is a new Facebook group for Quatar Oscar 100 Geostationary Satellite. (QO-100, Es’Hailsat). Licensed radio amateurs are welcome to join via the link below! (Exclusively for licenced radio amateurs by the respective government administrations).
Members typically discuss equipment, design of equipment, antenna designs, post QSO videos and sound recordings etc. https://www.facebook.com/groups/252645695661305/
Securing your node-red editor and dashboard on the Raspberry Pi
If you leave your node-red installation on your rpi running without a password you will be hacked and soon owned by people using your rpi as a bit coin mining device. It is easy to set a password for the editor and for the dashboard!:
Node-red is installed in /home/pi/.node-red (the . dot in front means you will normally not be able to see the directory as the dot means it is hidden. Therefore, set up your file manager to show hidden files. Alternatively, if you are using the terminal you can use ls -a or ls -al in the /home/pi directory to see all that is there).
Edit the settings.js file with
nano settings.js
Uncomment this section in the settings.js file:
adminAuth: {
type: "credentials",
users: [{
username: "admin",
password:"xxxhash key is pasted herexxxx",
permissions: "*"
}]
},
You will need to generate a hash with node-red-admin
and type the hash-pw
command. The hash key you paste above in the field xxxhash key is pasted herexxxx (keep the ” ” signs and dont mess up the [ ] {} , stuff).
You will probably have to install the node-red-admin tools (google how to do that with npm) to be able to use node-red-admin
For the dashboard you do the same procedure but you now un-comment this line
httpNodeAuth: {user:"user",pass:"xxxxdashboard hash key is pasted herexxxx"},
Make sure to keep all commas etc!
If you are uncertain to what directory your rpi reads the settings.js file from, you can start the node-red with node-red-pi and look at the messages in the console. It will report the location and file it uses. Dont edit the wrong settings.js file … there are several installed on your pi it seems
Restart the node red
IMPORTANT! CLEAR THE CACHE of your web browser. If not you will not see the password on the editor and the dashboard, as node-red uses cache quite heavily. See https://support.mozilla.org/en-US/kb/how-clear-firefox-cache for how to clear Firefox cache
How to remote login to your raspberry pi via Windows native Remote Desktop Connection
How to remote login to your raspberry pi via Windows native Remote Desktop Connection:
https://www.maketecheasier.com/enabling-remote-desktop-access-on-raspberry-pi/
Logon to Raspberry PI via windows builtin remote desktop connection (XRDP) with Norwegian keymap
You can now logon to Raspberry PI via the windows builtin remote desktop connection! WIth XRDP there is no need for other software to be installed. However the Norwegian keymap is not there by default so your _ / @ keys etc may be messed up.
You need to edit your /etc/xrdp/xrdp_keyboard.ini file with
sudo nano /etc/xrdp/xrdp_keyboard.ini
Then add the lines marked in bold below. As far as there is a km-00000414.ini file in the /etc/xrdp/ folder you are good to go. The windows remote desktop client will send info that you use a norwegian keyboard when you log on and the XRDP service on Raspberry will use the correct keyboard mapping to X
Edited: xrdp_keyboard.ini file
;
; RDP Keyboard <-> X11 Keyboard layout map
;
; How this file works:
; 1. load the file and scan each section to find matching “keyboard_type”
; and “keyboard_subtype” based on the values received from the client.
; If not found, then jump to default section.
; 2. in the selected section, look for “rdp_layouts” and “layouts_map”.
; Based on the “keylayout” value from the client, find the right x11
; layout value.
; 3. model/variant are inferred based on the “keyboard_type” and
; “keyboard_subtype”, but they can be overridden.
;
;
; RDP Keyboard Type (http://msdn.microsoft.com/en-us/library/cc240563.aspx)
;
; 0 is not a valid value
;
; 1 – IBM PC/XT or compatible (83-key) keyboard
; 2 – Olivetti “ICO” (102-key) keyboard
; 3 – IBM PC/AT (84-key) or similar keyboard
; 4 – IBM enhanced (101- or 102-key) keyboard
; 5 – Nokia 1050 and similar keyboards
; 6 – Nokia 9140 and similar keyboards
; 7 – Japanese keyboard
;
; RDP Keyboard Subtype is vendor dependent. XRDP defines as follows:
;
; 0 is not a valid value
;
; 1 – Standard
; 2 – FreeRDP JP keyboard
; 3 – Macintosh
; … – < any vendor dependent subtype >
;
; The list can be augmented.
;
; default
[default]
; keyboard_type and keyboard_subtype is not read for default section. It
; is only a placeholder to keep consistency. Default model/variant are
; platform dependent, and could be overridden if needed.
keyboard_type=0
keyboard_subtype=0
; user could override variant and model, but generally they should be inferred
; automatically based on keyboard type and subtype
;variant=
;model=
; A list of supported RDP keyboard layouts
rdp_layouts=default_rdp_layouts
; The map from RDP keyboard layout to X11 keyboard layout
layouts_map=default_layouts_map
[default_rdp_layouts]
rdp_layout_us=0x00000409
rdp_layout_de=0x00000407
rdp_layout_fr=0x0000040C
rdp_layout_it=0x00000410
rdp_layout_jp=0x00000411
rdp_layout_jp=0xe0010411
rdp_layout_jp=0xe0200411
rdp_layout_jp=0xe0210411
rdp_layout_kr=0x00000412
rdp_layout_ru=0x00000419
rdp_layout_se=0x0000041D
rdp_layout_ch=0x00000807
rdp_layout_pt=0x00000816
rdp_layout_br=0x00000416
rdp_layout_pl=0x00000415
rdp_layout_no=0x00000414
; <rdp layout name> = <X11 keyboard layout value>
[default_layouts_map]
rdp_layout_us=us
rdp_layout_de=de
rdp_layout_fr=fr
rdp_layout_it=it
rdp_layout_jp=jp
rdp_layout_kr=kr
rdp_layout_ru=ru
rdp_layout_se=se
rdp_layout_ch=ch
rdp_layout_pt=pt
rdp_layout_br=br(abnt2)
rdp_layout_pl=pl
rdp_layout_no=no
; if two sections have the same keyboard_type and keyboard_subtype, then
; the latter could override the former.
[rdp_keyboard_mac]
keyboard_type=4
keyboard_subtype=3
rdp_layouts=default_rdp_layouts
layouts_map=rdp_layouts_map_mac
[rdp_keyboard_jp]
keyboard_type=7
keyboard_subtype=2
model=pc105
rdp_layouts=default_rdp_layouts
layouts_map=default_layouts_map
[rdp_layouts_map_mac]
rdp_layout_us=us
rdp_layout_de=de
rdp_layout_fr=fr
rdp_layout_jp=jp
rdp_layout_kr=kr
rdp_layout_it=it
rdp_layout_ru=ru
rdp_layout_se=se
rdp_layout_ch=ch
rdp_layout_pt=pt
rdp_layout_br=br(abnt2)
rdp_layout_pl=pl
Credit to this post where I found the info that solved it for me: https://www.raspberrypi.org/forums/viewtopic.php?t=181873
How to check for a NAN (Not A Number) in C++ in embedded systems without exception handlers
Sometimes there are bugs or special corner conditions that makes a NAN (Not A Number) occur in code compiled from a C++ source and executed on an embedded systems without memory to run exception handlers.
Here is what @Jalf writes over at StackExchange:
According to the IEEE standard, NaN values have the odd property that comparisons involving them are always false. That is, for a float f, f != f
will be true only if f is NaN.
Note that, as some comments below have pointed out, not all compilers respect this when optimizing code.
For any compiler which claims to use IEEE floating point, this trick should work.
If you inplement a function in a separate .cpp file , how do you access objects instantiated in main from functions implemented that file?
Sometimes there is a need to spread code into several .cpp files to avoid clutter (for example main.cpp, other1.cpp, other 2.cpp) . So if you implement a function in a separate .cpp file, how do you access objects instantiated in main?
Solution: use extern
other1.cpp: extern ObjectType objectname void doSomething (void) { objectname.method(); }
Of course this is very basic stuff, but many new programmers ask about this so I included a short post about this here.
IRIDIUM SATCOM enabling your next IoT / Arduino / microcontroller project
Rock Seven has launched a board that takes care of the PSU and antenna requirements to support the Iridium 96090 module https://www.iridium.com/products/iridium-9602/
http://www.rock7mobile.com/products-rockblock.php?gclid=EAIaIQobChMI1ZWSqv2C3gIVRawYCh2DBQ7eEAAYASAAEgI3vfD_BwE
This enables fast time to market and coverage in remote areas on customers IoT devices.
ZUMspot + Pi-Star setup guide
If you are looking for a Zumstar + PiSpot setup guide for DMR, then KC6N has made a great tutorial that is available here as a .PDF: https://www.hamdigitaal.nl/download/algemene-informatie/ZumSpot_Pistar_KC6N_20180605.pdf Full credit goes to KC6N, I have taken the liberty to link to the site where this document is available to help other amateur radio ops get on the air with their hotspot setup.