Hi Sven, hi @all
yes, I could ask in the MERG forum.
My intention is different. I want to understand how the PIC controllers and the software work. So it is better for me to work with the source code, the functions, the protocol, and the PIC controllers.
Now it works after I changed from the CBUS firmware to the Universal-VLCB firmware (self compiled), like I did with the I/O module. I only had to change the controller, because the PIC18F26K80 does not have enough ROM. There was no error in MPLAB X IDE, but it did not work with Universal-VLCB.
Now I use a PIC18F27Q83 with 64 kB ROM. I have several different PIC controllers available.
Now everything works as expected with the Universal-VLCB firmware. The firmware also has some advantages, for example you can choose the function - Input, Output, Servo, Bounce, Multi, Analogue, Magnet and LED switch.
The CANMIO has these configured events:
The CANMIO Servo produces and consumes these events:
Pressing the Button 4 and Button 5 results in these bus messages:
Button 4 - point straight - event 10001 - position evens of the servo 50001 (Turnout), 50002 (Mid), 50003 (Straight)
2026-04-19 19:37:50.284794 cbus_1 D2002: RX: ACON node=258 event=10001 [90 01 02 27 11]
2026-04-19 19:37:50.389833 cbus_1 D2002: RX: ACOF node=258 event=50001 [91 01 02 C3 51]
2026-04-19 19:37:52.639333 cbus_1 D2002: RX: ACOF node=258 event=50002 [91 01 02 C3 52]
2026-04-19 19:37:54.910001 cbus_1 D2002: RX: ACON node=258 event=50003 [90 01 02 C3 53]
Button 5 - point turnout - event 10002 - position events of the servo 50003 (Straight), 50002 (Mid), 50001 (Turnout)
2026-04-19 19:36:20.038627 cbus_1 D2002: RX: ACON node=258 event=10002 [90 01 02 27 12]
2026-04-19 19:36:20.097755 cbus_1 D2002: RX: ACOF node=258 event=50003 [91 01 02 C3 53]
2026-04-19 19:36:22.347283 cbus_1 D2002: RX: ACON node=258 event=50002 [90 01 02 C3 52]
2026-04-19 19:36:24.618228 cbus_1 D2002: RX: ACON node=258 event=50001 [90 01 02 C3 51]
If have two points from the beginning with Traintastic on my board. They have currently no interface settings. If I try to set the interface to CBUS/VLCB this happens:
2026-04-19 19:39:09.642264 client[127.0.0.1:59900] I1003: New connection
2026-04-19 19:39:24.038253 world N1010: Edit mode: enabled
traintastic-server: /home/tom/projects/linux/traintastic/server/src/hardware/output/map/outputmap.cpp:119: OutputMap::OutputMap(Object&, std::string_view)::<lambda(const std::shared_ptr&)>: Assertion `addresses.empty()’ failed.
I delete the both points and insert new one in the board.
With these settings it’s runs with the button 4,5 and a mouse click in Traintastic, full servo control with produced events for the position of the servo.
You can find my complete firmware projects at Github. The Universal-VLCB has submodules, the bootloader, VLCB-defs and VLCBlib-PIC. The projects are setup for MPLAB X IDE v6.25.
This is exactly how I imagined it! 
Greetings, Tom