Help

Feedback Contacts

The New Feedback dialog in RailKernel
A feedback definition identifies one physical detector contact and the canvas element that it observes.

Feedback contacts tell RailKernel which parts of the railway are occupied. Their addresses connect physical detection hardware to elements on the canvas, blocks, action rules and automatic driving.

Create and place a feedback

Open New Feedback, enter or select an address and press OK, then select the connected detection section on the canvas. You can also plan a feedback without an address: set both module and contact to 0. Assign a valid address before creating it on a command station. For automatic placement within blocks, use Generate Feedbacks as described below.

Read Mouse and Canvas Controls

Fields in the New Feedback dialog

For a wired feedback, the address must match the physical contact. Module 0 together with contact 0 means no address yet; a wired address uses a positive module number and contact 1–16.

Existing feedback
Select a feedback discovered in the command station to copy its known name and address, or choose Manual entry when you want to enter the values yourself.
Name
A unique operational name used on the canvas, in blocks, monitors, action rules and logs. Choose a name that identifies the physical detection section.
Command station
The command station from which RailKernel receives this feedback state.
Bus
The feedback bus number. For a CS3 S88 Link this selects bus 0, 1, 2 or 3; the meaning for other command stations follows their driver and protocol.
S88 Feedback
Select this for a contact connected through an S88 Link bus. Leave it clear for feedback modules on the command station’s direct feedback connection.
Module
The module number on the selected direct connection or S88 bus.
Contact
The input number, 1–16, or 0 together with module 0 for an unassigned feedback. The combination of command station, connection type, bus, module and contact must be unique when assigned.
State and Toggle
When editing an existing feedback, this shows its current FREE or OCCUPIED state. Toggle is useful for controlled testing; a new definition has no state to toggle yet.
Exclude from emergency stop
Prevents changes from this contact from participating in the general emergency-stop handling. Use this only for a detector whose purpose and safety consequences are understood.
Mark as unreliable
Records that the detector is known to be unstable or less trustworthy, so the condition remains visible during operation and troubleshooting.
Find feedback
When editing, closes the definition workflow and highlights the feedback on the canvas. RailKernel also warns when it is referenced by an action rule.

Generate feedbacks inside blocks

Prepare the blocks first

Choose Define → Generate Feedbacks, below Generate Blocks. This step creates placements without addresses and links them to their blocks. Enter Minimum Feedbacklength (mm), Maximum feedbacklength (mm) and Minimum #Feedbacks per block (default 3). Empty length fields mean no limit. Boundaries follow whole rail joints. Existing feedbacks keep their positions and count towards the minimum.

Recognized 24047 assemblies are processed first: the inner section between square brackets becomes one feedback, including its inner 24047 rails. The two outer rails are outside that feedback. The assembly must fit entirely in one block, and the feedback must meet the length limits. Conflicts, overlapping or unsupported blocks and ambiguous loops are reported. Valid newly created 24047 feedbacks remain even if the subsequent filling or spacing step cannot complete.

Complete filling: evenly sized sections

Check Fill blocks completely with feedbacks to cover all eligible rails in each block. RailKernel seeks the smallest feasible feedback count at or above the minimum, and makes the sections as equal in length as possible within the limits. The requested count is a minimum, not an exact count; the maximum length may require more sections. Existing feedbacks are not resized. This is useful for a DC layout with continuous detection.

Separate sections: short and evenly distributed

Leave Fill blocks completely with feedbacks unchecked (the default) for separate detection sections. RailKernel makes new sections as short as possible while respecting the minimum and maximum lengths, and spreads them as evenly as the rails and existing feedbacks allow.

Keep 1 rail distance from block boundaries leaves one complete rail element free at each end of an open block. Minimum distance between feedbacks (mm) is the free track length between sections, measured along the rails, not a straight-line distance. Both options must also fit around existing feedbacks. If no valid placement exists, the summary explains why. Adjust the limits or minimum count and run again; existing placements remain.

Delete maiden feedbacks

The bottom-left Delete maiden feedbacks button removes all feedbacks without an address in the project, including manually placed ones, after confirmation. Their links are removed; rails and blocks remain. Action rules referring to deleted feedbacks are disabled. This is a project-wide cleanup, not just the last generation run. Feedbacks with addresses are kept.

Generate addresses and module positions

Choose Define → Generate Feedback Addresses after placing feedbacks. Set # native buses (default 1), # s88 buses (default 2) and # available extra 16-contact modules. The third value is additional hardware, not the total including existing modules. Its default is the minimum required after accounting for free contacts on existing modules. With several command stations, bus counts apply per station; extra modules are a shared total.

Press OK to calculate a plan for all unassigned feedbacks. Existing addresses and stored module positions stay fixed; free contacts on those modules are available for reuse. New modules are placed to reduce total wire length within their 16-contact capacity, then distributed as evenly as possible across the configured native and S88 buses, taking existing module counts into account. Extra modules can improve placement; unused ones need not be created. This is an optimization, not a guarantee of the mathematical global minimum.

The summary reports assigned addresses, reused contacts, added modules and new wire length. Insufficient capacity, duplicate addresses or unusable geometry are reported before applying a plan. Generation changes the project; it does not automatically program or synchronize the command station. Check the physical wiring and use the normal synchronization workflow afterwards.

Show infrastructure and route around buildings

View → Show Feedback Infra, below Show Design, displays a blue circled M for each addressed module and blue wires to its feedbacks. Module identity includes command station, native/S88 type, bus and module number. Address generation switches this view on. Showing the infrastructure alone does not assign addresses.

Buildings act as obstacles during infrastructure generation. To keep wires out of an aisle, draw a temporary building over that area before generating addresses. Keep feedback connection points and fixed modules outside its outline. Module positions and wire routes avoid the buildings; an impossible route is reported. Save the project after generation. The routes, module positions and generated-address markers are persisted, so removing the temporary building afterwards does not straighten the saved detour.

Undo generated addresses and try again

Use Undo generated addresses at the bottom left of the address-generation dialog. After confirmation it removes all addresses still marked as generated, including those from earlier runs and after reopening the saved project. Feedback placements and manual addresses remain. Generated modules with no remaining addressed feedbacks are removed. Manually changing an address makes it manual and protects it from this cleanup. You can then adjust obstacles, bus counts or extra modules and generate a new plan. Save again to retain the change.

Feedback Manager

The dockable Feedback Manager compares the feedback definitions in the layout with the feedbacks read from connected command stations. Select All for the complete overview or one command station to work with it separately. The table shows Status, Command station, Layout name and the real CS name, followed by source, bus, module, contact and operational details. Matching uses command station, source type (direct or S88), bus, module and contact; names do not have to be identical. Refresh reads and compares the data again.

Comparison statuses and valid ranges

Each row has one of four comparison statuses:

Matched
Exactly one layout feedback and one command-station feedback use the same station, source type, bus, module and contact.
Layout only
The feedback is defined in the RailKernel layout but is absent from the command station.
Command station only
The command station contains a feedback for which no layout definition exists.
Conflict
More than one layout or command-station feedback occupies the same complete physical location, so a unique match is impossible.

Outranged is an additional warning, not a fifth comparison status. Red rows use a module number above the configured bus length reported by that CS3, or above the defined length when no configured value is available. With one station selected, the line beside the selector shows the configured direct CS3 length and S88 Link bus lengths 0 through 3 used for this check. Unknown S88 values are treated as zero when the station reports no S88 buses.

Synchronize feedbacks with a command station

Sync Feedbacks with CS is enabled only for one selected command station that supports feedback deletion. After your confirmation, RailKernel creates supported layout-only feedbacks in the station, deletes command-station-only feedbacks and replaces unambiguous conflicts by deleting the station entries and re-creating the layout definition. Direct feedbacks must use bus 0; S88 Link feedbacks may use bus 0 through 3. A modal progress window reports every operation and remains open until you press OK. The manager then reads the station again. If everything is already Matched, there is nothing to synchronize.

Delete from the correct side

Delete follows the selected row. Layout only removes the RailKernel definition; Command station only removes the station entry; Matched removes both, deleting from the station first and removing the layout definition only after that succeeds. Every operation requires confirmation. A layout feedback used by a block cannot be deleted. Station deletion is available only when the selected command-station driver supports it.

The Feedback Monitor

The Feedback Monitor presents the complete configured address space per command station. Each row is a direct or S88 module and each column is contact 1 through 16. Live keeps the view following incoming events; Refresh rebuilds it from the current project and command-station information. Double-click a defined feedback to edit it. Tooltips include the feedback name, associated block and action rules where applicable.

The RailKernel Feedback Monitor showing modules, contacts and live states
The monitor combines physical detector addresses with project names, occupancy and action-rule information.

Monitor colours

Green means that a defined feedback is free and red means occupied. Grey cells have no project feedback assigned to that physical address. A thick blue border marks a feedback used by an enabled action rule; while such an action feedback is free, RailKernel uses a blue fill to distinguish it clearly. Free and occupied colours can be changed in Settings, allowing the monitor and canvas to match your preferred contrast and colour perception.

Live and Live: RAW

Live opens a running list of processed state changes for defined feedbacks. Live: RAW is the diagnostic view of all raw feedback events before RailKernel’s normal filtering and suppression. When RAW mode starts, cells have no state colour and all counters are reset. Each received raw change increments the counter at its exact command-station, source, bus, module and contact address. The cell changes from pale to increasingly strong red as the count rises, making unstable inputs, wiring faults and repeating bus traffic immediately visible. Live and Live: RAW are mutually exclusive.

In the example below, the numbers are event counts, not feedback addresses or occupancy values. A healthy quiet contact remains uncoloured. The concentrated red pattern on several contacts of the same S88 area shows immediately where abnormal traffic is occurring. Comparing affected contacts, modules and buses helps distinguish one defective input from a shared module, cable, power-supply or bus problem.

RailKernel Feedback Monitor in Live RAW mode showing high raw state-change counts on unstable S88 contacts
A real diagnostic capture: rapidly increasing counts and stronger red cells reveal unstable feedback traffic and localize the affected S88 area.

CS3 feedback-bus lengths

The lower-left Feedback bus data panel in the CS3 command-station overview shows three columns. Defined contains RailKernel’s saved direct and S88 Link module counts. Configured contains the values read from that specific CS3. Calculated derives the required lengths from the feedback definitions in the loaded layout. These values help reveal an undersized configuration or feedbacks assigned to the wrong station or bus. You can edit and save the Defined values. RailKernel never silently changes command-station feedback definitions; creation, deletion and synchronization always require your explicit approval.

Feedback bus data in the lower-left corner of the CS3 command-station overview
Direct and S88 Link module counts determine how much of the CS3 feedback address space RailKernel reads.