Skip to content
Åke Hedman edited this page Jun 7, 2023 · 7 revisions

FAQ - Frequently Asked Questions

VSCP Protocol

  • Q: How does the register abstraction model map to my firmwares variables and data.

  • A: The first thing to understand is that the register abstraction model is an abstraction. It is just a way to present and handle data. In VSCP everything is present as bytes in this register space and we can implement two operations to read/write these bytes. But this does not have to be the same as the way you firmware store things. Take for instance a signed 32-bit value that is used in your application. You work with this value in your code as an int32_t but when presenting the value to the outer world it should be presented as four bytes with MSB in the firsts byte. This is true for writing the variable as well as reading it. Note also that VSCP uses big endian byte order and you application may use little endian. Upper layers of VSCP handle strings, floats etc by combining the bytes in register space.

  • Q: Why is the register space there

  • A: A register with byte width can be handle by lower end firmware as well as higher end firmware. All you need to handle it is to implement a read and a write function. Even the lowest possible setup usually can handle this. Mapping other data and variables onto this register space let capable and not so capable systems handle application data. The standard register space provide info to let higher end tools to get access to this space.

VSCP Daemon

  • Q: Debugging a running VSCP daemon.
  • A: You can investigate the log if the seruce with journalctl -feu vscpd.service most of the time you get a clue of the problem from this. Also the logfiles under /var/log/vscp is helpful. You can increase the debug level as of your needs in the config files. If you still get stuck you can get help on the VSCP discussion list.

CAN4VSCP

  • Q: Why is the bitrate for CAN4VSCP 125 kbps and not variable.
  • A: The thought is to minimize parameters a user has to set when installing units. Now connect a device to the bus and it will work. 125 kbps give 500 meter for the network, a reasonable speed, and is not that critical with terminations (yes they should still be there at both ends but things might work also without them).

Raspberry Pi

  • Q: Systemd enabled service vscpd.service not starting on boot up but able to start manually
  • A: Make sure that system-options/network-at-noot is set to "yes" using the raspi-config tool.

MQTT

  • Q: The vscp daemon is disconnected periodically from the MQTT broker.
  • A: You may have two MQTT clients using the same clientID. That’s not allowed and MQTT will immediately disconnect one of the clients. Check that all drivers and each daemon or other client thta connects to the same MQTT broker have unique client id's. If you leave client id's blank random ones will be generated for you wgich prevent this problem but may make it harder to debug problems.
Clone this wiki locally