Difference between revisions of "Vayu Cape SW images and drivers"

From Yantrr Wiki
Jump to: navigation, search
(Basic Steps for Using GPS)
(Download Files:)
 
(79 intermediate revisions by 4 users not shown)
Line 1: Line 1:
Vayu capes is fully supported for Debian Wheezy ARMHF ([https://www.debian.org/ports/arm/ Official Page]). The kernel tree is based on Robert C Nelson git tree and all the commits are based on the latest kernel.
+
Vayu capes are fully supported for Debian Wheezy ARMHF ([https://www.debian.org/ports/arm/ Official Page]). The kernel tree is based on Robert C Nelson git tree and all the commits are based on the latest kernel.
 
Kindly follow his wiki for detailed steps on how to compile the kernel from scratch. [http://eewiki.net/display/linuxonarm/BeagleBone+Black BBB-RobertCNelson-Main Wiki].
 
Kindly follow his wiki for detailed steps on how to compile the kernel from scratch. [http://eewiki.net/display/linuxonarm/BeagleBone+Black BBB-RobertCNelson-Main Wiki].
  
We have recompiled an SD Card flashable image for easy plug and play demonstration of the Vayu 2G and 3G capes. Additionally we have outlined detailed step by step compilation of this images based on [http://eewiki.net/display/linuxonarm/BeagleBone+Black BBB-RobertCNelson-Main Wiki]. If you are using any other distribution other than debian, the kernel patches are listed, kindly recompile your kernel based on directed patches, enable PPS support (if your capes have GPS timing module) and you should be ready to go.
+
We have compiled a bootable microSD card image for easy plug and play demonstration of the Vayu 2G and 3G capes. Additionally we have outlined detailed step by step compilation of this image based on [http://eewiki.net/display/linuxonarm/BeagleBone+Black BBB-RobertCNelson-Main Wiki].  
 +
If you are using distribution other than debian, the kernel patches are listed, kindly recompile your kernel based on directed patches, enable PPS support (if your capes have GPS timing module) and you should be ready to go.
  
 
We know in world of Linux, things get a bit complicated, we have FAQ's which may help you to unblock, kindly follow these.
 
We know in world of Linux, things get a bit complicated, we have FAQ's which may help you to unblock, kindly follow these.
  
=== Ready to use Debian Wheezy downloadable image ===
+
== Ready to use downloadable Debian Wheezy image ==
A prebuilt SD card image (4GB size), which already hasall the required drivers and extra functions and packages to be used by the Cape can be downloaded from here:
+
* To get started quickly, download and extract image file from the links given below and flash to a 4GB SD CARD.
==== Download Files: ====
+
* This prebuilt SD card image (4GB size) or EMMC flasher image already has all the required drivers and extra functions and packages to be used by the Cape.
 +
 
 +
=== Download Files: ===
 +
 
 
* Download these files from the dropbox:  
 
* Download these files from the dropbox:  
** [https://www.dropbox.com/s/hlm31vvhrc30rfj/BBB_VAYU-00A0.dtbo BBB_VAYU-00A0.dtbo file]
+
** '''<big>MicroSD card Image</big>''' [https://www.dropbox.com/s/fo61fldqha5pjl1/VAYU_Debian_bone70_061215.img.xz?dl=0 VAYU_Debian_bone70_061215.img.xz] and Latest one : [https://www.dropbox.com/s/bh3d9q0k15kiti8/VAYU_4.4_debian_16052017.img.xz?dl=0 VAYU_4.4_debian_16052017.img.xz]
** [https://www.dropbox.com/s/1i4u6k05odx5cg4/BBB_VAYU.dts BBB_VAYU.dts file]
+
** '''<big>eMMC Flasher Image</big>''' [https://www.dropbox.com/s/t03kd8egc4pwqyy/Vayu_emmc_flasher_4GB_3.8.13bone32.img.xz Vayu_emmc_flasher_4GB_3.8.13bone32.img.xz]
** [https://www.dropbox.com/s/1i4u6k05odx5cg4/BBB_VAYU.dts BBB_VAYU.img.gz file CHANGE THIS] Kernel version : 3.8.13-bone32 .
+
** '''<big>Overlay</big>''' [https://www.dropbox.com/s/hlm31vvhrc30rfj/BBB_VAYU-00A0.dtbo BBB_VAYU-00A0.dtbo file] (if using another image, place in /lib/firmware)
* The above image file has:
+
** '''<big>Overlay</big>''' [https://www.dropbox.com/s/1i4u6k05odx5cg4/BBB_VAYU.dts BBB_VAYU.dts file] (for reference only)
** PPS support using the dtbo/dts files for initializing the device tree overlay.  
+
<i> '''Note:''' The dts source file is here for reference only in case you wish to compile the overlay yourself with the dtc compiler.</i>
 +
 
 +
* Extract the image file from the above xz file and then flash it to a 4GB(atleast) sd card. Follow steps mentioned [http://elinux.org/Beagleboard:Updating_The_Software#Image_For_Booting_From_microSD here] for flashing and using the images.
 +
** For linux :
 +
<pre>
 +
unxz VAYU_Debian_bone70_061215.img.xz
 +
sudo dd if=./VAYU_Debian_bone70_061215.img of=/dev/sdX
 +
</pre>
 +
:* Beaglebone Black will boot by default from MicroSD card flashed with '''MicroSD card Image''' , if present in its slot at bootup. With this option, the microSD card is essential and the eMMC is left untouched.
 +
:* Beaglebone Black will also boot by default from MicroSD card flashed with '''eMMC Flasher Image''' but it will then '''Flash the eMMC''', a process that takes around 15 minutes. After flashing is complete, all the 4 LEDs will glow. You can then power off the board, '''remove microSD card''' and power up Beaglebone Black again. Now it will boot up from eMMC with our prebuilt image. With this option, a microSD card is no longer needed.
 +
:* For more detailed instructions, follow this link [http://elinux.org/Beagleboard:Updating_The_Software Updating the Software]
 +
 
 +
* '''The precompiled image file has''':
 +
** PPS GPIO support using the dtbo file for initializing the device tree overlay.  
 
** PPS drivers, required by NTP server.
 
** PPS drivers, required by NTP server.
** USB drivers , required by GSM/WCDMA modem.
+
** USB drivers , required by 3G(UMTS/CDMA) modem.
** NTP server setup ( if using GPS module) with servers set for Asia/India
+
** NTP server preconfigured ( if using GPS module) with servers set for Asia/India
 
** PPPd/Wvdial tool to establish 2G and 3G connection (only Service provider data has to be updated) with sample provider files. We have included AT&T and T-Mobile wvdial conf sample files for US users.
 
** PPPd/Wvdial tool to establish 2G and 3G connection (only Service provider data has to be updated) with sample provider files. We have included AT&T and T-Mobile wvdial conf sample files for US users.
** Helpful scripts for operating GPIOs (under /root/bin for activating/reading pins directly).
+
** Helpful scripts for operating GPIOs (under /root/bin for activating/reading pins directly) and applying overlays and pin settings at bootup (as /root/boot_run.sh ).
  
==== Basic steps for Using Modem ====
+
=== Basic steps for Using 3G (GSM/WCDMA) Modem ===
* Download image file and flash to a 4GB SD CARD.
+
 
* Attach cape to beaglebone black and boot from sd card.  
+
* <big>Attach cape to beaglebone black and boot up .</big>
* Keep USB cable unattached at first. Place a WCDMA enabled SIM card in the SIM card slot.
+
** '''Keep USB cable unattached''' initially from the Beaglebone Black host port.
* After booting, turn on the modem by one of these options:
+
** Place a data-enabled GSM mini-SIM in the SIM card slot. In case of CDMA, the RUIM can be placed in the same SIM card slot.  
** Pressing switch S1 for 4 seconds and releasing, or
+
** In the pre-built image, all the required pin initialization and device tree overlays are applied by commands in the crontab after bootup(of user root).
** Issue the commands:
+
** After bootup is complete, [http://www.elinux.org/Beagleboard:BeagleBoneBlack#Connecting_to_the_BeagleBone_Black:_Serial_Connection.2C_SSH.2C_or_USB login] to Beaglebone Black.
 +
 
 +
* <big>After logging in, turn on the modem by one of these options:</big>
 +
** '''Using Pre-built Image'''
 +
*** Pressing switch S1 for 4 seconds and releasing, or
 +
*** Issue the commands:
 
<pre>
 
<pre>
 +
echo "high" > /sys/class/gpio/gpio45/direction
 +
sleep 4
 
echo "low" > /sys/class/gpio/gpio45/direction
 
echo "low" > /sys/class/gpio/gpio45/direction
 
sleep 4
 
sleep 4
 
echo "high" > /sys/class/gpio/gpio45/direction
 
echo "high" > /sys/class/gpio/gpio45/direction
 
</pre>
 
</pre>
* After some time, LED D4 should start blinking to indicate modem has turned on.  
+
:* '''Using Another Image'''  (without prebuilt USB drivers for GSM/WCDMA modem)
* Attach usb cable between mini USB port (#16) of cape and host port of beaglebone board. Alternatively, if the USB host on cape is also populated,then the USB cable can be kept intact before Board was booted up.
+
<pre>
* Check that modem is visible on the USB bus by:
+
cd /sys/class/gpio/
 +
echo 45 > export
 +
cd gpio45
 +
echo "high" > direction
 +
sleep 4
 +
echo "low" > direction
 +
sleep 4
 +
echo "high" > direction
 +
</pre>
 +
::* After some time, LED D4 should turn on and glow continuously which indicates modem has turned on. This LED, '''NETLIGHT LED''' is a new feature and is functional in latest versions of the cape. Earlier, LED D4 remained off all the time.
 +
::* '''Now, attach usb cable between mini USB port (#16) of cape and host port of Beaglebone Black.''' Alternatively, if the USB host port on cape is also populated,then the USB cable can be kept intact before Board was booted up.
 +
 
 +
* <big>Check that modem is visible on the USB bus by:</big>
 
<pre>
 
<pre>
 
lsusb
 
lsusb
Line 45: Line 81:
 
</pre>
 
</pre>
  
* You can also check that ports will be assigned for the modem by :
+
*<big> You can also check that ports have been assigned for the modem by :</big>
 +
** '''Using Pre-built Image'''
 
<pre>
 
<pre>
 
ls /dev/ttyUSB*
 
ls /dev/ttyUSB*
Line 51: Line 88:
 
/dev/ttyUSB0  /dev/ttyUSB1  /dev/ttyUSB2
 
/dev/ttyUSB0  /dev/ttyUSB1  /dev/ttyUSB2
 
</pre>
 
</pre>
 +
:* '''Using Another Image'''
 +
<pre>
 +
modprobe usbserial vendor=0x21f5 product=0x2012
 +
lsusb
  
* The modem is now ready for use with pon/poff, ppp, Wvdial or any other dialer program.
+
Bus 001 Device 002: ID 0424:2412 Standard Microsystems Corp.
==== Basic Steps for Using GPS ====
+
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
* Using pre-built image.
+
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 +
Bus 001 Device 007: ID 21f5:2012
 +
</pre>
 +
::* System messages show what happened after applying ''modprobe usbserial''
 +
<pre>
 +
dmesg | grep -i usb
 +
 
 +
usb 1-1.1: New USB device found, idVendor=21f5, idProduct=2012
 +
usb 1-1.1: New USB device strings: Mfr=3, Product=2, SerialNumber=4
 +
usb 1-1.1: Product: StrongRising Technologies
 +
usb 1-1.1: Manufacturer: Modem
 +
usb 1-1.1: SerialNumber: 000000000002
 +
usb 1-1.1: usb_probe_device
 +
usb 1-1.1: configuration #1 chosen from 1 choice
 +
usb 1-1.1: adding 1-1.1:1.0 (config #1, interface 0)
 +
usbserial_generic 1-1.1:1.0: usb_probe_interface
 +
usbserial_generic 1-1.1:1.0: usb_probe_interface - got id
 +
usbserial_generic 1-1.1:1.0: The "generic" usb-serial driver is only for testing and one-off prototypes.
 +
usbserial_generic 1-1.1:1.0: Tell linux-usb@vger.kernel.org to add your device to a proper driver.
 +
usbserial_generic 1-1.1:1.0: generic converter detected
 +
usb 1-1.1: generic converter now attached to ttyUSB0
 +
usb 1-1.1: adding 1-1.1:1.1 (config #1, interface 1)
 +
usbserial_generic 1-1.1:1.1: usb_probe_interface
 +
usbserial_generic 1-1.1:1.1: usb_probe_interface - got id
 +
usbserial_generic 1-1.1:1.1: The "generic" usb-serial driver is only for testing and one-off prototypes.
 +
usbserial_generic 1-1.1:1.1: Tell linux-usb@vger.kernel.org to add your device to a proper driver.
 +
usbserial_generic 1-1.1:1.1: generic converter detected
 +
usb 1-1.1: generic converter now attached to ttyUSB1
 +
usb 1-1.1: adding 1-1.1:1.2 (config #1, interface 2)
 +
usbserial_generic 1-1.1:1.2: usb_probe_interface
 +
usbserial_generic 1-1.1:1.2: usb_probe_interface - got id
 +
usbserial_generic 1-1.1:1.2: The "generic" usb-serial driver is only for testing and one-off prototypes.
 +
usbserial_generic 1-1.1:1.2: Tell linux-usb@vger.kernel.org to add your device to a proper driver.
 +
usbserial_generic 1-1.1:1.2: generic converter detected
 +
usb 1-1.1: generic converter now attached to ttyUSB2
 +
</pre>
 +
::* '''It is recommended to add a proper driver for the modem in kernel. The generic driver is not reliable.'''
 +
 
 +
*<big> The modem is now ready for use with pon/poff(PPPd), Wvdial or any other dialer program.</big>
 +
 
 +
=== Basic Steps for Using GPS ===
 +
 
 +
* '''Using pre-built image.'''
 
In the pre-built image, the GPS device is enabled (in crontab under root) by default at bootup on the /dev/ttyO4 port. To quickly test the GPS, issue the following commands:
 
In the pre-built image, the GPS device is enabled (in crontab under root) by default at bootup on the /dev/ttyO4 port. To quickly test the GPS, issue the following commands:
 
<pre>
 
<pre>
Line 60: Line 143:
 
cat /dev/ttyO4
 
cat /dev/ttyO4
 
</pre>
 
</pre>
This should produce the text NMEA messages as received from the GPS device. For more details, see [http://www.yantrr.com/wiki/Configuring_for_GPS_NMEA_and_NTP the GPS and NTP Configuration Page].
+
This should produce the text NMEA messages as received from the GPS device.
* Using another image.
+
<pre>
Since the GPS device is attached to the generic /dev/ttyO4 serial port, it is possible to access it without any special drivers. For this to work, the only additional step required is to enable the device tree overlay for /dev/ttyO4 (uart4) of the beaglebone black:
+
$GPRMC,140615.00,A,2834.25835,N,07720.54109,E,0.033,53.14,240214,0.00,E,D,V*70
 +
$GPVTG,53.14,T,0.00,M,0.033,N,0.061,K,D*12
 +
$GPGGA,140615.00,2834.25835,N,07720.54109,E,1,11,0.80,199.5,M,-36.0,M,,*70
 +
$GPGSA,A,3,07,08,28,09,19,03,27,10,23,13,11,,1.81,0.80,1.62,1*1A
 +
$GPGSV,4,1,15,13,72,176,32,07,53,346,48,19,52,080,38,03,40,052,39,1*69
 +
$GPGSV,4,2,15,23,37,159,33,28,31,255,42,08,29,313,45,27,25,046,37,1*65
 +
$GPGSV,4,3,15,09,23,312,43,11,22,135,28,10,17,260,33,16,08,049,10,1*65
 +
$GPGSV,4,4,15,01,03,150,22,05,00,312,,40,,,38,1*6C
 +
$GPGLL,2834.25835,N,07720.54109,E,140615.00,A,D*64
 +
$GPZDA,140615.00,24,02,2014,-00,00*4F
 +
</pre>
 +
 
 +
* '''Using another image.'''
 +
To ensure that the GPS device is enabled, check the reset signal,'''GPIO 50'''. It should always be '''high''' and in output mode.
 +
<pre>
 +
cd /sys/class/gpio/
 +
echo 50 > export
 +
cd gpio50
 +
echo "high" > direction
 +
</pre>
 +
 
 +
Since the GPS device is attached to the generic /dev/ttyO4 serial port(UART4) on Beaglebone black, it is possible to access it without any special drivers. So we need to enable the device tree overlay for /dev/ttyO4 (uart4) on beaglebone black:
 
<pre>
 
<pre>
 
cd /lib/firmware
 
cd /lib/firmware
echo > /sys/devices/bonecapemgr*/slots
+
echo BB-UART4 > /sys/devices/bone_capemgr.9/slots
 
stty -F /dev/ttyO4 raw 19200
 
stty -F /dev/ttyO4 raw 19200
 
cat /dev/ttyO4
 
cat /dev/ttyO4
 
</pre>
 
</pre>
  
==== Basic Steps for Using PPS ====
+
For more details, see [http://www.yantrr.com/wiki/Configuring_for_GPS_Location_and_Time_Synchronization Configuring for GPS Location and Time Synchronization].
  
==== Pin Usage and Cape compatibility ====
+
=== Basic Steps for Using PPS ===
  
=== Compiling the SD card image from the Scratch ===  
+
For PPS support, it is essential to have PPS drivers enabled in the kernel. For this reason, it is advisable to use the pre-built kernel image or use another image verified to have PPS support built in already. Once this is done, the following steps can be executed:
This section describes how to compile the Debian image from the scratch to enable  
+
 
 +
* Enable PPS pin as interrupt (already done if booting with pre-built image):
 +
<pre>
 +
cd /lib/firmware
 +
echo BBB_VAYU > /sys/devices/bone_capemgr.9/slots
 +
</pre>
 +
 
 +
* Verify pps signal is activated in the kernel
 +
<pre>
 +
/usr/src/pps-tools/ppstest /dev/pps1
 +
</pre>
 +
 
 +
For more details, see [http://www.yantrr.com/wiki/Configuring_for_GPS_Location_and_Time_Synchronization Configuring for GPS Location and Time Synchronization].
 +
 
 +
== Compiling the SD card image from scratch ==  
 +
This section describes how to compile the Debian image from scratch to enable  
 
* PPS drivers, required by NTP server  
 
* PPS drivers, required by NTP server  
* USB drivers , required by WCDMA modem
+
* USB drivers , required by 3G(UMTS/CDMA) modem
 
* Custom wvdial conf file to enable connections  
 
* Custom wvdial conf file to enable connections  
* Device tree overlays to enable cape
+
* Device tree overlays to enable PPS GPIO support
 
* Helpful scripts
 
* Helpful scripts
  
Kindly follow this page for the detailed outlined steps - [[Compiling Yantrr Vayu Drivers on Debian Wheezy]]
+
Kindly follow this page for the detailed outlined steps - <big>'''[[Compiling Yantrr Vayu Drivers on Debian Wheezy]]'''</big>
  
 
== Modifying your existing kernel or other distribution ==
 
== Modifying your existing kernel or other distribution ==
If you are having your own branch of kernel and follow some other linux distribution like Ubuntu, Angstrom, you can use following wiki to recompile the kernel to support Vayu capes. We dont officially support it, but hopefully would make it easier. Note
+
If you are having your own branch of kernel and following some other linux distribution like Ubuntu, Angstrom, you can use following wiki to recompile the kernel to support Vayu capes. We dont officially support it, but hopefully would make it easier.  
 +
 
 +
'''Note : '''
 +
 
 
* Vayu 2G cape - These are fully supported in all linux distribution with device tree and overlay support, you just need the Vayu cape overlay to configure UART's
 
* Vayu 2G cape - These are fully supported in all linux distribution with device tree and overlay support, you just need the Vayu cape overlay to configure UART's
 
* Vayu 2G + GPS capes - These need PPS support for GPIO in kernel, you may need to rebuilt your kernel to enable these, the details are outlined here from make menuconfig.  
 
* Vayu 2G + GPS capes - These need PPS support for GPIO in kernel, you may need to rebuilt your kernel to enable these, the details are outlined here from make menuconfig.  
Line 91: Line 213:
  
 
Following wiki would help you in enabling these if you have correct tools to compile your kernel.
 
Following wiki would help you in enabling these if you have correct tools to compile your kernel.
 +
 +
<span style="color: red"> Coming soon .... </span>
  
 
== FAQ's==
 
== FAQ's==

Latest revision as of 06:21, 17 May 2017

Vayu capes are fully supported for Debian Wheezy ARMHF (Official Page). The kernel tree is based on Robert C Nelson git tree and all the commits are based on the latest kernel. Kindly follow his wiki for detailed steps on how to compile the kernel from scratch. BBB-RobertCNelson-Main Wiki.

We have compiled a bootable microSD card image for easy plug and play demonstration of the Vayu 2G and 3G capes. Additionally we have outlined detailed step by step compilation of this image based on BBB-RobertCNelson-Main Wiki. If you are using distribution other than debian, the kernel patches are listed, kindly recompile your kernel based on directed patches, enable PPS support (if your capes have GPS timing module) and you should be ready to go.

We know in world of Linux, things get a bit complicated, we have FAQ's which may help you to unblock, kindly follow these.

Ready to use downloadable Debian Wheezy image

  • To get started quickly, download and extract image file from the links given below and flash to a 4GB SD CARD.
  • This prebuilt SD card image (4GB size) or EMMC flasher image already has all the required drivers and extra functions and packages to be used by the Cape.

Download Files:

Note: The dts source file is here for reference only in case you wish to compile the overlay yourself with the dtc compiler.

  • Extract the image file from the above xz file and then flash it to a 4GB(atleast) sd card. Follow steps mentioned here for flashing and using the images.
    • For linux :
unxz VAYU_Debian_bone70_061215.img.xz
sudo dd if=./VAYU_Debian_bone70_061215.img of=/dev/sdX 
  • Beaglebone Black will boot by default from MicroSD card flashed with MicroSD card Image , if present in its slot at bootup. With this option, the microSD card is essential and the eMMC is left untouched.
  • Beaglebone Black will also boot by default from MicroSD card flashed with eMMC Flasher Image but it will then Flash the eMMC, a process that takes around 15 minutes. After flashing is complete, all the 4 LEDs will glow. You can then power off the board, remove microSD card and power up Beaglebone Black again. Now it will boot up from eMMC with our prebuilt image. With this option, a microSD card is no longer needed.
  • For more detailed instructions, follow this link Updating the Software
  • The precompiled image file has:
    • PPS GPIO support using the dtbo file for initializing the device tree overlay.
    • PPS drivers, required by NTP server.
    • USB drivers , required by 3G(UMTS/CDMA) modem.
    • NTP server preconfigured ( if using GPS module) with servers set for Asia/India
    • PPPd/Wvdial tool to establish 2G and 3G connection (only Service provider data has to be updated) with sample provider files. We have included AT&T and T-Mobile wvdial conf sample files for US users.
    • Helpful scripts for operating GPIOs (under /root/bin for activating/reading pins directly) and applying overlays and pin settings at bootup (as /root/boot_run.sh ).

Basic steps for Using 3G (GSM/WCDMA) Modem

  • Attach cape to beaglebone black and boot up .
    • Keep USB cable unattached initially from the Beaglebone Black host port.
    • Place a data-enabled GSM mini-SIM in the SIM card slot. In case of CDMA, the RUIM can be placed in the same SIM card slot.
    • In the pre-built image, all the required pin initialization and device tree overlays are applied by commands in the crontab after bootup(of user root).
    • After bootup is complete, login to Beaglebone Black.
  • After logging in, turn on the modem by one of these options:
    • Using Pre-built Image
      • Pressing switch S1 for 4 seconds and releasing, or
      • Issue the commands:
echo "high" > /sys/class/gpio/gpio45/direction
sleep 4
echo "low" > /sys/class/gpio/gpio45/direction
sleep 4
echo "high" > /sys/class/gpio/gpio45/direction
  • Using Another Image (without prebuilt USB drivers for GSM/WCDMA modem)
cd /sys/class/gpio/
echo 45 > export
cd gpio45
echo "high" > direction
sleep 4
echo "low" > direction
sleep 4
echo "high" > direction
  • After some time, LED D4 should turn on and glow continuously which indicates modem has turned on. This LED, NETLIGHT LED is a new feature and is functional in latest versions of the cape. Earlier, LED D4 remained off all the time.
  • Now, attach usb cable between mini USB port (#16) of cape and host port of Beaglebone Black. Alternatively, if the USB host port on cape is also populated,then the USB cable can be kept intact before Board was booted up.
  • Check that modem is visible on the USB bus by:
lsusb

Bus 001 Device 002: ID 0424:2412 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 007: ID 21f5:2012
  • You can also check that ports have been assigned for the modem by :
    • Using Pre-built Image
ls /dev/ttyUSB*

/dev/ttyUSB0  /dev/ttyUSB1  /dev/ttyUSB2
  • Using Another Image
modprobe usbserial vendor=0x21f5 product=0x2012
lsusb

Bus 001 Device 002: ID 0424:2412 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 007: ID 21f5:2012
  • System messages show what happened after applying modprobe usbserial
dmesg | grep -i usb

usb 1-1.1: New USB device found, idVendor=21f5, idProduct=2012
usb 1-1.1: New USB device strings: Mfr=3, Product=2, SerialNumber=4
usb 1-1.1: Product: StrongRising Technologies
usb 1-1.1: Manufacturer: Modem
usb 1-1.1: SerialNumber: 000000000002
usb 1-1.1: usb_probe_device
usb 1-1.1: configuration #1 chosen from 1 choice
usb 1-1.1: adding 1-1.1:1.0 (config #1, interface 0)
usbserial_generic 1-1.1:1.0: usb_probe_interface
usbserial_generic 1-1.1:1.0: usb_probe_interface - got id
usbserial_generic 1-1.1:1.0: The "generic" usb-serial driver is only for testing and one-off prototypes.
usbserial_generic 1-1.1:1.0: Tell linux-usb@vger.kernel.org to add your device to a proper driver.
usbserial_generic 1-1.1:1.0: generic converter detected
usb 1-1.1: generic converter now attached to ttyUSB0
usb 1-1.1: adding 1-1.1:1.1 (config #1, interface 1)
usbserial_generic 1-1.1:1.1: usb_probe_interface
usbserial_generic 1-1.1:1.1: usb_probe_interface - got id
usbserial_generic 1-1.1:1.1: The "generic" usb-serial driver is only for testing and one-off prototypes.
usbserial_generic 1-1.1:1.1: Tell linux-usb@vger.kernel.org to add your device to a proper driver.
usbserial_generic 1-1.1:1.1: generic converter detected
usb 1-1.1: generic converter now attached to ttyUSB1
usb 1-1.1: adding 1-1.1:1.2 (config #1, interface 2)
usbserial_generic 1-1.1:1.2: usb_probe_interface
usbserial_generic 1-1.1:1.2: usb_probe_interface - got id
usbserial_generic 1-1.1:1.2: The "generic" usb-serial driver is only for testing and one-off prototypes.
usbserial_generic 1-1.1:1.2: Tell linux-usb@vger.kernel.org to add your device to a proper driver.
usbserial_generic 1-1.1:1.2: generic converter detected
usb 1-1.1: generic converter now attached to ttyUSB2
  • It is recommended to add a proper driver for the modem in kernel. The generic driver is not reliable.
  • The modem is now ready for use with pon/poff(PPPd), Wvdial or any other dialer program.

Basic Steps for Using GPS

  • Using pre-built image.

In the pre-built image, the GPS device is enabled (in crontab under root) by default at bootup on the /dev/ttyO4 port. To quickly test the GPS, issue the following commands:

stty -F /dev/ttyO4 raw 19200
cat /dev/ttyO4

This should produce the text NMEA messages as received from the GPS device.

$GPRMC,140615.00,A,2834.25835,N,07720.54109,E,0.033,53.14,240214,0.00,E,D,V*70
$GPVTG,53.14,T,0.00,M,0.033,N,0.061,K,D*12
$GPGGA,140615.00,2834.25835,N,07720.54109,E,1,11,0.80,199.5,M,-36.0,M,,*70
$GPGSA,A,3,07,08,28,09,19,03,27,10,23,13,11,,1.81,0.80,1.62,1*1A
$GPGSV,4,1,15,13,72,176,32,07,53,346,48,19,52,080,38,03,40,052,39,1*69
$GPGSV,4,2,15,23,37,159,33,28,31,255,42,08,29,313,45,27,25,046,37,1*65
$GPGSV,4,3,15,09,23,312,43,11,22,135,28,10,17,260,33,16,08,049,10,1*65
$GPGSV,4,4,15,01,03,150,22,05,00,312,,40,,,38,1*6C
$GPGLL,2834.25835,N,07720.54109,E,140615.00,A,D*64
$GPZDA,140615.00,24,02,2014,-00,00*4F
  • Using another image.

To ensure that the GPS device is enabled, check the reset signal,GPIO 50. It should always be high and in output mode.

cd /sys/class/gpio/
echo 50 > export
cd gpio50
echo "high" > direction

Since the GPS device is attached to the generic /dev/ttyO4 serial port(UART4) on Beaglebone black, it is possible to access it without any special drivers. So we need to enable the device tree overlay for /dev/ttyO4 (uart4) on beaglebone black:

cd /lib/firmware
echo BB-UART4 > /sys/devices/bone_capemgr.9/slots
stty -F /dev/ttyO4 raw 19200
cat /dev/ttyO4

For more details, see Configuring for GPS Location and Time Synchronization.

Basic Steps for Using PPS

For PPS support, it is essential to have PPS drivers enabled in the kernel. For this reason, it is advisable to use the pre-built kernel image or use another image verified to have PPS support built in already. Once this is done, the following steps can be executed:

  • Enable PPS pin as interrupt (already done if booting with pre-built image):
cd /lib/firmware
echo BBB_VAYU > /sys/devices/bone_capemgr.9/slots
  • Verify pps signal is activated in the kernel
/usr/src/pps-tools/ppstest /dev/pps1

For more details, see Configuring for GPS Location and Time Synchronization.

Compiling the SD card image from scratch

This section describes how to compile the Debian image from scratch to enable

  • PPS drivers, required by NTP server
  • USB drivers , required by 3G(UMTS/CDMA) modem
  • Custom wvdial conf file to enable connections
  • Device tree overlays to enable PPS GPIO support
  • Helpful scripts

Kindly follow this page for the detailed outlined steps - Compiling Yantrr Vayu Drivers on Debian Wheezy

Modifying your existing kernel or other distribution

If you are having your own branch of kernel and following some other linux distribution like Ubuntu, Angstrom, you can use following wiki to recompile the kernel to support Vayu capes. We dont officially support it, but hopefully would make it easier.

Note :

  • Vayu 2G cape - These are fully supported in all linux distribution with device tree and overlay support, you just need the Vayu cape overlay to configure UART's
  • Vayu 2G + GPS capes - These need PPS support for GPIO in kernel, you may need to rebuilt your kernel to enable these, the details are outlined here from make menuconfig.
  • Vayu 3G & 3G + GPS capes - These may need USB driver support in addition to GPS PPS support.

Following wiki would help you in enabling these if you have correct tools to compile your kernel.

Coming soon ....

FAQ's