Atten ST-7800, exposed Modbus registers - Page 1
Forum section: electronics / projects

author: eleguy
author_rank: Regular Contributor
timestamp: October 11, 2025, 12:01:27 pm
content: After long time of checking and thinking I bought an Atten ST-7800 hotplate. It comes with a RS-485 "communication capabilities". However it is most likely meant for Atten2Atten communication only (SW<->HW or HW<->HW). The hotplate itself can be configured as a master or slave. In the master mode the plate should activate Atten fume extractor if it also has RS-485 and the master and slave are sharing the same address. So says the manual. In the slave mode the plate should be controllable remotely over the RS-485. Some windows executable for this purpose exists butas linux user I have not tried it yetit does not work under wine.Code:err:combase:RoGetActivationFactory Failed to find library for L"Windows.Foundation.Diagnostics.AsyncCausalityTracer"I thought "quickly", whenever I say this it wont be quick, to make first some little snippet that captures plate event(s) (plate in the master mode), decodes it and activates non-Atten fume extractor simply pulling down it's "activation button". So, I soldered little THVD1400 based RS-485 -> single ended converter (see pic) and started to debug. And that did not continue too far. When activating the heating process the plate sends some sort of activation message having the address code as a first byte (see pic). This was verified by changing the address and seeing the corresponding change in the message as well. Next it some likely waits for some sort of answer as it continues sending that similar patter periodically. No message is seen when heating process is stopped. This also hints that fume extractor and plate somehow "pair". Or I am completely guessing wrong.Anyhow, is someone else having the same (or any Atten RS-485 equipped) plate? It would be neat to get some SW-HW communication "wiresharked". This does not help in all cases but in some.This interface could be used for example to make ramp-up patterns or so. Maybe the atten SW has all cool features but somehow I always like that things can be integrated between brands (and own made gadgets) as well.Extra... just if someone is interested... howto capture this using linux command line (and usb-serial converter).Type commandsCode:stty -F /dev/ttyUSB0 cs8 -parenb -cstopbod -t x1 /dev/ttyUSB0And the resultCode:0000000 05 06 00 0b f0 1e 3d 84 05 06 00 0b f0 1e 3d 84Same message replicated 2 times.

author: eleguy
author_rank: Regular Contributor
timestamp: October 12, 2025, 07:07:14 am
content: UpdateV1.26 works only in Windows and does not have english optionV1.29 works under wine so...Newer version seems to have "Serial Assistant" tab where one can see communication without sniffing around. Scan button tries to scan for Atten devices (apparently). For testing purposes I limited scanning to the address 5 only and this is what it shouts outCode:05 03 00 1E 00 01 E5 8805 03 00 02 00 05 25 8D05 03 00 04 00 01 C4 4F05 03 00 02 00 01 24 4EVOld-ST-3150D05 04 75 32 00 08 4B 8B05 04 75 32 00 02 CB 8C05 04 75 33 00 08 1A 4BAt this point stuff started to look familiar. Specially after confirming that the last bytes (big endian) seemed to be outcome of the CRC-16-MODBUS. So, these are (mostly) modbus compliant devices! Things got just forward and a lot!!!So, let us take the first row (05 03 00 1E 00 01 E5 88) as an example.Code:05, slave address03, read holding register(s) command001E, starting address of the read command0001, how many registers (n x 16b) to be readrest, CRC16Later one can notice command 0x04 which means read input register(s).This means that the original message (05 06 00 0b f0 1e 3d 84) we saw when enabling the heating plate equals toCode:05, slave address06, write single register000B, register addressF01E, value to be writtenrest, CRC16

author: eleguy
author_rank: Regular Contributor
timestamp: October 13, 2025, 07:05:20 pm
content: After bit more soldering and Zephyr coding it was possible to scan over 9999 coils, input registers and holding registers. It seems that the ST-7800 has only holding registers or then I made a mistake somewhere. Found registers can be seen in the following log (I just assumed all are type INT16)Code:*** Booting Zephyr OS build v4.2.0-5542-g18d885d76cc2 (delayed boot 1000ms) ***[00:00:01.251,000] <inf> reg_scanner: Scanning Started[00:00:01.482,000] <inf> reg_scanner: Holding register 10 value 1[00:00:01.504,000] <inf> reg_scanner: Holding register 11 value 0[00:00:01.526,000] <inf> reg_scanner: Holding register 12 value 0[00:00:01.548,000] <inf> reg_scanner: Holding register 13 value 5[00:00:01.592,000] <inf> reg_scanner: Holding register 15 value 0[00:00:01.614,000] <inf> reg_scanner: Holding register 16 value 0[00:00:01.922,000] <inf> reg_scanner: Holding register 30 value 2[00:01:26.447,000] <inf> reg_scanner: Holding register 3872 value 0[00:01:26.491,000] <inf> reg_scanner: Holding register 3874 value 58[00:01:27.151,000] <inf> reg_scanner: Holding register 3904 value 0[00:01:27.173,000] <inf> reg_scanner: Holding register 3905 value 0[00:01:27.855,000] <inf> reg_scanner: Holding register 3936 value 80[00:01:27.877,000] <inf> reg_scanner: Holding register 3937 value 200[00:01:27.899,000] <inf> reg_scanner: Holding register 3938 value 200[00:01:28.009,000] <inf> reg_scanner: Holding register 3943 value 100[00:01:28.031,000] <inf> reg_scanner: Holding register 3944 value 100[00:01:28.559,000] <inf> reg_scanner: Holding register 3968 value 20[00:01:28.581,000] <inf> reg_scanner: Holding register 3969 value 65535[00:01:28.647,000] <inf> reg_scanner: Holding register 3972 value 0[00:01:28.779,000] <inf> reg_scanner: Holding register 3978 value 255[00:01:28.823,000] <inf> reg_scanner: Holding register 3980 value 0[00:03:41.232,000] <inf> reg_scanner: Scanning FinishedI have to find a moment and try/check what is what.

author: eleguy
author_rank: Regular Contributor
timestamp: October 14, 2025, 10:09:40 am
content: Here is the list of Modbus holding registers Atten ST-7800 exposesRegisterMeaning10Selected Language, 0=CH 1=EN11Selected Temperature Unit, 0=C 1=F12??13?? Maybe Atten device type ??, Set to 515Sound Setting, 0=Off 1=On16Heater System, 0=Off 1=On30?3872Heater System, 0=Off 1=On3874Set Temp, 50-300C3904Temperature Compensation, -50C->50C3905?3936Preset Temperature 1, 50-350C3937Preset Temperature 2, 50-350C3938Preset Temperature 3, 50-350C3943Preset TMP 2 Time, 0-900s3944Preset TMP 3 Time, 0-900s3968Plate Temperature3969Outer Temperature, 65535=Sensor not connected3972?3978?3980?