Difference between revisions of "Userspace Arduino:To Do"

From eLinux.org
Jump to: navigation, search
(Created page with "A to do list of all the things for Userspace Arduino project started in GSoC '13")
 
Line 1: Line 1:
 
A to do list of all the things for Userspace Arduino project started in GSoC '13
 
A to do list of all the things for Userspace Arduino project started in GSoC '13
 +
 +
= Transfer Options =
 +
<br />
 +
== Netcat ==
 +
* GNU Netcat networking tool http://netcat.sourceforge.net/
 +
* Can create a  connection using nc -w 1 192.168.7.2 1114 < new.zip on the server (in this case the machine running the Energia IDE), and nc -lp 1114 > n.zip on the Beaglebone. 1114 is a random port number which has to be the same on client as well as server side.
 +
* Some issue with sending .bin files directly. Mostly it was with how the file ends, not sure. So need to zip the file.
 +
* Requires no authentication
 +
* A script will be needed to listen on a particular port on the BBB for any incoming connections which will receive, unzip and execute the code.
 +
<br />
 +
== ssh/sftp ==
 +
* Needs ssh and sftp installed
 +
* Need to configure keys initially. Works without user authentication after that
 +
* Code to upload and execute binary here : https://github.com/anujdeshpande/send_exec
 +
<br />
 +
== Emulating the Arduino bootloader  ==
 +
* The Arduino Bootloader uses a protocol similar to STK500v1 (over UART, though)
 +
* One way to program (copy) the binaries would be to emulate the protocol on the bone over USB gadget and use AVRDude on the IDE side
 +
* However this would be cumbersome, since the protocol was designed to write bytes to flash memory, not copy files.
 +
* Energia uses mspdebug to flash the MSP430 using a serialized version of JTAG called Spy-Bi-Wire (SBW).
 +
* File transfer protocols over serial like XMODEM and ZMODEM could be explored for an easier and more compatible option to Upload the binaries.
 +
* Install the lrzsz package on both the host (PC) and the client (Beaglebone):
 +
apt-get install lrzsz
 +
* Connect the Beaglebone via USB and determine the port (for e.g. /dev/ttyUSB1). Once the OS is booted up, start the transfer:
 +
sz -vv -b filename.bin < /dev/ttyUSB1 > /dev/ttyUSB1
 +
<br />
 +
== HTTP post ==
 +
* Send executable over port 80
 +
* On BBB, listen for any uploads and execute them
 +
<br />

Revision as of 19:44, 19 July 2013

A to do list of all the things for Userspace Arduino project started in GSoC '13

Transfer Options


Netcat

  • GNU Netcat networking tool http://netcat.sourceforge.net/
  • Can create a connection using nc -w 1 192.168.7.2 1114 < new.zip on the server (in this case the machine running the Energia IDE), and nc -lp 1114 > n.zip on the Beaglebone. 1114 is a random port number which has to be the same on client as well as server side.
  • Some issue with sending .bin files directly. Mostly it was with how the file ends, not sure. So need to zip the file.
  • Requires no authentication
  • A script will be needed to listen on a particular port on the BBB for any incoming connections which will receive, unzip and execute the code.


ssh/sftp


Emulating the Arduino bootloader

  • The Arduino Bootloader uses a protocol similar to STK500v1 (over UART, though)
  • One way to program (copy) the binaries would be to emulate the protocol on the bone over USB gadget and use AVRDude on the IDE side
  • However this would be cumbersome, since the protocol was designed to write bytes to flash memory, not copy files.
  • Energia uses mspdebug to flash the MSP430 using a serialized version of JTAG called Spy-Bi-Wire (SBW).
  • File transfer protocols over serial like XMODEM and ZMODEM could be explored for an easier and more compatible option to Upload the binaries.
  • Install the lrzsz package on both the host (PC) and the client (Beaglebone):
apt-get install lrzsz
  • Connect the Beaglebone via USB and determine the port (for e.g. /dev/ttyUSB1). Once the OS is booted up, start the transfer:
sz -vv -b filename.bin < /dev/ttyUSB1 > /dev/ttyUSB1


HTTP post

  • Send executable over port 80
  • On BBB, listen for any uploads and execute them