Changes

BeagleBone

12,169 bytes added, 05:46, 2 December 2015
Hardware
[[Home | <<< back to Wiki Home]]
 
=Setup=
==Change Hostname==
<syntaxhighlight lang="bash">sudo vi /etc/hostname</syntaxhighlight>
<syntaxhighlight lang="bash">sudo vi /etc/hosts</syntaxhighlight>
==Add public key==
<syntaxhighlight lang="bash">cat ~/.ssh/id_rsa.pub | ssh debian@beaglebone1.local "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys"</syntaxhighlight>
==Debloat==
http://kacangbawang.com/beagleboneblack-revc-debloat-part-1/
==Install devmem2==
https://scivision.co/devmem2-on-the-beaglebone-black/
==Install Adafruit BBBIO==
https://github.com/adafruit/adafruit-beaglebone-io-python
==Install
==Textmate and rmate for simple remote editing==
*install textmate on os x system
*install ruby on beaglebone:
<syntaxhighlight lang="bash">
opkg install ruby
</syntaxhighlight>
*install rmate on beaglebonei:
<syntaxhighlight lang="bash">
gem install rmate
</syntaxhighlight>
*setup ssh tunneling
<syntaxhighlight lang="bash">
ssh -R 52698:localhost:52698 pi@192.168.2.144
</syntaxhighlight>
 
==Disable default services==
<syntaxhighlight lang="bash">
systemctl disable bone101
systemctl disable cloud9
systemctl disable gateone
</syntaxhighlight>
 
==Copy OS to microSD card==
*Download OS (.img.xz)
*unzip
*figure out what your card is. check df before and after inserting the card:
<syntaxhighlight lang="bash">
df -h</syntaxhighlight>
*unmount the drive:
<syntaxhighlight lang="bash">
diskutil unmountDisk /dev/disk2s1</syntaxhighlight>
*copy image to drive:
<syntaxhighlight lang="bash">
dd if=Angstrom-Cloud9-IDE-GNOME-eglibc-ipk-v2012.12-beaglebone-2013.06.20.img of=/dev/rdisk2 bs=1m</syntaxhighlight>
==Default boot from SD card==
*boot beaglebone while holding the S2 button (by SD card reader). this boots from the sd card.
*rename the MLO file from /media/BEAGLEBONE/ :
<syntaxhighlight lang="bash">
cd /media/BEAGLEBONE
mv MLO MLO_bak
</syntaxhighlight>
*The beaglebone will now boot from microSD until you replace the MLO file.
 
==Edimax WiFi fix==
for debian 3.8.13-bone70
*http://www.feverlabs.org/2015/03/edimax-wifi-adapter-on-beaglebone-black/
Basically, disable HDMI output.
 
likely due to HDMI interference.
alternately, use a usb extension cable :)
 
*boot wifi
<syntaxhighlight lang="bash">sudo ifup wlan0</syntaxhighlight>
if it works...
<syntaxhighlight lang="bash">sudo ifup wlan0
ioctl[SIOCSIWAP]: Operation not permitted
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument
Internet Systems Consortium DHCP Client 4.2.2
Copyright 2004-2011 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
 
Listening on LPF/wlan0/80:1f:02:bf:23:52
Sending on LPF/wlan0/80:1f:02:bf:23:52
Sending on Socket/fallback
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 5
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 5
DHCPREQUEST on wlan0 to 255.255.255.255 port 67
DHCPOFFER from 10.1.10.1
DHCPACK from 10.1.10.1
bound to 10.1.10.121 -- renewal in 4605 seconds.</syntaxhighlight>
 
*adafruit wifi reset script: https://learn.adafruit.com/setting-up-wifi-with-beaglebone-black?view=all
 
*<syntaxhighlight lang="bash">iwconfig</syntaxhighlight>
 
==What Kernel am I running==
*<code>uname -a</code>
 
==other==
*a lot of good setup stuff here: http://www.gigamegablog.com/2012/01/29/beaglebone-linux-101-configuring-angstrom-linux/
 
=Debugging=
==Find Beaglebone on Local Network==
*MAC Address: C8:A0:30:AB:71:1D (Texas Instruments)
Nmap scan report for 192.168.2.31
**Scan for BBB:
<syntaxhighlight lang="bash">sudo nmap -sP 192.168.2.* | awk '/^Nmap/{ip=$NF}/C8:A0:30/{print ip}'
</syntaxhighlight>
==TTL Cable==
*Install USB drivers
**for os x - http://sourceforge.net/projects/osx-pl2303/
*Connect pins like so:
http://www.adafruit.com/images/large/954bbb_LRG.jpg
 
(RED IS NOT CONNECTED)
*From Terminal, start session:
**<code>screen /dev/cu.usbserial 115200</code>
*http://learn.adafruit.com/adafruits-raspberry-pi-lesson-5-using-a-console-cable/test-and-configure
 
==ssh not working==
*https://groups.google.com/forum/?fromgroups#!topic/beagleboard/Ya2qE4repSY
==want to allow processes to keep running?==
*https://groups.google.com/forum/#!msg/beagleboard/-iNTsNh94HI/faELHCJn_esJ
 
=OpenCV=
==python-opencv==
*install python opencv bindings:
<syntaxhighlight lang="bash">
opkg install python-opencv</syntaxhighlight>
 
=potrace=
*http://potrace.sourceforge.net/#downloading
=gphoto2=
*install libusb-1.0-dev
<syntaxhighlight lang="bash">
opkg install libusb-1.0-dev
</syntaxhighlight>
*download libgphoto2
**http://sourceforge.net/projects/gphoto/files/libgphoto/
*download gphoto2
**http://sourceforge.net/projects/gphoto/files/gphoto/2.5.2/
*build and install libusb, libgphoto2, then gphoto2:
<syntaxhighlight lang="bash">
./configure
make
make install
</syntaxhighlight>
 
=Onboard LEDs=
*flashing an led by hand from terminal: http://elinux.org/EBC_Exercise_10_Flashing_an_LED
 
=GPIO=
==PyBBIO==
*https://github.com/alexanderhiam/PyBBIO
*https://github.com/alexanderhiam/PyBBIO/issues/18
==other==
gpio - http://beaglebone.cameon.net/home/using-the-gpios
 
=Hardware=
==Rechargeable LiPo==
http://www.element14.com/community/community/designcenter/single-board-computers/next-gen_beaglebone/blog/2013/08/10/bbb--rechargeable-on-board-battery-system
==Real Time Clock (RTC)==
http://www.dfrobot.com/image/cache/data/DFR0151/V1.1/IMGP9616-600x600.jpg
*TinyRTC 1.1 - http://www.dfrobot.com/index.php?route=product/product&product_id=879#.UqdVqmT6f3E
**Remove RA1 to operate at 3.3V. (This is an array of pullup resistors for pins SDA - SQ)
*http://learn.adafruit.com/adding-a-real-time-clock-to-beaglebone-black/overview
 
==C920==
===software===
*boneCV - https://github.com/derekmolloy/boneCV/
===capturing===
*capture 300 frames of H264 at 1920 x 1080 to output.raw:
<syntaxhighlight lang="bash">
capture -F -o -c 300 > output.raw
</syntaxhighlight>
*capture and convert with audio:
<syntaxhighlight lang="bash">
./capture -F -o -c0|avconv -re -i - -f alsa -ac 2 -i hw:1,0 -strict experimental -threads 0 -acodec aac -ab 64k -ac 2 -vcodec copy avtest.mp4
scp avtest.mp4 rtwomey@192.168.2.31:~/Movies
</syntaxhighlight> from [http://nerdlogger.com/2013/11/09/streaming-1080p-video-using-raspberry-pi-or-beaglebone-black/ here]
 
===convert to mpg4===
<syntaxhighlight lang="bash">
raw2mpg4
</syntaxhighlight>
or
<syntaxhighlight lang="bash">
ffmpeg -f h264 -i output.raw -vcodec copy output.mp4
</syntaxhighlight>
 
===formats===
<syntaxhighlight lang="bash">
v4l2-ctl --list-formats-ext
</syntaxhighlight>
*set resolution:
<syntaxhighlight lang="bash">
v4l2-ctl --set-fmt-video=width=960,height=720,pixelformat=1
</syntaxhighlight>
*
 
===streaming===
*http://www.oz9aec.net/index.php/beaglebone/476-turning-the-beaglebone-into-a-high-definition-ip-camera
*RTP - http://derekmolloy.ie/streaming-video-using-rtp-on-the-beaglebone-black/
*UPD - multicast - http://derekmolloy.ie/udp-video-streaming-beaglebone-black/
 
===dash cam===
*http://zachhuff386.github.io/dashcam/
**BeagleBone Black (16gb/1080p/30fps/Logitech C920): 9 hrs 30 mins
 
==Servo==
*https://groups.google.com/forum/?fromgroups#!topic/beagleboard/NBm14riUIts
*https://groups.google.com/forum/?fromgroups#!topic/beagleboard/wjbOVE6ItNg
**implementation in bonescript https://github.com/jadonk/bonescript/blob/master/node_modules/bonescript/index.js
*by hand http://www.phys-x.org/rbots/index.php?option=com_content&view=article&id=106:lesson-3-beaglebone-black-pwm&catid=46:beaglebone-black&Itemid=81
 
=Serial Communication=
==Ubuntu==
*use wget to fetch setup tools:
**<code>wget https://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg#md5=fe1f997bc722265116870bc7919059ea</code>
*install setuptools:
**<code>sudo sh setuptools-0.6c11-py2.7.egg</code>
*install pyserial:
**<code>sudo easy_install pyserial</code>
==Angstrom==
*update opkg:
**<code>opkg update</code>
*install pyserial:
**<code>opkg install python-pyserial</code>
 
=Pockesphinx=
*https://groups.google.com/forum/?fromgroups=#!topic/beagleboard/aBznzq_bNuU
*Install libasound2, alsa-dev, and alsa-lib-dev. (libasound and alsa-lib-dev were already installed on my beaglebone black):
**<code>opkg install alsa-dev</code>
*Get sphinxbase and pocketsphinx, preferrably putting them in a code directory.:
**<code>wget http://sourceforge.net/projects/cmusphinx/files/sphinxbase/0.8/sphinxbase-0.8.tar.gz</code>
**<code>wget http://sourceforge.net/projects/cmusphinx/files/pocketsphinx/0.8/pocketsphinx-0.8.tar.gz </code>*Unzip:**<code>tar -xzf sphinxbase-0.8.tar.gz</code>**<code>tar -xzf pocketsphinx-0.8.tar.gz</code>*Generate configuration files. '''Configure without python.''' In the sphinxbase-0.8 directory:**<code>./autogen.sh --without-python</code>=Supercollider=*http://supercollider.github.io/development/building-beagleboneblack.html
=Audio=
http*purchase usb sound card.*connect stereo microphone. *record audio with arecord:**<code>arecord -D sysdefault -t wav -c 2 -r 44100 -f S16_LE -v binaural2.wav</code>*play audio:**<code>aplay binaural2.wav</wwwcode>*use the ALSA mixer to set recording levels, output levels, etc.tigal.com/product:**<code>alsamixer</2924code> 
=Debian=
*http://elinux.org/BeagleBoardDebian
=Installing Ubuntu=
*The instructions below are written for linux. I installed from a Ubuntu live USB drive (Ubuntu 13) on my macbook pro (os x 10.8).
*Once you are booted in ubuntu on your non-beagleboard system, follow instructions here:
**http://elinux.org/BeagleBoardUbuntu#Method_1:_Download_a_Complete_Pre-Configured_Image
*there will probably be missing packages
*you may need to add universe to package repository to get those missing packages:
**<code>sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main universe restricted multiverse"</code>
*list disks:
**<code>diskutil list</code>
 
=Curses=
*install python-curses:
**<code>opkg install python-curses</code>
=Oki Data Microline 320/1Turbo=
*plug in Sabrent usb to parallel adapter
*should show up in device tree as: /dev/usb/lp0
*echo arbitrary text to lp0 from bash shell:
<syntaxhighlight lang="bash">echo "I didn't realize it could be so fast" > /dev/usb/lp0</syntaxhighlight>
*print to lp from python:
<syntaxhighlight lang="python">lp = open("/dev/lp0","w")
lp.write("Hello World!\n")
lp.close()</syntaxhighlight>
http://rosettacode.org/wiki/Hello_world/Line_printer#Python
==CUPS on beaglebone==
*Install CUPS:
<syntaxhighlight lang="bash">opkg install cups</syntaxhighlight>
*List available printers:
<syntaxhighlight lang="bash">lpinfo -v</syntaxhighlight>
*Add ML320 as new printer:
<syntaxhighlight lang="bash">lpadmin -p ML320 -E -v usb://OKI%20DATA%20CORP/ML320/1TURBO</syntaxhighlight>
*Enable ML320:
<syntaxhighlight lang="bash">cupsenable ML320</syntaxhighlight>
*https://groups.google.com/forum/#!topic/beagleboard/Tn-rQfOdEPg
*https://wiki.archlinux.org/index.php/CUPS_printer-specific_problems
=OSC messaging on the beaglebone=
*http://das.nasophon.de/pyliblo/
*http://liblo.sourceforge.net/
 
=Run a Script on Login (Start a Service)=
==Make a Shell Script==
'''launch_mirror.sh''' - launches my python script as detached screen session
<syntaxhighlight lang="bash">
#!/bin/bash
 
cd /home/root/convexmirror
/usr/bin/screen -dmS mirror /home/root/convexmirror/convex_mirror.py
</syntaxhighlight>
make the scrip user executable
<syntaxhighlight lang="bash">
chmod u+x
</syntaxhighlight>
 
==Make a Service==
make a service file:
<syntaxhighlight lang="bash">
vi /lib/systemd/system/cvxmirror.service
</syntaxhighlight>
'''cvxmirror.service''':
<syntaxhighlight lang="bash">
[Unit]
Description=Runs looping convex mirror code
After=syslog.target network.target
 
[Service]
Type=forking
ExecStart=/home/root/convexmirror/launch_mirror.sh
 
[Install]
WantedBy=multi-user.target
</syntaxhighlight>
make links:
<syntaxhighlight lang="bash">
cd /etc/systemd/system/
ln /lib/systemd/system/cvxmirror.service cvxmirror.service
</syntaxhighlight>
make system take notice:
<syntaxhighlight lang="bash">
systemctl daemon-reload
</syntaxhighlight>
start service manually:
<syntaxhighlight lang="bash">
systemctl start cvxmirror.service
</syntaxhighlight>
stop service manually:
<syntaxhighlight lang="bash">
systemctl stop cvxmirror.service
</syntaxhighlight>
enable on startup:
<syntaxhighlight lang="bash">
systemctl enable cvxmirror.service
</syntaxhighlight>
 
'''Run and don't exit'''
call bash afterwards. it will keep the screen process open
<syntaxhighlight lang="bash">
/usr/bin/screen -dmS printing bash -c '/home/debian/children/okidata_udp_server.py; exec bash'
</syntaxhighlight>
'''Run service on network boot'''
<syntaxhighlight lang="bash">
After=syslog.target network-online.target
</syntaxhighlight>
 
 
 
http://www.nunoalves.com/open_source/?p=308
http://kezhong.wordpress.com/2011/11/19/creating-my-own-systemd-service-files-on-fedora-16x86_64/
=Other=
*video on C++ programming with Beaglebone - http://www.youtube.com/watch?feature=endscreen&NR=1&v=vFv_-ykLppo
*Contest. Win 2 free beagleboards - http://elinux.org/BeagleBoard/contest