All posts by admin

Qorvo – There can be only one? 5G vs Wi-Fi 6

With each new cellular standard, we see fresh claims for the “end of Wi-Fi”. When 3G was announced, it promised to make Wi-Fi (802.11b) redundant, which clearly turned out to be wrong. With 4G (LTE), this story repeated itself, claiming it would put Wi-Fi (802.11ac) in the bin.

Source: Qorvo – There can be only one? 5G vs Wi-Fi 6

State of #VSCP

It’s been many months. I have more or less been unable to do any serious VSCP development. All plans for the first half of 2019 just went out of the window. Even if that hurts, loosing such amounts of time, I had a second operation last week and the doctors says I am allowed to do some programming again from the end of the month. I look forward to that.

So hopefully “the state of VSCP” will be less about my scars and more about project progress after this summer. I have done quite a bit of the new VSCP works client during this slow time and hopefully some initial code will be available publically also very soon. JavaScript is still a little “strange” for me. But I like Electron and node.js more and more.

I hope everyone reading this will have a very nice summer. A Blackbird, named Pavarotti here on the hill, is singing for me and there is nothing in the world more beautiful than his song. Enjoy the summer my friends.

Shipping a Linux Kernel with Windows | Windows Command Line Tools For Developers

Beginning with Windows Insiders builds this Summer, we will include an in-house custom-built Linux kernel to underpin the newest version of the Windows Subsystem for Linux (WSL). This marks the first time that the Linux kernel will be included as a component in Windows.

Source: Shipping a Linux Kernel with Windows | Windows Command Line Tools For Developers

Howto: Read a #VSCP mdf file with node.js

The Module Description file is a XML file that all VSCP devices must have and which describe the device. It can either be stored on the device itself or more common linked by the device and stored on some external server storage. Software that wants to configure a device can fetch this file to get the knowledge to do so. Typically a user interface use this file to guide a user through device configuration. A good thing is that one software can handle and configure any device.

A sample MDF file is here an here.

Read a mdf file from a device, parse it and display the module name. A device can consist of several modules, there will always be one and result.vscp.module[0] will always refer to the first. Most devices contains only one module. You can get the number of modules with result.vscp.module.length

Below are some Javascript examples on how to get information from the MDF-file.

Display the module name

const axios = require('axios');
const xml2js = require('xml2js');

let parser = new xml2js.Parser();

axios.get('https://www.eurosource.se/ntc10KA_3.xml')  
  .then((response) => {
      parser.parseString(response.data,
                         (err, result) => {
        console.dir(result.vscp.module[0].name);    
      });
  })  
  .catch((err) => {    
    console.log(err);  
  });

Similar to above sample get a link to the manual for a device

console.log(result.vscp.module[0].manual[0].$.path);

List all registers with

console.dir(result.vscp.module[0].registers[0].reg);

Iterate through all registers an display there names

axios.get('https://www.eurosource.se/ntc10KA_3.xml')
  .then((response) => {
    parser.parseString(response.data, (err, result) => {
      for (let reg of result.vscp.module[0].registers[0].reg) {
        console.log(reg.name[0]._);
      }
    });

  })
  .catch((err) => {
    console.log(err);
  });

List register descriptions with

console.log(reg.description[0]._);

You get the language code for a register name or a register description with

console.log(reg.name[0].$.lang);

List abstractions with

axios.get('https://www.eurosource.se/ntc10KA_3.xml')
  .then((response) => {
    parser.parseString(response.data, (err, result) => {
      for (let reg of result.vscp.module[0].registers[0].reg) {
        console.dir(result.vscp.module[0].abstractions[0].abstraction);
      }
    });

  })
  .catch((err) => {
    console.log(err);
  });



List number of events the module can generate and the events

console.dir('# events: ' + result.vscp.module[0].events[0].event.length);
console.dir(result.vscp.module[0].events[0].event);

If you want an url to a picture of the module

console.log(result.vscp.module[0].picture[0].$.path);

If you want the manual

console.log(result.vscp.module[0].manual[0].$.path);

or a firmware image

console.log(result.vscp.module[0].firmware[0].$.path);

The number of firmware images available

axios.get('http://www.eurosource.se/paris_010.xml')
  .then((response) => {
    parser.parseString(response.data, (err, result) => {
  console.log(result.vscp.module[0].firmware.length);
    });
  })
  .catch((err) => {
    console.log(err);
  });

The release date for a specific firmware

console.log(result.vscp.module[0].firmware[3].$.date);

The way this works should be obvious by now. Enjoy!

The best gets even better #canbus #vscp

For my VSCP testing I have most of the available CAN adapters available on the market here in the lab. Among them my favorite has been the USB2CAN. It’s attractive price, CANAL/Socketcan support and quality just makes it better than the rest.

Not so anymore.

Gediminas (well his company Rusoku) has released a follow up called TouCAN that at the same attractive price (EUR 69) takes things to another level with the following features

  • No driver installation required (WinUSB Microsoft generic driver, out-of-the-box functionality
  • Zero Frame Loss
  • Timestamp resolution = 1uS
  • Data export to .csv
  • Data Buffer for 20000 Frames
  • Powerful CPU ( Cortex M4 100 MHz )
  • Supported Library. Open Source CANAL API DLL
  • Open Source GUI (Qt.io). Compatible with Linux, MacOS, Windows.
  • Linux SocketCAN support
  • Direct connection to device without CANAL API
  • 2x dual color LEDs
  • Unlimited CAN Device Support
  • Default speeds 10, 20, 50, 100, 125, 250, 500, 1000 or custom CAN bus baud rate.
  • Firmware upgrade via bootloader
  • Meets the requirements of ISO 11898-2
  • Bus-Fault protection of –27 V to 40 V
  • EMI filters for CAN and USB interfaces
  • Linux CANAL API library for SocketCAN
  • TouCAN USB to CAN adapter is compatible with home automation system  VSCP vscpWorks from www.vscp.org

This adapter in the Marin package will definitely be my favorite choice for my own setups in the future. More info is here .