LabVIEW, EtherCAT and real-time control

  1. Hilscher netTAP 100: interfacing communication protocols

    Bridging a Modbus RTU device onto an EtherCAT network with the Hilscher netTAP 100 gateway.

    Johannes Spinneken, 17 March 2021

  2. EL6695: the EtherCAT bridge terminal

    How to set up the Beckhoff EL6695 bridge terminal to exchange data between two EtherCAT networks.

    Alekhya Katumalla, 27 August 2020

  3. Setting up a LabVIEW real-time project

    A brief introduction to setting up the LabVIEW real-time cRIO and FPGA environment.

    Johannes Spinneken, 23 February 2019

  4. EtherCAT on LabVIEW and cRIO

    Using EtherCAT, a powerful industrial real-time communication protocol, with the NI cRIO, including benchmarking its performance.

    Johannes Spinneken, 23 February 2019

  5. A LabVIEW real-time application example

    Using LabVIEW real-time for a real-world motor controller, including the cRIO real-time OS and the cRIO FPGA.

    Johannes Spinneken, 5 January 2019

  6. Deploying a real-time LabVIEW project as a startup executable

    For many industrial and prototyping applications we bundle LabVIEW code and deploy it as a startup executable on a real-time target. This post shows how.

    Johannes Spinneken, 29 December 2018

  7. Creating a state-space block in LabVIEW

    The state-space formulation is immensely powerful in control and modelling. This post walks through an application example in LabVIEW.

    Johannes Spinneken, 13 December 2018

  8. LabVIEW cRIO real-time loops

    How to break, and how not to break, the real-time behaviour of a LabVIEW real-time loop.

    Johannes Spinneken, 23 November 2018

Data analytics and machine learning

  1. Time series forecasting with Facebook Prophet

    Forecasting a time series with Prophet, from data preparation through tuning to evaluating the forecast.

    Graham Penrose, 13 December 2020

  2. Principal component analysis

    Principal component analysis (PCA) reduces the number of features in a machine learning problem. This post introduces PCA and works through an image recognition example.

    Jose Ortiz, 22 May 2020

  3. Quantile loss function for machine learning

    Quantile regression replaces a single-value prediction with prediction intervals. An intuitive explanation of why it works, and an example in Keras.

    Jose Ortiz, 12 July 2019

  4. What is new in TensorFlow 2.0

    Why you may want to implement your next machine learning project using TensorFlow 2.0.

    Jose Ortiz, 3 May 2019

  5. Function interpolation with known piecewise averages

    How to “interpolate” a function when all you know are its averages over certain time intervals.

    Jose Ortiz, 1 April 2019

  6. Regression loss functions for machine learning

    Loss functions and their correct application are essential to machine learning models. A first overview of three common ones.

    Jose Ortiz, 5 January 2019

IoT, cloud and infrastructure

  1. Infrastructure as code

    A demonstration of infrastructure as code: deploying an EC2 instance from a CloudFormation template.

    Alekhya Katumalla, 2 July 2021

  2. Continuous delivery with GitHub Actions

    An introduction to GitHub Actions and automated deployment of three mock microservices from a GitHub repository to an AWS EC2 server.

    Alekhya Katumalla, 11 December 2020

  3. Simulating IoT devices using Go

    Developing and testing IoT code before the hardware arrives: a Modbus TCP test setup that runs entirely on localhost.

    Alekhya Katumalla, 6 June 2020

  4. ELK stack in Docker

    Deploying Elasticsearch, Logstash and Kibana as microservices with Docker. The first in a series on microservice architectures.

    Alekhya Katumalla, 6 June 2020

  5. Creating a Cassandra database cluster for local development

    Cassandra can run as a multi-node cluster that replicates data across nodes. How to set one up for local development.

    Mark Bruggemann, 17 April 2019

  6. Installing WordPress on a virtual private server from scratch

    A step-by-step guide from a raw Ubuntu server to a running WordPress website.

    Johannes Spinneken, 13 December 2018

Programming in Go and Python

  1. Maps in Go

    Why deleting during iteration is safe in Go but not in C++, and why Go’s iteration order changes: a look at both implementations.

    Mark Bruggemann, 18 August 2022

  2. Writing function main in Go

    How to structure the main function in Go so that errors and resources are handled efficiently and safely.

    Mark Bruggemann, 6 June 2020

  3. Working with package time in Go

    Some of the functionality of the standard library time package, and a few issues we hit when first getting to grips with it.

    Mark Bruggemann, 28 May 2019

  4. Solving ODEs in Python

    How to numerically integrate an ordinary differential equation in Python.

    Mark Bruggemann, 23 November 2018

  5. Parsing data files with Python

    Techniques for effective parsing of data files in Python 3.

    Mark Bruggemann, 23 November 2018

Engineering applications

  1. Wave tank testing

    The joy of working with water waves: what goes into testing devices in a wave tank, and some of the facilities we have worked in.

    Johannes Spinneken, 27 December 2018

Something different

  1. Drawing manga

    We know drawing manga isn’t tech. But it’s fun.

    Wrnwrn Tan, 24 November 2018