Identification of marklin mfx locomotive

This page describes how to identify mfx locomotive on the MS2 or Railuino or Desktop Station.
If you placed mfx locomotive on the rail, this process must be done.

60113 sends to MS2 or Railuino many datas. These datas are using to recognize mfx locomotive for MS2 and Railuino. MS2 has a function which recognizes mfx locomotive. However Arduino with Railuino must implement recognization funtion. I provide the sample to recognize mfx locomotive. Please check Serial_RS4.ino of Desktop Station. The process of recognizing mfx locomotive is decodePacket() and setMfxDiscovery(), setMfxBind().

The below communication log is a example.

Communication log:
HASH, ResponseBit, Command, Length, DATA0,1,2,3,4,5 to _
[RECV]<== 0300 R 01 6 7f ff ff ff 03 ff <- 60113 starts finding mfx locomotive UID.
[RECV]<== 0300 R 01 6 7f ff ff ff 04 ff
[RECV]<== 0300 R 01 6 7f ff ff ff 05 ff
[RECV]<== 0300 R 01 6 7f ff ff ff 06 ff
[RECV]<== 0300 R 01 6 7f ff ff ff 07 00 <- Change UID bit
[RECV]<== 0300 R 01 6 7d ff ff ff 07 ff
[RECV]<== 0300 R 01 6 7d ff ff ff 08 00 <- Change UID bit
[RECV]<== 0300 R 01 6 7c ff ff ff 08 ff
[RECV]<== 0300 R 01 6 7c ff ff ff 09 ff
[RECV]<== 0300 R 01 6 7c ff ff ff 0a ff
[RECV]<== 0300 R 01 6 7c ff ff ff 0b ff
[RECV]<== 0300 R 01 6 7c ff ff ff 0c ff
[RECV]<== 0300 R 01 6 7c ff ff ff 0d ff
[RECV]<== 0300 R 01 6 7c ff ff ff 0e ff
[RECV]<== 0300 R 01 6 7c ff ff ff 0f ff
[RECV]<== 0300 R 01 6 7c ff ff ff 10 00 <- Change UID bit
[RECV]<== 0300 R 01 6 7c fe ff ff 10 ff
[RECV]<== 0300 R 01 6 7c fe ff ff 11 00 <- Change UID bit
[RECV]<== 0300 R 01 6 7c fe 7f ff 11 ff
[RECV]<== 0300 R 01 6 7c fe 7f ff 12 00 <- Change UID bit
[RECV]<== 0300 R 01 6 7c fe 3f ff 12 ff
[RECV]<== 0300 R 01 6 7c fe 3f ff 13 ff
[RECV]<== 0300 R 01 6 7c fe 3f ff 14 00 <- Change UID bit
[RECV]<== 0300 R 01 6 7c fe 2f ff 14 ff
[RECV]<== 0300 R 01 6 7c fe 2f ff 15 e3
[RECV]<== 0300 R 01 6 7c fe 2f ff 16 00 <- Change UID bit
[RECV]<== 0300 R 01 6 7c fe 2b ff 16 ff
[RECV]<== 0300 R 01 6 7c fe 2b ff 17 ff
[RECV]<== 0300 R 01 6 7c fe 2b ff 18 00 <- Change UID bit
[RECV]<== 0300 R 01 6 7c fe 2a ff 18 ff
[RECV]<== 0300 R 01 6 7c fe 2a ff 19 00 <- Change UID bit
[RECV]<== 0300 R 01 6 7c fe 2a 7f 19 ff
[RECV]<== 0300 R 01 6 7c fe 2a 7f 1a 00 <- Change UID bit
[RECV]<== 0300 R 01 6 7c fe 2a 3f 1a ff
[RECV]<== 0300 R 01 6 7c fe 2a 3f 1b ff
[RECV]<== 0300 R 01 6 7c fe 2a 3f 1c ff
[RECV]<== 0300 R 01 6 7c fe 2a 3f 1d 00 <- Change UID bit
[RECV]<== 0300 R 01 6 7c fe 2a 37 1d f8
[RECV]<== 0300 R 01 6 7c fe 2a 37 1e 00 <- Change UID bit
[RECV]<== 0300 R 01 6 7c fe 2a 33 1e f8
[RECV]<== 0300 R 01 6 7c fe 2a 33 1f ff
[RECV]<== 0300 R 01 6 7c fe 2a 33 20 00 <- Change UID bit
[RECV]<== 0300 R 01 6 7c fe 2a 32 20 fe
<- Found mfx locomotive and identified mfx UID.
[RECV]<== 0300 R 01 5 7c fe 2a 32 20
<- Require new mfx temporally address which is similar to a DCC/MM2 locomotive address.
[RECV]==> df24 02 6 7c fe 2a 32 00 09
<- MS2 or Railuino or Desktop Station replies to new addres "9" to 60113.
[RECV]<== ff77 R 02 6 7c fe 2a 32 00 09
<- 60113 replies to MS2 or Desktop Station or Railuino.
[RECV]==> df24 03 6 7c fe 2a 32 00 09
<- MS2 or Railuino or Desktop Station replies what new locomotive temporally address 9 is verified.
[RECV]<== ff77 R 03 7 7c fe 2a 32 00 09 ff
<- 60113 replies identification of the mfx locomotive is finished.

Consequently, you need the followings to control mfx locomotives. The procedure is not difficult but a alittle bit hard.
Let's try it!

  1. Monitor 60113 packets. You can get the packet using receiveMessage() of Railuino library.
  2. If you found CMD=0x01 and Length=5 packets which is "<== 01 5 XX XX XX XX yy", sends Mfx binds command which is "02 6 xx xx xx xx ZZ ZZ". "XX XX XX XX" means mfx UID. "ZZ ZZ" means new temporally address for the mfx locomotive.
  3. If you found CMD=0x02 and Length=6 packets which is "<== 02 6 XX XX XX XX ZZ ZZ", sends Mfx verify command which is "03 6 xx xx xx xx ZZ ZZ". "XX XX XX XX" means mfx UID. "ZZ ZZ" means new temporally address for the mfx locomotive.
  4. 60113 sends finish commands. The mfx locomotive can control using new address "ZZ ZZ". Of course, you have to use that address value is offseted as ADDR_MFX (0x4000). For example, mfx locomotive temporally address is 9, you have to write as "0x4009" for Railuino functions.

If you can't understand this description, send me e-mail what you can't uderstand.

Go to top.