Arch Linux on the Raspberry Pi 2

Yes, I already have a couple of Raspberry Pi, but I had to get one of the new Raspberry Pi 2 (model B), to check out its increased processing power with OpenCV and image processing.

So, lets install it. The Arch Linux install page is here. This new RPi2 has a new ARMv7l Cortex-A7 quad-core! Arch Linux has a new distro page dedicated to it. If you want to install the previous RPi model you can also follow my notes, you just have to get the correct SD image here.

Continue reading “Arch Linux on the Raspberry Pi 2”

Using boost library on Windows

From this stackoverflow question:
MSVC has very poor support for the C language, they do not support anything past C90. Herb Sutter has already publicly stated this in his blog.
cstdint is supported from MSVC2012.
There is a msinttypes project that fills the absence of stdint.h and inttypes.h in Microsoft Visual Studio.
Boost also provides boost/cstdint.hpp if you do not have it.

Boost library can be very useful but it is also very big so in this post I’m going to show how to compile it from source code and then how to extract one of its modules and include it in your projects source code.

I also have another post where I compiled Boost.

Continue reading “Using boost library on Windows”

B&R PLC configuration: 4ms task with X20CP1381 CPU + ACOPOSmicro + X20SM1436

I recently used a hardware configuration where a B&R X20CP1381 CPU was controlling a couple of async motors using the ACOPOSmicro and a stepper motor using the X20SM1436. I needed a task running at 4ms but the current configuration was set to 10ms. When you add an ACOPOS controller, the CPU system timer configuration changes automatically to EPL/X2X Interface and the POWERLINK interface is selected, in my case it is the IF3 interface. The POWERLINK cycle time is 10ms by default in a new project.

So, in order to change my tasks cycle time, I have to change the POWERLINK cycle time to 4ms, which allows me to set the #1 Task classes timing to 4ms.

All looked fine, I tested the async motors and they were working, but when I tested the stepper motor I had an error, don’t remember its code but it was something related to timing. I opened the X2X (IF6) bus configuration and changed its cycle time also to 4ms. This fixed the problem! I think the reason is that the ncsdcctrl program is in the cyclic #1 tasks group running at 4ms and the X2X bus was running slower. I guess that if I had placed the ncsdcctrl program in a 10ms task it would also fix the issue, as the X2X cycle time is 10ms by default. Ho well, 10 is not a multiple of 4 so I can’t have a 10ms task, that fix wouldn’t work ;-) So probably the only possible solution is to have the POWERLINK, the X2X bus and the ncsdcctrl program all running at 4ms.

From B&R Automation Studio 3.0.90 to Automation Studio 4.1

I’ve been using B&R Automation Studio 3.0.90 for a few years, but as all IT tools there is always a time when you have to upgrade to the newest version of the software… Well, programmers have to make a living right? Humm… lets not enter into this upgrading subject… :-D

So, as I was saying, I need to start using the new AS 4.1 because some of the new hardware components no longer work with AS 3.0.90 as is the case of the new ACOPOSmulti passive power supply 8B0P0110HW00.000-1.

There are lots of improvements in AS 4.1 but the global feeling is about the same, no steep learning curve ahead to be able to use this new version. That’s a relief.

Continue reading “From B&R Automation Studio 3.0.90 to Automation Studio 4.1”