Feasibility - am I going down the wrong route?

From the outset I declare that I am an absolute newbie to both forums and programming (at least until a couple of weeks ago!).

I spent a couple of weeks writing an application in Visual Studio using VB Forms for Windows - the application sent instructions to a proprietary board (PIC) using the again proprietary .dll library to communicate via USB to the board.

However, the supplier will not give any details about the hardware or the code in the library so I would be totally dependant on him for maintenance of any kind e.g. hardware failure or as now happens the drivers for the board will not work with Win8.

I therefore decided to look into using the Arduino as my hardware - this is where I now need to understand if I am wasting my time or not.

Essentially, what I am trying to do is run an application on my p.c. (Windows 8, 64 bit) which performs a significant number of calculations and then instructs a stepper motor to move a certain number of steps at a defined speed, delay for a defined period, fire a camera shutter, further delay etc. etc. - the p.c. application will ‘loop’ this instruction until the total number of calculated steps and shutter actuations have completed. There are other controls on the p.c. e.g. Pause, Resume, Abort, Return the motor to a Home position.

I appreciate I could perform some of these steps using the Arduino sketch only - but I would need user interaction in defining / inputting the Speed, Number of Steps between each shutter release, Delay period, etc etc.but I still need the p.c. to collate / store the images taken by the camera and perform many related calculations.

I looked at Firmata as a means of passing instructions from my p.c. application to the Uno - but I am struggling to understand if Firmata can be running and one of the stepper motor sketches can also be running to perform the stepper motor control. I assume I could fire the shutter using an optocoupler and one of the Uno pins.

Once again - apologies - I am suffering information overload and the learning curve is very, very steep - am I wasting my time or not - can anyone point me in the right direction - has anyone attempted something similar I could use as the basis for my project??

Any help much appreciated.


I'm not sure that firmata would be the way to go. From visual basic you can get direct access to the com ports and therefore you can t send instructions to the arduino and also recieve information back from it. For directing the camera and firing "capture" signals, it should be quite doable.

Image data is another story though. It's big and using the arduino to pass this back to the host computer would be rather ambitious. If you can find an alternative signal path for the image data itself then I think it's quite achievable.

This demo is an example of communicating with an Arduino using Python. The principles will be same in any language. The Python program should work on your PC as long as you edit it to put in the correct COM port.

I suggest as a learning exercise you write a short VB program to communicate with the Arduino program as a replacement for the Python program.

Two things to bear in mind. When the PC software opens the serial port the Arduino will reset and that takes a few seconds. The PC program needs to allow for that happening before sending any data. And, because a reset will lose all data on the Arduino your PC program should open the serial port at the start and keep it open until everything is finished.

Don't waste time wondering about an Arduino handling images - it can't.

I am (slowly) writing a Python program to send stepper motor data to an Arduino. It should be equally doable with VB.

You may be also interested to note that an Uno can communicate with a PC at up to 1,000,000 baud even though the max for the Arduino serial monitor is 115200. And a Leonardo can communicate at full USB speed because it doesn't need to use the serial USART.