Category Archives: VSCP

State of #VSCP “things”

Time for a status report again.

My hope was to have a LTS release ready before the summer but I never reached that point.  But things are what they are. There are mainly two reasons for the delay. First I don’t want to rush some big changes in the core structure that force me to do incompatible updates later with code needed for update paths. This mostly relate to the database. Next I want to move as much of the code as possible to MIT licensed which means I have to remove and rewrite some stuff.   Hopefully something will be available soon after the summer.

The multicast channel support is now fully implemented.  This means one can set up groups on the VSCP multichannel group that act as subnets using a specific port.  AES128/AES192/AES256 encryption is available. The multicast announce is also fully in place now. Python and c/c++ samples available.

A  new UDP interface has been implemented. Also here are AES128/AES192 and AES256 encryption available. Python and c/c++ samples available.

Support classes for encryption and frame packaging has been added to the vscphelper lib to make it easier to handle this new functionality.

pyvscp is a pip installable Python module that add VSCP functionality to Python. The main interfaces is in place but more will come and also more documentation. It’s very easy to interface the VSCP server and VSCP with this module. I personally love it.

The libvscphelper library is now packaged as a deb as the first component that will be available on this form. It is needed to be installed to use most of the functionality of pyvscp.  VSCP Works and the vscp server till also be packed in their own deb’s for easy installation.

node.js bindings installable with npm is next and I know there is c# bindings brewing also. Probably have to dig into Java soon also if someone does not volunteer for that job.

A lot of other this to have hap-end of course.

Now I will go on a four-week leave. I am not used to that long vacations and right now I don’t actually know how to survive such a long time without coding. But I have promised my wife to try to to be honest I probably need it. I will check mail occasionally though but wil probably not answer mails on a daily basis.

So all friends out there. Have fun!

#VSCP New Multicast and UDP interfaces

From version 1.12.26 the muticast channel interface is available. Also a new UDP interface is available.

With the multicast channel interface one can set up groups of Level II nodes that share a common channel for events. Much like a bus like CAN. Frames can be encrypted using AES128, AES192 or AES256.

With the new UDP interface one can set up a receiving interface and several sending interfaces which send UDP datagrams to remote nodes. Frames can be encrypted using AES128, AES192 or AES256.

The settings for the multicast channel interface is here

The settings for the UDP interface is here

The encryption key are under the <security> tag.

Some sample code can be found in the source tree under test/multicast and tests/udp. Not more documentation at the moment I am afraid but I work on that.

Well there are probably some bugs left…


State of things | #VSCP

I know when I have lost. The chance that VSCP will be adopted by the many is pretty small. One could be sad about that. It is so much work. So many hours. But if you want to be a success you need money and even more, devoted people around you that preferably are better than yourself.

So, bad days, and this is one of them, you think about giving it all up. Why bother?

Still, there is something in that vision of small systems talking to each other,  working together, that is hard to not make come true. Just out of curiosity, Is it possible to do this?

But on the other hand. Soon seventeen years of development.  It is crazy to walk this road.

Well I do any way. The development continue.

I have decided to skip built-in  MQTT support in the VSCP server. The Level II driver will give this support and will be extended with new functionality instead.

I am implementing new UDP functionality at the moment. This is an extended version of what was available before. One can set up a UDP port on the server that can receive UDP VSCP frames. Ack is available and the frames can be unencrypted or encrypted using AES128/AES192/AES256. The VSCP server can also connect to other nodes using UDP and send a filtered output stream to them.

I also work on the Multicast functionality as this is close to the UDP functionality. The same encryption options is available here but the multicast channels work a bit different to UDP in that one can set up as many multicast channels one like, have filters in them for both send and receive, and of course encrypted frames.  This is perfect for low-end autonomous systems.

I hope to have this is done and fully working this week.

The multicast announce channel by the way is already in place and has been for quite a while. I will document this to. Basically this channel is where a higher end device can listen to discover new nodes in a system. Likewise should level II nodes post their info here as well as heart beats.  The VSCP daemon will collect this info, a work that is up next, and make it available through its high end interfaces.

That’s it for now.  Keep your eyes open for documentation of the new features.


Effect of #VSCP package change

For those of you running head code of the VSCP & Friends package

Remember to build the full VSCP & Friends package after checking it out from git and then compile all files and do a “make install” as root. If you don’t do this drivers and the VSCP server (the daemon) may use different package formats which will   corrupt memory and probably make the VSCP server and the rest of the code unstable.


IMPORTANT! #VSCP configuration change

From version Magnesium the configuration file format has changed. A lot of things have moved out from the <general> section up to the top-level.  Refer to the distribution vscpd.conf for full info.

Configuration file reading order has changed as well. Now things work as the following

  1. Read the <general> tag information from the XML configuration.
  2. Read configuration from the database.
  3. Read the full XML configuration.

This change makes it easier to have a safe setting in the XML configuration file that can’t be overwritten by changes in the database. The importance of this will be more clear when settings can be changed in the administrative web interface.


/Ake Hedman

ps There is a lot of bumblebees here on the VSCP hill right now, more than ever before. Must be a sign… 😉 ds