User Tools

Site Tools


intellibox-basic-en

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
intellibox-basic-en [2019/01/17 21:15] – [Options] smitt48intellibox-basic-en [2021/12/02 17:27] (current) rjversluis
Line 6: Line 6:
  
 // \\ // \\ // \\ // \\
-<html><!-- 
-| [[:donate-en|{{:icons:key.png}}]]This library is only available for supporters of the project, who have a valid __**[[:donate-en|Support Key]]**__ installed. Otherwise loco commands are rejected.  | 
-|  //For testing purpose a test key for one week can be requested by email: “supportkey at rocrail.net”.//  | 
- \\ 
---></html> 
 ===== Product Overview ===== ===== Product Overview =====
  
Line 21: Line 16:
  
  
-===== Setup ===== +===== Introduction ===== 
-Rocrail supports the __U__hlenbrock __L__oco__N__et __I__nterface (ULNI) with software handshake. \\ +  * Programming of locomotive decoders is not conform to the freely available documentation //LocoNet Personal Edition//
-The device drivers shipped with the device have to be installed prior to connecting the device and the computerAfterwards the interface the device was assigned to has to be determined.\\+  * There is no publicly available documentation for the advanced programming protocol used by Uhlenbrock. 
 + 
 +Since revision 2118 Rocrail supports the **U**hlenbrock **L**oco**N**et **I**nterface (ULNI) with software flow control. \\ 
 + 
 +:!: Install the interface driver first! :!: 
 +  * Under **Windows**, the driver for the interface (USBtoUARTBridge) supplied with the unit must be installed before connecting to the computer. 
 +  * Under **MacOS** the driver from the manufacturer Silicon Labs must be downloaded and installed (see below). 
 +  * Common **Linux** distributions already include the driver, so it does not need to be installed. 
 +  * For more information on the interface, see [[#hardware_interface|Hardware interface]] at the bottom of this page. 
 + 
 +In order to display loco velocity changes by means of the IB throttles correctly in Rocview option **[[:rocrailini-automode-en#allow_zero_throttle_id|Allow zero throttleID]]** has to be activated.\\
  
 \\   \\  
-==== Add the ULNI ==== +===== Setting up Rocrail ===== 
-From the menu **File -> Rocrail properties...** is selected and in the following dialogue tab **[[:rocrailini-controller-en|Controller]]** is selected. If the Intellibox should be the only command station other command stations possibly listed have to be deleted first. Afterwards from the drop down field **New** the command station **loconet** is selected and subsequently added by pressing **Add**. The command station **NEW - loconet** is highlighted and **Properties** is pressed. The dialogue LocoNet Interface opens: \\+From the menu **File -> Rocrail properties...** is selected and in the following dialogue tab **[[:rocrailini-controller-en|Controller]]** is selected. If the Intellibox should be the only command station other command stations possibly listed have to be deleted first. Afterwards from the drop down field **New** the command station **loconet** is selected and subsequently added by pressing **Add**. The command station **NEW - loconet** is highlighted and **Properties** is pressed. The dialogue LocoNet Interface opens:
  
  \\  \\
- 
 ==== Interface ==== ==== Interface ====
 {{:ib:loconet-interface-en.png}} \\ {{:ib:loconet-interface-en.png}} \\
 On tab //Interface// the ID **NEW** is overwritten by an appropriate name, e. g. **IB** in the example. The computer interface determined beforehand is entered into the field **Device**, e. g. ''com1'' in the example. The baud rate is selected according to the one of the device (standard: 115200). The **Type** has to be **ULNI**.  On tab //Interface// the ID **NEW** is overwritten by an appropriate name, e. g. **IB** in the example. The computer interface determined beforehand is entered into the field **Device**, e. g. ''com1'' in the example. The baud rate is selected according to the one of the device (standard: 115200). The **Type** has to be **ULNI**. 
  
-===Device===+=== Device ===
 Rocrail determine under Windows the available serial ports currently only to Com10.\\ Rocrail determine under Windows the available serial ports currently only to Com10.\\
 If the LocoNet Com port in the dropdown list "device" is missing, the actually assigned com port must be read up in the Windows system control and be entered manually into the field "device".\\ If the LocoNet Com port in the dropdown list "device" is missing, the actually assigned com port must be read up in the Windows system control and be entered manually into the field "device".\\
  
  \\  \\
- 
 ==== Options ==== ==== Options ====
 {{:ib:loconet-options-en.png}}\\ {{:ib:loconet-options-en.png}}\\
Line 49: Line 52:
  
  \\  \\
- 
 ==== Details ==== ==== Details ====
 {{:ib:loconet-details-en.png}}\\ {{:ib:loconet-details-en.png}}\\
-===Switch Time===+ 
 +=== Switch Time ===
 The Switch Time should be set to the maximum switch time of the IB (see also the description of **Switch acknowledge** below).\\ The Switch Time should be set to the maximum switch time of the IB (see also the description of **Switch acknowledge** below).\\
  
-===Slot Purge Time===+=== Slot Purge Time ===
 Locomotives not in use will be purged from the refresh cycle after a time specified in the Intellibox (default two minutes). The value entered into the field **Slot Purge time** on tab //Details// should be equal or slightly lower than the purge time of the Intellibox, e.g. 110 seconds. \\ Locomotives not in use will be purged from the refresh cycle after a time specified in the Intellibox (default two minutes). The value entered into the field **Slot Purge time** on tab //Details// should be equal or slightly lower than the purge time of the Intellibox, e.g. 110 seconds. \\
 +> **Note:** If the **Slot Purge time** is set to zero, the IB is supposed not to purge! This will lead to unpredictable situations: Rocrail will not check with the IB if the known slot is purged.\\
 +Very small purge time values will cause unnecessary traffic for checking the slots.\\
 +Locos that were controlled by Rocrail and were afterwards parked remain active if the option **Slot Ping** is active. If such a loco is selected on the Intellibox a warning will be shown telling the loco is already under control.\\
  
-===Slot Ping===+=== Slot Ping ===
 The option Slot Ping can be used to inhibit purging by pinging the slot right before it would be purged.  \\ The option Slot Ping can be used to inhibit purging by pinging the slot right before it would be purged.  \\
  
-===Slot Purge time=== +=== Wait for slot data === 
-If the **Slot Purge time** is set to zero, the IB is supposed not to purge! This will lead to unpredictable situations: Rocrail will not check with the IB if the known slot is purged.\\ +This value can be increased step by step up to max. 128 if the following error occurs: 
-Very small purge time values will cause unnecessary traffic for checking the slots.\\ +
-Locos that were controlled by Rocrail and were afterwards parked remain active if the option **Slot Ping** is active. If such a loco is selected on the Intellibox a warning will be shown telling the loco is already under control.\\ +
- +
-===Wait for slot data=== +
-This number should be increasedmax. 128if the following error occurs:+
 <code> <code>
 Could not get slot for loco addr=xx Could not get slot for loco addr=xx
Line 73: Line 74:
 Default Rocrail will read up to 16 packets until it give up waiting for a free slot.\\ Default Rocrail will read up to 16 packets until it give up waiting for a free slot.\\
  
-===Echo timeout=== +=== Echo timeout === 
-The default wait time is 100 10ms to wait for the echo of a command.\\ +The default time is 100 10ms to wait for the echo of a command. \\ 
-Under some conditions this could be too shortand can be increased to max. 1000 10ms.\\ +Under some conditionsthis may be too short and can be gradually increased to a maximum of 1000 10ms. \\ 
  
-===Check switch acknowledge===+=== Check switch acknowledge ===
 The option "Check switch acknowledge" can be enabled to prevent sending a switch command to the IB while it is busy executing a previous switch command.\\ The option "Check switch acknowledge" can be enabled to prevent sending a switch command to the IB while it is busy executing a previous switch command.\\
 > **Note:** If **Check switch acknowledge** is enabled the **Switch Time** (see above) __has to be set to exactly the maximum switch time value of the IB__. \\ Moreover, minimum and maximum switch times of the IB should be set to identical values, e.g. 200 or 250 milliseconds both. \\ Genearally this option can and should be disabled. > **Note:** If **Check switch acknowledge** is enabled the **Switch Time** (see above) __has to be set to exactly the maximum switch time value of the IB__. \\ Moreover, minimum and maximum switch times of the IB should be set to identical values, e.g. 200 or 250 milliseconds both. \\ Genearally this option can and should be disabled.
  
-===Retries/Sleep===+=== Retries/Sleep ===
 Number of attempts to set the switch and receive an acknowledgement plus pause between retries.\\ Number of attempts to set the switch and receive an acknowledgement plus pause between retries.\\
 It is recommended to set the sleep time to higher values (250ms maximum).\\ It is recommended to set the sleep time to higher values (250ms maximum).\\
  
-===Slotserver===+=== Slotserver ===
 The __**Slot Server** must be disabled!__ This will conflict with the IB and could lead to a Rocrail server crash.\\ The __**Slot Server** must be disabled!__ This will conflict with the IB and could lead to a Rocrail server crash.\\
  
-===Query address===+=== Query address ===
 The standard query address for getting the current sensor state is 1017.\\ The standard query address for getting the current sensor state is 1017.\\
 For Uhlenbrock sensor modules this must be set to **1016**.\\ For Uhlenbrock sensor modules this must be set to **1016**.\\
  
  \\  \\
- 
 ===== Addressing and Timing ===== ===== Addressing and Timing =====
 See __**[[:intellibox-en#addressing_and_timing|Addressing and Timing]]**__ on how to address accessory decoders and how to set up switch and route switch times etc. See __**[[:intellibox-en#addressing_and_timing|Addressing and Timing]]**__ on how to address accessory decoders and how to set up switch and route switch times etc.
  
  \\  \\
-===== Device name =====+===== Hardware interface =====
 ==== Windows ==== ==== Windows ====
-This is documented in the **__[[https://www.uhlenbrock.de/intern/20/1/English/I96EEA64-02A.apd/Bes65070-01e.pdf|manual]]__** which came with the device: **COMx**\\+The installation is carried out as described in the operating instructions enclosed with the unit. \\ 
 +:!: Important: First install the driver, then connect the unit to the computer //via// USB! 
 +The driver can also be found on the Uhlenbrock homepage or may be downloaded directly from the manufacturer Silicon Labs (Silabs): https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers.
  
 +Afterwards determine under which com port the device is addressed using the Windows device manager. Often it is listed as ''com3:''
  
  \\  \\
 +==== Debian Linux ====
 +Under Debian, the interface is recognised as ''CP2102/CP2109 UART Bridge Controller [CP210x family]''. To check, start the computer __without the device plugged in__. After the computer has started, connect the device //via// USB and open a terminal.
  
-==== Linux ==== +The command <code> $ lsusb</code> executed in the terminal results in the following output (example):
-Debian 5 recognizes the USB LocoNet Interface and maps it as a /dev/ttyUSBx device:\\+
 <code> <code>
-usb 1-1New USB device found, idVendor=10c4, idProduct=ea60 +Bus 007 Device 004ID 10c4:ea60 Cygnal Integrated ProductsInc. CP2102/CP2109 UART Bridge Controller [CP210x family]
-usb 1-1: New USB device strings: Mfr=1Product=2, SerialNumber=3 +
-usb 1-1: Product: CP2102 USB to UART Bridge Controller +
-usb 1-1: Manufacturer: Silicon Labs +
-usb 1-1: SerialNumber: 0001 +
-usbserial: USB Serial support registered for cp2101 +
-cp2101 1-1:1.0: cp2101 converter detected +
-usb 1-1: reset full speed USB device using uhci_hcd and address 2 +
-usb 1-1: cp2101 converter now attached to ttyUSB1 +
-usbcore: registered new interface driver cp2101 +
-cp2101: Silicon Labs CP2101/CP2102 RS232 serial adaptor driver v0.07+
 </code> </code>
  
- \\+More detailed information is provided by <code> $ sudo dmesg|grep usb*</code>
  
-====Mac OS X==== +Debian 10 recognises the interface and assigns it to the device ''/dev/ttyUSBx''. In this example ''/dev/ttyUSB0'' (last line of the output):\\ 
-The Mac OS X needs to install an extra driver for this interface which can be downloaded here:\\  +<code> 
-https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx+usb 7-2: New USB device found, idVendor=10c4, idProduct=ea60, bcdDevice= 1.00 
 +usb 7-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 
 +usb 7-2: Product: CP2102 USB to UART Bridge Controller 
 +usb 7-2: Manufacturer: Silicon Labs 
 +usb 7-2: SerialNumber: 0001 
 +usb 7-2: cp210x converter now attached to ttyUSB0 
 +</code> 
 + 
 +With other distributions the interface identifier could be different, e.g. ''/dev/ttyAMAx'', so for example ''/dev/ttyAMA0''
 + 
 +:!: Note that the interface is usually assigned to the ''dialout'' group. 
 +<code> 
 +$ ls -l /dev/ttyUSB* 
 +crw-rw---- 1 root dialout 188, 0 Apr 11 00:01 /dev/ttyUSB0 
 +</code> 
 +Users who want to use the interface must be added to the ''dialout'' group. See **[[:faq-en#serial_device_user_access_linux|Serial device user access (Linux)]]**. 
 + 
 + \\ 
 +==== Mac OS X ==== 
 +The Mac OS X needs to install an extra driver for this interface which can be downloaded from Silicon Labs:\\  
 +https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers \\
  
 After reboot the Uhlenbrock interface is recognized as:\\ After reboot the Uhlenbrock interface is recognized as:\\
Line 139: Line 153:
 **Basic Settings** -> **LocoNet Prog.** -> **Art.-Nr.: <63120>** -> **Modul adr: <1>** -> **LNCV: 0= 1** and confirm these values. \\ **Basic Settings** -> **LocoNet Prog.** -> **Art.-Nr.: <63120>** -> **Modul adr: <1>** -> **LNCV: 0= 1** and confirm these values. \\
 Values in angle brackets <> have to be entered as shown. Values in angle brackets <> have to be entered as shown.
 +
 + \\
 +===== Special Options =====
 +=== IB Basic SO14 ===
 +Maximum Switch time; default setting is 5 secs. Using the ** OpenDCC signaldecoder ** and loconet, set the value to 0 to get a sufficient fast response of the signal patterns.\\
 +
 + \\
 +===== Reset the device =====
 +|//This step is only needed if the device has been reprogrammed.//|\\
 +With the LocoNet type **[[:loconet-cs-en|ULNI]]** the factory settings of the interface must be used: \\
 +^ LNCV 2 = 4  | 115200 Baudrate |  
 +^ LNCV 4 = 0  | LocoNet Direct Mode **OFF** |
 +{{:ib:uso-menu.jpg?400}}{{:ib:uso-dlg.jpg?400}}\\
 +
 + \\
 +:!: LocoNet direct mode __has to be switched off__! \\
 +Since the software handshake itself requires part of the bandwidth available the highest possible baud rate (115200) should be used in order not to slow down communication speed.
  
  \\  \\
Line 160: Line 191:
 The **IB-Com** does NOT refresh the loco commands on the track in case of __mixed DCC and Motorola__ type of decoders.\\ The **IB-Com** does NOT refresh the loco commands on the track in case of __mixed DCC and Motorola__ type of decoders.\\
 This will result in a loco stop after a bad contact, depending of decoder manufacturer, and not starting for a long time until a slot ping is issued by Rocrail.\\ This will result in a loco stop after a bad contact, depending of decoder manufacturer, and not starting for a long time until a slot ping is issued by Rocrail.\\
-This problem cannot be solved without some advice from the manufacturer Uhlenbrock. Some undocumented LocoNet commands seems to solve this behaviour.\\ +This problem cannot be solved without some advice from the manufacturer Uhlenbrock. Some undocumented LocoNet commands seems to solve this behaviour.
- +
- \\  +
- +
-===== Reset the device ===== +
-|//This step is only needed if the device has been reprogrammed.//|\\ +
-With the LocoNet type **[[:loconet-cs-en|ULNI]]** the factory settings of the interface must be used: \\ +
-^ LNCV 2 = 4  | 115200 Baudrate |   +
-^ LNCV 4 = 0  | LocoNet Direct Mode **OFF** | +
-{{:ib:uso-menu.jpg?400}}{{:ib:uso-dlg.jpg?400}}\\ +
- +
- \\ +
-:!: LocoNet direct mode __has to be switched off__! \\ +
-Since the software handshake itself requires part of the bandwidth available the highest possible baud rate (115200) should be used in order not to slow down communication speed. \\  +
- +
- \\ +
- +
-==== Special Options ==== +
-=== IB Basic SO14 === +
-Maximum Switch time; default setting is 5 secs. Using the ** OpenDCC signaldecoder ** and loconet, set the value to 0 to get a sufficient fast response of the signalpatterns.\\ +
- +
- +
intellibox-basic-en.1547756138.txt.gz · Last modified: 2019/01/17 21:15 by smitt48