Mapping Device ID of SWARM satellites to Other Common Designators

Hi all,

Has anyone been able to relate all the DI numbers to other more common designations such as SpaceBee#, NORAD, International Designator?

A particular single example by going to various databases yields:

Satellite name: SpaceBEE-83

NORAD ID (Satellite Number): 47707

International Designator (COSPAR): 2021-015J

Organisation

Swarm Technologies

However, I am thinking this information/mapping should be “out there” somewhere.

As you can see in just a couple of minutes I am seeing beacons from 4 satellites (5da, 5b2, 551, 5de).

$RT RSSI=-98*2c

$DT 20220729222114,V*42

$RT RSSI=-105,SNR=-8,FDEV=-1841,TS=2022-07-29T22:21:22,DI=0x0005da*68

$RT RSSI=-106,SNR=-9,FDEV=-1750,TS=2022-07-29T22:21:26,DI=0x0005da*61

$RT RSSI=-103,SNR=-6,FDEV=-1671,TS=2022-07-29T22:21:31,DI=0x0005da*6f

$RT RSSI=-101,SNR=-3,FDEV=-512,TS=2022-07-29T22:22:10,DI=0x0005b2*0a

$RT RSSI=-98,SNR=0,FDEV=-415,TS=2022-07-29T22:22:22,DI=0x0005da*47

$RT RSSI=-106,SNR=-8,FDEV=-908,TS=2022-07-29T22:22:36,DI=0x000551*51

$RT RSSI=-97,SNR=0,FDEV=1168,TS=2022-07-29T22:23:10,DI=0x0005b2*0e

$RT RSSI=-104,SNR=-6,FDEV=1252,TS=2022-07-29T22:23:22,DI=0x0005da*40

$RT RSSI=-95,SNR=3,FDEV=817,TS=2022-07-29T22:23:36,DI=0x000551*6f

$RT RSSI=-102,SNR=-3,FDEV=2273,TS=2022-07-29T22:24:10,DI=0x0005b2*10

$RT RSSI=-99,SNR=0,FDEV=1338,TS=2022-07-29T22:24:27,DI=0x0005de*55

$RT RSSI=-108,SNR=-10,FDEV=2091,TS=2022-07-29T22:24:36,DI=0x000551*76

Best,

Alan

Hi Alan,

Did you get the pass predictor example running OK - after I updated it? That solves part of the puzzle. By cross-correlating the Swarm pass checker predictions and the TLE data from CelesTrak, you can figure out which SpaceBee will be passing overhead. Example2_ESP32_Get_My_Swarm_TLEs converts SpaceBee numbering to NORAD numbering. But that doesn’t provide clues about the DI numbering…

I was thinking of writing an extra example which would:

  • Keep checking the RT messages and wait for a SpaceBee to pass directly overhead (wait for the FDEV (Doppler Shift) to change sign)

  • Record the DI

  • Grab the GPS location and time

  • Do a pass prediction for here and now and spit out the SpaceBee and NORAD numbers for whichever satellite is closest to zenith

You may get a few uncertainties, but I’m sure if you left the example running you’d get a pretty robust list of DI vs SpaceBee / NORAD numbering.

If you went a step further and linked this to when queued messages were sent to the satellite, it would allow you create a list of ‘favorite’ SpaceBees. You could then choose to wake the modem up just before one of your favorites starts its pass…

Fun stuff!

Paul

Hi Paul,

Thanks for the minor correction required for the pass predictor. Running fine now.

If you would like to exercise your skills in writing an extra example as you described, I would certainly use it and appreciate it!

From a few years ago when I started working with terrestrial LoRa/LoRaWAN and TTN, I had no idea it would lead to these “celestial” applications. :wink:

Best regards and keep up the good work,

Alan

Hi Alan,

Please take a look at the new version of the library and give the new example a try:

https://github.com/sparkfun/SparkFun_Sw … tag/v1.1.9

Let me know if it needs tweaking…!

Very best wishes,

Paul

Hi Paul,

I’m away from the SWARM VHF equipment this week, but will check out your cool new example next week.

Currently monitoring UHF LEOs and observing cube sats at large distances at negative elevation angles – seemingly beacons being bent by varying ionosphere/troposphere atmosphere reflectivity!

Thanks again to you for making this space tech connection to us terrestrials,

Alan

Hi Paul,

Currently I am in the process of observing M138 outputs via wifi (telnet). I know that I could probably directly connect an ESP32 board directly via USB serial to the modem, but this is not convenient. I think this is more than a simple “tweak” to Example4_ESP32_Identify_SpaceBees_By_DI, but perhaps you could comment.

#define swarmSerial Serial1 // Use Serial1 to communicate with the modem. Change this if required.

Thanks,

Alan

Hi Alan,

Can you describe your hardware setup in more detail? A diagram would really help.

Something like the following would work:

Connect your M138 to your computer via your WiFi link. Let’s say it appears as COM1.

Connect your ESP32 board to your computer via USB as normal. Let’s sat that appears as COM2.

Connect an FTDI or Serial Breakout Serial-USB adapter to the ESP32’s Serial1 Tx and Rx Pins. Connect that to your computer too. Let’s say that appears as COM3.

Run some Python code to open COM1 and COM3 and forward all traffic from one to the other in both directions.

Use the Arduino IDE Serial Monitor or a Terminal Emulator to view Example4 on COM2 as normal.

Best wishes,

Paul

Hi Paul,

Thanks for steering me in the “python” direction …

For wifi connection

Used tcp_serial_redirect.py on windows laptop.

Serial Breakout Serial-USB adapter on laptop to the ESP32’s Serial1 Tx and Rx Pins.

Example4_ESP32_Identify_SpaceBees_By_DI.ino Results

16:45:45.852 → getDateTime returned: 2022/8/11 23:45:43

16:45:47.243 → getGeospatialInfo returned: 49.2137,-123.0922,27.00

16:45:51.553 → Unsolicited messages have been disabled

16:45:52.270 → setReceiveTestRate was successful

16:45:53.038 → Message rate is 1

17:15:55.459 → New receive test message: rssi_sat: -105 snr: -7 fdev: 809 2022/08/12 00:15:50 sat_id: 0x543

18:29:41.631 → New receive test message: rssi_sat: -105 snr: -7 fdev: 2435 2022/08/12 01:29:38 sat_id: 0x624

03:35:33.626 → New receive test message: rssi_sat: -108 snr: -10 fdev: -2263 2022/08/12 10:35:30 sat_id: 0x551

Had to interrupt my testing after about 16 hours, but when testing is resumed, i hope to be able to see more complete results. Will let you know.

In appreciation,

Alan

Hi Alan,

Thanks for the update. Glad that’s ~working for you.

Thanks too for the heads-up about tcp_serial_redirect.py . That’s a really useful bit of code! Including a link here for anyone else that’s interested: https://github.com/pyserial/pyserial/bl … edirect.py

Example4 should spit out its best guess for each DI as the FDEV goes from -ve to +ve:

New receive test message: rssi_sat: -104 snr: -9 fdev: -3253 2022/08/01 11:27:57 sat_id: 0x5F5

New receive test message: rssi_sat: -102 snr: -7 fdev: -3157 2022/08/01 11:28:09 sat_id: 0x605

New receive test message: rssi_sat: -104 snr: -9 fdev: -3191 2022/08/01 11:28:57 sat_id: 0x5F5

New receive test message: rssi_sat: -95 snr: 0 fdev: -2795 2022/08/01 11:29:09 sat_id: 0x605

New receive test message: rssi_sat: -98 snr: -3 fdev: -543 2022/08/01 11:29:14 sat_id: 0x554

New receive test message: rssi_sat: -98 snr: -2 fdev: -2993 2022/08/01 11:29:57 sat_id: 0x5F5

New receive test message: rssi_sat: -97 snr: -3 fdev: -2886 2022/08/01 11:30:14 sat_id: 0x5F5

New receive test message: rssi_sat: -95 snr: 0 fdev: -2404 2022/08/01 11:30:57 sat_id: 0x5F5

New receive test message: rssi_sat: -105 snr: -10 fdev: 999 2022/08/01 11:31:10 sat_id: 0x605

Best match for DI 0x605 is SPACEBEE-135

New receive test message: rssi_sat: -102 snr: -7 fdev: -600 2022/08/01 11:31:57 sat_id: 0x5F5

New receive test message: rssi_sat: -100 snr: -5 fdev: -251 2022/08/01 11:32:04 sat_id: 0x5F5

New receive test message: rssi_sat: -101 snr: -6 fdev: 53 2022/08/01 11:32:11 sat_id: 0x5F5

Best match for DI 0x5F5 is SPACEBEE-132

I’ll PM you my spreadsheet of numbers so you have something to compare to.

All the best,

Paul