@SarahH, can you manage to sent me a dump of the Data Monitor window, from my first reading, I’m somewhat seeing armored NASA frame (0001 FFFE FD* 32 NASA…34) but I can’t confirm that. And I’m quite sure this would help me reverse that part and start investigating on my system!
Thanks in advance!
Oooo, that’s interesting. I see the monitor has a save button, so I assume you can save to a text file. If you have some spare time, can you take a couple of logs.
- One just monitoring the ambient traffic, so no setting of values from SNET.
- One where you set an FSV value.
I could probably figure out from those what the underlying protocols are (master/slave, multi-master, peer-to-peer, etc.). I don’t really need this information, but I would be interested to know, it is probably buried on some forum but I haven’t found it yet.
Exactly my point. some logs and we’ll be able to reverse that!
Ah, we cross posted, but as you say, same request
Aw shucks, I’ve just put everything away, but in the interests of science I’ll set it up again and report back later.
Just be aware that those messages arrive every few ms, and spotting the FSV Write message (if I manage to capture it - I’m all thumbs when it comes to data gathering) will be like looking for a needle in a haystack…
Many thanks for your efforts!
Don’t worry, I’m used to finding those hidden gems in logs
Cheers
Meh things are not that easy.
I did a short trial save from the VCOM monitor and got this
nasa1.txt (614 Bytes)
If I try to read this using my default text editor (Notepad), it displays the hex characters as ASCII characters (or something ).
Can you bright guys make the necessary translation to something usable?
If so I’ll press ahead with trying to capture an FSV Write instruction.
Well I’ve found a way of doing the translation from Notepad, but it’s dead cumbersome .
I copied the string after the monitor Length for each message into Excel, separated each character using =mid(string,n,1) where n = 1 to (Length-1), and converted each character to decimal using =CODE(character). If you want Hex you can then convert the number using =DEC2HEX(number,2). You can decode the message using the Samsung NASA Codes link I gave above.
I’m sure that you’ll find an easier way, but if you would still like me to send a Monitor dump of the Write command, just ask!
I’ve opened your text nasa1.txt file, and I’m quite delighted with the mixed encoding utf8 with bytes of frames directly decoded as strings. so boring.
I’ll get a python ready to decode that. Else, I might run crazy as well!
Thanks for your hard work!
Cheers
The format of the file is : NET\r\n
Actually, it’s surprisingly easy to parse…
Here is the log, for those who had succumbed to the cumbersomeness of the task
0,0,NET,37,0001fffefdfdfd
1,94,NET,69,0001fffefdfd32003d100000b000ffc014860d823f00c8808d00800100824800ff8249000380030284040480004082440000824700ff8061ff8062008075ff805e007ef834
2,750,NET,74,0001fffefdfdf4fdfd32003e200000b300ffc0142f0c420300c842040131420500be4206fe0c420c008b4217000042360146423700e6423801454239fe0c423effff427f01951cca34fd
3,766,NET,6,0001fffefdfd
4,828,NET,64,0001fffefaf9320038200000b300ffc0143009428cfe0c42d4fe0c42d8fe0c42d9fe0c42e8002b42e9000044010000000f442600000000442700fe447b983734
5,1875,NET,58,0001fffefdbdfdfd320030100000b000ffc0148909823300008298000082a8000082a9000082aa0000803f00824300008235000080bf001d8f34
6,1953,NET,28,0001fffefdfdfdfdfb320011100000b000ffc0148a01803100be5034
7,3016,NET,7,0001fffefdfdfd
8,3109,NET,69,0001fffefdfd32003d100000b000ffc0148d0d823f00c8808d00800100824800ff8249000380030284040480004082440000824700ff8061ff8062008075ff805e0012f034
@SarahH may I ask what where the operation you were ordering while capturing that log, it that the same as your previous post?
For those interested, here is the human readable dump of @SarahH nasa1.txt file.
2025-06-07 15:05:09,922 INFO MainThread 200000b0ffffc014500146062000005206
2025-06-07 15:05:09,922 INFO MainThread src:200000 dst:b0ffff type:normal ins:notification nonce:0x50
2025-06-07 15:05:09,923 INFO packetgateway 100000b000ffc014860d823f00c8808d00800100824800ff8249000380030284040480004082440000824700ff8061ff8062008075ff805e00
2025-06-07 15:05:09,923 INFO packetgateway src:100000 dst:b000ff type:normal ins:notification nonce:0x86
2025-06-07 15:05:09,923 INFO packetgateway 0x823f (NASA_OUTDOOR_CONTROL_PRIME_UNIT): 00c8
2025-06-07 15:05:09,923 INFO packetgateway 0x808d (ENUM_OUT___): 00
2025-06-07 15:05:09,923 INFO packetgateway 0x8001 (ENUM_OUT_OPERATION_ODU_MODE): 00
2025-06-07 15:05:09,924 INFO packetgateway 0x8248 (NASA_OUTDOOR_SAFETY_START): 00ff
2025-06-07 15:05:09,924 INFO packetgateway 0x8249 (VAR_OUT___): 0003
2025-06-07 15:05:09,924 INFO packetgateway 0x8003 (ENUM_OUT_OPERATION_HEATCOOL): 02
2025-06-07 15:05:09,924 INFO packetgateway 0x8404 (LVAR_OUT___): 04800040
2025-06-07 15:05:09,924 INFO packetgateway 0x8244 (NASA_OUTDOOR_OIL_RECOVERY_STEP): 0000
2025-06-07 15:05:09,924 INFO packetgateway 0x8247 (NASA_OUTDOOR_DEFROST_STEP): 00ff
2025-06-07 15:05:09,924 INFO packetgateway 0x8061 (ENUM_OUT_DEICE_STEP_INDOOR): ff
2025-06-07 15:05:09,924 INFO packetgateway 0x8062 (NASA_OUTDOOR_LOGICAL_DEFROST_STEP): 00
2025-06-07 15:05:09,924 INFO packetgateway 0x8075 (UNSPECIFIED): ff
2025-06-07 15:05:09,924 INFO packetgateway 0x805e (ENUM_OUT___): 00
2025-06-07 15:05:09,925 INFO packetgateway 200000b300ffc0142f0c420300c842040131420500be4206fe0c420c008b4217000042360146423700e6423801454239fe0c423effff427f0195
2025-06-07 15:05:09,925 INFO packetgateway src:200000 dst:b300ff type:normal ins:notification nonce:0x2f
2025-06-07 15:05:09,925 INFO packetgateway 0x4203 (VAR_IN_TEMP_ROOM_F): 00c8
2025-06-07 15:05:09,925 INFO packetgateway 0x4204 (VAR_IN___): 0131
2025-06-07 15:05:09,925 INFO packetgateway 0x4205 (VAR_IN_TEMP_EVA_IN_F): 00be
2025-06-07 15:05:09,925 INFO packetgateway 0x4206 (VAR_IN_TEMP_EVA_OUT_F): fe0c
2025-06-07 15:05:09,925 INFO packetgateway 0x420c (NASA_INDOOR_OUTER_TEMP): 008b
2025-06-07 15:05:09,925 INFO packetgateway 0x4217 (VAR_IN_EEV_VALUE_REAL_1): 0000
2025-06-07 15:05:09,925 INFO packetgateway 0x4236 (VAR_IN_TEMP_WATER_IN_F): 0146
2025-06-07 15:05:09,925 INFO packetgateway 0x4237 (VAR_IN_TEMP_WATER_TANK_F): 00e6
2025-06-07 15:05:09,926 INFO packetgateway 0x4238 (VAR_IN_TEMP_WATER_OUT_F): 0145
2025-06-07 15:05:09,926 INFO packetgateway 0x4239 (VAR_IN_TEMP_WATER_OUT2_F): fe0c
2025-06-07 15:05:09,926 INFO packetgateway 0x423e (VAR_IN___): ffff
2025-06-07 15:05:09,926 INFO packetgateway 0x427f (VAR_IN_TEMP_WATER_LAW_F): 0195
2025-06-07 15:05:09,927 INFO packetgateway 200000b300ffc0143009428cfe0c42d4fe0c42d8fe0c42d9fe0c42e8002b42e9000044010000000f442600000000442700fe447b
2025-06-07 15:05:09,927 INFO packetgateway src:200000 dst:b300ff type:normal ins:notification nonce:0x30
2025-06-07 15:05:09,927 INFO packetgateway 0x428c (VAR_IN_TEMP_MIXING_VALVE_F): fe0c
2025-06-07 15:05:09,927 INFO packetgateway 0x42d4 (VAR_IN_TEMP_ZONE2_F): fe0c
2025-06-07 15:05:09,927 INFO packetgateway 0x42d8 (VAR_IN_TEMP_WATER_OUTLET_ZONE1_F): fe0c
2025-06-07 15:05:09,927 INFO packetgateway 0x42d9 (VAR_IN_TEMP_WATER_OUTLET_ZONE2_F): fe0c
2025-06-07 15:05:09,927 INFO packetgateway 0x42e8 (VAR_IN_FLOW_SENSOR_VOLTAGE): 002b
2025-06-07 15:05:09,927 INFO packetgateway 0x42e9 (VAR_IN_FLOW_SENSOR_CALC): 0000
2025-06-07 15:05:09,927 INFO packetgateway 0x4401 (LVAR_IN___): 0000000f
2025-06-07 15:05:09,927 INFO packetgateway 0x4426 (NASA_GEN_POWER_LAST_MINUTE): 00000000
2025-06-07 15:05:09,927 INFO packetgateway 0x4427 (NASA_TOTAL_GEN_POWER): 00fe447b
2025-06-07 15:05:09,928 INFO packetgateway 100000b000ffc0148909823300008298000082a8000082a9000082aa0000803f00824300008235000080bf00
2025-06-07 15:05:09,928 INFO packetgateway src:100000 dst:b000ff type:normal ins:notification nonce:0x89
2025-06-07 15:05:09,928 INFO packetgateway 0x8233 (NASA_OUTDOOR_OPERATION_CAPA_SUM): 0000
2025-06-07 15:05:09,928 INFO packetgateway 0x8298 (NASA_OUTDOOR_COOL_SUM_CAPA): 0000
2025-06-07 15:05:09,928 INFO packetgateway 0x82a8 (VAR_OUT_CONTROL_IDU_TOTAL_ABSCAPA): 0000
2025-06-07 15:05:09,928 INFO packetgateway 0x82a9 (VAR_OUT_CONTROL_IDU_TOTAL_ABSCAPA2): 0000
2025-06-07 15:05:09,928 INFO packetgateway 0x82aa (UNSPECIFIED): 0000
2025-06-07 15:05:09,928 INFO packetgateway 0x803f (ENUM_OUT___): 00
2025-06-07 15:05:09,928 INFO packetgateway 0x8243 (VAR_OUT___): 0000
2025-06-07 15:05:09,928 INFO packetgateway 0x8235 (VAR_OUT_ERROR_CODE): 0000
2025-06-07 15:05:09,928 INFO packetgateway 0x80bf (UNSPECIFIED): 00
2025-06-07 15:05:09,928 INFO packetgateway 100000b000ffc0148a01803100
2025-06-07 15:05:09,929 INFO packetgateway src:100000 dst:b000ff type:normal ins:notification nonce:0x8a
2025-06-07 15:05:09,929 INFO packetgateway 0x8031 (ENUM_OUT___): 00
2025-06-07 15:05:09,929 INFO packetgateway 100000b000ffc0148d0d823f00c8808d00800100824800ff8249000380030284040480004082440000824700ff8061ff8062008075ff805e00
2025-06-07 15:05:09,929 INFO packetgateway src:100000 dst:b000ff type:normal ins:notification nonce:0x8d
2025-06-07 15:05:09,929 INFO packetgateway 0x823f (NASA_OUTDOOR_CONTROL_PRIME_UNIT): 00c8
2025-06-07 15:05:09,929 INFO packetgateway 0x808d (ENUM_OUT___): 00
2025-06-07 15:05:09,929 INFO packetgateway 0x8001 (ENUM_OUT_OPERATION_ODU_MODE): 00
2025-06-07 15:05:09,929 INFO packetgateway 0x8248 (NASA_OUTDOOR_SAFETY_START): 00ff
2025-06-07 15:05:09,929 INFO packetgateway 0x8249 (VAR_OUT___): 0003
2025-06-07 15:05:09,929 INFO packetgateway 0x8003 (ENUM_OUT_OPERATION_HEATCOOL): 02
2025-06-07 15:05:09,929 INFO packetgateway 0x8404 (LVAR_OUT___): 04800040
2025-06-07 15:05:09,929 INFO packetgateway 0x8244 (NASA_OUTDOOR_OIL_RECOVERY_STEP): 0000
2025-06-07 15:05:09,929 INFO packetgateway 0x8247 (NASA_OUTDOOR_DEFROST_STEP): 00ff
2025-06-07 15:05:09,929 INFO packetgateway 0x8061 (ENUM_OUT_DEICE_STEP_INDOOR): ff
2025-06-07 15:05:09,930 INFO packetgateway 0x8062 (NASA_OUTDOOR_LOGICAL_DEFROST_STEP): 00
2025-06-07 15:05:09,930 INFO packetgateway 0x8075 (UNSPECIFIED): ff
2025-06-07 15:05:09,930 INFO packetgateway 0x805e (ENUM_OUT___): 00
As you can see, it’s only notification that are captured, so it does not yet guides us on how to request FSV modification through F1/F2
OK here you go - I’ll try to do a live reset of #2011.
Here’s the “before” status:
Now starting the Monitor, followed as fast as I can with adjusting the FSV to 0degC, after which I’ll grab the Monitor output.
“After”:
Here’s the resulting Monitor output:
nasa2.txt (8.0 KB)
Over to you to see if you can spot any outgoing message…
Hmm message #31 looks different (“COM” instead of “NET”, followed by loads of 0x55 followed by 32 00 12 80 FF 00 20 00 00 C0 12 EC 01 42 54 00 00 9F 43 34.)
I wonder if that’s the all-important message…
BTW, this is “human readable”???
No, I was saving different data blocks at random, trying to find a way of translating (which you’ve now done using python it seems)
Probably. I think the COM and NET are just descriptions of the source of the message, COM from the SNET interface, NET from/to the NASA bus. The string of 0x55s are also interesting.
- In your screenshot of SNET, the hex shows a sequence of 0x00,0x01,0xFCs or 0xFDs or 0xFFs preceding each packet, whose start is marked by the 0x32. This is reminiscent of old hard disk encoding and is a training sequence (or preamble) for encodings that are not self clocking (to allow a PLL to sync to the byte stream). However the UART encoding used is self clocking and doesn’t need this, so I suspect this is something to do with bus arbitration (who gets to transmit next).
- Frame 6 is just the preamble, which is odd. It may be that that was the start of an arbitration that failed.
- The time stamps seem to be mostly 100ms apart, so that could be the “heartbeat” of the system.
It would be useful to know who was transmitting, but I don’t think we can easily find out, in case this preamble is being sent by some master device on the bus. My current theory is it is a bit like the old co-ax ethernet system CSMA/CD (Carrier Sense Multiple Access/Collision Detect).
- You listen to the bus. If you don’t hear anything, then you start transmitting.
- You receive your own transmission, if it checks out OK (CRC passes), all is well
- If your own transmission is corrupted, you assume someone else started transmitting at exactly the same time you did, so you back of for a random time and try again.
- The random backoff means that you shouldn’t get stuck in a deadly embrace.
Interesting stuff.
32 - STX (Start of Text)
00 12 - Packet Size = 18 bytes
80 - Source Address Class = JIGtester
FF - Source Channel
00 - Source Address
20 - Dest Address Class = Indoor Unit
00 - Dest Channel
00 - Dest Address
C0 - Packet Information = 1, Protocol Version = 2, Retry Count = 0
12 - Packet Type = Normal, Data Type = Write
EC - Packet Number
01 - Number of Messages = 1
42 54 - Message Number + Message Type = Variable = 2 bytes long
00 00 - Variable value = 0degC
9F 43 - CRC
34 - ETX (End of Text)
So definitely looks like the smoking gun.
Yup that’s exactly where I’d got to, but I didn’t like the Payload bytes - suppose I’d reset the FSV to -3, how would that get represented in hex?
I was going to test this next time I ran SNET, but it looks like you’ve saved me the trouble .
But wtf’s a JIGtester?
If it’s twos complement encoding, then -3 would be 0xFD (just 3 = 0x03, complement 0xFC, and increment 0xFD). I’m assuming the resolution is 1 degree, but it may be something odd, like 0.5degC.
I guess a JIGtester is some historic device used in prototype testing. They don’t seem to have a Source Address Class specifically for SNET so just used the functionally closest. I suspect if I looked at a NASA packet trace from the Modbus interface it would be doing the same.