This is an old revision of the document!


== Paper-Duino-Pi =======================================

== Introduction =========================================

The Paper-Duino-Pi is an Arduino shield for the Raspberry Pi. Due to the fact that it is designed as Paper-PCB it is easy to create and one doesn't need a printed circuit board. All components are standard electronic parts that are easily available at your favorite electronic shop. Plus they are really cheap. All you need are some electronic knowledge and soldering skills.

One can use the Arduino IDE running on the Raspberry Pi to upload programs on the Paper-Duino-Pi. Once you uploaded the Firmata you have easy access to all the in- and outputs of the Arduino controlled by Pure Data, Python or Processing. This way it's just simple to connect sensores, buttons and potis to control your program running on your Raspberry Pi. It also functions vice versa: connect light, motors, step- and servomotors and control them with the software running on the Raspberry Pi.

== Technical documentation ==============================

Unfortunately one can't use the autoreset function of an actual Arduino, because of the missing DTR line on the serial connector of the Raspberry. Therefore the board was designed with the Atmega 168. With that chip one can burn the bootloader of the old Arduino NG. That Arduino has no autoreset but doesn't need one. That's why you have to reset the Arduino manually to upload a program. After the IDE compiled the sketch you have to reset the Arduino. Once you've done this the IDE starts to upload the program.

Same goes for the Paper-Duino-Pi: Just press the reset-button of the board after you clicked on the upload-button of the IDE (the IDE prints “compiling”). Release it as soon as the uploading begins (the IDE prints “uploading”). Then the upload of the program will start. After the upload is finished the Paper-Duino-Pi needs 6 seconds to start again. These 6 seconds are crucial, for the Paper-Duino-Pi waits for incoming serial dates. So be careful not to send any data because the Paper-Duino-Pi will start to burn these instead of the intended program!

For the header of the board a standard 26 pin header is used - just remove all unnecessary pins (keep the plastic).

Here you can see how to make a paper board and how to burn a bootloader

== For the Future =======================================

The board is designed with the reset pin (of the Atmega chip) connected to 3,3V (with 10 kOhm) and to the GPIO18 pin of the Raspberry Pi. It should be possible to use the autoreset with the GPIO18 as an DTR line. A modification of the Arduino IDE or the avrdude that pull the pin 18 in the right moment will do it. In the future the board in combination of an Atmega 328 can be used as an Arduino Uno clone.

== Linux modification ===================================

For using the serial line of the Raspberry Pi you have to make some small modifications:

In the file: /boot/cmdline.txt
change:
dwc_otg.lpm_enable=0 console=ttyAMA0,11520 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait
to:
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

And in the file: /etc/inittab
comment out:
2:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
to:
#2:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

Because the Arduino IDE is not able to find the tty connection of the serial port (ttyAMA0) you have to mirror it to ttyS0. That is to be done with a file in: /etc/udev/rules.d
then name it (the number is according to the order in which the rules were loaded):
85-paperduinopi.rules
and put in the following line:
KERNEL==“ttyAMA0”, SYMLINK+=“ttyS0”,GROUP=“dialout”,MODE:=0666

More informations:
www,andremiller.net

www.codeandlife.com

== Paper-PCBs ===========================================

paper-duino-pi_13.zip

== Components ===========================================

  • Atmega168
  • 4 low current LEDs
  • crystal 16MHz
  • 2 capacitors 100nF
  • 2 capacitors 22pF
  • resistors: 3x 2kOhm, 3x 1kOhm, 1x 10kOhm
  • reset button
  • headers
  • 26 pin header

=========================================================