Pages

Sunday, April 30, 2017

Connecting Raspberry Pi 3 and Arduino

WOW, I cannot believe that it has been over a year since my last post. Time flies when you're having fun!!!

I've decided it was time to update the last post (it's only been about 16 months!)


  1. Install Jesse Raspbian with Pixel 2017-04-10
  2. Go thru the configuration
    1. Change the pi password
    2. Change the Pi Hostname
    3. Don’t automatically login to ‘pi’ user
  3. Under the Interfaces Tab:
    1. Camera = Disable
    2. SSH = Enable
    3. SPI = Enable
    4. I2C = Enable
    5. Serial = Disable
  4. I don't change anything under the Performance Tab
  5. Under the Localisation Tab:
    1. Change the locale to Canada (English)
    2. Set the Timezone to Canada (America) > Mountain (Edmonton)
    3. I’m still having a problem with changing the keyboard layout
      1. It is a noted problem on the Raspberry Pi Forum
      2. Still using sudo raspi-config to config to Canada > English
  6. sudo apt-get update
  7. sudo apt-get upgrade
  8. sudo adduser robin
  9. add robin to same groups as pi user (dialout for arduino)
  10. sudo apt-get install arduino
  11. sudo apt-get install arduino-mk
  12. Modify avrdude.conf to work with GPIO pins
    1. sudo nano /etc/avrdude.conf
    2. Ctrl-W to find the gpio reference, and uncomment the following lines
    3. programmer
      1. id = "linuxgpio";
      2. desc = "Use the linux sysfs interface to bitbang GPIO lines";
      3. type = "linuxgpio";
      4. reset = ?;
      5. sck = ?;
      6. mosi = ?;
      7. miso = ?;
      8. ;
    4. And change the ? to;
      1. reset = 8 (GPIO # not Actual pin #24, CE0)
      2. sck = 11 (Actual pin #23, SCLK)
      3. mosi = 10 (Actual pin #19, MOSI)
      4. miso = 9 (Actual pin #21, MISO)
    5. Wire up the Arduino ICSP header as follows:
      (RESET is closest to IC)
      -------------------
      | MISO    +5V |
      | SCK     MOSI |
      | RESET  GND |
      -------------------
      1. RESET to Raspi pin 24
      2. SCK to Raspi pin 23
      3. MISO to Raspi pin 21
      4. +5V to Raspi pin 2
      5. MOSI to Raspi pin 19
      6. GND to Raspi pin 6
    6. Type in sudo avrdude -v to ensure avrdude is responding
    7. Type in sudo avrdude -p atmega328p -c linuxgpio -v to ensure avrdude can communicate with the arduino
    8. As mentioned in my previous post, I copy my raspi-git github directory to each Raspi to make it easier to copy common files back and forth.
    9. cp -r ~/raspi-git/Uno/Blink ~ (to copy the blink directory to my home directory)
    10. move to the ~/Blink directory and run the following to download the software into the arduino
      1. sudo avrdude -p atmega328p -c linuxgpio -v -U flash:w:./build-uno/Blink.hex:i
      2. If all goes well this should upload the Blink.hex program to the arduino
    11. Check the Makefile for the following lines:
      1. BOARD_TAG = uno
      2. ARDUINO_PORT = /dev/ttyACM0
      3. ARDUINO_LIBS =
      4. ARDUINO_DIR = /usr/share/arduino
      5. include /usr/share/arduino/Arduino.mk
    12. Check it by modifying the ~/Blink/Blink.ino file and recompiling it
      1. nano ./Blink/Blink.ino
      2. Change the blink rate
      3. Ctrl-x to save
      4. make
      5. sudo avrdude -p atmega328p -c linuxgpio -v -U flash:w:./build-uno/Blink.hex:i
      6. the changes should be apparent on the Arduino LED

No comments:

Post a Comment