Skip to content

Instantly share code, notes, and snippets.

@erikkallen
Last active October 16, 2015 19:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save erikkallen/11345674 to your computer and use it in GitHub Desktop.
Save erikkallen/11345674 to your computer and use it in GitHub Desktop.

Raspberry PI as Arduino network programmer

This guide will show you how to program an Arduino connected to your Raspberry PI from the Arduino IDE on your local computer. Linux and OS X for now

###On your Raspberry PI

First install avrdude

apt-get install avrdude

Install avrdude-rpi using the installation tips from https://github.com/deanmao/avrdude-rpi they boil down to this:

wget https://raw.githubusercontent.com/deanmao/avrdude-rpi/master/autoreset
wget https://raw.githubusercontent.com/deanmao/avrdude-rpi/master/avrdude-autoreset
sudo cp autoreset /usr/bin
sudo cp avrdude-autoreset /usr/bin
sudo mv /usr/bin/avrdude /usr/bin/avrdude-original
sudo ln -s /usr/bin/avrdude-autoreset /usr/bin/avrdude

Next open the file /usr/bin/autoreset and change the reset pin to the pin you connected the Arduino reset to. The GPIO pin number corresponds to the number of the pin of the header.

vim /usr/bin/autoreset

###On your computer

Download and install Arduino IDE go to the folder containing avrdude On OS X this most likely is /Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin

cd /Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin
mv avrdude avrdude-original
wget https://gist.githubusercontent.com/erikkallen/11153072/raw/3e1cdfdef6aee12b9f0f47b50bc33849612f2a0d/avrdude
chmod +x avrdude

VXI11 Ruby

When working with electronics there is a big chance you need a test setup, This setup often contains big and expensive products like oscilloscopes and signal generators. If your lab has big and expensive devices like this, chances are high that they can be controlled using the VXI11 protocol.

So the generic way of doing this is using windows download the drivers for the device, install something like Labview pay someone a large amount of money and your good to go.

But what if you don't like windows or paying a large amount of money, and you happen to have some ruby skills. Well that's where the VXI11 gem comes in handy.

So how do you use it?

# First require the gem
require 'vxi11'
# Create an instance of the VXI11 class
v = VXI11.new
# Search for devices
v.find_devices
# Connect to a found device
v.connect "10.0.0.1"
# Send the commands
puts v.send_and_receive "*IDN?"

The example above is for getting the identification of a vxi11 device and should be implmented on any vxi11 capable device. The other commands should be in the manual specific to your device.

So that's it for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment