Skip to content

f6bvp/satcrc

Repository files navigation

satcrc

Satellite keplerian data CRC checker and format converter
Vérificateur de CRC et convertisseur de format pour éléments képlériens de satellites

License: GPL v2 Language: C Platform: Linux/Windows


Table of contents / Table des matières


English

Description

satcrc reads satellite keplerian orbital element files, verifies their integrity checksum, and optionally converts between the two standard formats used in the amateur satellite community:

  • NASA Two-Line Element (TLE) — compact two-line format produced by NORAD/NASA/Space-Track, used by most tracking software.
  • AMSAT format — verbose keyword=value format historically distributed by AMSAT (Amateur Satellite Corporation) bulletins via packet radio.

The NASA TLE checksum is computed modulo 10: digits contribute their face value, - contributes 1, + and letters contribute 0; the last character of each line is the check digit.

The AMSAT checksum is a simple cumulative sum of the same character values across all lines of a satellite record.

Programs

Three independent executables are provided. Each exists in a French (f) and English (s) variant controlled at compile time by -DFRANCAIS.

Linux (EN) Linux (FR) Windows (EN) Description
satcrcs satcrcf satcrcs.exe / satcrcf.exe Standalone checker + converter
satconverter satconvertisseur satconverter.exe / satconvertisseur.exe Format converter
satconverts satconvertf satconverts.exe / satconvertf.exe Multi-module converter

satcrcs / satcrcf (source: satcrcs.c / satcrcf.c)
Monolithic program. Reads a NASA TLE file or an AMSAT file, validates the checksum of every satellite record, reports errors, and can write a file containing only the valid records or a converted file.

satconverter / satconvertisseur (source: satconvertisseur.c)
Same functionality, single bilingual source, language selected at compile time.

satconverts / satconvertf (source: satconv.c + nasacrcs_utf8.c

  • amsacrcs.c + crc10.c)
    Multi-module version; separates the entry point from the format-specific reading modules. Handles UTF-8 filenames on Linux.

Requirements

  • Linux: GCC (any recent version)
  • Windows cross-compilation: gcc-mingw-w64-x86-64
    sudo apt-get install gcc-mingw-w64-x86-64

Build

make           # compile all versions (French + English)
make en        # English versions only:  satcrcs  satconverter  satconverts
make fr        # French versions only:   satcrcf  satconvertisseur  satconvertf
make clean     # remove compiled binaries
make help      # list all targets

Cross-compile for Windows from Linux:

make -f Makefile.windows           # all .exe
make -f Makefile.windows en        # English .exe only
make -f Makefile.windows fr        # French .exe only
make -f Makefile.windows clean     # remove .exe

Usage

satcrcs -option <input_file[.txt]> [output_file]

Options:
  -n   Read NASA Two-Line Element format
  -a   Read AMSAT format
  -c   Convert NASA TLE format to AMSAT format (output_file required)

Examples:

# Verify CRC of a NASA TLE file
satcrcs -n data/AO-07.TXT

# Verify CRC of an AMSAT format file
satcrcs -a data/AO-07-amsat.txt

# Extract valid TLE records into a new file
satcrcs -n data/keps.txt valid_keps.txt

# Convert a NASA TLE file to AMSAT format
satcrcs -c data/AO-07.TXT AO-07-amsat.txt

Typical output (NASA TLE):

SATCRCS 1.29 Copyright (c) 1991-2026 AMSAT France & Bernard Pidoux
Performs satellites keplerian data checking and format conversion.
Nasa 2 lines format.
Reading file: 'data/AO-07.TXT'
1 AO-07              	 CRC ok
Keplerian data of 1 satellites are error free.

Example data

File Format Description
data/AO-07.TXT NASA TLE AO-07 (AMSAT-OSCAR 7, launched 1974)
data/AO-07-amsat.txt AMSAT AO-07 in AMSAT verbose format
data/2LINE-26056AM.TXT NASA TLE Sample TLE file, epoch day 26056
data/keps.txt NASA TLE Multi-satellite keplerian sample
data/geo.txt NASA TLE Geostationary satellites sample

Français

Description

satcrc lit des fichiers d'éléments orbitaux képlériens de satellites, vérifie leur somme de contrôle (CRC) et convertit optionnellement entre les deux formats standards utilisés dans la communauté des satellites amateurs :

  • Format 2 lignes NASA (TLE) — format compact deux lignes produit par NORAD/NASA/Space-Track, utilisé par la plupart des logiciels de pointage.
  • Format AMSAT — format verbeux mot-clé=valeur diffusé historiquement par l'AMSAT via les bulletins radio paquets.

Le CRC NASA TLE est calculé modulo 10 : les chiffres valent leur valeur nominale, - vaut 1, + et les lettres valent 0 ; le dernier caractère de chaque ligne est le chiffre de contrôle.

La somme de contrôle AMSAT est la somme cumulative des mêmes valeurs de caractères sur toutes les lignes d'un enregistrement satellite.

Compilation

make           # compile toutes les versions (français + anglais)
make fr        # versions françaises : satcrcf  satconvertisseur  satconvertf
make en        # versions anglaises :  satcrcs  satconverter  satconverts
make clean     # supprime les exécutables
make help      # liste toutes les cibles

Cross-compilation pour Windows depuis Linux :

make -f Makefile.windows

Utilisation

satcrcf -option <fichier_entrée[.txt]> [fichier_sortie]

Options :
  -n   Lire le format 2 lignes NASA
  -a   Lire le format AMSAT
  -c   Convertir du format NASA TLE vers le format AMSAT (fichier_sortie obligatoire)

Exemples :

# Vérifier le CRC d'un fichier NASA TLE
satcrcf -n data/AO-07.TXT

# Vérifier le CRC d'un fichier format AMSAT
satcrcf -a data/AO-07-amsat.txt

# Extraire les enregistrements valides dans un nouveau fichier
satcrcf -n data/keps.txt keps_valides.txt

# Convertir un fichier NASA TLE au format AMSAT
satcrcf -c data/AO-07.TXT AO-07-amsat.txt

Source files / Fichiers sources

Main programs / Programmes principaux

Fichier Description
satcrcs.c Programme principal anglais (monolithique)
satcrcf.c Programme principal français (monolithique)
satconvertisseur.c Convertisseur de format (bilingue via -DFRANCAIS)
satconv.c Point d'entrée version multi-modules

Modules / Modules

Fichier Description
nasacrcs_utf8.c Lecture et vérification format NASA TLE (UTF-8, Linux)
nasacrcs.c Lecture format NASA TLE (version originale)
nasacrcs_nouv.c Lecture format NASA TLE (version révisée)
amsacrcs.c Lecture et vérification format AMSAT
crc10.c Calcul CRC modulo 10 (checksum TLE)
crc10.old.c Ancien calcul CRC (référence historique)

Headers / En-têtes

Fichier Description
satel.h Structure satel — éléments orbitaux d'un satellite
amsatfor.h Chaînes de format AMSAT output
fichiers.h Structures fichiers F6FBB BBS (héritage packet radio)

Build files / Fichiers de compilation

Fichier Description
Makefile Compilation Linux (GCC)
Makefile.windows Cross-compilation Windows 64-bit (MinGW)

History / Historique

Version Date Description
1.0 12/05/1991 Lecture format NASA avec CRC modulo 10
1.0 27/05/1991 Ajout lecture format AMSAT avec CRC
1.23 10/06/1991 Version anglaise
1.24 29/06/1991 Conversion de format NASA → AMSAT
1.25 19/07/1991 Correction bogue ancien format AMSAT
1.26 19/12/1991 Vérification EOF, format nom satellite %16s
1.27 24/01/1992 Nouveau format NASA : signe + vaut 0 pour le CRC
1.27 24/01/1996 Version dialogues en français
1.28 26/02/2026 Portage Linux
1.29 26/02/2026 Version Linux avec modules séparés, UTF-8, sécurisation

Author / Auteur

Bernard Pidoux, F6BVP
bernard.f6bvp@gmail.com
AMSAT France


License / Licence

Copyright © 1991–2026 AMSAT France & Bernard Pidoux, F6BVP

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

See LICENSE for the full license text.

About

Satellite keplerian data CRC checker and format converter (NASA TLE / AMSAT)

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors