Archive for the ‘Programming’ Category

I am learning the Windows Device Driver development, and came to the BixVReader on BixVReader and VSmartCard.

  • Compiling from the source
    1. Clone the VSmartCard from github, go to .\vsmartcard\virtualsmartcard\win32 and you will find .sln file for visual studio, open in using visual studio 2015
    2. Install Windows Driver Kit 10.0, Windows SDK 10.0 and Wix Toolset
    3. Now you should be able to compile it successfully. In my case I did not change any configuration (default debug x64), it will produce the drivers file including the installer.
  • Installing the drivers manually (more…)

Read Full Post »

In case anyone is looking for existing implementation of DES MAC ISO 9797 ALG3 for M1 and M2 on Python 3. The difference between M1 is start padding is 0x00 while M2 is 0x80. This algorithm is useful to validate a cryptogram returned from “Generate AC” command in EMV transactions.

Hope it helps 🙂 (more…)

Read Full Post »

Any of you who is using EPOS from MAXON motor and LabVIEW Real-Time might face the same problem with me. The RS232 -IMHO- is not fast enough to achieve real-time communication between the EPOS and RT controller, also I am using the LV-RT for the main program, thus it will be difficult to synchronize between two LVs program from two different computers which mainly caused by the communication overhead. The problem got worse when I knew that we could not download the EPOS dll file onto the RT. After getting my answer from NI forum, I decided to use the CAN Protocol which can reach up to 1Mbps.

CANOpen Terminate 120 Ohm

For the first trial, we have the IXXAT CAN-USB device. The question is, how to interface USB device to the RT? Because if I use this device, then it will be RT <-> USB <-> CAN, which means that I need a driver for IXXAT CAN-USB for the RT! I emailed the IXXAT company, the engineer replied that they do not support the LV-RT. Anyway I successfully send command through CANOpen with this device on Windows platform, but (more…)

Read Full Post »

Another basic article. My first time with LabView Real-Time. I decided to write a program to control an R/C servo motor with LV-RT. With PXI-7358, I decided to use the digital I/O, just by turning on and off the port according to the time constraint. I did not read the manual in detail, so I am afraid I missed something, but when I did a test how long the time took for turning the digital port from on to off was around 1.5 ms, and from on to off took 250 uS. It means that it is not possible to drive the R/C servo with digital I/O when the pulse needed should be between 200-2500 uS.

Here’s the code when I did a measurement on the time of digital I/O switching on-off: (more…)

Read Full Post »

Again, still LabVIEW beginner. 🙂 I am currently reading an ebook titled “LabVIEW based Advanced Instrumentation System” by S. Sumanthi and P. Surekha, and IMHO this is a good book for beginner. I wish I could finish reading this book as soon as possible, because time is what I do not have 😦

Two days ago, I tried to control a stepper motor with ULN2803 and LabVIEW. FYI -again- I am new to LabVIEW, so don’t expect too much from this article. I have NI-PCI 6221 and NI-PXI 7358 with me, the later is specifically manufactured for motion controller but still it has the digital I/O. And in this article I am using the motion controller digital I/O to control the stepper, if you only have DAQmx you also still can use it to drive your stepper motor, because to control stepper motor only need digital output which you can generate from your DAQmx.

Here’s the LV source code:


Read Full Post »

Yesterday, I tried to control a stepper motor using the L297 IC driver, but then I realized that I need another IC which could drive high current to the motor, similar to darlington transistor arrays. The ICs are being purchased at the moment for the need of lab experiment taught by my friend.

Oh well, I decided to learn how to generate a simple PWM in PCI-6221 on LabView -as you know I am always new in this, too many functions available, and I am not used to graphical programming-.

I utilized the counter 0 (DevX/ctr0) to turn on a LED (light emitting diode) that it will flicker according to the signal given. For this card the LED is located on PFI 12 (pin number 2).

Here is the front panel, where user can interact with the program: (more…)

Read Full Post »

AFAIK, NI provides three ways of programming for the instruments they produce, they are:

  1. LabView, a graphical based programming
  2. LabWindows/CVI, a GUI programming based on C language
  3. Object Oriented Programming based language (C++, I am using MSVS2005)

You can see my desktop of these 3 “programming style:” (more…)

Read Full Post »

Older Posts »