Difference between revisions of "Userspace Arduino"
(→Toolchain) |
m (Corrected error in untar syntax) |
||
(29 intermediate revisions by 4 users not shown) | |||
Line 5: | Line 5: | ||
* [http://anujdeshpande.wordpress.com/ Anuj Deshpande's Blog] about his work on the project | * [http://anujdeshpande.wordpress.com/ Anuj Deshpande's Blog] about his work on the project | ||
</div> | </div> | ||
− | <br> | + | <br /> |
+ | This page documents research on creating a userspace executable using the wiring and Processing language used with Arduino. | ||
+ | <br /> | ||
+ | = Getting Started = | ||
+ | == Image == | ||
− | + | === Beaglebone Black === | |
− | |||
− | = | ||
− | |||
− | == | ||
− | |||
− | |||
− | |||
+ | The examples have been tested to work on production images later than [https://s3.amazonaws.com/angstrom/demo/beaglebone/BBB-eMMC-flasher-2013.06.20.img.xz 2013.06.20]. You will need a 4 GB (or greater) microSD card for flashing the Beaglebone Black, a process which may take well over 45 minutes. It is documented on the [http://circuitco.com/support/index.php?title=Updating_The_Software CircuitCo wiki]. If you are unsure which image is currently loaded on the Beaglebone Black, check it at [http://www.crashcourse.ca/wiki/index.php/Examining_your_BBB_install_version http://www.crashcourse.ca/wiki/index.php/Examining_your_BBB_install_version]. | ||
== Toolchain == | == Toolchain == | ||
− | |||
=== BeagleBone Black === | === BeagleBone Black === | ||
<pre> | <pre> | ||
− | ~$ wget http://www.angstrom-distribution.org/toolchains/angstrom- | + | ~$ wget http://www.angstrom-distribution.org/toolchains/angstrom-2011.03-x86_64-linux-armv7a-linux-gnueabi-toolchain.tar.bz2 |
− | ~$ sudo tar -C / - | + | ~$ sudo tar -C / -xjf angstrom-2011.03-x86_64-linux-armv7a-linux-gnueabi-toolchain.tar.bz2 |
~$ export PATH=/usr/local/angstrom/arm/bin:$PATH | ~$ export PATH=/usr/local/angstrom/arm/bin:$PATH | ||
+ | ~$ export CROSS_COMPILE=arm-angstrom-linux-gnueabi- | ||
</pre> | </pre> | ||
− | <br> | + | <br /> |
− | * [http://www.angstrom-distribution.org/toolchains/angstrom- | + | Links to 64 and 32 bit versions of Angstrom toolchain. |
− | * [http://www.angstrom-distribution.org/toolchains/angstrom- | + | * [http://www.angstrom-distribution.org/toolchains/angstrom-2011.03-x86_64-linux-armv7a-linux-gnueabi-toolchain.tar.bz2 x86_64-linux-armv7a-linux-gnueabi-toolchain] |
− | <br> | + | * [http://www.angstrom-distribution.org/toolchains/angstrom-2011.03-i686-linux-armv7a-linux-gnueabi-toolchain.tar.bz2 i686-linux-armv7a-linux-gnueabi-toolchain] |
+ | <br /> | ||
+ | |||
=== MinnowBoard === | === MinnowBoard === | ||
* todo | * todo | ||
− | + | ||
=== Raspberry Pi === | === Raspberry Pi === | ||
* todo | * todo | ||
− | |||
+ | == Cloning == | ||
+ | * Clone the repo from https://github.com/prpplague/Userspace-Arduino | ||
+ | git clone https://github.com/prpplague/Userspace-Arduino.git | ||
+ | <br /> | ||
== Running a demo == | == Running a demo == | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<br> | <br> | ||
+ | Running Blink LED program: | ||
+ | <pre> | ||
+ | cd Userspace-Arduino/arduino-makefile/examples/BlinkUserspace | ||
+ | make | ||
+ | </pre> | ||
+ | * A binary BlinkUserspace.elf should be created in a directory build-userspace | ||
+ | * [https://github.com/prpplague/Userspace-Arduino/blob/master/utility/send_exec.sh send-exec] is an upload and execute script, which is integrated with the Arduino-Userspace repository. It uses the scp protocol to copy binaries to the Beaglebone Black over USB/ethernet and execute it. You can find it in the utility folder. | ||
+ | * To use it, simply do | ||
+ | <pre> | ||
+ | make upload | ||
+ | </pre> | ||
+ | * You will now see USR LED 1 blinking at one second intervals. Press Ctrl-C to break from the loop. | ||
+ | * Check out some of the examples in /path/to/Userscape-Arduino/Arduino-Makefile/examples. | ||
+ | ** [http://github.com/prpplague/Userspace-Arduino/blob/master/arduino-makefile/examples/HelloWorldUserspace/HelloWorldUserspace.ino HelloWorldUserspace] | ||
+ | ** [http://github.com/prpplague/Userspace-Arduino/blob/master/arduino-makefile/examples/BlinkUserspace/BlinkUserspace.ino BlinkUserspace] | ||
+ | ** [http://github.com/prpplague/Userspace-Arduino/blob/master/arduino-makefile/examples/BaconDemo/BaconDemo.ino BaconDemo] | ||
+ | ** [https://github.com/prpplague/Userspace-Arduino/blob/master/arduino-makefile/examples/7segment/7segment.ino 7segment] | ||
+ | **[https://github.com/prpplague/Userspace-Arduino/blob/master/arduino-makefile/examples/PWM/PWM.ino PWM] | ||
+ | |||
+ | == Setup SSH keys (optional) == | ||
+ | |||
+ | * If you want to avoid a password prompt, you can set up the ssh keys for the Beaglebone Black: | ||
+ | cd ~/.ssh | ||
+ | ssh-keygen -t dsa #set a password or you can leave it blank | ||
+ | ssh-copy-id -i ~/.ssh/id_dsa.pub root@$192.168.7.2 # replace id_dsa.pub by your public key file if some other name is given | ||
+ | ssh root@192.168.7.2 # login and enter password once | ||
+ | Here after, you won't be prompted for a password from this machine | ||
+ | <br /> | ||
+ | |||
= Boards Supported = | = Boards Supported = | ||
− | <br> | + | <br /> |
== Beaglebone Black == | == Beaglebone Black == | ||
− | Initial development is being done with the Beaglebone Black and the [[ | + | Initial development is being done with the Beaglebone Black and the [[Bacon Cape]] |
+ | * if you have your Beaglebone Black loaded with a firmware image older that 07.11.2013, you will need copy the [[media:BB-BONE-BACONE-00A0.dtbo|Bacon Cape dtbo file]] on to your beaglebone black | ||
+ | <pre> | ||
+ | ~# scp ~/Downloads/BB-BONE-BACONE-00A0.dtbo root@192.168.7.2:/lib/firmware/BB-BONE-BACONE-00A0.dtbo | ||
+ | </pre> | ||
{| border="1" cellspacing="0" cellpadding="5" | {| border="1" cellspacing="0" cellpadding="5" | ||
Line 184: | Line 210: | ||
| | | | ||
|} | |} | ||
− | <br> | + | <br /> |
+ | |||
== MinnowBoard == | == MinnowBoard == | ||
* Initial support started | * Initial support started | ||
* Need Lure accessory board for testing | * Need Lure accessory board for testing | ||
− | <br> | + | <br /> |
== Raspberry Pi == | == Raspberry Pi == | ||
* support planned | * support planned | ||
* will use [[RPi_Gertboard]] for initial development | * will use [[RPi_Gertboard]] for initial development | ||
− | <br | + | <br /> |
− | + | *[[Userspace_Arduino:To Do]] | |
− | + | *[[Userspace_Arduino:Libraries]] | |
− | + | <br /> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | * | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | * | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | <br | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
[[Category:Arduino]] | [[Category:Arduino]] | ||
[[Category: RaspberryPi]] | [[Category: RaspberryPi]] | ||
[[Category: MinnowBoard]] | [[Category: MinnowBoard]] | ||
[[Category: BeagleBoard]] | [[Category: BeagleBoard]] | ||
+ | [[Category: Userspace_Arduino]] |
Revision as of 13:16, 19 July 2013
Development Blogs for the Userspace Arduino project:
- Primary Blog for work on the project
- Parav Nagarsheth's Blog about his work on the project
- Anuj Deshpande's Blog about his work on the project
This page documents research on creating a userspace executable using the wiring and Processing language used with Arduino.
Contents
Getting Started
Image
Beaglebone Black
The examples have been tested to work on production images later than 2013.06.20. You will need a 4 GB (or greater) microSD card for flashing the Beaglebone Black, a process which may take well over 45 minutes. It is documented on the CircuitCo wiki. If you are unsure which image is currently loaded on the Beaglebone Black, check it at http://www.crashcourse.ca/wiki/index.php/Examining_your_BBB_install_version.
Toolchain
BeagleBone Black
~$ wget http://www.angstrom-distribution.org/toolchains/angstrom-2011.03-x86_64-linux-armv7a-linux-gnueabi-toolchain.tar.bz2 ~$ sudo tar -C / -xjf angstrom-2011.03-x86_64-linux-armv7a-linux-gnueabi-toolchain.tar.bz2 ~$ export PATH=/usr/local/angstrom/arm/bin:$PATH ~$ export CROSS_COMPILE=arm-angstrom-linux-gnueabi-
Links to 64 and 32 bit versions of Angstrom toolchain.
MinnowBoard
- todo
Raspberry Pi
- todo
Cloning
- Clone the repo from https://github.com/prpplague/Userspace-Arduino
git clone https://github.com/prpplague/Userspace-Arduino.git
Running a demo
Running Blink LED program:
cd Userspace-Arduino/arduino-makefile/examples/BlinkUserspace make
- A binary BlinkUserspace.elf should be created in a directory build-userspace
- send-exec is an upload and execute script, which is integrated with the Arduino-Userspace repository. It uses the scp protocol to copy binaries to the Beaglebone Black over USB/ethernet and execute it. You can find it in the utility folder.
- To use it, simply do
make upload
- You will now see USR LED 1 blinking at one second intervals. Press Ctrl-C to break from the loop.
- Check out some of the examples in /path/to/Userscape-Arduino/Arduino-Makefile/examples.
Setup SSH keys (optional)
- If you want to avoid a password prompt, you can set up the ssh keys for the Beaglebone Black:
cd ~/.ssh ssh-keygen -t dsa #set a password or you can leave it blank ssh-copy-id -i ~/.ssh/id_dsa.pub root@$192.168.7.2 # replace id_dsa.pub by your public key file if some other name is given ssh root@192.168.7.2 # login and enter password once
Here after, you won't be prompted for a password from this machine
Boards Supported
Beaglebone Black
Initial development is being done with the Beaglebone Black and the Bacon Cape
- if you have your Beaglebone Black loaded with a firmware image older that 07.11.2013, you will need copy the Bacon Cape dtbo file on to your beaglebone black
~# scp ~/Downloads/BB-BONE-BACONE-00A0.dtbo root@192.168.7.2:/lib/firmware/BB-BONE-BACONE-00A0.dtbo
Arduino Pin | BBB Header Pin | Function | Alternate Function |
---|---|---|---|
0 | P9_11 | UART (RXD) | |
1 | P9_13 | UART (TXD) | |
2 | P9_15 | GPIO | |
3 | P9_14 | PWM | |
4 | P9_12 | GPIO | |
5 | P9_16 | PWM | |
6 | P9_42 | PWM | |
7 | P8_19 | GPIO | PWM |
8 | P9_19 | I2C (SCL) | |
9 | P9_20 | I2C (SDA) | |
10 | P9_17 | GPIO | SPI_CS0 |
11 | P9_18 | GPIO | SPI_MOSI |
12 | P9_21 | SPI_MISO | |
13 | P9_22 | GPIO | SCK |
14 | USR LED 0 | LED | |
15 | USR LED 1 | LED | |
16 | USR LED 2 | LED | |
17 | USR LED 3 | LED | |
18 | P9_33 | AIN4 | |
19 | P9_35 | AIN6 | |
20 | P9_36 | AIN5 | |
21 | P9_37 | AIN2 | |
22 | P9_38 | AIN3 | |
23 | P9_39 | AIN0 | |
24 | P9_40 | AIN1 |
MinnowBoard
- Initial support started
- Need Lure accessory board for testing
Raspberry Pi
- support planned
- will use RPi_Gertboard for initial development