Tech blog
Notes from our work on real-time control, instrumentation, IoT software and data analysis. Written by the engineers who did the work, with the code and screenshots to follow along.
LabVIEW, EtherCAT and real-time control
-
Hilscher netTAP 100: interfacing communication protocols
Bridging a Modbus RTU device onto an EtherCAT network with the Hilscher netTAP 100 gateway.
-
EL6695: the EtherCAT bridge terminal
How to set up the Beckhoff EL6695 bridge terminal to exchange data between two EtherCAT networks.
-
Setting up a LabVIEW real-time project
A brief introduction to setting up the LabVIEW real-time cRIO and FPGA environment.
-
EtherCAT on LabVIEW and cRIO
Using EtherCAT, a powerful industrial real-time communication protocol, with the NI cRIO, including benchmarking its performance.
-
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.
-
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.
-
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.
-
LabVIEW cRIO real-time loops
How to break, and how not to break, the real-time behaviour of a LabVIEW real-time loop.
Data analytics and machine learning
-
Time series forecasting with Facebook Prophet
Forecasting a time series with Prophet, from data preparation through tuning to evaluating the forecast.
-
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.
-
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.
-
What is new in TensorFlow 2.0
Why you may want to implement your next machine learning project using TensorFlow 2.0.
-
Function interpolation with known piecewise averages
How to “interpolate” a function when all you know are its averages over certain time intervals.
-
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.
IoT, cloud and infrastructure
-
Infrastructure as code
A demonstration of infrastructure as code: deploying an EC2 instance from a CloudFormation template.
-
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.
-
Simulating IoT devices using Go
Developing and testing IoT code before the hardware arrives: a Modbus TCP test setup that runs entirely on localhost.
-
ELK stack in Docker
Deploying Elasticsearch, Logstash and Kibana as microservices with Docker. The first in a series on microservice architectures.
-
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.
-
Installing WordPress on a virtual private server from scratch
A step-by-step guide from a raw Ubuntu server to a running WordPress website.
Programming in Go and Python
-
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.
-
Writing function main in Go
How to structure the main function in Go so that errors and resources are handled efficiently and safely.
-
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.
-
Solving ODEs in Python
How to numerically integrate an ordinary differential equation in Python.
-
Parsing data files with Python
Techniques for effective parsing of data files in Python 3.
Engineering applications
-
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.
Something different
-
Drawing manga
We know drawing manga isn’t tech. But it’s fun.
