Welcome to the forum   
Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

Share
Options
View
Go to last post in this topic Go to first unread post in this topic
Offline loddie  
#1 Posted : 16 November 2024 00:11:32(UTC)
loddie

United States   
Joined: 07/11/2024(UTC)
Posts: 4
The Serial User Standard Interface (SUSI) offers some intriguing advanced possibilities for modellers. SUSI allows information from a decoder ("master") to be passed to another device ("slave" module: e.g., smoke generator unit, seperate sound decoder, etc.) over just 4 wires. Such information may be locomotive direction, speed, sounds, etc. For example, one can send a function command to a decoder, which can pass the command to another device via SUSI.

Unfortunately, there does not be seem to be much information about SUSI online other that manufacturer specific applications. The NMRA provides describes the standard here which was recently updated with a new draft (June, 2024): https://www.nmra.org/sites/default/files/standards/sandrp/Draft/DCC/s-9.4.1_serial_user_standard_interfacedraft.pdf

There is a SUSI WIKI here: https://dccwiki.com/SUSI

There is a related thread here describing a possible application for controlling an onboard video camera: https://www.marklin-user...-slave-device#post677360

I could be mistaken, but my guess is that SUSI was developed primarily for use by manufacturers with sound decoders and smoke generator units and thus few modellers use SUSI or are even aware of it. However, combined with a microcontroller (e.g., Arduino, ESP32, Rasberrry Pi, etc.) it allows one to expand beyond the capabilities of a decoder or simply add more auxiliary outputs (3 SUSI "slaves" are allowed which allow for over 100 outputs!). While today's decoders have quite a few outputs, your ability to create logical control for the outputs is limited. With SUSI, you can create your own logic controls/algorithms, but still activate them via your train controller/remote with function keys.

I hope to use SUSI to control radiator fans for North American diesel/electric locomotives. While I have done several Arduino projects in the past, including one with bidirectional serial communication, I am not sure how to implement a SUSI interface on the receiving end. The wiring and logic control via Function commands seems straightforward. However, I'm not familiar with how a "slave" device receives commands. It seems that the timing of the messages may be critical. For example in this thread, it seems Mario is using an oscilloscope to see the voltage changes of the SUSI messages. Is a an oscilloscope necessary to setup SUSI? Using an Arduino variant microcontroller (C/C++) as example, is it difficult creating the logic to receive SUSI messages? The NMRA draft mentions "data" and "clock" which implies timing synchronization of master and slave. I was hoping it would as simple as monitoring a serial port for messages on the "slave" module, but it seems SUSI may be more complicated.

If anyone has insight into how to implement SUSI on the receiving end ("slave" module), particularly in the Arduino environment, it would be appreciated.

loddie

Offline mario54i  
#2 Posted : 19 November 2024 15:15:15(UTC)
mario54i

Italy   
Joined: 28/03/2007(UTC)
Posts: 303
Location: Torino,
Hello LeRoy

there is nothing difficult in a SUSI slave module without feedback from slave to master.
The serial interface circuit of the microcontroller does everything, you must just connect SUSI clock output to interface SCK and SUSI data to MOSI and set the interface properly. Nothing else.
You receive 16 bits packets, 8 address bits and 8 data bits.
I used the scope to see what was happening because I was receiving strange data and I found that the bit order was reversed.
I don't know about Arduino, a simple Attiny84 or 85 is enough for most applications.
Regards


Users browsing this topic
Guest
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.

| Powered by YAF.NET | YAF.NET © 2003-2025, Yet Another Forum.NET
This page was generated in 0.457 seconds.