Getting started with programming

I want to automate a test stand using NCD devices. The operator would input some parameters, the test data would be logged to a file and some real-time graphs would be displayed. I understand I2C devices and know how to do this using raw I2C and say python on a Raspberry Pi. But I would like to do this on Windows.

I understand that I will need the I2C-USB converter and get the API wrapper bit. So I suppose I could just use Python on Windows. But there seem to be better options. Particularly if what I want in the end result is a dashboard. Like NodeRed or Visual Studio. Thoughts?

The down side to I2C on windows is there is no I2C support on Windows. As you said you can use the USB to I2C converter, but it’s not native I2C so you can’t just use Existing Python drivers for I2C. If you want to use Python to communicate to I2C devices on Windows then you’re going to need to write a driver for that using the documentation we provide for the USB to I2C converter.

I’m not that familiar with NodeRed, but I’ve looked up the csv node and it looks like it will do what I need. So actually if I do use NodeRed than it would seem to make sense to do the interfacing on the RPi and just access the dashboard over the network.

I’ve looked at a few videos and it seems I can log sensor data to a CSV file at intervals and I can graph sensor data in real-time. Is it practical /possible to do both at the same time using NodeRed? I was thinking to write the datalogger in python and have NodeRed read the CSV. Can NodeRed update graphs with CSV as the source as new rows are added?


Which I2C devices are you planning to use? We have limited I2C device support for Node-Red. You can filter the repos on this repository by ncd-red and you will see the I2C devices supported there:

Yes, you can monitor sensor readings and store them to CSV files in Node-Red. Node-Red is very straight forward and simple to learn. Node-Red can read the CSV. Keep in mind only one application can connect to the USB to I2C converter at a time so Python and Node-Red cannot both interface with it.

I’m confused. Is there any development environment or libraries that fully support most of your devices? How do you envision/intend that developers will use your devices? Is NodeLynk just a hardware standard without software libraries?

In some ways it seems that Alpha Station is the intended canonical way to develop for all your devices. But it is confusing as well and a lot of front-end learning to get started.

The NodeLynk series or rapid development series was intended to be a hardware platform for software/firmware developers who have experience with writing application code but do not have experience with hardware. Since we did not invest significant time and resources into library development we are able to sell the series at a low cost. Most generally it costs more, development wise, to write libraries and drivers than it does to design the hardware. If we had developed robust libraries and drivers for the series the cost would be more than 3 times higher.

Alpha Station is simply an experimentation tool that allows the user to learn the capabilities and interface with the hardware.

We did develop some Node-Red libraries for the more popular products in the series but it’s not possible to develop a Node-Red library that handles the capabilities of all products in the series since it is vast and variable.

I do a good deal of programming using Node-RED and devices over i2c. I use the RaspberryPi to host everything and attach the IO. The dashboard is viewed either locally on the Rpi via a 7" touch screen, or via my desktop or laptop via Chrome browser. Works very well. I probably have 10 different i2c devices on the same bus on one RaspberryPi4B 4GB model. See my projects on under SonoraTechnical.