
<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://www.armadeus.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Salocin68</id>
		<title>ArmadeusWiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://www.armadeus.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Salocin68"/>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=Special:Contributions/Salocin68"/>
		<updated>2026-04-29T17:08:46Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.26.3</generator>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=OPOS6UL_NANO&amp;diff=14418</id>
		<title>OPOS6UL NANO</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=OPOS6UL_NANO&amp;diff=14418"/>
				<updated>2017-08-08T07:24:17Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: Created page with &amp;quot;Category: OPOS6UL_NANO ==Description==  File:OPOS6UL_NANO.png   The OPOS6UL_NANO is a [https://en.wikipedia.org/wiki/Single-board_computer Single Board Computer].  Her...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: OPOS6UL_NANO]]&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
[[File:OPOS6UL_NANO.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The OPOS6UL_NANO is a [https://en.wikipedia.org/wiki/Single-board_computer Single Board Computer].&lt;br /&gt;
&lt;br /&gt;
Here is a list of the main features:&lt;br /&gt;
* Processor: [http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/i.mx-applications-processors/i.mx-6-processors/i.mx6qp/i.mx-6ultralite-processor-low-power-secure-arm-cortex-a7-core:i.MX6UL i.MX6UL] (i.MX6UL single A7 @ 538MHz, 696MHz in option)&lt;br /&gt;
* RAM: DDR3 800Mbps. Default capacity is 256Mbytes.&lt;br /&gt;
* Flash: [[EMMC OPOS6UL|eMMC]] 4GBytes to 32GBytes (default 4GB), 8 bits data bus.&lt;br /&gt;
* Ethernet: onboard Physical (ready to use Ethernet 10/100Mbit link)&lt;br /&gt;
* USB: High speed USB OTG (OnTheGo), software only&lt;br /&gt;
* USB: High speed Host&lt;br /&gt;
* TFT CMOS interface&lt;br /&gt;
* Wi-Fi (option): b/g/n with u.FL antenna&lt;br /&gt;
* Bluetooth (option): BT 4.1 (Low Energy compatible)&lt;br /&gt;
* Only one external supply of 3.3V required.&lt;br /&gt;
* Mechanical dimensions: 37 x 22 mm&lt;br /&gt;
* Connector: NGFF (M.2) 67pts&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
* [[Datasheet#OPOS6UL_NANO | Datasheet and schematics]]&lt;br /&gt;
&lt;br /&gt;
==Workaround==&lt;br /&gt;
* When you get that kind of error at Wi-Fi initialisation:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* You can try to unload/reload the driver:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# modprobe -r brcmfmac&lt;br /&gt;
# modprobe brcmfmac&lt;br /&gt;
[ 1881.792273] brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Aug 29 2016 20:48:16 version 7.45.41.26 (r640327) FWID 01-4527cfab&lt;br /&gt;
[ 1881.850588] brcmfmac: brcmf_cfg80211_reg_notifier: not a ISO3166 code (0x30 0x30)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Feature list==&lt;br /&gt;
* [[OPOS6UL_NANO Linux kernel status]]&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; summary=&amp;quot;Hardware Add-Ons by functionnalities&amp;quot;&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
===Video===&lt;br /&gt;
====Video Out====&lt;br /&gt;
* [[LCD]]&lt;br /&gt;
* [[FrameBuffer]]&lt;br /&gt;
&lt;br /&gt;
====Video In====&lt;br /&gt;
*[[Camera interface]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
===Wired communication===&lt;br /&gt;
* [[Uart|UART]]&lt;br /&gt;
* [[SPI]]&lt;br /&gt;
* [[I2C]]&lt;br /&gt;
* [[USB_Host]]&lt;br /&gt;
* [[USB_Gadget]]&lt;br /&gt;
* [[USB_OTG]]&lt;br /&gt;
* [[CAN_bus_Linux_driver|CAN bus]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
===Wireless communication===&lt;br /&gt;
* [[Wifi|Wi-Fi usage on Linux]]&lt;br /&gt;
* [[Bluetooth|Bluetooth usage on Linux]]&lt;br /&gt;
&lt;br /&gt;
===Storage===&lt;br /&gt;
&lt;br /&gt;
* [[EMMC OPOS6UL|eMMC]]&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
* [[PWM]]&lt;br /&gt;
* [[GPIOlib]]&lt;br /&gt;
* [[Linux_Dynamic_Frequency_Scaling|Frequency scaling]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Development boards==&lt;br /&gt;
* [[OPOS6ULDev]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MainBoards]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=Hardware&amp;diff=14417</id>
		<title>Hardware</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=Hardware&amp;diff=14417"/>
				<updated>2017-08-08T07:20:08Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* Main Boards (APFxx and OPOSxx modules) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Armadeus Boards==&lt;br /&gt;
The following boards are developed by [http://www.armadeus.com Armadeus Systems].&amp;lt;br&amp;gt; Members of the Armadeus Project association can purchase these products at discount prices. Take a look at the [[Association]] page for details.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; summary=&amp;quot;Hardware Add-Ons by functionnalities&amp;quot;&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; |&lt;br /&gt;
=== Main Boards (APFxx and OPOSxx modules)===&lt;br /&gt;
* [[APF9328]]: i.MXL based module&lt;br /&gt;
* [[APF27]]: i.MX27 based module&lt;br /&gt;
* [[APF51]]: i.MX51 based module&lt;br /&gt;
* [[APF28]]: i.MX28 based module&lt;br /&gt;
* [[APF6]]: i.MX6 based module&lt;br /&gt;
* [[APF6_SP]] : i.MX6 based module with CycloneV FPGA&lt;br /&gt;
* [[OPOS6UL]] : i.MX6UL based module&lt;br /&gt;
* [[OPOS6UL_NANO]] : i.MX6UL based nano module&lt;br /&gt;
* [[Footprints]] : Footprint available for APFxx module&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
=== Baseboards ===&lt;br /&gt;
* [[OPOS6ULDev]]: full featured development board for the [[OPOS6UL]]&lt;br /&gt;
* [[APF6Dev]]: full featured development board for the APF6&lt;br /&gt;
* [[APF28Dev]]: full featured development board for the APF28&lt;br /&gt;
* [[APF51Dev]]: full featured development board for the APF51&lt;br /&gt;
* [[APF27Dev]]: full featured development board for the APF27 (with several options)&lt;br /&gt;
* [[APF27 PPS]]/PPS: network applications development board for the APF27&lt;br /&gt;
* [[PPS51]]: network applications development board for the APF51&lt;br /&gt;
* No more available:&lt;br /&gt;
** [[APF9328DevLight]]: low cost development board for the APF9328&lt;br /&gt;
** [[APF9328DevFull]]: full featured development board for the APF9328&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=== Extension Boards ===&lt;br /&gt;
* [[Chimei_LW700|LW700AT_Adapt]]: Adapter for the Chimei LW700 TFT LCD&lt;br /&gt;
* [[Wireless_extension_board|APW wireless board]]: Add WiFi &amp;amp; Bluetooth &amp;amp; GPS &amp;amp; GSM to your [[APF27Dev]]&lt;br /&gt;
* [[SP_VISION]]: Extension with Spartan6 FPGA, for video processing&lt;br /&gt;
* No more available:&lt;br /&gt;
** [[LQ043_Adapt]]: Adapter for the Sharp LQ043 TFT LCD&lt;br /&gt;
** [[MTF-T035|MTF-T035_Adapt]]: Adapter for the Microtips MTF-T035 TFT LCD&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
=== Demo Boards ===&lt;br /&gt;
* [[HMS Demo]]: industrial demo platform&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
* [http://kicad-pcb.org/ Kicad EDA tool]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=Datasheet&amp;diff=14076</id>
		<title>Datasheet</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=Datasheet&amp;diff=14076"/>
				<updated>2016-09-22T10:08:19Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* OPOS6UL_Dev */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Armadeus datasheets and schemas =&lt;br /&gt;
&lt;br /&gt;
To see all documentation available for the board clic on the title.&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf9328/ APF9328] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf9328/documentation/dataSheet_APF9328.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf9328/hardware/apf_schema.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf9328DevLight/ APF9328Devlight] ==&lt;br /&gt;
* Datasheet [http://www.armadeus.com/_downloads/apf9328DevLight/documentation/dataSheet_APF9328_DevLight.pdf V1] [http://www.armadeus.com/_downloads/apf9328DevLight/documentation/dataSheet_APF9328_DevLight_V2.pdf V2]&lt;br /&gt;
*  Schemas [http://www.armadeus.com/_downloads/apf9328DevLight/hardware/dev_light_schema_v1.2.pdf V1.2] [http://www.armadeus.com/_downloads/apf9328DevLight/hardware/dev_light_schema.pdf V2]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf9328DevFull/ APF9328DevFull] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf9328DevFull/documentation/DataSheet_APF9328_DevFull.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf9328DevFull/hardware/apf9328_dev_schematics_v1_1.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf27/ APF27] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27/documentation/datasheet_apf27.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27/hardware/apf27_V1.2.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf27Dev/ APF27Dev] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27Dev/documentation/dataSheet_APF27Dev.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27Dev/hardware/apf27_devfull_12.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf27_PPS/ PPS (APF27)] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27_PPS/documentation/datasheet_pps.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27_PPS/hardware/pps_v11.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf28/ APF28] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf28/documentation/datasheet_apf28.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf28/hardware/apf28_v10.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf28_Dev/ APF28_DEV] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf28_Dev/documentation/dataSheet_APF28Dev.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf28_Dev/hardware/apf28_dev_V10.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf51/ APF51] ==&lt;br /&gt;
* Datasheet&lt;br /&gt;
** [http://www.armadeus.com/_downloads/apf51/documentation/datasheet_apf51_V1.pdf  APF51_V1]&lt;br /&gt;
** [http://www.armadeus.com/_downloads/apf51/documentation/datasheet_apf51_V2.pdf  APF51_V2]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf51/hardware/apf51_v10.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf51_Dev/ APF51Dev] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf51_Dev/documentation/dataSheet_APF51Dev.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf51_Dev/hardware/apf51_dev_V12.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf6/ APF6] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf6/documentation/datasheet_apf6.pdf Datasheet]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf6Dev/ APF6Dev] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf6Dev/documentation/dataSheet_APF6_Dev.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf6Dev/hardware/apf6_dev_V2.pdf Schematics]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf6_SP/ APF6_SP] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf6_SP/documentation/datasheet_apf6SP.pdf Datasheet]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/opos6ul/ OPOS6UL] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/opos6ul/documentation/datasheet_opos6ul.pdf Datasheet]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/opos6ul_dev/ OPOS6UL_Dev] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/opos6ul_dev/documentation/datasheet_opos6ul_Dev.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/opos6ul_dev/hardware/opos6UL_dev_V12.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/sp6_vision/ SP_VISION] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/sp6_vision/datasheet_sp_vision.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/sp6_vision/hardware/sp_vision_eval_board_V05.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/lw700at_adapt/ LW700] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/lw700at_adapt/documentation/datasheet_lw700at_adapt.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/lw700at_adapt/hardware/LW700AT_adapt_v0B.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apw/ APW] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apw/documentation/datasheet_APW.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apw/hardware/apf27_wireless_V0C.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/lcd_adapt_LQ043 LQ043] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/lcd_adapt_LQ043/documentation/datasheet_lq043_adapt.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/lcd_adapt_LQ043/hardware/lq043_adapt_schematics_v0a.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
= HMS Demo =&lt;br /&gt;
* Datasheet&lt;br /&gt;
* Schema&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=Datasheet&amp;diff=14075</id>
		<title>Datasheet</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=Datasheet&amp;diff=14075"/>
				<updated>2016-09-22T10:06:51Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* OPOS6UL_Dev */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Armadeus datasheets and schemas =&lt;br /&gt;
&lt;br /&gt;
To see all documentation available for the board clic on the title.&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf9328/ APF9328] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf9328/documentation/dataSheet_APF9328.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf9328/hardware/apf_schema.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf9328DevLight/ APF9328Devlight] ==&lt;br /&gt;
* Datasheet [http://www.armadeus.com/_downloads/apf9328DevLight/documentation/dataSheet_APF9328_DevLight.pdf V1] [http://www.armadeus.com/_downloads/apf9328DevLight/documentation/dataSheet_APF9328_DevLight_V2.pdf V2]&lt;br /&gt;
*  Schemas [http://www.armadeus.com/_downloads/apf9328DevLight/hardware/dev_light_schema_v1.2.pdf V1.2] [http://www.armadeus.com/_downloads/apf9328DevLight/hardware/dev_light_schema.pdf V2]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf9328DevFull/ APF9328DevFull] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf9328DevFull/documentation/DataSheet_APF9328_DevFull.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf9328DevFull/hardware/apf9328_dev_schematics_v1_1.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf27/ APF27] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27/documentation/datasheet_apf27.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27/hardware/apf27_V1.2.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf27Dev/ APF27Dev] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27Dev/documentation/dataSheet_APF27Dev.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27Dev/hardware/apf27_devfull_12.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf27_PPS/ PPS (APF27)] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27_PPS/documentation/datasheet_pps.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27_PPS/hardware/pps_v11.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf28/ APF28] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf28/documentation/datasheet_apf28.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf28/hardware/apf28_v10.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf28_Dev/ APF28_DEV] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf28_Dev/documentation/dataSheet_APF28Dev.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf28_Dev/hardware/apf28_dev_V10.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf51/ APF51] ==&lt;br /&gt;
* Datasheet&lt;br /&gt;
** [http://www.armadeus.com/_downloads/apf51/documentation/datasheet_apf51_V1.pdf  APF51_V1]&lt;br /&gt;
** [http://www.armadeus.com/_downloads/apf51/documentation/datasheet_apf51_V2.pdf  APF51_V2]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf51/hardware/apf51_v10.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf51_Dev/ APF51Dev] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf51_Dev/documentation/dataSheet_APF51Dev.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf51_Dev/hardware/apf51_dev_V12.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf6/ APF6] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf6/documentation/datasheet_apf6.pdf Datasheet]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf6Dev/ APF6Dev] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf6Dev/documentation/dataSheet_APF6_Dev.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf6Dev/hardware/apf6_dev_V2.pdf Schematics]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf6_SP/ APF6_SP] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf6_SP/documentation/datasheet_apf6SP.pdf Datasheet]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/opos6ul/ OPOS6UL] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/opos6ul/documentation/datasheet_opos6ul.pdf Datasheet]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/opos6ul_dev/ OPOS6UL_Dev] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/opos6ul_dev/documentation/dataSheet_opos6ul_Dev.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/opos6ul_dev/hardware/opos6UL_Dev_V12.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/sp6_vision/ SP_VISION] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/sp6_vision/datasheet_sp_vision.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/sp6_vision/hardware/sp_vision_eval_board_V05.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/lw700at_adapt/ LW700] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/lw700at_adapt/documentation/datasheet_lw700at_adapt.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/lw700at_adapt/hardware/LW700AT_adapt_v0B.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apw/ APW] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apw/documentation/datasheet_APW.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apw/hardware/apf27_wireless_V0C.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/lcd_adapt_LQ043 LQ043] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/lcd_adapt_LQ043/documentation/datasheet_lq043_adapt.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/lcd_adapt_LQ043/hardware/lq043_adapt_schematics_v0a.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
= HMS Demo =&lt;br /&gt;
* Datasheet&lt;br /&gt;
* Schema&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=Datasheet&amp;diff=14074</id>
		<title>Datasheet</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=Datasheet&amp;diff=14074"/>
				<updated>2016-09-22T10:06:32Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* OPOS6UL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Armadeus datasheets and schemas =&lt;br /&gt;
&lt;br /&gt;
To see all documentation available for the board clic on the title.&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf9328/ APF9328] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf9328/documentation/dataSheet_APF9328.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf9328/hardware/apf_schema.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf9328DevLight/ APF9328Devlight] ==&lt;br /&gt;
* Datasheet [http://www.armadeus.com/_downloads/apf9328DevLight/documentation/dataSheet_APF9328_DevLight.pdf V1] [http://www.armadeus.com/_downloads/apf9328DevLight/documentation/dataSheet_APF9328_DevLight_V2.pdf V2]&lt;br /&gt;
*  Schemas [http://www.armadeus.com/_downloads/apf9328DevLight/hardware/dev_light_schema_v1.2.pdf V1.2] [http://www.armadeus.com/_downloads/apf9328DevLight/hardware/dev_light_schema.pdf V2]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf9328DevFull/ APF9328DevFull] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf9328DevFull/documentation/DataSheet_APF9328_DevFull.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf9328DevFull/hardware/apf9328_dev_schematics_v1_1.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf27/ APF27] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27/documentation/datasheet_apf27.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27/hardware/apf27_V1.2.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf27Dev/ APF27Dev] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27Dev/documentation/dataSheet_APF27Dev.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27Dev/hardware/apf27_devfull_12.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf27_PPS/ PPS (APF27)] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27_PPS/documentation/datasheet_pps.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27_PPS/hardware/pps_v11.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf28/ APF28] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf28/documentation/datasheet_apf28.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf28/hardware/apf28_v10.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf28_Dev/ APF28_DEV] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf28_Dev/documentation/dataSheet_APF28Dev.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf28_Dev/hardware/apf28_dev_V10.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf51/ APF51] ==&lt;br /&gt;
* Datasheet&lt;br /&gt;
** [http://www.armadeus.com/_downloads/apf51/documentation/datasheet_apf51_V1.pdf  APF51_V1]&lt;br /&gt;
** [http://www.armadeus.com/_downloads/apf51/documentation/datasheet_apf51_V2.pdf  APF51_V2]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf51/hardware/apf51_v10.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf51_Dev/ APF51Dev] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf51_Dev/documentation/dataSheet_APF51Dev.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf51_Dev/hardware/apf51_dev_V12.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf6/ APF6] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf6/documentation/datasheet_apf6.pdf Datasheet]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf6Dev/ APF6Dev] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf6Dev/documentation/dataSheet_APF6_Dev.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf6Dev/hardware/apf6_dev_V2.pdf Schematics]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf6_SP/ APF6_SP] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf6_SP/documentation/datasheet_apf6SP.pdf Datasheet]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/opos6ul/ OPOS6UL] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/opos6ul/documentation/datasheet_opos6ul.pdf Datasheet]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/opos6ul_Dev/ OPOS6UL_Dev] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/opos6ul_Dev/documentation/dataSheet_opos6ul_Dev.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/opos6ul_Dev/hardware/opos6UL_Dev_V12.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/sp6_vision/ SP_VISION] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/sp6_vision/datasheet_sp_vision.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/sp6_vision/hardware/sp_vision_eval_board_V05.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/lw700at_adapt/ LW700] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/lw700at_adapt/documentation/datasheet_lw700at_adapt.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/lw700at_adapt/hardware/LW700AT_adapt_v0B.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apw/ APW] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apw/documentation/datasheet_APW.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apw/hardware/apf27_wireless_V0C.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/lcd_adapt_LQ043 LQ043] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/lcd_adapt_LQ043/documentation/datasheet_lq043_adapt.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/lcd_adapt_LQ043/hardware/lq043_adapt_schematics_v0a.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
= HMS Demo =&lt;br /&gt;
* Datasheet&lt;br /&gt;
* Schema&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=OPOS6ULDev&amp;diff=14073</id>
		<title>OPOS6ULDev</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=OPOS6ULDev&amp;diff=14073"/>
				<updated>2016-09-22T09:58:43Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* Feature list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: OPOS6UL]]&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
This is the Armadeus System's standard development board/baseboard for the [[OPOS6UL]] module.&lt;br /&gt;
&lt;br /&gt;
[[Image:OPOS6UL_Dev.png]]&lt;br /&gt;
&lt;br /&gt;
==Errata==&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
* [[Datasheet#APF6Dev | Datasheet and schematics]]&lt;br /&gt;
* [http://www.armadeus.com/english/products-development_boards-apf6_dev.html Product page on Armadeus Systems website]&lt;br /&gt;
&lt;br /&gt;
==Feature list==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; summary=&amp;quot;Hardware Add-Ons by functionnalities&amp;quot;&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
===Audio===&lt;br /&gt;
* [[S/PDIF]]: audio in/out&lt;br /&gt;
* [[ALSA]]&lt;br /&gt;
&lt;br /&gt;
===Video Out===&lt;br /&gt;
* [[LCD]]&lt;br /&gt;
* [[BackLight]]&lt;br /&gt;
* [[FrameBuffer]]&lt;br /&gt;
&lt;br /&gt;
===Video In===&lt;br /&gt;
*[[Camera interface]]&lt;br /&gt;
||&lt;br /&gt;
===User Input===&lt;br /&gt;
* [[Tslib|Touchscreen]]&lt;br /&gt;
&lt;br /&gt;
===Wired communication===&lt;br /&gt;
* [[Uart|UART]]&lt;br /&gt;
* [[SPI]]&lt;br /&gt;
* [[I2C]]&lt;br /&gt;
* [[USB Host]] &lt;br /&gt;
* [[USB_OTG]]&lt;br /&gt;
* [[USB_Gadget]]&lt;br /&gt;
* [[CAN_bus_Linux_driver|CAN bus]]&lt;br /&gt;
&lt;br /&gt;
===Storage===&lt;br /&gt;
* [[MultiMediaCard]]&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
===Wireless communication===&lt;br /&gt;
* [[Wifi|Wi-Fi usage on Linux]]&lt;br /&gt;
* [[Bluetooth|Bluetooth usage on Linux]]&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
* [[GPIOlib]]&lt;br /&gt;
* [[JTAG]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Connectors==&lt;br /&gt;
* RPi compatible connector:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; summary=&amp;quot;RPi compatible connector of OPOS6ULDev&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot;&lt;br /&gt;
! Function !! Function !! Function !! RPi name !! Function !! JX Pin !! JX Pin !! Function !! RPi name !! Function !! Function !! Function&lt;br /&gt;
|-&lt;br /&gt;
| ||  ||  || || 3.3V || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center | '''1''' || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center | '''2''' || 5V ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
| || || || SDA1 || I2C data|| style=&amp;quot;color:yellow;background:black;&amp;quot; align=center | '''3''' || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center | '''4''' || 5V ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
| || || || SCL1 || I2C clock || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center | '''5''' || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center  | '''6''' || GND ||  ||  || || &lt;br /&gt;
|-&lt;br /&gt;
| || || || GPIO7 || GPIO|| style=&amp;quot;color:yellow;background:black;&amp;quot; align=center | '''7''' || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center | '''8''' || UART Tx || TxD || || || &lt;br /&gt;
|-&lt;br /&gt;
| || ||  || || GND|| style=&amp;quot;color:yellow;background:black;&amp;quot; align=center | '''9''' || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center | '''10''' || UART Rx || RxD  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
| || || || GPIO0 || GPIO || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center | '''11''' || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center  | '''12''' || GPIO || || || || &lt;br /&gt;
|-&lt;br /&gt;
| || || || GPIO2 || GPIO || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center | '''13''' || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center  | '''14''' || GND || || || || &lt;br /&gt;
|-&lt;br /&gt;
| || || || GPIO3 || GPIO || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center | '''15''' || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center  | '''16''' || GPIO || || || || &lt;br /&gt;
|-&lt;br /&gt;
| || || || || 3,3V || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center | '''17''' || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center  | '''18''' || GPIO || || || || &lt;br /&gt;
|-&lt;br /&gt;
| || || || || SPI MOSI || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center | '''19''' || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center  | '''20''' || GND || ||  ||  ||  &lt;br /&gt;
|-&lt;br /&gt;
| || || || || SPI MISO || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center | '''21''' || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center  | '''22''' || GPIO || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || || || || SPI CLK || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center | '''23''' || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center  | '''24''' || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || || || || GND || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center | '''25''' || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center  | '''26''' || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || || || || I2C Data || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center | '''27''' || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center | '''28''' || I2C clock || ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
| || || || || GPIO || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center | '''29''' || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center | '''30''' || GND || ||  ||  ||  &lt;br /&gt;
|-&lt;br /&gt;
| || || || || GPIO || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center | '''31''' || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center | '''32''' || GPIO || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || || || || GPIO || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center | '''33''' || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center | '''34''' || GND || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || || || || GPIO || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center | '''35''' || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center | '''36''' || GPIO || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || || || || GPIO || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center | '''37''' || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center | '''38''' || GPIO || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| || || || || GND || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center | '''39''' || style=&amp;quot;color:yellow;background:black;&amp;quot; align=center | '''40''' || GPIO || || ||  ||  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Tips==&lt;br /&gt;
===Bootstrap===&lt;br /&gt;
* Put ''Boot0'' jumper to go in [[Bootstrap]] mode&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
* to activate login in Framebuffer console, please uncomment ''/etc/inittab'' line 35 this way:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# Set up a getty on LCD&lt;br /&gt;
tty1::respawn:/sbin/getty 38400 tty1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:DevelopmentBoards]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=Datasheet&amp;diff=14072</id>
		<title>Datasheet</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=Datasheet&amp;diff=14072"/>
				<updated>2016-09-22T09:57:37Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Armadeus datasheets and schemas =&lt;br /&gt;
&lt;br /&gt;
To see all documentation available for the board clic on the title.&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf9328/ APF9328] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf9328/documentation/dataSheet_APF9328.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf9328/hardware/apf_schema.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf9328DevLight/ APF9328Devlight] ==&lt;br /&gt;
* Datasheet [http://www.armadeus.com/_downloads/apf9328DevLight/documentation/dataSheet_APF9328_DevLight.pdf V1] [http://www.armadeus.com/_downloads/apf9328DevLight/documentation/dataSheet_APF9328_DevLight_V2.pdf V2]&lt;br /&gt;
*  Schemas [http://www.armadeus.com/_downloads/apf9328DevLight/hardware/dev_light_schema_v1.2.pdf V1.2] [http://www.armadeus.com/_downloads/apf9328DevLight/hardware/dev_light_schema.pdf V2]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf9328DevFull/ APF9328DevFull] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf9328DevFull/documentation/DataSheet_APF9328_DevFull.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf9328DevFull/hardware/apf9328_dev_schematics_v1_1.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf27/ APF27] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27/documentation/datasheet_apf27.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27/hardware/apf27_V1.2.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf27Dev/ APF27Dev] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27Dev/documentation/dataSheet_APF27Dev.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27Dev/hardware/apf27_devfull_12.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf27_PPS/ PPS (APF27)] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27_PPS/documentation/datasheet_pps.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27_PPS/hardware/pps_v11.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf28/ APF28] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf28/documentation/datasheet_apf28.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf28/hardware/apf28_v10.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf28_Dev/ APF28_DEV] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf28_Dev/documentation/dataSheet_APF28Dev.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf28_Dev/hardware/apf28_dev_V10.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf51/ APF51] ==&lt;br /&gt;
* Datasheet&lt;br /&gt;
** [http://www.armadeus.com/_downloads/apf51/documentation/datasheet_apf51_V1.pdf  APF51_V1]&lt;br /&gt;
** [http://www.armadeus.com/_downloads/apf51/documentation/datasheet_apf51_V2.pdf  APF51_V2]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf51/hardware/apf51_v10.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf51_Dev/ APF51Dev] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf51_Dev/documentation/dataSheet_APF51Dev.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf51_Dev/hardware/apf51_dev_V12.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf6/ APF6] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf6/documentation/datasheet_apf6.pdf Datasheet]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf6Dev/ APF6Dev] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf6Dev/documentation/dataSheet_APF6_Dev.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf6Dev/hardware/apf6_dev_V2.pdf Schematics]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf6_SP/ APF6_SP] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf6_SP/documentation/datasheet_apf6SP.pdf Datasheet]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/opos6UL/ OPOS6UL] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/opos6ul/documentation/datasheet_opos6ul.pdf Datasheet]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/opos6ul_Dev/ OPOS6UL_Dev] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/opos6ul_Dev/documentation/dataSheet_opos6ul_Dev.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/opos6ul_Dev/hardware/opos6UL_Dev_V12.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/sp6_vision/ SP_VISION] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/sp6_vision/datasheet_sp_vision.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/sp6_vision/hardware/sp_vision_eval_board_V05.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/lw700at_adapt/ LW700] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/lw700at_adapt/documentation/datasheet_lw700at_adapt.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/lw700at_adapt/hardware/LW700AT_adapt_v0B.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apw/ APW] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apw/documentation/datasheet_APW.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apw/hardware/apf27_wireless_V0C.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/lcd_adapt_LQ043 LQ043] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/lcd_adapt_LQ043/documentation/datasheet_lq043_adapt.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/lcd_adapt_LQ043/hardware/lq043_adapt_schematics_v0a.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
= HMS Demo =&lt;br /&gt;
* Datasheet&lt;br /&gt;
* Schema&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=Datasheet&amp;diff=14071</id>
		<title>Datasheet</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=Datasheet&amp;diff=14071"/>
				<updated>2016-09-22T09:47:11Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* OPOS6UL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Armadeus datasheets and schemas =&lt;br /&gt;
&lt;br /&gt;
To see all documentation available for the board clic on the title.&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf9328/ APF9328] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf9328/documentation/dataSheet_APF9328.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf9328/hardware/apf_schema.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf9328DevLight/ APF9328Devlight] ==&lt;br /&gt;
* Datasheet [http://www.armadeus.com/_downloads/apf9328DevLight/documentation/dataSheet_APF9328_DevLight.pdf V1] [http://www.armadeus.com/_downloads/apf9328DevLight/documentation/dataSheet_APF9328_DevLight_V2.pdf V2]&lt;br /&gt;
*  Schemas [http://www.armadeus.com/_downloads/apf9328DevLight/hardware/dev_light_schema_v1.2.pdf V1.2] [http://www.armadeus.com/_downloads/apf9328DevLight/hardware/dev_light_schema.pdf V2]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf9328DevFull/ APF9328DevFull] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf9328DevFull/documentation/DataSheet_APF9328_DevFull.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf9328DevFull/hardware/apf9328_dev_schematics_v1_1.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf27/ APF27] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27/documentation/datasheet_apf27.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27/hardware/apf27_V1.2.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf27Dev/ APF27Dev] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27Dev/documentation/dataSheet_APF27Dev.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27Dev/hardware/apf27_devfull_12.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf27_PPS/ PPS (APF27)] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27_PPS/documentation/datasheet_pps.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27_PPS/hardware/pps_v11.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf28/ APF28] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf28/documentation/datasheet_apf28.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf28/hardware/apf28_v10.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf28_Dev/ APF28_DEV] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf28_Dev/documentation/dataSheet_APF28Dev.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf28_Dev/hardware/apf28_dev_V10.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf51/ APF51] ==&lt;br /&gt;
* Datasheet&lt;br /&gt;
** [http://www.armadeus.com/_downloads/apf51/documentation/datasheet_apf51_V1.pdf  APF51_V1]&lt;br /&gt;
** [http://www.armadeus.com/_downloads/apf51/documentation/datasheet_apf51_V2.pdf  APF51_V2]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf51/hardware/apf51_v10.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf51_Dev/ APF51Dev] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf51_Dev/documentation/dataSheet_APF51Dev.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf51_Dev/hardware/apf51_dev_V12.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf6/ APF6] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf6/documentation/datasheet_apf6.pdf Datasheet]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf6Dev/ APF6Dev] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf6Dev/documentation/dataSheet_APF6_Dev.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf6Dev/hardware/apf6_dev_V2.pdf Schematics]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf6_SP/ APF6_SP] ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf6_SP/documentation/datasheet_apf6SP.pdf Datasheet]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/opos6UL/ OPOS6UL] ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.armadeus.com/_downloads/opos6ul/documentation/datasheet_opos6ul.pdf Datasheet]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/sp6_vision/ SP_VISION] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/sp6_vision/datasheet_sp_vision.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/sp6_vision/hardware/sp_vision_eval_board_V05.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/lw700at_adapt/ LW700] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/lw700at_adapt/documentation/datasheet_lw700at_adapt.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/lw700at_adapt/hardware/LW700AT_adapt_v0B.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apw/ APW] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apw/documentation/datasheet_APW.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apw/hardware/apf27_wireless_V0C.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/lcd_adapt_LQ043 LQ043] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/lcd_adapt_LQ043/documentation/datasheet_lq043_adapt.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/lcd_adapt_LQ043/hardware/lq043_adapt_schematics_v0a.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
= HMS Demo =&lt;br /&gt;
* Datasheet&lt;br /&gt;
* Schema&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=OPOS6UL&amp;diff=14070</id>
		<title>OPOS6UL</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=OPOS6UL&amp;diff=14070"/>
				<updated>2016-09-22T09:46:00Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: OPOS6UL]]&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
[[File:OPOS6UL_NoWB.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The OPOS6UL is a [https://en.wikipedia.org/wiki/Single-board_computer Single Board Computer].&lt;br /&gt;
&lt;br /&gt;
Here is a list of the main features:&lt;br /&gt;
* Processor: [http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/i.mx-applications-processors/i.mx-6-processors/i.mx6qp/i.mx-6ultralite-processor-low-power-secure-arm-cortex-a7-core:i.MX6UL i.MX6UL] (i.MX6UL single A7 @ 538MHz, 696MHz in option)&lt;br /&gt;
* RAM: DDR3 800Mbps. Default capacity is 256Mbytes.&lt;br /&gt;
* Flash: [[EMMC OPOS6UL|eMMC]] 4GBytes to 16GBytes (default 4GB), 8 bits data bus.&lt;br /&gt;
* Ethernet: onboard Physical (ready to use Ethernet 10/100Mbit link)&lt;br /&gt;
* USB: High speed USB OTG (OnTheGo)&lt;br /&gt;
* USB: High speed Host&lt;br /&gt;
* TFT CMOS/LVDS interface&lt;br /&gt;
* Wi-Fi (option): b/g/n with u.FL antenna&lt;br /&gt;
* Bluetooth (option): BT 4.1 (Low Energy compatible)&lt;br /&gt;
* Only one external supply of 3.3V required.&lt;br /&gt;
* Mechanical dimensions: 67.6 x 30 mm&lt;br /&gt;
* Connectors: SODIMM 204 pins&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
* [[Datasheet#OPOS6UL | Datasheet and schematics]]&lt;br /&gt;
&lt;br /&gt;
==Feature list==&lt;br /&gt;
* [[OPOS6UL Linux kernel status]]&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; summary=&amp;quot;Hardware Add-Ons by functionnalities&amp;quot;&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
===Video===&lt;br /&gt;
====Video Out====&lt;br /&gt;
* [[LCD]]&lt;br /&gt;
* [[FrameBuffer]]&lt;br /&gt;
&lt;br /&gt;
====Video In====&lt;br /&gt;
*[[Camera interface]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
===Wired communication===&lt;br /&gt;
* [[Uart|UART]]&lt;br /&gt;
* [[SPI]]&lt;br /&gt;
* [[I2C]]&lt;br /&gt;
* [[USB_Host]]&lt;br /&gt;
* [[USB_Gadget]]&lt;br /&gt;
* [[USB_OTG]]&lt;br /&gt;
* [[CAN_bus_Linux_driver|CAN bus]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
===Wireless communication===&lt;br /&gt;
* [[Wl12xx_driver]]&lt;br /&gt;
* [[Wifi|Wi-Fi usage on Linux]]&lt;br /&gt;
* [[Bluetooth|Bluetooth usage on Linux]]&lt;br /&gt;
&lt;br /&gt;
===Storage===&lt;br /&gt;
&lt;br /&gt;
* [[EMMC OPOS6UL|eMMC]]&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
* [[PWM]]&lt;br /&gt;
* [[GPIOlib]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Development boards==&lt;br /&gt;
* [[OPOS6ULDev]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MainBoards]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=APF6&amp;diff=12938</id>
		<title>APF6</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=APF6&amp;diff=12938"/>
				<updated>2015-01-28T13:50:06Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* Note for APF6 boards */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
The APF6 is a high-end [https://en.wikipedia.org/wiki/Single-board_computer Single Board Computer] targeted for advanced GUI, intensive computation and extended connectivity.&lt;br /&gt;
&lt;br /&gt;
Here is a list of the main features:&lt;br /&gt;
* Processor: [http://www.freescale.com/webapp/sps/site/taxonomy.jsp?code=IMX6X_SERIES i.MX6] (single, dual or quad core Cortex-A9 @ up to 1GHz)&lt;br /&gt;
* RAM: DDR3 1066MHz. 512Mbytes to 2GBytes. 32 ot 64bits data bus. Default capacity will be 512Mbytes.&lt;br /&gt;
* Flash: eMMC 4Gbytes, 8 bits data bus.&lt;br /&gt;
* Ethernet: onboard Physical (ready to use Ethernet 10/100/1000Mbit link)&lt;br /&gt;
* USB: High speed USB OTG (OnTheGo) with onboard Physical (ready to use USB OTG link)&lt;br /&gt;
* USB: High speed Host with integrated PHY&lt;br /&gt;
* PCIexpress Gen2&lt;br /&gt;
* SATA II&lt;br /&gt;
* DVI output&lt;br /&gt;
* TFT CMOS/LVDS interface&lt;br /&gt;
* WiFi (option): b/g/n with u.FL antenna&lt;br /&gt;
* Bluetooth (option): BT 4.0&lt;br /&gt;
* Only one external supply of 3.3V required.&lt;br /&gt;
* Mechanical dimensions: 60x50mm&lt;br /&gt;
&lt;br /&gt;
All the i.MX6 peripherals can be accessed through two high density [[Hirose connectors]].&lt;br /&gt;
&lt;br /&gt;
== Note for APF6 boards ==&lt;br /&gt;
For compatibility reasons with the APF6x_SP the PCIe support has been activated on U-Boot. A warning message appears during the boot startup indicating:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
WARNING: Make sure the PCIe #PERST line is connected&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Do not take care of it if you don't use PCIe commands from uboot.&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
* [[Datasheet#APF6 | Datasheet and schematics]]&lt;br /&gt;
&lt;br /&gt;
==Feature list==&lt;br /&gt;
* [[APF6_Linux_kernel_status]]&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; summary=&amp;quot;Hardware Add-Ons by functionnalities&amp;quot;&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
===Video===&lt;br /&gt;
====Video Out====&lt;br /&gt;
* [[LCD]]&lt;br /&gt;
* [[BackLight]]&lt;br /&gt;
* [[FrameBuffer]]&lt;br /&gt;
* [[DVI_/_HDMI|DVI/HDMI]]&lt;br /&gt;
&lt;br /&gt;
====Video In====&lt;br /&gt;
*[[Camera_interface]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
===Wired communication===&lt;br /&gt;
* [[Uart]]&lt;br /&gt;
* [[SPI]]&lt;br /&gt;
* [[I2C]]&lt;br /&gt;
* [[USB_Host]]&lt;br /&gt;
* [[USB_Gadget]]&lt;br /&gt;
* [[USB_OTG]]&lt;br /&gt;
* [[CAN_bus_Linux_driver|CAN bus]]&lt;br /&gt;
* [[PCIE]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
===Wireless communication===&lt;br /&gt;
* [[Wl12xx_driver]]&lt;br /&gt;
* [[Wifi|WiFi usage on Linux]]&lt;br /&gt;
* [[Bluetooth|Bluetooth usage on Linux]]&lt;br /&gt;
&lt;br /&gt;
===Storage===&lt;br /&gt;
* [[MultiMediaCard]]&lt;br /&gt;
* [[SATA]]&lt;br /&gt;
* [[eMMC]]&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
* [[PWM]]&lt;br /&gt;
* [[GPIOlib]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Development boards==&lt;br /&gt;
* [[APF6Dev]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MainBoards]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=APF6&amp;diff=12937</id>
		<title>APF6</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=APF6&amp;diff=12937"/>
				<updated>2015-01-28T13:49:53Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* Note for APF6 boards */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
The APF6 is a high-end [https://en.wikipedia.org/wiki/Single-board_computer Single Board Computer] targeted for advanced GUI, intensive computation and extended connectivity.&lt;br /&gt;
&lt;br /&gt;
Here is a list of the main features:&lt;br /&gt;
* Processor: [http://www.freescale.com/webapp/sps/site/taxonomy.jsp?code=IMX6X_SERIES i.MX6] (single, dual or quad core Cortex-A9 @ up to 1GHz)&lt;br /&gt;
* RAM: DDR3 1066MHz. 512Mbytes to 2GBytes. 32 ot 64bits data bus. Default capacity will be 512Mbytes.&lt;br /&gt;
* Flash: eMMC 4Gbytes, 8 bits data bus.&lt;br /&gt;
* Ethernet: onboard Physical (ready to use Ethernet 10/100/1000Mbit link)&lt;br /&gt;
* USB: High speed USB OTG (OnTheGo) with onboard Physical (ready to use USB OTG link)&lt;br /&gt;
* USB: High speed Host with integrated PHY&lt;br /&gt;
* PCIexpress Gen2&lt;br /&gt;
* SATA II&lt;br /&gt;
* DVI output&lt;br /&gt;
* TFT CMOS/LVDS interface&lt;br /&gt;
* WiFi (option): b/g/n with u.FL antenna&lt;br /&gt;
* Bluetooth (option): BT 4.0&lt;br /&gt;
* Only one external supply of 3.3V required.&lt;br /&gt;
* Mechanical dimensions: 60x50mm&lt;br /&gt;
&lt;br /&gt;
All the i.MX6 peripherals can be accessed through two high density [[Hirose connectors]].&lt;br /&gt;
&lt;br /&gt;
== Note for APF6 boards ==&lt;br /&gt;
For compatibility reasons with the APF6x_SP the PCIe support has been activated on U-Boot. A warning message appears during the boot startup indicating:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
WARNING: Make sure the PCIe #PERST line is connected&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Do not take care of if you don't use PCIe commands from uboot.&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
* [[Datasheet#APF6 | Datasheet and schematics]]&lt;br /&gt;
&lt;br /&gt;
==Feature list==&lt;br /&gt;
* [[APF6_Linux_kernel_status]]&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; summary=&amp;quot;Hardware Add-Ons by functionnalities&amp;quot;&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
===Video===&lt;br /&gt;
====Video Out====&lt;br /&gt;
* [[LCD]]&lt;br /&gt;
* [[BackLight]]&lt;br /&gt;
* [[FrameBuffer]]&lt;br /&gt;
* [[DVI_/_HDMI|DVI/HDMI]]&lt;br /&gt;
&lt;br /&gt;
====Video In====&lt;br /&gt;
*[[Camera_interface]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
===Wired communication===&lt;br /&gt;
* [[Uart]]&lt;br /&gt;
* [[SPI]]&lt;br /&gt;
* [[I2C]]&lt;br /&gt;
* [[USB_Host]]&lt;br /&gt;
* [[USB_Gadget]]&lt;br /&gt;
* [[USB_OTG]]&lt;br /&gt;
* [[CAN_bus_Linux_driver|CAN bus]]&lt;br /&gt;
* [[PCIE]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
===Wireless communication===&lt;br /&gt;
* [[Wl12xx_driver]]&lt;br /&gt;
* [[Wifi|WiFi usage on Linux]]&lt;br /&gt;
* [[Bluetooth|Bluetooth usage on Linux]]&lt;br /&gt;
&lt;br /&gt;
===Storage===&lt;br /&gt;
* [[MultiMediaCard]]&lt;br /&gt;
* [[SATA]]&lt;br /&gt;
* [[eMMC]]&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
* [[PWM]]&lt;br /&gt;
* [[GPIOlib]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Development boards==&lt;br /&gt;
* [[APF6Dev]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MainBoards]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=APF6&amp;diff=12936</id>
		<title>APF6</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=APF6&amp;diff=12936"/>
				<updated>2015-01-28T13:49:11Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
The APF6 is a high-end [https://en.wikipedia.org/wiki/Single-board_computer Single Board Computer] targeted for advanced GUI, intensive computation and extended connectivity.&lt;br /&gt;
&lt;br /&gt;
Here is a list of the main features:&lt;br /&gt;
* Processor: [http://www.freescale.com/webapp/sps/site/taxonomy.jsp?code=IMX6X_SERIES i.MX6] (single, dual or quad core Cortex-A9 @ up to 1GHz)&lt;br /&gt;
* RAM: DDR3 1066MHz. 512Mbytes to 2GBytes. 32 ot 64bits data bus. Default capacity will be 512Mbytes.&lt;br /&gt;
* Flash: eMMC 4Gbytes, 8 bits data bus.&lt;br /&gt;
* Ethernet: onboard Physical (ready to use Ethernet 10/100/1000Mbit link)&lt;br /&gt;
* USB: High speed USB OTG (OnTheGo) with onboard Physical (ready to use USB OTG link)&lt;br /&gt;
* USB: High speed Host with integrated PHY&lt;br /&gt;
* PCIexpress Gen2&lt;br /&gt;
* SATA II&lt;br /&gt;
* DVI output&lt;br /&gt;
* TFT CMOS/LVDS interface&lt;br /&gt;
* WiFi (option): b/g/n with u.FL antenna&lt;br /&gt;
* Bluetooth (option): BT 4.0&lt;br /&gt;
* Only one external supply of 3.3V required.&lt;br /&gt;
* Mechanical dimensions: 60x50mm&lt;br /&gt;
&lt;br /&gt;
All the i.MX6 peripherals can be accessed through two high density [[Hirose connectors]].&lt;br /&gt;
&lt;br /&gt;
== Note for APF6 boards ==&lt;br /&gt;
For compatibility reasons with the APF6x_SP the PCIe support has been activated on U-Boot. A warning message appears during the boot startup indicating:&lt;br /&gt;
WARNING: Make sure the PCIe #PERST line is connected&lt;br /&gt;
 &lt;br /&gt;
Do not take care of if you don't use PCIe commands from uboot.&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
* [[Datasheet#APF6 | Datasheet and schematics]]&lt;br /&gt;
&lt;br /&gt;
==Feature list==&lt;br /&gt;
* [[APF6_Linux_kernel_status]]&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; summary=&amp;quot;Hardware Add-Ons by functionnalities&amp;quot;&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
===Video===&lt;br /&gt;
====Video Out====&lt;br /&gt;
* [[LCD]]&lt;br /&gt;
* [[BackLight]]&lt;br /&gt;
* [[FrameBuffer]]&lt;br /&gt;
* [[DVI_/_HDMI|DVI/HDMI]]&lt;br /&gt;
&lt;br /&gt;
====Video In====&lt;br /&gt;
*[[Camera_interface]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
===Wired communication===&lt;br /&gt;
* [[Uart]]&lt;br /&gt;
* [[SPI]]&lt;br /&gt;
* [[I2C]]&lt;br /&gt;
* [[USB_Host]]&lt;br /&gt;
* [[USB_Gadget]]&lt;br /&gt;
* [[USB_OTG]]&lt;br /&gt;
* [[CAN_bus_Linux_driver|CAN bus]]&lt;br /&gt;
* [[PCIE]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
===Wireless communication===&lt;br /&gt;
* [[Wl12xx_driver]]&lt;br /&gt;
* [[Wifi|WiFi usage on Linux]]&lt;br /&gt;
* [[Bluetooth|Bluetooth usage on Linux]]&lt;br /&gt;
&lt;br /&gt;
===Storage===&lt;br /&gt;
* [[MultiMediaCard]]&lt;br /&gt;
* [[SATA]]&lt;br /&gt;
* [[eMMC]]&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
* [[PWM]]&lt;br /&gt;
* [[GPIOlib]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Development boards==&lt;br /&gt;
* [[APF6Dev]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MainBoards]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=APF28&amp;diff=12935</id>
		<title>APF28</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=APF28&amp;diff=12935"/>
				<updated>2015-01-28T13:46:06Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
The APF28 is a simple and low cost [https://en.wikipedia.org/wiki/Single-board_computer Single Board Computer] targeted for small GUI, communication and control process.&lt;br /&gt;
&lt;br /&gt;
Here is a list of the main features:&lt;br /&gt;
* Processor: [http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=i.MX286 i.MX28x] (ARM9 @ 454MHz)&lt;br /&gt;
* RAM: DDR2 400. 64 to 512MB. 16 bits data bus. Default capacity is 128MB.&lt;br /&gt;
* Flash: NAND. 256MB to 4GB, 8 bits data bus. Default capacity is 256MB&lt;br /&gt;
* Ethernet: onboard Physical (ready to use Ethernet 10/100Mbit link)&lt;br /&gt;
* USB: High speed USB OTG (OnTheGo) with onboard Physical&lt;br /&gt;
* USB: 1 High speed Hosts with integrated PHY&lt;br /&gt;
* Touchscreen controler (4/5 wires)&lt;br /&gt;
* Low speed ADCs (up to 7)&lt;br /&gt;
* High speed ADC&lt;br /&gt;
* RTC and Watchdog&lt;br /&gt;
* Battery charger (Li-On/Li-Po)&lt;br /&gt;
* Supplies: high end DC/DC converters and LDOs on board. Only one external supply required (5V, batterie or 3.3V).&lt;br /&gt;
* Mechanical dimensions: ~43x25mm&lt;br /&gt;
&lt;br /&gt;
All the i.MX28 peripherals (LCD, SDIO, SPI, 6xSerial, I2C, 2xUSB, PWM, etc...) can be accessed through two high density [[Hirose connectors]].&lt;br /&gt;
&lt;br /&gt;
The APF28 module can be plugged on the [[APF28Dev]] docking board or your own custom devt board.&lt;br /&gt;
&lt;br /&gt;
== Note for APF28i (industrial) boards ==&lt;br /&gt;
the support for the industrial nand used on the board, is ony available on recent GIT sources (GIT Head). Please don't use the 5.3 bsp until a newer BSP release is done. &lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
* [[Datasheet#APF28 | Datasheet and schematics]]&lt;br /&gt;
&lt;br /&gt;
==Feature list==&lt;br /&gt;
* [[APF28_Linux_kernel_status]]&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; summary=&amp;quot;Hardware Add-Ons by functionnalities&amp;quot;&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
===Video Out===&lt;br /&gt;
* [[LCD]]&lt;br /&gt;
* [[BackLight]]&lt;br /&gt;
* [[FrameBuffer]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
===Wired communication===&lt;br /&gt;
* [[Uart]]&lt;br /&gt;
* [[SPI]]&lt;br /&gt;
* [[I2C]]&lt;br /&gt;
* [[USB_OTG]]&lt;br /&gt;
* [[USB_Host]]&lt;br /&gt;
* [[USB_Gadget]]&lt;br /&gt;
&lt;br /&gt;
===Storage===&lt;br /&gt;
* [[MultiMediaCard]]&lt;br /&gt;
===Other===&lt;br /&gt;
* [[PWM]]&lt;br /&gt;
* [[GPIO_Driver]]&lt;br /&gt;
* [[APF28_PMIC]] (Touchscreen, keypad, ADCs, Battery)&lt;br /&gt;
** [[LRADC]]&lt;br /&gt;
* [[Power_management]]&lt;br /&gt;
* [[RTC#APF28 | RTC]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://www.armadeus.com/english/products-processor_boards-apf28.html Product page at Armadeus Systems]&lt;br /&gt;
&lt;br /&gt;
[[Category:MainBoards]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=LinuxInstall&amp;diff=12857</id>
		<title>LinuxInstall</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=LinuxInstall&amp;diff=12857"/>
				<updated>2014-12-17T09:08:13Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* Configure SDK/BSP options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;How-To install Armadeus Software Development Kit (SDK) on Linux systems. This SDK is currently based on the (excellent) [http://buildroot.net/ Buildroot].&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The installation was successfully tested on the following distributions:&lt;br /&gt;
* Debian Lenny (5.0),  Squeeze (6.0.x), wheezy (7.2)&lt;br /&gt;
* X/KUbuntu Edgy Eft (6.10), Gutsy Gibbon (7.10), Hardy Heron (8.04) &amp;amp; Jaunty Jackalope (9.04)&lt;br /&gt;
* Ubuntu  Lucid Lynx (10.04) (32 &amp;amp; 64bits), 12.04 LTS (32 &amp;amp; 64bits), 13.10 (32 &amp;amp; 64bits)&lt;br /&gt;
* Mandriva 2006&lt;br /&gt;
* Fedora Core 3 &amp;amp; 4, Fedora 10, Laughlin (14)&lt;br /&gt;
* Red Hat Enterprise 5.2&lt;br /&gt;
* Gentoo 10.0 (32 &amp;amp; 64 bits)&lt;br /&gt;
* SuSE 10.1, OpenSUSE 11.3 - 12.3&lt;br /&gt;
&lt;br /&gt;
'''The installation may fail on:'''&lt;br /&gt;
* Ubuntu Karmic Koala (9.10): tslib fails to build&lt;br /&gt;
&lt;br /&gt;
'''APF28 requirements:'''&lt;br /&gt;
* APF28 board requires a Linux distribution with (GNU) tar version 1.20 or later to compile the Linux Kernel - Please update or upgrade your Linux distribution. &lt;br /&gt;
&lt;br /&gt;
==Prerequisites for Linux installation==&lt;br /&gt;
{{Note|From here we assume that your Linux system has a ''make'' version '''greater or equal to''' 3.81. To check it: &lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make -v&lt;br /&gt;
GNU Make 3.81&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
For armadeus up to 3.4, make should be '''strictly''' make-3.81 (make-3.82 is too strict). A Fedora (14 and 15) -specific solution can be found later; other recent distributions such as mageia1 also have make-3.82, and a generic solution, based on configure&amp;amp;&amp;amp; make&amp;amp;&amp;amp; sudo make install can be used to install make-3.81 (which can be retrieved from http://ftp.gnu.org/gnu/make/make-6.81.tar.gz) in /usr/local/bin (and , according to one's PATH, make 3-81 can be invoked directly or as /usr/local/bin/make). &lt;br /&gt;
 &lt;br /&gt;
Depending on your distribution, some additional packages are required:&lt;br /&gt;
&lt;br /&gt;
===Debian/Ubuntu based systems===&lt;br /&gt;
[[Ubuntu/Debian installation prerequisites]]&lt;br /&gt;
&lt;br /&gt;
===Mandriva based systems=== &lt;br /&gt;
[[Mandriva installation prerequisites]]&lt;br /&gt;
&lt;br /&gt;
===RPM-based systems (RedHat, Fedora, CentOS)===&lt;br /&gt;
[[RedHat/Fedora installation prerequisites]]&lt;br /&gt;
&lt;br /&gt;
===OpenSuse based systems===&lt;br /&gt;
[[OpenSuse installation prerequisites]]&lt;br /&gt;
&lt;br /&gt;
===Gentoo based systems===&lt;br /&gt;
[[Gentoo installation prerequisites]]&lt;br /&gt;
&lt;br /&gt;
==Get Armadeus software==&lt;br /&gt;
* '''If you are a &amp;quot;careful&amp;quot; user''', then download [https://sourceforge.net/projects/armadeus/files/ the latest stable installation tarball from SourceForge] and detar it wherever you want:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ tar xjvf armadeus-5.3.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* '''If you want the latest snapshot''', the whole development tree can be checked out from our [[GIT]] repository.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ git clone git://git.code.sf.net/p/armadeus/code armadeus&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* depending on your previous choice, a directory named ''armadeus/'' or ''armadeus-5.3/'' will be created on your hard-disk and will contain all the files you need.&lt;br /&gt;
&lt;br /&gt;
'''Remarks''':&lt;br /&gt;
* '''Do not use spaces''' in the directory name !&lt;br /&gt;
* '''Do not use a directory path beginning with /usr.''' It is a known bug of Buildroot (until BR2012.11, at 2012-12).&lt;br /&gt;
* GIT write/push  accesses are limited to the integrators ([[User:JulienB|JulienB]], [[User:Salocin68|Salocin68]], [[User:Jorasse|Jorasse]], [[User:FabienM|FabienM]])&lt;br /&gt;
&lt;br /&gt;
==Configure SDK/BSP options==&lt;br /&gt;
{{Note|If you are new to Armadeus and have troubles compiling armadeus-5.x using the following instructions, you may find some hints here: [[Armadeus 5.0 Troubleshots]], [[Armadeus 5.2 Troubleshots]], [[Armadeus 5.3 Troubleshots]]}}&lt;br /&gt;
*Go to the directory where you put the Armadeus sources:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ cd armadeus/  (or armadeus-5.3/)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*The first time you compile an Armadeus distribution you have to specify the target (here the APF9328) to work with. &lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ make apf9328_defconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This command reloads the default configuration to support your target and automatically start a Buildroot's configuration menu.&lt;br /&gt;
&lt;br /&gt;
* Current valid default configurations are:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
apf9328_defconfig  apf27_defconfig  pps_defconfig  apf28_defconfig  apf51_defconfig  pps51_defconfig apf6_defconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For PPS boards, please see [[APF27_PPS]] or [[PPS51]] Wiki pages, as these boards have specific build.&lt;br /&gt;
&lt;br /&gt;
* After some downloads, you will get the Buildroot configuration interface:&lt;br /&gt;
&lt;br /&gt;
{{Note|If you ever made changes during the following steps, at any time, you can reload the default configuration with:&lt;br /&gt;
 $ make apfxx_defconfig       (xx depending on your board)}}&lt;br /&gt;
&lt;br /&gt;
[[Image:Menuconfig3.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
*If you are not familiar with Buildroot here are some tips:&lt;br /&gt;
*# you can move the highlighted item with the &amp;quot;up&amp;quot;/&amp;quot;down&amp;quot; arrow keys&lt;br /&gt;
*# with the &amp;quot;left&amp;quot;/&amp;quot;right&amp;quot; arrow keys you can choose between &amp;quot;Select&amp;quot;, &amp;quot;Exit&amp;quot; or &amp;quot;Help&amp;quot; buttons&lt;br /&gt;
*# &amp;quot;space&amp;quot;/&amp;quot;enter&amp;quot;:&lt;br /&gt;
*#* selects the currently highlighted item if you are on the &amp;quot;Select&amp;quot; button&lt;br /&gt;
*#* go back in previous menu if you are on &amp;quot;Exit&amp;quot; button&lt;br /&gt;
*#* show you some Help for current item if you are on &amp;quot;Help&amp;quot; button&lt;br /&gt;
*# for more Help about Buildroot commands, select &amp;quot;Help&amp;quot; in the main configuration screen&lt;br /&gt;
&lt;br /&gt;
* Update the memory configuration of your board ('''if needed'''; by default BSP is configured for the minimal memory configuration available on the corresponding board):&lt;br /&gt;
&lt;br /&gt;
:In menu:&lt;br /&gt;
:&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;System configuration  ---&amp;gt;    [*] Armadeus Device Support  ---&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:you can check and change the quantity of RAM available on your Armadeus board:&lt;br /&gt;
:[[Image:Build_config_memory.png]]&lt;br /&gt;
:For [[APF9328]] the memory can be either 16 or 32MiB (be sure to select 1 RAM chip)&lt;br /&gt;
:For [[APF27]] it could be either 64MiB or 128MiB (2 x 64MiB) (in that case be sure to select 2 chips of 64MiB instead of 1 chip of 128MiB).&lt;br /&gt;
:For [[APF51]] it could be either 256MiB or 512MiB (2x256MiB) (in such case be sure to select 2 chips of 256MiB instead of 1 chip of 512).&lt;br /&gt;
:For [[APF28]] The memory can be 128, 256, 512 or 1024MiB (be sure to select 1 RAM chip)&lt;br /&gt;
&lt;br /&gt;
* You may decrease the compilation time by increasing the number of parallel jobs running simultaneously on your system (the result is not guaranteed). This option is located in:&lt;br /&gt;
:&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;Build Options ---&amp;gt;    (0) Number of jobs to run simultaneously&amp;lt;/pre&amp;gt;&lt;br /&gt;
0 means that Buildroot will try to guess automatically how much parallel jobs it can launch.&lt;br /&gt;
&lt;br /&gt;
* During the SDK/BSP build, a lot of software archives are downloaded from Internet. The downloaded files are put by default in the ''armadeus/downloads/'' directory. '''If you have several views or plan to build the toolchain several times''', we advise you to put all the downloaded files in ''/local/downloads'' (for example). This is done by configuring Buildroot to use this directory for all your views. Nevertheless, Buildroot will be downloaded separately for each build environment you set up.&lt;br /&gt;
:&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;Build options  ---&amp;gt;    (...) Download dir&amp;lt;/pre&amp;gt;&lt;br /&gt;
:[[Image:Build_config_download.png]]&lt;br /&gt;
{{Note|Of course, ''/local/downloads'' should exists on your system and you should have writing rights on it !}}&lt;br /&gt;
* In recent Buildroot you can also use the following method:&lt;br /&gt;
 export BUILDROOT_DL_DIR=/local/downloads&lt;br /&gt;
&lt;br /&gt;
* After the build, we advise you to copy all the files in ''downloads/'' / ''/local/downloads'' on a removable medium, in case you want to install the development tools on other systems, without to have to reload all the archives.&lt;br /&gt;
&lt;br /&gt;
* Now, Exit the configuration tool and save your configuration&lt;br /&gt;
&lt;br /&gt;
* You can come back to this configuration menu, by typing (your changes will be kept): &lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Launch build==&lt;br /&gt;
 $ make&lt;br /&gt;
The toolchain and the full distribution are automatically built. During this procedure, several files are downloaded from Internet. &amp;lt;br&amp;gt;&lt;br /&gt;
'''Please wait for a while.... it takes at least one hour for the first run!'''&amp;lt;br&amp;gt;&lt;br /&gt;
By default, the downloaded files/tarball are put in the ''armadeus/downloads/'' directory. Please see the previous chapter to know how to optimize that if you plan to build several views or want to build faster.&lt;br /&gt;
&lt;br /&gt;
==Enjoy the result==&lt;br /&gt;
The generated binary files can be found in the subdirectory ''buildroot/output/images'':&lt;br /&gt;
*''apf9328-u-boot.brec'' (only on [[APF9328]]): BRecord image that can be used with the bootstrap, if U-Boot is not installed or not working (see [[BootLoader]] page)&lt;br /&gt;
*''XX-u-boot.bin'': U-Boot image file to be used with U-Boot itself, (see [[BootLoader#Update_U-Boot | updating U-Boot]])&lt;br /&gt;
*''XX-linux.bin'': Linux image to use with U-Boot, (see [[Target_Software_Installation#Linux_kernel_installation | updating Linux]])&lt;br /&gt;
*''XX-rootfs.jffs2'': JFFS2 filesystem/rootfs image to use with U-Boot, (see [[Target_Software_Installation#Linux_rootfs_installation | updating rootfs]])&lt;br /&gt;
*''XX-rootfs.ubi'' (not supported on [[APF9328]]): [[UBIFS|UBI]] filesystem/rootfs image to use with U-Boot, (see [[Target_Software_Installation#Linux_rootfs_installation | updating rootfs]])&lt;br /&gt;
*''apfXX-rootfs.tar'': for an NFS/MMC based rootfs, (see [[Network_Configuration#Boot_from_NFS | Booting from NFS]] &amp;amp; [[MultiMediaCard#Booting_from_MMC.2FSD | Booting from a MMC/SD]])&lt;br /&gt;
&lt;br /&gt;
'''Please note the new naming convention of binary files and directories (since Armadeus 4.0)'''&lt;br /&gt;
&lt;br /&gt;
*''buildroot/output/build'': contains all the build results for target filesystem, &amp;lt;b&amp;gt;linux&amp;lt;/b&amp;gt;, busybox and &amp;lt;b&amp;gt;u-boot&amp;lt;/b&amp;gt;...&lt;br /&gt;
*''buildroot/output/toolchain/'': cross compilation toolchain's build dir. Binaries usable for cross-compilation are in ''buildroot/output/host/usr/bin''.&lt;br /&gt;
*''buildroot/output/target/'': target filessytem before generating rootfs images&lt;br /&gt;
&lt;br /&gt;
More information is available in the  [http://buildroot.uclibc.org/buildroot.html Buildroot's documentation]&lt;br /&gt;
&lt;br /&gt;
* Note: Previous versions (3.x) of Armadeus SDK stored the generated binary files at a different place: '' ''buildroot/binaries/XX/'' (where XX was the name of your board).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then copy the binary image to your server directory:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ cp buildroot/output/images/* /tftpboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==To keep your local copy/repository up-to-date with the armadeus GIT repository==&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ git pull&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will update your working directory to the latest release.&lt;br /&gt;
&lt;br /&gt;
Note: if &amp;quot;git pull&amp;quot; fails because a directory or a file already exists, then do:&lt;br /&gt;
 $ rm -rf &amp;lt;this-directory/file&amp;gt;&lt;br /&gt;
 $ git pull&lt;br /&gt;
&lt;br /&gt;
You can do a:&lt;br /&gt;
 $ make apfXX_defconfig&lt;br /&gt;
to have the latest features automatically activated.&lt;br /&gt;
&lt;br /&gt;
You have to do a '''make''' to rebuild binary files and then upload the binary files to your target.&lt;br /&gt;
&lt;br /&gt;
Note: if definitively everything goes wrong while it worked before the last update.&lt;br /&gt;
You can apply the following procedure (all your modifications in buildroot will be lost):&lt;br /&gt;
 $ rm -rf buildroot/&lt;br /&gt;
 $ rm Makefile&lt;br /&gt;
 $ git pull&lt;br /&gt;
 $ make apfXX_defconfig&lt;br /&gt;
 $ make&lt;br /&gt;
 $ cp buildroot/output/images/* /tftpboot&lt;br /&gt;
&lt;br /&gt;
Enjoy!&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=Setup&amp;diff=12856</id>
		<title>Setup</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=Setup&amp;diff=12856"/>
				<updated>2014-12-17T09:06:53Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page, you will find all the useful information to configure your Armadeus board for optimum usage.&lt;br /&gt;
&lt;br /&gt;
==First StartUp==&lt;br /&gt;
Just got your Armadeus board and want to start playing with it? &amp;lt;br&amp;gt;&lt;br /&gt;
Follow these quick steps to setup your environment accordingly:&lt;br /&gt;
# Connect your APF module to your development/docking board (custom one or ARMadeus Systems official one) (your system will be hereafter referred to as &amp;quot;the Target&amp;quot;)&lt;br /&gt;
# '''On APF9328Dev/APF27Dev/PPS:''' connect your PC (= &amp;quot;the Host&amp;quot;) to your board with a [http://en.wikipedia.org/wiki/Null_modem null-modem RS-232 cable] (only Rx/Tx/Gnd signals are needed). If you don't have a RS-232 port on your Host, you can use a &amp;quot;USB &amp;lt;-&amp;gt; serial&amp;quot; converter (you'll still need the null-modem cable).&lt;br /&gt;
# '''On APF51Dev/APF28Dev/APF6Dev:''' connect your PC (= &amp;quot;the Host&amp;quot;) to your board with a USB to miniUSB cable. On the APF use the &amp;quot;Debug&amp;quot; connector (between HDMI and USB Host ones)&lt;br /&gt;
# [[Communicate | Install (minimum) tools to communicate with your APF from your Host.]]&lt;br /&gt;
# Connect the power supply to your development board. (See the [[Datasheet]] of your *Dev board for more informations)&lt;br /&gt;
# Verify your system is booting and starting Linux (In U-Boot console, type &amp;quot;boot&amp;quot; if bootdelay is too long). Several information will be displayed on your terminal like on this [[Linux start screenshot | screenshot]] (Default Linux login is &amp;quot;root&amp;quot; with an empty password). '''If your system is NOT starting''', walk through [[U-Boot communication quick check|this small checklist]].&lt;br /&gt;
# If Linux has successfully started, your system is operational. If you want to add applications to your board or develop custom ones, then you can proceed with the Toolchain installation. [[Setup#Build_and_update_your_system | See Build and update your system]].&lt;br /&gt;
&lt;br /&gt;
===Tutorial===&lt;br /&gt;
If you want a more &amp;quot;userfriendly&amp;quot; procedure, you can try this (under construction) tutorial: [[Beginner's_tutorial]]&lt;br /&gt;
&lt;br /&gt;
==Build and update your system==&lt;br /&gt;
# [[Embedded Linux system basis]]&lt;br /&gt;
# [[Toolchain| Install the development environment (=Toolchain) for your board and generate your Linux/rootfs images]]&lt;br /&gt;
# [[Target Software Installation| Install/flash your U-Boot, Linux and rootfs freshly generated images on your board]]&lt;br /&gt;
# [[Armadeus_3#How-to_develop_with_Armadeus_.2F_customize_your_SDK| Customize your Armadeus SDK]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note| When a board is shipped, default factory binaries are flashed on it. It can be a legacy version of the armadeus BSP. So it's important to load the latest release binaries (&amp;quot;Get latest release&amp;quot; menu on side bar of this wiki), or build them yourself, and update all software with the following commands (on U-Boot assuming the image files have already been copied in /tftpboot):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
BIOS&amp;gt; run update_uboot&lt;br /&gt;
BIOS&amp;gt; reset&lt;br /&gt;
BIOS&amp;gt; run flash_reset_env&lt;br /&gt;
...&lt;br /&gt;
BIOS&amp;gt; run update_kernel&lt;br /&gt;
BIOS&amp;gt; run update_rootfs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=FPGA_loader&amp;diff=12820</id>
		<title>FPGA loader</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=FPGA_loader&amp;diff=12820"/>
				<updated>2014-11-06T10:59:57Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page, you will find all the informations needed to use the Linux FPGA loader driver.&lt;br /&gt;
This driver allows you to load the FPGA of your APF board from Linux userspace/shell (ie FPGA reprogrammation after Linux boot).&lt;br /&gt;
&lt;br /&gt;
== Driver installation==&lt;br /&gt;
Driver is installed in default Armadeus rootfs.&lt;br /&gt;
&lt;br /&gt;
For the hackers, code is located in ''target/linux/modules/fpga/dev_tools/fpga_devtools/''.&lt;br /&gt;
&lt;br /&gt;
== Driver usage ==&lt;br /&gt;
&lt;br /&gt;
*To upload a new firmware, use the small helper script that can do all the job for you (load driver and then firmware). Just call it with the bitfile (.rbf for APF6SP and .bin for the other boards) as parameter. For example:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # load_fpga bramtest_top_apf.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Simple_blinking_LED |  You can find some ready to use bitfiles in ''firmware/leds/blinking_led/bin/'' (blinking LED).]]&lt;br /&gt;
{{Note| On apf9328_devfull and on apf27_dev a LED is already soldered on fpga. For apf27_dev the fpga bank1 must be powered with 3.3V (connect pin 39 and pin 1 on J20 header)}}&lt;br /&gt;
&lt;br /&gt;
==Troubleshots==&lt;br /&gt;
=== APF51 ===&lt;br /&gt;
* Use binary format '''.bin''', bitstream format '''.bit''' doesn't work.&lt;br /&gt;
&lt;br /&gt;
All the troubleshots are handled by the ''/usr/bin/load_fpga'' utility, mentionned above.&lt;br /&gt;
&lt;br /&gt;
[[Category:FPGA]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=FAQ&amp;diff=12818</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=FAQ&amp;diff=12818"/>
				<updated>2014-11-05T15:07:59Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* What does &amp;quot;Armadeus&amp;quot; mean ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==General Questions==&lt;br /&gt;
&lt;br /&gt;
===What is the &amp;quot;Armadeus Project&amp;quot; intended for ?===&lt;br /&gt;
The goal of this project is to allow everyone to easily develop embedded Open Source systems.&lt;br /&gt;
When all the embedded systems in the world run open source software, life will be better ;-)&lt;br /&gt;
 &lt;br /&gt;
===What does &amp;quot;Armadeus&amp;quot; mean ?===&lt;br /&gt;
&amp;quot;Armadeus&amp;quot; is the contraction of a well know architecture and &amp;quot;Amadeus&amp;quot;. Indeed we chose this non x86 architecture for its simplicity and efficiency and our boards are as gifted to run embedded systems as Mozart was for composing music. Moreover the Armadeus Project was born in 2006, year of the 250th Mozart's Birthday.&lt;br /&gt;
&lt;br /&gt;
===How do I get help ?===&lt;br /&gt;
First take a look at the whole Wiki. If you can't find help contact us directly: [[Help:Contents]]. If you are located in France, we have members in Besançon, Montbéliard &amp;amp; Mulhouse who can provide help. For Swiss members, we can provide help in Basel, Lausanne &amp;amp; Zürich.&lt;br /&gt;
&lt;br /&gt;
=== Why are there http://armadeus.org and http://armadeus.com ? Is there a company backing/hiding behind the project? ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;http://armadeus.com&amp;gt; is the webpage dedicated to Armadeus Systems. &amp;lt;br&amp;gt; &lt;br /&gt;
The company develops and produces the main boards which are then available at a discount price to the association members (non commercial usage only!). &lt;br /&gt;
&lt;br /&gt;
Historically the Armadeus Project (association) was founded before Armadeus Systems (company).  &amp;lt;br&amp;gt;&lt;br /&gt;
After one year of existence we realized that it was quite impossible to achieve our goals without investing more time and more cash. That's why the company was founded.&lt;br /&gt;
&lt;br /&gt;
The association was started for our own pleasure and also to help universities and enthusiasts develop Linux embedded systems.  &amp;lt;br&amp;gt;&lt;br /&gt;
It is a non profit association and works mostly on founders' free time.&lt;br /&gt;
&lt;br /&gt;
The developments (hardware/firmware/software) performed within the association are under GPL/LGPL licence.  &amp;lt;br&amp;gt;&lt;br /&gt;
The hardware funded by the association can not be used in a commercial product.&lt;br /&gt;
&lt;br /&gt;
=== Is there some rule to respect to contribute to the wiki? ===&lt;br /&gt;
Yes there are few rules that help you to contribute to update the wiki there:  [[WritingRules |HowTo write articles for armadeus wiki]]  &lt;br /&gt;
&lt;br /&gt;
==Hardware Questions==&lt;br /&gt;
===Are the Armadeus boards RoHS compliant ?===&lt;br /&gt;
Yes&lt;br /&gt;
&lt;br /&gt;
===I have an APF27 kit and my 7&amp;quot; Chimei LW700 LCD is blinking (RGB colors), what can I do ?===&lt;br /&gt;
You're probably running an old (&amp;lt; 3.3) Armadeus BSP release and so default LCD is Sharp LQ043. You have to change your Linux configuration to support your LCD. Please follow instructions on [[FrameBuffer|this page]].&lt;br /&gt;
&lt;br /&gt;
== Firmware Question (FPGA) ==&lt;br /&gt;
&lt;br /&gt;
=== My bitstream break my APF ===&lt;br /&gt;
&lt;br /&gt;
If you are using ISE13.x or upper, there is a bug loading script TCL file. When design is generated by POD, a script is sourced to make bitstream (myproject.tcl), the source commande ignore the constraint file (ucf) and FPGA pinout is done randomly. To avoid this, once tcl script sourced, re-run all design.&lt;br /&gt;
&lt;br /&gt;
==Software Questions==&lt;br /&gt;
===Where are the sources ?===&lt;br /&gt;
We have a project on SourceForge: http://sourceforge.net/projects/armadeus/ with a [[GIT]] repository.&lt;br /&gt;
&lt;br /&gt;
===What are the performances of your board ?===&lt;br /&gt;
[[Performances | Wiki page talking about board performances]]&lt;br /&gt;
&lt;br /&gt;
===How do I get help/support===&lt;br /&gt;
[[Help:Contents]]&lt;br /&gt;
&lt;br /&gt;
=== How to register my interrupt routine in Linux application ? ===&lt;br /&gt;
[[How to register my interrupt routine in Linux application ?]]&lt;br /&gt;
&lt;br /&gt;
=== How to launch my application at startup ? ===&lt;br /&gt;
See [[Automatically_launch_your_application | Automatically launch your application]] page.&lt;br /&gt;
&lt;br /&gt;
===U-Boot seems ok but prints: *** Warning - bad CRC, using default environment - Is there something wrong?=== &lt;br /&gt;
Everything is ok. It is an U-Boot feature that happens if the environment partition is empty.&amp;lt;br&amp;gt;&lt;br /&gt;
Please read the U-Boot FAQ on this issue: http://www.denx.de/wiki/view/DULG/WarningBadCRCUsingDefaultEnvironment&lt;br /&gt;
&lt;br /&gt;
{{LanguageBar|FAQ|FAQ|FAQ}}&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=GPIOlib&amp;diff=12810</id>
		<title>GPIOlib</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=GPIOlib&amp;diff=12810"/>
				<updated>2014-10-23T13:15:37Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* Datasheet gpio number correspondance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
With recent Linux kernel (&amp;gt; 2.6.3x), there is an abstraction layer meant to ease GPIO usage: ''gpiolib''. We will explain here how to use it.&lt;br /&gt;
&lt;br /&gt;
For this purpose we will use the user LED and button of the button to let you operate the GPIO feature without any hardware modification.&lt;br /&gt;
&lt;br /&gt;
Linux provides specific drivers for [[GPIO_LEDS|LEDs]] and [[GPIO_keys|switches]] - as explained in the [http://www.kernel.org/doc/Documentation/gpio.txt Linux documentation of the  GPIO] - &amp;quot;that should be used instead of talking directly to the GPIOs; they integrate with kernel frameworks better than your userspace code could.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Datasheet gpio number correspondance ==&lt;br /&gt;
&lt;br /&gt;
Linux manage gpio with a simple number, but under datasheet GPIO are referenced with port number (or letter) and pin number. To convert in single integer, use following formula :&lt;br /&gt;
&lt;br /&gt;
* '''APF9328''': TODO.&lt;br /&gt;
* '''APF27''': (port letter (A=0, B=1, ...) x 32 ) + pin number.&lt;br /&gt;
** Example : '''PF14''' = (5x32) + 14 = '''174'''&lt;br /&gt;
* '''APF28''': (Bank number x 32) + pin number&lt;br /&gt;
** Example : '''GPIO_0_21''' = (0x32) + 21 = '''21'''&lt;br /&gt;
* '''APF51''' and '''APF6''': ((Bank number - 1) x 32) + pin number&lt;br /&gt;
** Example : '''GPIO1_2''' = (0 x 32) + 2 = '''2'''&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
* Configure Linux kernel:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux-menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Enable the sysfs interface of the GPIOlib If not already done:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Device Drivers  ---&amp;gt;&lt;br /&gt;
    -*- GPIO Support  ---&amp;gt;&lt;br /&gt;
        [*]   /sys/class/gpio/... (sysfs interface)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* In order to test the GPIOlib with the user LED and SWITCH of the board you will have to disable the [[GPIO_keys]] and [[GPIO_LEDS]] drivers that are the regular driver for such device.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Device Drivers  ---&amp;gt;&lt;br /&gt;
    Input device support  ---&amp;gt;&lt;br /&gt;
        [*]   Keyboards  ---&amp;gt;&lt;br /&gt;
            &amp;lt; &amp;gt;   GPIO Buttons (be sure GPIO Buttons is unchecked)&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Device Drivers  ---&amp;gt;&lt;br /&gt;
    [ ] LED Support  ---&amp;gt;  (be sure &amp;quot;LED Support&amp;quot; or &amp;quot;GPIO connected LEDs&amp;quot; (hereafter) is unchecked)&lt;br /&gt;
         &amp;lt; &amp;gt;   LED Support for GPIO connected LEDs&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&lt;br /&gt;
* Save your new configuration and rebuild your kernel (if needed)&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* and reflash your kernel (if needed)&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
===Blink APFxxDev i.MX LED===&lt;br /&gt;
* Find the GPIO number connected to the LED, eg:&lt;br /&gt;
** for APF27Dev: '''PF14 -&amp;gt;''' PortF (n°6) pin 14 -&amp;gt; (6-1)*32 + 14 -&amp;gt; GPIO n°'''174'''&lt;br /&gt;
** for APF51Dev/APF6Dev: GPIO1_2 -&amp;gt; Port 1 pin 2 -&amp;gt; GPIO n° 2&lt;br /&gt;
** for APF28Dev: Bank 0, pin 21 -&amp;gt; GPIO n° 21 (0*32 + 21)&lt;br /&gt;
* Define envt variable (for portability):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# export LED=174    (APF27Dev)&lt;br /&gt;
or&lt;br /&gt;
# export LED=2    (APF51Dev)&lt;br /&gt;
or&lt;br /&gt;
# export LED=21    (APF28Dev)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Ask kernel to export the GPIO:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# echo $LED &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Access functions are created:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# ls /sys/class/gpio/gpio$LED/&lt;br /&gt;
active_low  edge        subsystem   value&lt;br /&gt;
direction   power       uevent&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Check GPIO direction and put in output:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# cat /sys/class/gpio/gpio$LED/direction&lt;br /&gt;
in&lt;br /&gt;
# echo out &amp;gt; /sys/class/gpio/gpio$LED/direction&lt;br /&gt;
# cat /sys/class/gpio/gpio$LED/direction&lt;br /&gt;
out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Play with GPIO value to blink LED:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# echo 1 &amp;gt; /sys/class/gpio/gpio$LED/value&lt;br /&gt;
# echo 0 &amp;gt; /sys/class/gpio/gpio$LED/value&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Get APFxxDev i.MX switch status===&lt;br /&gt;
* Find the GPIO number connected to the switch, eg:&lt;br /&gt;
** for APF27Dev: '''PF13 -&amp;gt;''' PortF (n°6) pin 13 -&amp;gt; (6-1)*32 + 13 -&amp;gt; '''GPIO n°173'''&lt;br /&gt;
** for APF51Dev/APF6Dev: '''GPIO1_3''' -&amp;gt; Port 1 pin 3 -&amp;gt; '''GPIO n°3''' ((1-1)*32 + 3)&lt;br /&gt;
** for APF28Dev: Bank 0, pin 17 -&amp;gt; GPIO n° 17 (0*32 + 17)&lt;br /&gt;
* Define envt variable (for portability):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# export SWITCH=173    (APF27Dev)&lt;br /&gt;
or&lt;br /&gt;
# export SWITCH=3      (APF51Dev)&lt;br /&gt;
or&lt;br /&gt;
# export SWITCH=17     (APF28Dev)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Ask kernel to export the GPIO:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# echo $SWITCH &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Access functions are created:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# ls /sys/class/gpio/gpio$SWITCH/&lt;br /&gt;
active_low  edge        subsystem   value&lt;br /&gt;
direction   power       uevent&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Check GPIO direction and put in output:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# cat /sys/class/gpio/gpio$SWITCH/direction&lt;br /&gt;
in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Get switch status:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# cat /sys/class/gpio/gpio$SWITCH/value&lt;br /&gt;
1    (released)&lt;br /&gt;
...&lt;br /&gt;
# cat /sys/class/gpio/gpio$SWITCH/value&lt;br /&gt;
0    (pressed)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Block until an event occur:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# cat /sys/class/gpio/gpio$SWITCH/edge&lt;br /&gt;
none&lt;br /&gt;
# echo both &amp;gt; /sys/class/gpio/gpio$SWITCH/edge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AsGpio ==&lt;br /&gt;
&lt;br /&gt;
An example of AsDevices usage for GPIO in C can be found in armadeus BSP. To compile it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ cd target/demos/toggle_gpio&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tips==&lt;br /&gt;
* [[Linux_Debug#Using_DebugFS|Show already allocated GPIOS]]&lt;br /&gt;
* ''/usr/bin/gpio_helpers.sh'' script contains 2 functions that can help usage of output GPIOs: gpio_direction_output() and gpio_set_value(). For example to set GPIO N°12 as output and set it to 0:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# source /usr/bin/gpio_helpers.sh&lt;br /&gt;
# gpio_direction_output 12 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* http://www.kernel.org/doc/Documentation/gpio.txt&lt;br /&gt;
* [http://bec-systems.com/site/281/how-to-implement-an-interrupt-driven-gpio-input-in-linux how to implement an interrupt driven gpio input in linux]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=APF6&amp;diff=12799</id>
		<title>APF6</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=APF6&amp;diff=12799"/>
				<updated>2014-10-21T16:23:29Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
The APF6 is a high-end [https://en.wikipedia.org/wiki/Single-board_computer Single Board Computer] targeted for advanced GUI, intensive computation and extended connectivity.&lt;br /&gt;
&lt;br /&gt;
Here is a list of the main features:&lt;br /&gt;
* Processor: [http://www.freescale.com/webapp/sps/site/taxonomy.jsp?code=IMX6X_SERIES i.MX6] (single, dual or quad core Cortex-A9 @ up to 1GHz)&lt;br /&gt;
* RAM: DDR3 1066MHz. 512Mbytes to 2GBytes. 32 ot 64bits data bus. Default capacity will be 512Mbytes.&lt;br /&gt;
* Flash: eMMC 4Gbytes, 8 bits data bus.&lt;br /&gt;
* Ethernet: onboard Physical (ready to use Ethernet 10/100/1000Mbit link)&lt;br /&gt;
* USB: High speed USB OTG (OnTheGo) with onboard Physical (ready to use USB OTG link)&lt;br /&gt;
* USB: High speed Host with integrated PHY&lt;br /&gt;
* PCIexpress Gen2&lt;br /&gt;
* SATA II&lt;br /&gt;
* DVI output&lt;br /&gt;
* TFT CMOS/LVDS interface&lt;br /&gt;
* WiFi (option): b/g/n with u.FL antenna&lt;br /&gt;
* Bluetooth (option): BT 4.0&lt;br /&gt;
* Only one external supply of 3.3V required.&lt;br /&gt;
* Mechanical dimensions: 60x50mm&lt;br /&gt;
&lt;br /&gt;
All the i.MX6 peripherals can be accessed through two high density [[Hirose connectors]].&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
* [[Datasheet | Datasheet and schema]]&lt;br /&gt;
&lt;br /&gt;
==Feature list==&lt;br /&gt;
* [[APF6_Linux_kernel_status]]&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; summary=&amp;quot;Hardware Add-Ons by functionnalities&amp;quot;&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
===Video===&lt;br /&gt;
====Video Out====&lt;br /&gt;
* [[LCD]]&lt;br /&gt;
* [[BackLight]]&lt;br /&gt;
* [[FrameBuffer]]&lt;br /&gt;
* [[DVI_/_HDMI|DVI/HDMI]]&lt;br /&gt;
&lt;br /&gt;
====Video In====&lt;br /&gt;
*[[Camera_interface]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
===Wired communication===&lt;br /&gt;
* [[Uart]]&lt;br /&gt;
* [[SPI]]&lt;br /&gt;
* [[I2C]]&lt;br /&gt;
* [[USB_Host]]&lt;br /&gt;
* [[USB_Gadget]]&lt;br /&gt;
* [[USB_OTG]]&lt;br /&gt;
* [[CAN_bus_Linux_driver|CAN bus]]&lt;br /&gt;
* [[PCIE]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
===Wireless communication===&lt;br /&gt;
* [[TI driver |Jorjin chipset driver]]&lt;br /&gt;
* [[Wifi|WiFi usage on Linux]]&lt;br /&gt;
* [[Bluetooth|Bluetooth usage on Linux]]&lt;br /&gt;
&lt;br /&gt;
===Storage===&lt;br /&gt;
* [[MultiMediaCard]]&lt;br /&gt;
* [[SATA]]&lt;br /&gt;
* [[eMMC]]&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
* [[PWM]]&lt;br /&gt;
* [[GPIOlib]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Development boards==&lt;br /&gt;
* [[APF6Dev]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MainBoards]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=GPIOlib&amp;diff=12795</id>
		<title>GPIOlib</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=GPIOlib&amp;diff=12795"/>
				<updated>2014-10-21T11:37:24Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* Get APFxxDev i.MX switch status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
With recent Linux kernel (&amp;gt; 2.6.3x), there is an abstraction layer meant to ease GPIO usage: ''gpiolib''. We will explain here how to use it.&lt;br /&gt;
&lt;br /&gt;
For this purpose we will use the user LED and button of the button to let you operate the GPIO feature without any hardware modification.&lt;br /&gt;
&lt;br /&gt;
Linux provides specific drivers for [[GPIO_LEDS|LEDs]] and [[GPIO_keys|switches]] - as explained in the [http://www.kernel.org/doc/Documentation/gpio.txt Linux documentation of the  GPIO] - &amp;quot;that should be used instead of talking directly to the GPIOs; they integrate with kernel frameworks better than your userspace code could.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Datasheet gpio number correspondance ==&lt;br /&gt;
&lt;br /&gt;
Linux manage gpio with a simple number, but under datasheet GPIO are referenced with port number (or letter) and pin number. To convert in single integer, use following formula :&lt;br /&gt;
&lt;br /&gt;
* '''APF9328''': TODO.&lt;br /&gt;
* '''APF27''': (port letter (A=0, B=1, ...) x 32 ) + pin number.&lt;br /&gt;
** Example : '''PF14''' = (5x32) + 14 = '''174'''&lt;br /&gt;
* '''APF28''': (Bank number x 32) + pin number&lt;br /&gt;
** Example : '''GPIO_0_21''' = (0x32) + 21 = '''21'''&lt;br /&gt;
* '''APF51''' et '''APF6''': ((Bank number - 1) x 32) + pin number&lt;br /&gt;
** Example : '''GPIO1_2''' = (0 x 32) + 2 = '''2'''&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
* Configure Linux kernel:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux-menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Enable the sysfs interface of the GPIOlib If not already done:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Device Drivers  ---&amp;gt;&lt;br /&gt;
    -*- GPIO Support  ---&amp;gt;&lt;br /&gt;
        [*]   /sys/class/gpio/... (sysfs interface)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* In order to test the GPIOlib with the user LED and SWITCH of the board you will have to disable the [[GPIO_keys]] and [[GPIO_LEDS]] drivers that are the regular driver for such device.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Device Drivers  ---&amp;gt;&lt;br /&gt;
    Input device support  ---&amp;gt;&lt;br /&gt;
        [*]   Keyboards  ---&amp;gt;&lt;br /&gt;
            &amp;lt; &amp;gt;   GPIO Buttons (be sure GPIO Buttons is unchecked)&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Device Drivers  ---&amp;gt;&lt;br /&gt;
    [ ] LED Support  ---&amp;gt;  (be sure &amp;quot;LED Support&amp;quot; or &amp;quot;GPIO connected LEDs&amp;quot; (hereafter) is unchecked)&lt;br /&gt;
         &amp;lt; &amp;gt;   LED Support for GPIO connected LEDs&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&lt;br /&gt;
* Save your new configuration and rebuild your kernel (if needed)&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* and reflash your kernel (if needed)&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
===Blink APFxxDev i.MX LED===&lt;br /&gt;
* Find the GPIO number connected to the LED, eg:&lt;br /&gt;
** for APF27Dev: '''PF14 -&amp;gt;''' PortF (n°6) pin 14 -&amp;gt; (6-1)*32 + 14 -&amp;gt; GPIO n°'''174'''&lt;br /&gt;
** for APF51Dev/APF6Dev: GPIO1_2 -&amp;gt; Port 1 pin 2 -&amp;gt; GPIO n° 2&lt;br /&gt;
** for APF28Dev: Bank 0, pin 21 -&amp;gt; GPIO n° 21 (0*32 + 21)&lt;br /&gt;
* Define envt variable (for portability):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# export LED=174    (APF27Dev)&lt;br /&gt;
or&lt;br /&gt;
# export LED=2    (APF51Dev)&lt;br /&gt;
or&lt;br /&gt;
# export LED=21    (APF28Dev)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Ask kernel to export the GPIO:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# echo $LED &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Access functions are created:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# ls /sys/class/gpio/gpio$LED/&lt;br /&gt;
active_low  edge        subsystem   value&lt;br /&gt;
direction   power       uevent&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Check GPIO direction and put in output:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# cat /sys/class/gpio/gpio$LED/direction&lt;br /&gt;
in&lt;br /&gt;
# echo out &amp;gt; /sys/class/gpio/gpio$LED/direction&lt;br /&gt;
# cat /sys/class/gpio/gpio$LED/direction&lt;br /&gt;
out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Play with GPIO value to blink LED:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# echo 1 &amp;gt; /sys/class/gpio/gpio$LED/value&lt;br /&gt;
# echo 0 &amp;gt; /sys/class/gpio/gpio$LED/value&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Get APFxxDev i.MX switch status===&lt;br /&gt;
* Find the GPIO number connected to the switch, eg:&lt;br /&gt;
** for APF27Dev: '''PF13 -&amp;gt;''' PortF (n°6) pin 13 -&amp;gt; (6-1)*32 + 13 -&amp;gt; '''GPIO n°173'''&lt;br /&gt;
** for APF51Dev/APF6Dev: '''GPIO1_3''' -&amp;gt; Port 1 pin 3 -&amp;gt; '''GPIO n°3''' ((1-1)*32 + 3)&lt;br /&gt;
** for APF28Dev: Bank 0, pin 17 -&amp;gt; GPIO n° 17 (0*32 + 17)&lt;br /&gt;
* Define envt variable (for portability):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# export SWITCH=173    (APF27Dev)&lt;br /&gt;
or&lt;br /&gt;
# export SWITCH=3      (APF51Dev)&lt;br /&gt;
or&lt;br /&gt;
# export SWITCH=17     (APF28Dev)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Ask kernel to export the GPIO:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# echo $SWITCH &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Access functions are created:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# ls /sys/class/gpio/gpio$SWITCH/&lt;br /&gt;
active_low  edge        subsystem   value&lt;br /&gt;
direction   power       uevent&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Check GPIO direction and put in output:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# cat /sys/class/gpio/gpio$SWITCH/direction&lt;br /&gt;
in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Get switch status:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# cat /sys/class/gpio/gpio$SWITCH/value&lt;br /&gt;
1    (released)&lt;br /&gt;
...&lt;br /&gt;
# cat /sys/class/gpio/gpio$SWITCH/value&lt;br /&gt;
0    (pressed)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Block until an event occur:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# cat /sys/class/gpio/gpio$SWITCH/edge&lt;br /&gt;
none&lt;br /&gt;
# echo both &amp;gt; /sys/class/gpio/gpio$SWITCH/edge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AsGpio ==&lt;br /&gt;
&lt;br /&gt;
An example of AsDevices usage for GPIO in C can be found in armadeus BSP. To compile it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ cd target/demos/toggle_gpio&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tips==&lt;br /&gt;
* [[Linux_Debug#Using_DebugFS|Show already allocated GPIOS]]&lt;br /&gt;
* ''/usr/bin/gpio_helpers.sh'' script contains 2 functions that can help usage of output GPIOs: gpio_direction_output() and gpio_set_value(). For example to set GPIO N°12 as output and set it to 0:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# source /usr/bin/gpio_helpers.sh&lt;br /&gt;
# gpio_direction_output 12 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* http://www.kernel.org/doc/Documentation/gpio.txt&lt;br /&gt;
* [http://bec-systems.com/site/281/how-to-implement-an-interrupt-driven-gpio-input-in-linux how to implement an interrupt driven gpio input in linux]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=GPIOlib&amp;diff=12794</id>
		<title>GPIOlib</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=GPIOlib&amp;diff=12794"/>
				<updated>2014-10-21T11:37:05Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* Blink APFxxDev i.MX LED */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
With recent Linux kernel (&amp;gt; 2.6.3x), there is an abstraction layer meant to ease GPIO usage: ''gpiolib''. We will explain here how to use it.&lt;br /&gt;
&lt;br /&gt;
For this purpose we will use the user LED and button of the button to let you operate the GPIO feature without any hardware modification.&lt;br /&gt;
&lt;br /&gt;
Linux provides specific drivers for [[GPIO_LEDS|LEDs]] and [[GPIO_keys|switches]] - as explained in the [http://www.kernel.org/doc/Documentation/gpio.txt Linux documentation of the  GPIO] - &amp;quot;that should be used instead of talking directly to the GPIOs; they integrate with kernel frameworks better than your userspace code could.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Datasheet gpio number correspondance ==&lt;br /&gt;
&lt;br /&gt;
Linux manage gpio with a simple number, but under datasheet GPIO are referenced with port number (or letter) and pin number. To convert in single integer, use following formula :&lt;br /&gt;
&lt;br /&gt;
* '''APF9328''': TODO.&lt;br /&gt;
* '''APF27''': (port letter (A=0, B=1, ...) x 32 ) + pin number.&lt;br /&gt;
** Example : '''PF14''' = (5x32) + 14 = '''174'''&lt;br /&gt;
* '''APF28''': (Bank number x 32) + pin number&lt;br /&gt;
** Example : '''GPIO_0_21''' = (0x32) + 21 = '''21'''&lt;br /&gt;
* '''APF51''' et '''APF6''': ((Bank number - 1) x 32) + pin number&lt;br /&gt;
** Example : '''GPIO1_2''' = (0 x 32) + 2 = '''2'''&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
* Configure Linux kernel:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux-menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Enable the sysfs interface of the GPIOlib If not already done:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Device Drivers  ---&amp;gt;&lt;br /&gt;
    -*- GPIO Support  ---&amp;gt;&lt;br /&gt;
        [*]   /sys/class/gpio/... (sysfs interface)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* In order to test the GPIOlib with the user LED and SWITCH of the board you will have to disable the [[GPIO_keys]] and [[GPIO_LEDS]] drivers that are the regular driver for such device.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Device Drivers  ---&amp;gt;&lt;br /&gt;
    Input device support  ---&amp;gt;&lt;br /&gt;
        [*]   Keyboards  ---&amp;gt;&lt;br /&gt;
            &amp;lt; &amp;gt;   GPIO Buttons (be sure GPIO Buttons is unchecked)&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Device Drivers  ---&amp;gt;&lt;br /&gt;
    [ ] LED Support  ---&amp;gt;  (be sure &amp;quot;LED Support&amp;quot; or &amp;quot;GPIO connected LEDs&amp;quot; (hereafter) is unchecked)&lt;br /&gt;
         &amp;lt; &amp;gt;   LED Support for GPIO connected LEDs&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&lt;br /&gt;
* Save your new configuration and rebuild your kernel (if needed)&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* and reflash your kernel (if needed)&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
===Blink APFxxDev i.MX LED===&lt;br /&gt;
* Find the GPIO number connected to the LED, eg:&lt;br /&gt;
** for APF27Dev: '''PF14 -&amp;gt;''' PortF (n°6) pin 14 -&amp;gt; (6-1)*32 + 14 -&amp;gt; GPIO n°'''174'''&lt;br /&gt;
** for APF51Dev/APF6Dev: GPIO1_2 -&amp;gt; Port 1 pin 2 -&amp;gt; GPIO n° 2&lt;br /&gt;
** for APF28Dev: Bank 0, pin 21 -&amp;gt; GPIO n° 21 (0*32 + 21)&lt;br /&gt;
* Define envt variable (for portability):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# export LED=174    (APF27Dev)&lt;br /&gt;
or&lt;br /&gt;
# export LED=2    (APF51Dev)&lt;br /&gt;
or&lt;br /&gt;
# export LED=21    (APF28Dev)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Ask kernel to export the GPIO:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# echo $LED &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Access functions are created:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# ls /sys/class/gpio/gpio$LED/&lt;br /&gt;
active_low  edge        subsystem   value&lt;br /&gt;
direction   power       uevent&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Check GPIO direction and put in output:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# cat /sys/class/gpio/gpio$LED/direction&lt;br /&gt;
in&lt;br /&gt;
# echo out &amp;gt; /sys/class/gpio/gpio$LED/direction&lt;br /&gt;
# cat /sys/class/gpio/gpio$LED/direction&lt;br /&gt;
out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Play with GPIO value to blink LED:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# echo 1 &amp;gt; /sys/class/gpio/gpio$LED/value&lt;br /&gt;
# echo 0 &amp;gt; /sys/class/gpio/gpio$LED/value&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Get APFxxDev i.MX switch status===&lt;br /&gt;
* Find the GPIO number connected to the switch, eg:&lt;br /&gt;
** for APF27Dev: '''PF13 -&amp;gt;''' PortF (n°6) pin 13 -&amp;gt; (6-1)*32 + 13 -&amp;gt; '''GPIO n°173'''&lt;br /&gt;
** for APF51Dev: '''GPIO1_3''' -&amp;gt; Port 1 pin 3 -&amp;gt; '''GPIO n°3''' ((1-1)*32 + 3)&lt;br /&gt;
** for APF28Dev: Bank 0, pin 17 -&amp;gt; GPIO n° 17 (0*32 + 17)&lt;br /&gt;
* Define envt variable (for portability):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# export SWITCH=173    (APF27Dev)&lt;br /&gt;
or&lt;br /&gt;
# export SWITCH=3      (APF51Dev)&lt;br /&gt;
or&lt;br /&gt;
# export SWITCH=17     (APF28Dev)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Ask kernel to export the GPIO:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# echo $SWITCH &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Access functions are created:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# ls /sys/class/gpio/gpio$SWITCH/&lt;br /&gt;
active_low  edge        subsystem   value&lt;br /&gt;
direction   power       uevent&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Check GPIO direction and put in output:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# cat /sys/class/gpio/gpio$SWITCH/direction&lt;br /&gt;
in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Get switch status:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# cat /sys/class/gpio/gpio$SWITCH/value&lt;br /&gt;
1    (released)&lt;br /&gt;
...&lt;br /&gt;
# cat /sys/class/gpio/gpio$SWITCH/value&lt;br /&gt;
0    (pressed)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Block until an event occur:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# cat /sys/class/gpio/gpio$SWITCH/edge&lt;br /&gt;
none&lt;br /&gt;
# echo both &amp;gt; /sys/class/gpio/gpio$SWITCH/edge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AsGpio ==&lt;br /&gt;
&lt;br /&gt;
An example of AsDevices usage for GPIO in C can be found in armadeus BSP. To compile it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ cd target/demos/toggle_gpio&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tips==&lt;br /&gt;
* [[Linux_Debug#Using_DebugFS|Show already allocated GPIOS]]&lt;br /&gt;
* ''/usr/bin/gpio_helpers.sh'' script contains 2 functions that can help usage of output GPIOs: gpio_direction_output() and gpio_set_value(). For example to set GPIO N°12 as output and set it to 0:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# source /usr/bin/gpio_helpers.sh&lt;br /&gt;
# gpio_direction_output 12 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* http://www.kernel.org/doc/Documentation/gpio.txt&lt;br /&gt;
* [http://bec-systems.com/site/281/how-to-implement-an-interrupt-driven-gpio-input-in-linux how to implement an interrupt driven gpio input in linux]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=GPIOlib&amp;diff=12793</id>
		<title>GPIOlib</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=GPIOlib&amp;diff=12793"/>
				<updated>2014-10-21T11:36:04Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* Datasheet gpio number correspondance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
With recent Linux kernel (&amp;gt; 2.6.3x), there is an abstraction layer meant to ease GPIO usage: ''gpiolib''. We will explain here how to use it.&lt;br /&gt;
&lt;br /&gt;
For this purpose we will use the user LED and button of the button to let you operate the GPIO feature without any hardware modification.&lt;br /&gt;
&lt;br /&gt;
Linux provides specific drivers for [[GPIO_LEDS|LEDs]] and [[GPIO_keys|switches]] - as explained in the [http://www.kernel.org/doc/Documentation/gpio.txt Linux documentation of the  GPIO] - &amp;quot;that should be used instead of talking directly to the GPIOs; they integrate with kernel frameworks better than your userspace code could.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Datasheet gpio number correspondance ==&lt;br /&gt;
&lt;br /&gt;
Linux manage gpio with a simple number, but under datasheet GPIO are referenced with port number (or letter) and pin number. To convert in single integer, use following formula :&lt;br /&gt;
&lt;br /&gt;
* '''APF9328''': TODO.&lt;br /&gt;
* '''APF27''': (port letter (A=0, B=1, ...) x 32 ) + pin number.&lt;br /&gt;
** Example : '''PF14''' = (5x32) + 14 = '''174'''&lt;br /&gt;
* '''APF28''': (Bank number x 32) + pin number&lt;br /&gt;
** Example : '''GPIO_0_21''' = (0x32) + 21 = '''21'''&lt;br /&gt;
* '''APF51''' et '''APF6''': ((Bank number - 1) x 32) + pin number&lt;br /&gt;
** Example : '''GPIO1_2''' = (0 x 32) + 2 = '''2'''&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
* Configure Linux kernel:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux-menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Enable the sysfs interface of the GPIOlib If not already done:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Device Drivers  ---&amp;gt;&lt;br /&gt;
    -*- GPIO Support  ---&amp;gt;&lt;br /&gt;
        [*]   /sys/class/gpio/... (sysfs interface)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* In order to test the GPIOlib with the user LED and SWITCH of the board you will have to disable the [[GPIO_keys]] and [[GPIO_LEDS]] drivers that are the regular driver for such device.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Device Drivers  ---&amp;gt;&lt;br /&gt;
    Input device support  ---&amp;gt;&lt;br /&gt;
        [*]   Keyboards  ---&amp;gt;&lt;br /&gt;
            &amp;lt; &amp;gt;   GPIO Buttons (be sure GPIO Buttons is unchecked)&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Device Drivers  ---&amp;gt;&lt;br /&gt;
    [ ] LED Support  ---&amp;gt;  (be sure &amp;quot;LED Support&amp;quot; or &amp;quot;GPIO connected LEDs&amp;quot; (hereafter) is unchecked)&lt;br /&gt;
         &amp;lt; &amp;gt;   LED Support for GPIO connected LEDs&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&lt;br /&gt;
* Save your new configuration and rebuild your kernel (if needed)&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* and reflash your kernel (if needed)&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
===Blink APFxxDev i.MX LED===&lt;br /&gt;
* Find the GPIO number connected to the LED, eg:&lt;br /&gt;
** for APF27Dev: '''PF14 -&amp;gt;''' PortF (n°6) pin 14 -&amp;gt; (6-1)*32 + 14 -&amp;gt; GPIO n°'''174'''&lt;br /&gt;
** for APF51Dev: GPIO1_2 -&amp;gt; Port 1 pin 2 -&amp;gt; GPIO n° 2&lt;br /&gt;
** for APF28Dev: Bank 0, pin 21 -&amp;gt; GPIO n° 21 (0*32 + 21)&lt;br /&gt;
* Define envt variable (for portability):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# export LED=174    (APF27Dev)&lt;br /&gt;
or&lt;br /&gt;
# export LED=2    (APF51Dev)&lt;br /&gt;
or&lt;br /&gt;
# export LED=21    (APF28Dev)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Ask kernel to export the GPIO:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# echo $LED &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Access functions are created:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# ls /sys/class/gpio/gpio$LED/&lt;br /&gt;
active_low  edge        subsystem   value&lt;br /&gt;
direction   power       uevent&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Check GPIO direction and put in output:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# cat /sys/class/gpio/gpio$LED/direction&lt;br /&gt;
in&lt;br /&gt;
# echo out &amp;gt; /sys/class/gpio/gpio$LED/direction&lt;br /&gt;
# cat /sys/class/gpio/gpio$LED/direction&lt;br /&gt;
out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Play with GPIO value to blink LED:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# echo 1 &amp;gt; /sys/class/gpio/gpio$LED/value&lt;br /&gt;
# echo 0 &amp;gt; /sys/class/gpio/gpio$LED/value&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Get APFxxDev i.MX switch status===&lt;br /&gt;
* Find the GPIO number connected to the switch, eg:&lt;br /&gt;
** for APF27Dev: '''PF13 -&amp;gt;''' PortF (n°6) pin 13 -&amp;gt; (6-1)*32 + 13 -&amp;gt; '''GPIO n°173'''&lt;br /&gt;
** for APF51Dev: '''GPIO1_3''' -&amp;gt; Port 1 pin 3 -&amp;gt; '''GPIO n°3''' ((1-1)*32 + 3)&lt;br /&gt;
** for APF28Dev: Bank 0, pin 17 -&amp;gt; GPIO n° 17 (0*32 + 17)&lt;br /&gt;
* Define envt variable (for portability):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# export SWITCH=173    (APF27Dev)&lt;br /&gt;
or&lt;br /&gt;
# export SWITCH=3      (APF51Dev)&lt;br /&gt;
or&lt;br /&gt;
# export SWITCH=17     (APF28Dev)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Ask kernel to export the GPIO:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# echo $SWITCH &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Access functions are created:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# ls /sys/class/gpio/gpio$SWITCH/&lt;br /&gt;
active_low  edge        subsystem   value&lt;br /&gt;
direction   power       uevent&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Check GPIO direction and put in output:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# cat /sys/class/gpio/gpio$SWITCH/direction&lt;br /&gt;
in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Get switch status:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# cat /sys/class/gpio/gpio$SWITCH/value&lt;br /&gt;
1    (released)&lt;br /&gt;
...&lt;br /&gt;
# cat /sys/class/gpio/gpio$SWITCH/value&lt;br /&gt;
0    (pressed)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Block until an event occur:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# cat /sys/class/gpio/gpio$SWITCH/edge&lt;br /&gt;
none&lt;br /&gt;
# echo both &amp;gt; /sys/class/gpio/gpio$SWITCH/edge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AsGpio ==&lt;br /&gt;
&lt;br /&gt;
An example of AsDevices usage for GPIO in C can be found in armadeus BSP. To compile it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ cd target/demos/toggle_gpio&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tips==&lt;br /&gt;
* [[Linux_Debug#Using_DebugFS|Show already allocated GPIOS]]&lt;br /&gt;
* ''/usr/bin/gpio_helpers.sh'' script contains 2 functions that can help usage of output GPIOs: gpio_direction_output() and gpio_set_value(). For example to set GPIO N°12 as output and set it to 0:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# source /usr/bin/gpio_helpers.sh&lt;br /&gt;
# gpio_direction_output 12 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* http://www.kernel.org/doc/Documentation/gpio.txt&lt;br /&gt;
* [http://bec-systems.com/site/281/how-to-implement-an-interrupt-driven-gpio-input-in-linux how to implement an interrupt driven gpio input in linux]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=APF6&amp;diff=12792</id>
		<title>APF6</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=APF6&amp;diff=12792"/>
				<updated>2014-10-21T11:35:11Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* Feature list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
The APF51 is a high-end [https://en.wikipedia.org/wiki/Single-board_computer Single Board Computer] targeted for advanced GUI, intensive computation and extended connectivity.&lt;br /&gt;
&lt;br /&gt;
Here is a list of the main features:&lt;br /&gt;
* Processor: [http://www.freescale.com/webapp/sps/site/taxonomy.jsp?code=IMX6X_SERIES i.MX6] (single, dual or quad core Cortex-A9 @ 1GHz)&lt;br /&gt;
* RAM: DDR3 1086. 512Mbytes to 2GBytes. 32 ot 64bits data bus. Default capacity will be 512Mbytes.&lt;br /&gt;
* Flash: eMMC 4Gbytes, 8 bits data bus.&lt;br /&gt;
* Ethernet: onboard Physical (ready to use Ethernet 10/100/1000Mbit link)&lt;br /&gt;
* USB: High speed USB OTG (OnTheGo) with onboard Physical (ready to use USB OTG link)&lt;br /&gt;
* USB: High speed Host with integrated PHY&lt;br /&gt;
* PCIexpress Gen2&lt;br /&gt;
* SATA II&lt;br /&gt;
* DVI output&lt;br /&gt;
* TFT CMOS/LVDS interface&lt;br /&gt;
* WiFi (option): b/g/n with u.FL antenna&lt;br /&gt;
* Bluetooth (option): BT 4.0&lt;br /&gt;
* Only one external supply of 3.3V required.&lt;br /&gt;
* Mechanical dimensions: 60x50mm&lt;br /&gt;
&lt;br /&gt;
All the i.MX6 peripherals can be accessed through two high density [[Hirose connectors]].&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
* [[Datasheet | Datasheet and schema]]&lt;br /&gt;
&lt;br /&gt;
==Feature list==&lt;br /&gt;
* [[APF6_Linux_kernel_status]]&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; summary=&amp;quot;Hardware Add-Ons by functionnalities&amp;quot;&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
===Video===&lt;br /&gt;
====Video Out====&lt;br /&gt;
* [[LCD]]&lt;br /&gt;
* [[BackLight]]&lt;br /&gt;
* [[FrameBuffer]]&lt;br /&gt;
* [[DVI_/_HDMI|DVI/HDMI]]&lt;br /&gt;
&lt;br /&gt;
====Video In====&lt;br /&gt;
*[[Camera_interface]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
===Wired communication===&lt;br /&gt;
* [[Uart]]&lt;br /&gt;
* [[SPI]]&lt;br /&gt;
* [[I2C]]&lt;br /&gt;
* [[USB_Host]]&lt;br /&gt;
* [[USB_Gadget]]&lt;br /&gt;
* [[USB_OTG]]&lt;br /&gt;
* [[CAN_bus_Linux_driver|CAN bus]]&lt;br /&gt;
* [[PCIE]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
===Wireless communication===&lt;br /&gt;
* [[TI driver |Jorjin chipset driver]]&lt;br /&gt;
* [[Wifi|WiFi usage on Linux]]&lt;br /&gt;
* [[Bluetooth|Bluetooth usage on Linux]]&lt;br /&gt;
&lt;br /&gt;
===Storage===&lt;br /&gt;
* [[MultiMediaCard]]&lt;br /&gt;
* [[SATA]]&lt;br /&gt;
* [[eMMC]]&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
* [[PWM]]&lt;br /&gt;
* [[GPIOlib]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Development boards==&lt;br /&gt;
* [[APF6Dev]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MainBoards]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=APF6&amp;diff=12791</id>
		<title>APF6</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=APF6&amp;diff=12791"/>
				<updated>2014-10-21T11:35:04Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* Feature list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
The APF51 is a high-end [https://en.wikipedia.org/wiki/Single-board_computer Single Board Computer] targeted for advanced GUI, intensive computation and extended connectivity.&lt;br /&gt;
&lt;br /&gt;
Here is a list of the main features:&lt;br /&gt;
* Processor: [http://www.freescale.com/webapp/sps/site/taxonomy.jsp?code=IMX6X_SERIES i.MX6] (single, dual or quad core Cortex-A9 @ 1GHz)&lt;br /&gt;
* RAM: DDR3 1086. 512Mbytes to 2GBytes. 32 ot 64bits data bus. Default capacity will be 512Mbytes.&lt;br /&gt;
* Flash: eMMC 4Gbytes, 8 bits data bus.&lt;br /&gt;
* Ethernet: onboard Physical (ready to use Ethernet 10/100/1000Mbit link)&lt;br /&gt;
* USB: High speed USB OTG (OnTheGo) with onboard Physical (ready to use USB OTG link)&lt;br /&gt;
* USB: High speed Host with integrated PHY&lt;br /&gt;
* PCIexpress Gen2&lt;br /&gt;
* SATA II&lt;br /&gt;
* DVI output&lt;br /&gt;
* TFT CMOS/LVDS interface&lt;br /&gt;
* WiFi (option): b/g/n with u.FL antenna&lt;br /&gt;
* Bluetooth (option): BT 4.0&lt;br /&gt;
* Only one external supply of 3.3V required.&lt;br /&gt;
* Mechanical dimensions: 60x50mm&lt;br /&gt;
&lt;br /&gt;
All the i.MX6 peripherals can be accessed through two high density [[Hirose connectors]].&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
* [[Datasheet | Datasheet and schema]]&lt;br /&gt;
&lt;br /&gt;
==Feature list==&lt;br /&gt;
* [[APF6_Linux_kernel_status]]&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; summary=&amp;quot;Hardware Add-Ons by functionnalities&amp;quot;&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
===Video===&lt;br /&gt;
====Video Out====&lt;br /&gt;
* [[LCD]]&lt;br /&gt;
* [[BackLight]]&lt;br /&gt;
* [[FrameBuffer]]&lt;br /&gt;
* [[DVI_/_HDMI|DVI/HDMI]]&lt;br /&gt;
&lt;br /&gt;
====Video In====&lt;br /&gt;
*[[Camera_interface]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
===Wired communication===&lt;br /&gt;
* [[Uart]]&lt;br /&gt;
* [[SPI]]&lt;br /&gt;
* [[I2C]]&lt;br /&gt;
* [[USB_Host]]&lt;br /&gt;
* [[USB_Gadget]]&lt;br /&gt;
* [[USB_OTG]]&lt;br /&gt;
* [[CAN_bus_Linux_driver|CAN bus]]&lt;br /&gt;
* [[PCIE]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
===Wireless communication===&lt;br /&gt;
** [[TI driver |Jorjin chipset driver]]&lt;br /&gt;
* [[Wifi|WiFi usage on Linux]]&lt;br /&gt;
* [[Bluetooth|Bluetooth usage on Linux]]&lt;br /&gt;
&lt;br /&gt;
===Storage===&lt;br /&gt;
* [[MultiMediaCard]]&lt;br /&gt;
* [[SATA]]&lt;br /&gt;
* [[eMMC]]&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
* [[PWM]]&lt;br /&gt;
* [[GPIOlib]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Development boards==&lt;br /&gt;
* [[APF6Dev]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MainBoards]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=MultiMediaCard&amp;diff=12790</id>
		<title>MultiMediaCard</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=MultiMediaCard&amp;diff=12790"/>
				<updated>2014-10-21T11:27:10Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Instructions to use the MultiMediaCard (MMC/SD) on your Armadeus board&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
You can use standard MMC/SD/miniSD/microSD cards with your Armadeus board:&lt;br /&gt;
* with an APF9328 DevLight V1, you must have [[MMC/SD | the corresponding connector attached to your development board.]] and use an adaptor for miniSD and microSD,&lt;br /&gt;
* with an APF9328 DevLight V2, you can use the onboard microSD connector,&lt;br /&gt;
* with an [[APF9328DevFull]], you can use the MMC/SD onboard connector and an adaptor for miniSD and microSD,&lt;br /&gt;
* with an [[APF27Dev]], an [[APF28Dev]], an [[APF51Dev]] or an [[APF6Dev]], you can use the onboard microSD connector.&lt;br /&gt;
&lt;br /&gt;
All needed drivers are included in the standard Armadeus Linux image.&lt;br /&gt;
&lt;br /&gt;
==Card insertion==&lt;br /&gt;
You should see something like that on the Linux console:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # imx-mmc imx-mmc.0: card inserted&lt;br /&gt;
 mmc0: host does not support reading read-only switch. assuming write-enable.&lt;br /&gt;
 mmc0: new SD card at address 01b0&lt;br /&gt;
 mmcblk0: mmc0:01b0 SD512 500224KiB&lt;br /&gt;
  mmcblk0: p1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mounting the MMC/SD==&lt;br /&gt;
&lt;br /&gt;
* Just mount the MMC like you will do on your PC:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mount /dev/mmcblk0p1 /media/mmc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Then, you can access the MMC's files from the ''/media/mmc'' directory&lt;br /&gt;
&lt;br /&gt;
If you have problems with vfat code page, [[MultiMediaCard#VFAT_Code_Page|include the missing code page into the kernel]].&lt;br /&gt;
&lt;br /&gt;
==Booting from MMC/SD==&lt;br /&gt;
When your rootfs is too big to be put on the APF Flash, you can always use a MMC/SD like a Hard Drive and boot from it (this is possible because standard Armadeus kernel is compiled with the MMC driver built in).&lt;br /&gt;
&lt;br /&gt;
===Prepare your card===&lt;br /&gt;
* On your APF board (to avoid to crash your Host HD), create a good partition table:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # /sbin/fdisk /dev/mmcblk0&lt;br /&gt;
 Delete all existing partion with 'd'&lt;br /&gt;
 Create a primary partion: 'n' then 'p' then '1'&lt;br /&gt;
 Change bootflag to Linux: 't' then '83'&lt;br /&gt;
 Save partition table: 'w'&lt;br /&gt;
 (To quit without saving: 'm')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Then, on your PC, format your MMC with Ext2 filesystem (booting on FAT is bad :-) ):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ sudo mkfs.ext2 /dev/sdX1   (replace X with your MMC reader drive letter, if your Laptop has an integrated&lt;br /&gt;
                                           MMC reader then use mmcblk0p1 instead of sdX1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* If not automatically detected/mounted by your distribution, mount your MMC/SD on your Host filesystem (for example in ''/media/mmc''):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ sudo mkdir -p /media/mmc&lt;br /&gt;
 $ sudo mount /dev/sdX1 /media/mmc    (replace X with your MMC reader drive letter, if your Laptop has an integrated&lt;br /&gt;
                                                   MMC reader then use mmcblk0p1 instead of sdX1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Put your rootfs and Linux kernel on the MMC/SD===&lt;br /&gt;
* Buildroot should be configured to generate a tar-ed rootfs '''(done by default)''', if not:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Filesystem images  ---&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
    [*] tar the root filesystem&lt;br /&gt;
          Compression method (no compression)  ---&amp;gt;&lt;br /&gt;
    ()    other random options to pass to tar&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* and then uncompress the rootfs to the SD card (mounted as /media/mmc on your PC here). You can also copy the Linux kernel to the rootfs ''/boot'' folder:&lt;br /&gt;
{{Note | The APF51 (with U-Boot version older than 2013.04) and the APF9328 do not load the kernel from the SD card but use the one in Flash instead. }}&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make shell_env&lt;br /&gt;
$ source armadeus_env.sh&lt;br /&gt;
$ sudo tar xvf $ARMADEUS_ROOTFS_TAR -C /media/mmc&lt;br /&gt;
$ sudo mkdir -p /media/mmct/boot&lt;br /&gt;
$ sudo cp $ARMADEUS_BINARIES/$ARMADEUS_BOARD_NAME-linux.bin /media/mmc/boot&lt;br /&gt;
$ sudo umount /media/mmc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Boot===&lt;br /&gt;
* Insert the MMC/SD/microSD in the corresponding slot of your Armadeus board and then under U-Boot do:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; run mmcboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* if you want to automatically boot from SD at each startup, modify the ''bootcmd'' U-Boot macro:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; setenv bootcmd run mmcboot&lt;br /&gt;
 BIOS&amp;gt; saveenv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(default bootcmd when you receive your board is ''run jffsboot'' = boot from FLASH)&lt;br /&gt;
&lt;br /&gt;
==Performances==&lt;br /&gt;
* [[MMC/SD#Supported_Cards| Show tested cards performances]]&lt;br /&gt;
&lt;br /&gt;
==Troubleshots==&lt;br /&gt;
===VFAT Code Page===&lt;br /&gt;
If you encounter this message (or something similar):&lt;br /&gt;
 Unable to load NLS charset cp437&lt;br /&gt;
 FAT: codepage cp437 not found&lt;br /&gt;
you have to add the charset to the supported kernel ones:&lt;br /&gt;
 $ make linux-menuconfig&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
File systems  ---&amp;gt; &lt;br /&gt;
    -*- Native language support  ---&amp;gt;&lt;br /&gt;
        &amp;lt;*&amp;gt;   Codepage 437 (United States, Canada)&lt;br /&gt;
        ...&lt;br /&gt;
        &amp;lt;*&amp;gt;   NLS ISO 8859-1  (Latin 1; Western European Languages)&lt;br /&gt;
        ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==U-Boot usage==&lt;br /&gt;
SD cards can also be used with U-Boot.&lt;br /&gt;
The following commands are useful:&lt;br /&gt;
* Scan the MMC:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
BIOS&amp;gt; mmc rescan&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* List the MMC content:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
BIOS&amp;gt; fatls mmc 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Load the file xxx.bin in RAM:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
BIOS&amp;gt; fatload mmc 0 ${loadaddr} xxx.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
* http://en.wikipedia.org/wiki/MultiMedia_Card&lt;br /&gt;
&lt;br /&gt;
[[Category:MassStorage]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=APF6Dev&amp;diff=12789</id>
		<title>APF6Dev</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=APF6Dev&amp;diff=12789"/>
				<updated>2014-10-21T11:25:37Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* Feature list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
This is the Armadeus System's standard development board/baseboard for the [[APF6]] module.&lt;br /&gt;
&lt;br /&gt;
The following options are available:&lt;br /&gt;
* [[GPS]]&lt;br /&gt;
* [[Gsm|GSM]]&lt;br /&gt;
&lt;br /&gt;
==Errata==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
* [[Datasheet | Datasheet and schema]]&lt;br /&gt;
* [http://www.armadeus.com/english/products-development_boards-apf6_dev.html Product page on Armadeus Systems website]&lt;br /&gt;
&lt;br /&gt;
==Feature list==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; summary=&amp;quot;Hardware Add-Ons by functionnalities&amp;quot;&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
===Audio===&lt;br /&gt;
* [[SGTL5000]]: audio in/out&lt;br /&gt;
* [[ALSA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Video Out===&lt;br /&gt;
* [[LCD]]&lt;br /&gt;
* [[BackLight]]&lt;br /&gt;
* [[FrameBuffer]]&lt;br /&gt;
* [[DVI_/_HDMI|DVI/HDMI]]&lt;br /&gt;
&lt;br /&gt;
===Video In===&lt;br /&gt;
*[[Camera interface]]&lt;br /&gt;
||&lt;br /&gt;
===User Input===&lt;br /&gt;
* [[SX8654|touchscreen]]&lt;br /&gt;
&lt;br /&gt;
===Wired communication===&lt;br /&gt;
* [[Uart|UART]]&lt;br /&gt;
* [[SPI]]&lt;br /&gt;
* [[I2C]]&lt;br /&gt;
* [[USB Host]] &lt;br /&gt;
* [[USB_OTG]]&lt;br /&gt;
* [[USB_Gadget]]&lt;br /&gt;
* [[CAN_bus_Linux_driver|CAN bus]]&lt;br /&gt;
* [[PCIE]]&lt;br /&gt;
&lt;br /&gt;
===Storage===&lt;br /&gt;
* [[MultiMediaCard]]&lt;br /&gt;
* [[SATA]]&lt;br /&gt;
||&lt;br /&gt;
===Realtime===&lt;br /&gt;
* [[MCP79400|RTC]]&lt;br /&gt;
&lt;br /&gt;
===Wireless communication===&lt;br /&gt;
* [[Wifi|WiFi usage on Linux]]&lt;br /&gt;
* [[Bluetooth|Bluetooth usage on Linux]]&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
* [[PWM]]: PWM output is on J22 pin 4 &amp;lt;br&amp;gt;(2.8V output, if configured as output)&lt;br /&gt;
* [[GPIOlib]]&lt;br /&gt;
* [[JTAG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:DevelopmentBoards]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=APF6Dev&amp;diff=12788</id>
		<title>APF6Dev</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=APF6Dev&amp;diff=12788"/>
				<updated>2014-10-21T11:23:56Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* Feature list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
This is the Armadeus System's standard development board/baseboard for the [[APF6]] module.&lt;br /&gt;
&lt;br /&gt;
The following options are available:&lt;br /&gt;
* [[GPS]]&lt;br /&gt;
* [[Gsm|GSM]]&lt;br /&gt;
&lt;br /&gt;
==Errata==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
* [[Datasheet | Datasheet and schema]]&lt;br /&gt;
* [http://www.armadeus.com/english/products-development_boards-apf6_dev.html Product page on Armadeus Systems website]&lt;br /&gt;
&lt;br /&gt;
==Feature list==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; summary=&amp;quot;Hardware Add-Ons by functionnalities&amp;quot;&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
===Audio===&lt;br /&gt;
* [[SGTL5000]]: audio in/out&lt;br /&gt;
* [[ALSA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Video Out===&lt;br /&gt;
* [[LCD]]&lt;br /&gt;
* [[BackLight]]&lt;br /&gt;
* [[FrameBuffer]]&lt;br /&gt;
* [[DVI_/_HDMI|DVI/HDMI]]&lt;br /&gt;
&lt;br /&gt;
===Video In===&lt;br /&gt;
*[[Camera interface]]&lt;br /&gt;
||&lt;br /&gt;
===User Input===&lt;br /&gt;
* [[Keypad]]&lt;br /&gt;
* [[SX8654|touchscreen]]&lt;br /&gt;
&lt;br /&gt;
===Wired communication===&lt;br /&gt;
* [[Uart|UART]]&lt;br /&gt;
* [[SPI]]&lt;br /&gt;
* [[I2C]]&lt;br /&gt;
* [[USB Host]] &lt;br /&gt;
* [[USB_OTG]]&lt;br /&gt;
* [[USB_Gadget]]&lt;br /&gt;
* [[CAN_bus_Linux_driver|CAN bus]]&lt;br /&gt;
* [[PCIE]]&lt;br /&gt;
&lt;br /&gt;
===Storage===&lt;br /&gt;
* [[MultiMediaCard]]&lt;br /&gt;
* [[SATA]]&lt;br /&gt;
||&lt;br /&gt;
===Realtime===&lt;br /&gt;
* [[MCP79400|RTC]]&lt;br /&gt;
&lt;br /&gt;
===Wireless communication===&lt;br /&gt;
* [[Wifi|WiFi usage on Linux]]&lt;br /&gt;
* [[Bluetooth|Bluetooth usage on Linux]]&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
* [[PWM]]: PWM output is on J22 pin 4 &amp;lt;br&amp;gt;(2.8V output, if configured as output)&lt;br /&gt;
* [[GPIOlib]]&lt;br /&gt;
* [[JTAG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:DevelopmentBoards]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=CAN_bus_Linux_driver&amp;diff=12787</id>
		<title>CAN bus Linux driver</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=CAN_bus_Linux_driver&amp;diff=12787"/>
				<updated>2014-10-21T11:23:17Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* Driver installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The current CAN bus driver uses SocketCAN API which is now the official CAN API for Linux.&lt;br /&gt;
SocketCAN is based on the Linux socket. Further details can be found on the links at the bottom of this page.&lt;br /&gt;
&lt;br /&gt;
{{Warning| Please ensure that you use the trunk version of armadeus (kernel version greater or equal to linux-2.6.38 is required) before trying the instructions described on this page ! With older kernel versions you may not be able to change the bitrate.}}&lt;br /&gt;
&lt;br /&gt;
==Driver installation==&lt;br /&gt;
* Nothing has to be done for the [[APF51Dev]], the [[APF28Dev]] and the [[APF6Dev]].&lt;br /&gt;
* For the [[APF27Dev|APF27DevFull]]:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ make linux-menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Networking support  ---&amp;gt;&lt;br /&gt;
    &amp;lt;M&amp;gt;   CAN bus subsystem support ---&amp;gt; &lt;br /&gt;
        --- CAN bus subsystem support&lt;br /&gt;
        &amp;lt;M&amp;gt;   Raw CAN Protocol (raw access with CAN-ID filtering)&lt;br /&gt;
        &amp;lt;M&amp;gt;   Broadcast Manager CAN Protocol (with content filtering)&lt;br /&gt;
              CAN Device Drivers  ---&amp;gt;&lt;br /&gt;
                  &amp;lt;M&amp;gt; Virtual Local CAN Interface (vcan)&lt;br /&gt;
                  &amp;lt;M&amp;gt; Platform CAN drivers with Netlink support&lt;br /&gt;
                  [*]   CAN bit-timing calculation   &lt;br /&gt;
                  &amp;lt;M&amp;gt; Microchip 251x series SPI CAN Controller&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ make linux&lt;br /&gt;
 $ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Reflash kernel and rootfs&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
* Load all the needed drivers:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
modprobe can&lt;br /&gt;
modprobe can-dev&lt;br /&gt;
modprobe can-raw &lt;br /&gt;
modprobe mcp251x       # on APF27 &amp;amp; APF51 only&lt;br /&gt;
modprobe flexcan       # on APF6 only&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Set the bitrate before all operations&lt;br /&gt;
Example:&lt;br /&gt;
Set the bitrate of the can0 interface to 125kbps:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# ip link set can0 up type can bitrate 125000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note| An error occurs when you try to set the bitrate with an old Linux kernel. }}&lt;br /&gt;
&lt;br /&gt;
* If the following error occurs when you do the last instruction :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
ip: either &amp;quot;dev&amp;quot; is duplicate, or &amp;quot;type&amp;quot; is garbage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
check that this command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# which ip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
return this message:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
/sbin/ip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and not this one :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
/bin/ip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the binary is installed in ''/bin'' instead of ''/sbin'', the executable file is a link to busybox and the command to set the bitrate doesn't work on busybox, so try the following instructions:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make busybox-clean&lt;br /&gt;
$ make busybox-dirclean&lt;br /&gt;
$ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Package Selection for the target  ---&amp;gt;&lt;br /&gt;
    Networking applications  ---&amp;gt;&lt;br /&gt;
        [*] iproute2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, reflash your rootfs.&lt;br /&gt;
&lt;br /&gt;
==Quick test==&lt;br /&gt;
Once the driver installed and the bitrate is set, the CAN interface has to be started like a standard net interface&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # ifconfig can0 up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and can be stopped like that:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # ifconfig can0 down&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The socketCAN version can be retrieved like that:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # cat /proc/net/can/version&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The socketCAN statistics can be retrieved like that:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # cat /proc/net/can/stats&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Userspace tools==&lt;br /&gt;
Several tools are provided by socketCAN:&lt;br /&gt;
*'''candump''': dump traffic on a CAN network&lt;br /&gt;
The following command shows the received message from the CAN bus&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
candump can0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*'''cansend''': simple command line tool to send CAN-frames via CAN_RAW sockets &lt;br /&gt;
exemple :&lt;br /&gt;
The following command sends 3 bytes on the bus (0x1E, 0x10, 0x10) with the identifier 500.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
cansend can0 500#1E.10.10&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You can send a remote request message&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
cansend can0 500#R&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The information with the identifier 500 will be available on the bus when the device receive the remote request message&lt;br /&gt;
*'''cangen''': CAN frames generator for testing purpose&lt;br /&gt;
*'''canplayer''': send CAN frames from a file to a CAN interface&lt;br /&gt;
&lt;br /&gt;
These tools can be compiled and installed on the target by means of the Buildroot menuconfig:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Package Selection for the target  ---&amp;gt;&lt;br /&gt;
    Networking  ---&amp;gt;&lt;br /&gt;
        [*]   Socket CAN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
then, reflash your rootfs.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* https://www.ridgerun.com/developer/wiki/index.php/How_to_configure_and_use_CAN_bus (How to configure and use CAN bus)&lt;br /&gt;
* http://developer.berlios.de/projects/socketcan/ (CAN Linux Driver)&lt;br /&gt;
* http://ww1.microchip.com/downloads/en/DeviceDoc/21801e.pdf (MCP2515 datasheet)&lt;br /&gt;
* http://www.kvaser.com/can/protocol/index.htm (CAN introduction)&lt;br /&gt;
* http://www.armadeus.com/wiki/index.php?title=User:KevinJ#Communication_with_the_CAN_Bus_of_a_car (Communication with a car CAN bus)&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux drivers]]&lt;br /&gt;
[[Category:CAN bus]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=APF6&amp;diff=12785</id>
		<title>APF6</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=APF6&amp;diff=12785"/>
				<updated>2014-10-21T09:50:47Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
The APF51 is a high-end [https://en.wikipedia.org/wiki/Single-board_computer Single Board Computer] targeted for advanced GUI, intensive computation and extended connectivity.&lt;br /&gt;
&lt;br /&gt;
Here is a list of the main features:&lt;br /&gt;
* Processor: [http://www.freescale.com/webapp/sps/site/taxonomy.jsp?code=IMX6X_SERIES i.MX6] (single, dual or quad core Cortex-A9 @ 1GHz)&lt;br /&gt;
* RAM: DDR3 1086. 512Mbytes to 2GBytes. 32 ot 64bits data bus. Default capacity will be 512Mbytes.&lt;br /&gt;
* Flash: eMMC 4Gbytes, 8 bits data bus.&lt;br /&gt;
* Ethernet: onboard Physical (ready to use Ethernet 10/100/1000Mbit link)&lt;br /&gt;
* USB: High speed USB OTG (OnTheGo) with onboard Physical (ready to use USB OTG link)&lt;br /&gt;
* USB: High speed Host with integrated PHY&lt;br /&gt;
* PCIexpress Gen2&lt;br /&gt;
* SATA II&lt;br /&gt;
* DVI output&lt;br /&gt;
* TFT CMOS/LVDS interface&lt;br /&gt;
* WiFi (option): b/g/n with u.FL antenna&lt;br /&gt;
* Bluetooth (option): BT 4.0&lt;br /&gt;
* Only one external supply of 3.3V required.&lt;br /&gt;
* Mechanical dimensions: 60x50mm&lt;br /&gt;
&lt;br /&gt;
All the i.MX6 peripherals can be accessed through two high density [[Hirose connectors]].&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
* [[Datasheet | Datasheet and schema]]&lt;br /&gt;
&lt;br /&gt;
==Feature list==&lt;br /&gt;
* [[APF6_Linux_kernel_status]]&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; summary=&amp;quot;Hardware Add-Ons by functionnalities&amp;quot;&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
===Video===&lt;br /&gt;
====Video Out====&lt;br /&gt;
* [[LCD]]&lt;br /&gt;
* [[BackLight]]&lt;br /&gt;
* [[FrameBuffer]]&lt;br /&gt;
* [[DVI_/_HDMI|DVI/HDMI]]&lt;br /&gt;
&lt;br /&gt;
====Video In====&lt;br /&gt;
*[[Camera_interface]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
===Wired communication===&lt;br /&gt;
* [[Uart]]&lt;br /&gt;
* [[SPI]]&lt;br /&gt;
* [[I2C]]&lt;br /&gt;
* [[USB_Host]]&lt;br /&gt;
* [[USB_Gadget]]&lt;br /&gt;
* [[USB_OTG]]&lt;br /&gt;
* [[CAN_bus_Linux_driver|CAN bus]]&lt;br /&gt;
* [[PCIE]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
===Wireless communication===&lt;br /&gt;
* [[Wifi|WiFi usage on Linux]]&lt;br /&gt;
* [[Bluetooth|Bluetooth usage on Linux]]&lt;br /&gt;
&lt;br /&gt;
===User Input===&lt;br /&gt;
* [[Keypad]]&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
===Storage===&lt;br /&gt;
* [[MultiMediaCard]]&lt;br /&gt;
* [[SATA]]&lt;br /&gt;
* [[eMMC]]&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
* [[PWM]]&lt;br /&gt;
* [[GPIOlib]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Development boards==&lt;br /&gt;
* [[APF6Dev]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MainBoards]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=APF6&amp;diff=12784</id>
		<title>APF6</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=APF6&amp;diff=12784"/>
				<updated>2014-10-21T09:49:55Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* Feature list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
The APF51 is a high-end [https://en.wikipedia.org/wiki/Single-board_computer Single Board Computer] targeted for advanced GUI, intensive computation and extended connectivity.&lt;br /&gt;
&lt;br /&gt;
Here is a list of the main features:&lt;br /&gt;
* Processor: [http://www.freescale.com/webapp/sps/site/taxonomy.jsp?code=IMX6X_SERIES i.MX6] (single, dual or quad core Cortex-A9 @ 1GHz)&lt;br /&gt;
* RAM: DDR3 1086. 512Mbytes to 2GBytes. 32 ot 64bits data bus. Default capacity will be 512Mbytes.&lt;br /&gt;
* Flash: eMMC 4Gbytes, 8 bits data bus.&lt;br /&gt;
* Ethernet: onboard Physical (ready to use Ethernet 10/100/1000Mbit link)&lt;br /&gt;
* USB: High speed USB OTG (OnTheGo) with onboard Physical (ready to use USB OTG link)&lt;br /&gt;
* USB: High speed Host with integrated PHY&lt;br /&gt;
* WiFi (option): b/g/n with u.FL antenna&lt;br /&gt;
* Bluetooth (option): BT 4.0&lt;br /&gt;
* Only one external supply of 3.3V required.&lt;br /&gt;
* Mechanical dimensions: 60x50mm&lt;br /&gt;
&lt;br /&gt;
All the i.MX6 peripherals can be accessed through two high density [[Hirose connectors]].&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
* [[Datasheet | Datasheet and schema]]&lt;br /&gt;
&lt;br /&gt;
==Feature list==&lt;br /&gt;
* [[APF6_Linux_kernel_status]]&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; summary=&amp;quot;Hardware Add-Ons by functionnalities&amp;quot;&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
===Video===&lt;br /&gt;
====Video Out====&lt;br /&gt;
* [[LCD]]&lt;br /&gt;
* [[BackLight]]&lt;br /&gt;
* [[FrameBuffer]]&lt;br /&gt;
* [[DVI_/_HDMI|DVI/HDMI]]&lt;br /&gt;
&lt;br /&gt;
====Video In====&lt;br /&gt;
*[[Camera_interface]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
===Wired communication===&lt;br /&gt;
* [[Uart]]&lt;br /&gt;
* [[SPI]]&lt;br /&gt;
* [[I2C]]&lt;br /&gt;
* [[USB_Host]]&lt;br /&gt;
* [[USB_Gadget]]&lt;br /&gt;
* [[USB_OTG]]&lt;br /&gt;
* [[CAN_bus_Linux_driver|CAN bus]]&lt;br /&gt;
* [[PCIE]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
===Wireless communication===&lt;br /&gt;
* [[Wifi|WiFi usage on Linux]]&lt;br /&gt;
* [[Bluetooth|Bluetooth usage on Linux]]&lt;br /&gt;
&lt;br /&gt;
===User Input===&lt;br /&gt;
* [[Keypad]]&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
===Storage===&lt;br /&gt;
* [[MultiMediaCard]]&lt;br /&gt;
* [[SATA]]&lt;br /&gt;
* [[eMMC]]&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
* [[PWM]]&lt;br /&gt;
* [[GPIOlib]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Development boards==&lt;br /&gt;
* [[APF6Dev]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MainBoards]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=APF6Dev&amp;diff=12783</id>
		<title>APF6Dev</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=APF6Dev&amp;diff=12783"/>
				<updated>2014-10-21T09:49:11Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: New page: ==Description== This is the Armadeus System's standard development board/baseboard for the APF6 module.  The following options are available: * GPS * GSM  ==Errata==   ==Re...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
This is the Armadeus System's standard development board/baseboard for the [[APF6]] module.&lt;br /&gt;
&lt;br /&gt;
The following options are available:&lt;br /&gt;
* [[GPS]]&lt;br /&gt;
* [[Gsm|GSM]]&lt;br /&gt;
&lt;br /&gt;
==Errata==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
* [[Datasheet | Datasheet and schema]]&lt;br /&gt;
* [http://www.armadeus.com/english/products-development_boards-apf6_dev.html Product page on Armadeus Systems website]&lt;br /&gt;
&lt;br /&gt;
==Feature list==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; summary=&amp;quot;Hardware Add-Ons by functionnalities&amp;quot;&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
===Audio===&lt;br /&gt;
* [[SGTL5000]]: audio in/out&lt;br /&gt;
* [[ALSA]]&lt;br /&gt;
&lt;br /&gt;
===Video===&lt;br /&gt;
====Video Out====&lt;br /&gt;
* [[LCD]]&lt;br /&gt;
* [[BackLight]]&lt;br /&gt;
* [[FrameBuffer]]&lt;br /&gt;
* [[DVI_/_HDMI|DVI/HDMI]]&lt;br /&gt;
&lt;br /&gt;
====Video In====&lt;br /&gt;
*[[Camera interface]]&lt;br /&gt;
||&lt;br /&gt;
===User Input===&lt;br /&gt;
* [[Keypad]]&lt;br /&gt;
* [[SX8654|touchscreen]]&lt;br /&gt;
&lt;br /&gt;
===Wired communication===&lt;br /&gt;
* [[Uart|UART]]&lt;br /&gt;
* [[SPI]]&lt;br /&gt;
* [[I2C]]&lt;br /&gt;
* [[USB Host]] &lt;br /&gt;
* [[USB_OTG]]&lt;br /&gt;
* [[USB_Gadget]]&lt;br /&gt;
* [[CAN_bus_Linux_driver|CAN bus]]&lt;br /&gt;
* [[PCIE]]&lt;br /&gt;
&lt;br /&gt;
===Storage===&lt;br /&gt;
* [[MultiMediaCard]]&lt;br /&gt;
* [[SATA]]&lt;br /&gt;
||&lt;br /&gt;
===Realtime===&lt;br /&gt;
* [[MCP79400|RTC]]&lt;br /&gt;
&lt;br /&gt;
===Wireless communication===&lt;br /&gt;
* [[Wifi|WiFi usage on Linux]]&lt;br /&gt;
* [[Bluetooth|Bluetooth usage on Linux]]&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
* [[PWM]]: PWM output is on J22 pin 4 &amp;lt;br&amp;gt;(2.8V output, if configured as output)&lt;br /&gt;
* [[GPIOlib]]&lt;br /&gt;
* [[JTAG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:DevelopmentBoards]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=Datasheet&amp;diff=12782</id>
		<title>Datasheet</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=Datasheet&amp;diff=12782"/>
				<updated>2014-10-21T09:45:28Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Armadeus datasheets and schemas =&lt;br /&gt;
&lt;br /&gt;
To see all documentation available for the board clic on the title.&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf9328/ APF9328] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf9328/documentation/dataSheet_APF9328.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf9328/hardware/apf_schema.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf9328DevLight/ APF9328Devlight] ==&lt;br /&gt;
* Datasheet [http://www.armadeus.com/_downloads/apf9328DevLight/documentation/dataSheet_APF9328_DevLight.pdf V1] [http://www.armadeus.com/_downloads/apf9328DevLight/documentation/dataSheet_APF9328_DevLight_V2.pdf V2]&lt;br /&gt;
*  Schemas [http://www.armadeus.com/_downloads/apf9328DevLight/hardware/dev_light_schema_v1.2.pdf V1.2] [http://www.armadeus.com/_downloads/apf9328DevLight/hardware/dev_light_schema.pdf V2]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf9328DevFull/ APF9328DevFull] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf9328DevFull/documentation/DataSheet_APF9328_DevFull.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf9328DevFull/hardware/apf9328_dev_schematics_v1_1.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf27/ APF27] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27/documentation/datasheet_apf27.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27/hardware/apf27_V1.2.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf27Dev/ APF27Dev] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27Dev/documentation/dataSheet_APF27Dev.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27Dev/hardware/apf27_devfull_12.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf27_PPS/ PPS (APF27)] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27_PPS/documentation/datasheet_pps.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf27_PPS/hardware/pps_v11.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf28/ APF28] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf28/documentation/datasheet_apf28.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf28/hardware/apf28_v10.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf28_Dev/ APF28_DEV] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf28_Dev/documentation/dataSheet_APF28Dev.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf28_Dev/hardware/apf28_dev_V10.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf51/ APF51] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf51/documentation/datasheet_apf51.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf51/hardware/apf51_v10.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf51_Dev/ APF51Dev] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf51_Dev/documentation/dataSheet_APF51Dev.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf51_Dev/hardware/apf51_dev_V12.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf6/ APF6] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf6/documentation/datasheet_apf6.pdf Datasheet]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apf6_Dev/ APF6Dev] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apf6_Dev/documentation/dataSheet_APF6Dev.pdf Datasheet]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/sp6_vision/ SP_VISION] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/sp6_vision/datasheet_sp_vision.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/sp6_vision/hardware/sp_vision_eval_board_V05.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/lw700at_adapt/ LW700] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/lw700at_adapt/documentation/datasheet_lw700at_adapt.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/lw700at_adapt/hardware/LW700AT_adapt_v0B.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/apw/ APW] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apw/documentation/datasheet_APW.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/apw/hardware/apf27_wireless_V0C.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
== [http://www.armadeus.com/_downloads/lcd_adapt_LQ043 LQ043] ==&lt;br /&gt;
* [http://www.armadeus.com/_downloads/lcd_adapt_LQ043/documentation/datasheet_lq043_adapt.pdf Datasheet]&lt;br /&gt;
* [http://www.armadeus.com/_downloads/lcd_adapt_LQ043/hardware/lq043_adapt_schematics_v0a.pdf Schema]&lt;br /&gt;
&lt;br /&gt;
= HMS Demo =&lt;br /&gt;
* Datasheet&lt;br /&gt;
* Schema&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=APF6&amp;diff=12781</id>
		<title>APF6</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=APF6&amp;diff=12781"/>
				<updated>2014-10-21T09:43:28Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: New page: ==Description== The APF51 is a high-end [https://en.wikipedia.org/wiki/Single-board_computer Single Board Computer] targeted for advanced GUI, intensive computation and extended connectivi...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
The APF51 is a high-end [https://en.wikipedia.org/wiki/Single-board_computer Single Board Computer] targeted for advanced GUI, intensive computation and extended connectivity.&lt;br /&gt;
&lt;br /&gt;
Here is a list of the main features:&lt;br /&gt;
* Processor: [http://www.freescale.com/webapp/sps/site/taxonomy.jsp?code=IMX6X_SERIES i.MX6] (single, dual or quad core Cortex-A9 @ 1GHz)&lt;br /&gt;
* RAM: DDR3 1086. 512Mbytes to 2GBytes. 32 ot 64bits data bus. Default capacity will be 512Mbytes.&lt;br /&gt;
* Flash: eMMC 4Gbytes, 8 bits data bus.&lt;br /&gt;
* Ethernet: onboard Physical (ready to use Ethernet 10/100/1000Mbit link)&lt;br /&gt;
* USB: High speed USB OTG (OnTheGo) with onboard Physical (ready to use USB OTG link)&lt;br /&gt;
* USB: High speed Host with integrated PHY&lt;br /&gt;
* WiFi (option): b/g/n with u.FL antenna&lt;br /&gt;
* Bluetooth (option): BT 4.0&lt;br /&gt;
* Only one external supply of 3.3V required.&lt;br /&gt;
* Mechanical dimensions: 60x50mm&lt;br /&gt;
&lt;br /&gt;
All the i.MX6 peripherals can be accessed through two high density [[Hirose connectors]].&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
&lt;br /&gt;
* [[Datasheet | Datasheet and schema]]&lt;br /&gt;
&lt;br /&gt;
==Feature list==&lt;br /&gt;
* [[APF6_Linux_kernel_status]]&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; summary=&amp;quot;Hardware Add-Ons by functionnalities&amp;quot;&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
===Video===&lt;br /&gt;
====Video Out====&lt;br /&gt;
* [[LCD]]&lt;br /&gt;
* [[BackLight]]&lt;br /&gt;
* [[FrameBuffer]]&lt;br /&gt;
* [[DVI_/_HDMI|DVI/HDMI]]&lt;br /&gt;
&lt;br /&gt;
====Video In====&lt;br /&gt;
*[[Camera_interface]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
===Wired communication===&lt;br /&gt;
* [[Uart]]&lt;br /&gt;
* [[SPI]]&lt;br /&gt;
* [[I2C]]&lt;br /&gt;
* [[USB_Host]]&lt;br /&gt;
* [[USB_Gadget]]&lt;br /&gt;
* [[USB_OTG]]&lt;br /&gt;
* [[CAN_bus_Linux_driver|CAN bus]]&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
===Wireless communication===&lt;br /&gt;
* [[Wifi|WiFi usage on Linux]]&lt;br /&gt;
* [[Bluetooth|Bluetooth usage on Linux]]&lt;br /&gt;
&lt;br /&gt;
===User Input===&lt;br /&gt;
* [[Keypad]]&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
===Storage===&lt;br /&gt;
* [[MultiMediaCard]]&lt;br /&gt;
===Other===&lt;br /&gt;
* [[PWM]]&lt;br /&gt;
* [[GPIOlib]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Development boards==&lt;br /&gt;
* [[APF6Dev]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MainBoards]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=RTC&amp;diff=11861</id>
		<title>RTC</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=RTC&amp;diff=11861"/>
				<updated>2013-06-20T16:13:02Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page, you will find useful informations to use the Real Time Clock of your boards (if chip is mounted).&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
===APF9328/APF27===&lt;br /&gt;
No permanent RTC is present on the [[APF9328]]/[[APF27]] modules, but you can have one (as an option) on the development boards or add it yourself if you are an electrician (it is not so complex to add a DS1374 (with integrated quartz) on the I2C bus). Do not forget to provide the two power-supply (VCC and Vbackup)).&lt;br /&gt;
Currently only Maxim's DS1374 has been used but any I2C RTC, supported by Linux, should work the same way.&lt;br /&gt;
&lt;br /&gt;
===APF51/APF28===&lt;br /&gt;
[[APF51]] and [[APF28]] modules have an onboard PMIC with an integrated RTC.&lt;br /&gt;
&lt;br /&gt;
== Driver installation ==&lt;br /&gt;
===APF9328/APF27===&lt;br /&gt;
DS1374 is by default included in standard Armadeus Linux kernel. To check if your board (Linux) has correctly detected the RTC:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# dmesg | grep ds1374&lt;br /&gt;
ds1374-legacy 0-0068: chip found, driver version 1.0&lt;br /&gt;
ds1374-legacy 0-0068: rtc core: registered ds1374-legacy as rtc0&lt;br /&gt;
ds1374-legacy 0-0068: setting system clock to 1970-01-01 00:00:07 UTC (7)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===APF51===&lt;br /&gt;
Driver is by default installed and launched. To check if your board (Linux) has correctly detected the RTC:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# dmesg | grep rtc&lt;br /&gt;
wm831x-rtc wm831x-rtc: rtc core: registered wm831x as rtc0&lt;br /&gt;
wm831x-rtc wm831x-rtc: setting system clock to 2011-05-03 13:27:26 UTC (1304429246)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===APF28===&lt;br /&gt;
&lt;br /&gt;
On APF28 the RTC is integrated under the [http://www.freescale.com/webapp/sps/site/taxonomy.jsp?code=IMX28_FAMILY i.MX28] processor. See the reference manual chapter 22 &amp;quot;Real-Time Clock Alarm Watchdog Persistent Bits&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
There isn't button-lithium backup battery under APF28dev board, if we unplug the power, clock is not saved and then we could ask : what the interest of RTC if not backuped ?&lt;br /&gt;
&lt;br /&gt;
The interest is when we power the whole board with a battery and we poweroff the apf28 with the command :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
$ poweroff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The processor will be powered of ... except the RTC. Then we could power on the board pushing power switch and keep the clock up to date.&lt;br /&gt;
&lt;br /&gt;
{{Warning| To enable poweroff on APF28dev the board must be powered by battery (J10 pin 4) and the USB-powering must be disconnected. To disconnect it, just '''unsolder the self L7''' (behind the usb J3 connector)}}&lt;br /&gt;
{{Note| Currently, the clock doesn't work in poweroff it must be fixed. The date and hour are keeped but not incremented}}&lt;br /&gt;
&lt;br /&gt;
==== Clock ====&lt;br /&gt;
&lt;br /&gt;
To read the hardware value of clock use hwclock command on file /dev/rtc0:&lt;br /&gt;
&lt;br /&gt;
==== Keep clock ====&lt;br /&gt;
&lt;br /&gt;
To power off the board type :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# poweroff&lt;br /&gt;
The system is going down NOW!&lt;br /&gt;
Sent SIGTERM to all processes&lt;br /&gt;
Sent SIGKILL to all processes&lt;br /&gt;
P&lt;br /&gt;
Communications disconnect (Back at localhost)&lt;br /&gt;
----------------------------------------------------&lt;br /&gt;
(/home/fabien/) C-Kermit&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And to wake-up the board push the button 'ON'. The date and hour will be keeped when you type 'date' or 'hwclock'.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
{{Note|We recommand to store time in [[wikipedia:UTC|UTC]] format in the RTC; that will ease the timezone/summer time handling.}}&lt;br /&gt;
* From Linux use the command '''hwclock''' to read, write, synchronize the RTC (here we pre-suppose that RTC is storing time in UTC format).&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # hwclock --help&lt;br /&gt;
 # hwclock -r -u      to read hardware clock and print result (localtime)&lt;br /&gt;
 # hwclock -s -u      to set the system time from the hardware clock&lt;br /&gt;
 # hwclock -w -u      to set the hardware clock to the current system time (UTC)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Warning|Security &amp;quot;features&amp;quot; prevent to change RTC time more than 8 times per hour '''on the APF51''' !!}}&lt;br /&gt;
* and '''date''' to read and update system date and time while running:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # date --help        for more information&lt;br /&gt;
 # date -R            to read hardware clock and print result&lt;br /&gt;
 # date 013122302011           to sets the system date to january 31th 2011 22h30 (localtime)&lt;br /&gt;
 # date 2011.01.31-22:30:00    also do the job&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Then, when booting you will see something like this:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
ds1374 0-0068: setting the system clock to 2011-xxxx&lt;br /&gt;
or&lt;br /&gt;
wm831x-rtc wm831x-rtc: setting system clock to 2011-xxxx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* TimeZone/Summer time handling can be configured in /etc/TZ:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # cat /etc/TZ&lt;br /&gt;
 CET-1DST,M3.5.0/2:00,M10.5.0/3:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* you can update RTC from a NTP (Network Time Protocol) server if your board is connected to internet or a NTP server &lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # ntpd -nqp 217.147.208.1&lt;br /&gt;
 ntpd: setting clock to Mon Apr 23 22:36:39 DST 2012 (offset 1335216961.855897s)&lt;br /&gt;
 # hwclock -wu  # to set the hardware clock to the current system time (UTC)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* if Alarm/wakeup is supported by the RTC driver then the alarm/wakeup time may be set like that for a 60 sec delay with RTC0&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # sec=`date '+%s'`&lt;br /&gt;
 # let &amp;quot;sec=$sec+60&amp;quot;&lt;br /&gt;
 # echo $sec &amp;gt; /sys/class/rtc/rtc0/wakealarm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* if the time specified in wakealarm is earlier than the current time, then the Alarm/wakeup is disabled&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://datasheets.maxim-ic.com/en/ds/DS1374-DS1374U.pdf Maxim's DS1374 datasheet]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=Configure_or_flash_FPGA%C2%A0%3F&amp;diff=11860</id>
		<title>Configure or flash FPGA ?</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=Configure_or_flash_FPGA%C2%A0%3F&amp;diff=11860"/>
				<updated>2013-06-13T06:57:38Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article explain the difference between flashing FPGA and configuring FPGA.&lt;br /&gt;
&lt;br /&gt;
[[image:flash_configure_fpga.jpg|700px|center|thumb|'''figure 1''' - ''Flash and FPGA'']]&lt;br /&gt;
&lt;br /&gt;
* '''Configure''' FPGA : At power on, the FPGA is not configured. FPGA '''configuration''' is the action of transfering the bitstream from the processor RAM to the FPGA.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
BIOS&amp;gt; fpga load 0 ${loadaddr}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* '''Flash''' firmware : It is possible to save the FPGA configuration under the Flash memory of the APF. Flashing firmware is the action of transfering the bitstream from the processor RAM to the flash memory.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
BIOS&amp;gt; run flash_firmware&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* '''Auto-load''' : It is possible to configure U-Boot to '''configure''' the FPGA with the configuration saved in Flash memory on the boot. To do that simply set the U-Boot environment variable '''firmware_autoload''' to 1 :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; setenv firmware_autoload 1&lt;br /&gt;
 BIOS&amp;gt; saveenv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Warning| '''Before setting the auto-load''' variable, be sure that your fpga binary file is correct. If not your board '''hang up''' at U-Boot starting and you will need an [[BootStrap | U-Boot recover]] to fix it.}}&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=MultiMediaCard&amp;diff=11533</id>
		<title>MultiMediaCard</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=MultiMediaCard&amp;diff=11533"/>
				<updated>2013-01-15T09:39:23Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* Uboot usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Instructions to use the MultiMediaCard (MMC/SD) on your Armadeus board&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
You can use standard MMC/SD/miniSD/microSD cards with your Armadeus board:&lt;br /&gt;
* with a DevLight V1, you must have [[MMC/SD | the corresponding connector attached to your development board.]] and use an adaptor for miniSD and microSD&lt;br /&gt;
* with a DevLight V2, you can use the onboard microSD connector&lt;br /&gt;
* with an [[APF9328DevFull]], you can use the MMC/SD onboard connector and an adaptor for miniSD and microSD&lt;br /&gt;
* with an [[APF27Dev]], an [[APF28Dev]] or an [[APF51Dev]], you can use the onboard microSD connector&lt;br /&gt;
&lt;br /&gt;
All needed drivers are included in the standard Armadeus Linux image.&lt;br /&gt;
&lt;br /&gt;
==Card insertion==&lt;br /&gt;
You should see something like that on the Linux console:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # imx-mmc imx-mmc.0: card inserted&lt;br /&gt;
 mmc0: host does not support reading read-only switch. assuming write-enable.&lt;br /&gt;
 mmc0: new SD card at address 01b0&lt;br /&gt;
 mmcblk0: mmc0:01b0 SD512 500224KiB&lt;br /&gt;
  mmcblk0: p1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note :&lt;br /&gt;
If the special files /dev/mmcblk0, /dev/mmcblk0p1 /dev/mmcblk0p2 ... /dev/mmcblk0p7 are NOT present on your filesystem,&lt;br /&gt;
create them by hand :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mknod /dev/mmcblk0 b 179 0&lt;br /&gt;
 # mknod /dev/mmcblk0p1 b 179 1&lt;br /&gt;
 # mknod /dev/mmcblk0p2 b 179 2&lt;br /&gt;
 ...&lt;br /&gt;
 # mknod /dev/mmcblk0p7 b 179 7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(It happened to me after upgrading an APF9328+DevLight from version 2.3 to 3.1)&lt;br /&gt;
&lt;br /&gt;
==Mounting the MMC/SD==&lt;br /&gt;
&lt;br /&gt;
* Just mount the MMC like you will do on your PC:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mount /dev/mmcblk0p1 /media/mmc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Then, you can access the MMC's files from the ''/media/mmc'' directory&lt;br /&gt;
&lt;br /&gt;
If you have problems with vfat code page, [[MultiMediaCard#VFAT_Code_Page|include the missing code page into the kernel]].&lt;br /&gt;
&lt;br /&gt;
==Booting from MMC/SD==&lt;br /&gt;
When your rootfs is too big to be put on the APF Flash, you can always use a MMC/SD like a Hard Drive and boot from it (this is possible because standard Armadeus kernel is compiled with the MMC driver built in).&lt;br /&gt;
&lt;br /&gt;
===Prepare your card===&lt;br /&gt;
* On your APF board (to avoid to crash your Host HD), create a good partition table:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # /sbin/fdisk /dev/mmcblk0&lt;br /&gt;
 Delete all existing partion with 'd'&lt;br /&gt;
 Create a primary partion: 'n' then 'p' then '1'&lt;br /&gt;
 Change bootflag to Linux: 't' then '83'&lt;br /&gt;
 Save partition table: 'w'&lt;br /&gt;
 (To quit without saving: 'm')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Then, on your PC, format your MMC with Ext2 filesystem (booting on FAT is bad :-) ):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ sudo mkfs.ext2 /dev/sdX1   (replace X with your MMC reader drive letter, if your Laptop has an integrated&lt;br /&gt;
                                           MMC reader then use mmcblk0p1 instead of sdX1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* If not automatically detected/mounted by your distribution, mount your MMC/SD on your Host filesystem (for example in ''/media/mmc''):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ sudo mkdir -p /media/mmc&lt;br /&gt;
 $ sudo mount /dev/sdX1 /media/mmc    (replace X with your MMC reader drive letter, if your Laptop has an integrated&lt;br /&gt;
                                                   MMC reader then use mmcblk0p1 instead of sdX1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Put your rootfs and Linux kernel on the MMC/SD===&lt;br /&gt;
* Buildroot should be configured to generate a tar-ed rootfs '''(done by default)''', if not:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Filesystem images  ---&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
    [*] tar the root filesystem&lt;br /&gt;
          Compression method (no compression)  ---&amp;gt;&lt;br /&gt;
    ()    other random options to pass to tar&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* and then uncompress the rootfs to the SD card, also copy the linux kernel to the rootfs /boot folder:&lt;br /&gt;
&lt;br /&gt;
{{Note | The APF9328 and for the time being the APF51 do not load the kernel from the SD card but use the one in flash instead.  }}&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make shell_env&lt;br /&gt;
$ source armadeus_env.sh&lt;br /&gt;
$ sudo tar xvf $ARMADEUS_ROOTFS_TAR -C /media/mmc&lt;br /&gt;
$ sudo mkdir -p /media/mmct/boot&lt;br /&gt;
$ sudo cp $ARMADEUS_BINARIES/$ARMADEUS_BOARD_NAME-linux.bin /media/mmc/boot&lt;br /&gt;
$ sudo umount /media/mmc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Boot===&lt;br /&gt;
* Insert the MMC/SD/microSD in the corresponding slot of your Armadeus board and then under U-Boot do:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; run mmcboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* if you want to automatically boot from SD at each startup, modify the ''bootcmd'' U-Boot macro:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; setenv bootcmd run mmcboot&lt;br /&gt;
 BIOS&amp;gt; saveenv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(default bootcmd when you receive your board is ''run jffsboot'' = boot from FLASH)&lt;br /&gt;
&lt;br /&gt;
==Performances==&lt;br /&gt;
* [[MMC/SD#Supported_Cards| Show tested cards performances]]&lt;br /&gt;
&lt;br /&gt;
==Troubleshots==&lt;br /&gt;
===VFAT Code Page===&lt;br /&gt;
If you encounter this message (or something similar):&lt;br /&gt;
 Unable to load NLS charset cp437&lt;br /&gt;
 FAT: codepage cp437 not found&lt;br /&gt;
you have to add the charset to the supported kernel ones:&lt;br /&gt;
 $ make linux26-menuconfig&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
File systems  ---&amp;gt; &lt;br /&gt;
    -*- Native language support  ---&amp;gt;&lt;br /&gt;
        &amp;lt;*&amp;gt;   Codepage 437 (United States, Canada)&lt;br /&gt;
        ...&lt;br /&gt;
        &amp;lt;*&amp;gt;   NLS ISO 8859-1  (Latin 1; Western European Languages)&lt;br /&gt;
        ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==U-Boot usage==&lt;br /&gt;
SD cards can altough be used with U-Boot.&lt;br /&gt;
The following commands are usefull:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 mmc rescan #scan the mmc&lt;br /&gt;
 fatls mmc 0 # list the mmc containt&lt;br /&gt;
 fatload mmc 0 ${loadaddr} xxx.bin #load in ram the file xxx.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
* http://en.wikipedia.org/wiki/MultiMedia_Card&lt;br /&gt;
&lt;br /&gt;
[[Category:MassStorage]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=USB_Host&amp;diff=11532</id>
		<title>USB Host</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=USB_Host&amp;diff=11532"/>
				<updated>2013-01-15T09:37:59Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* U-Boot usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How-To use the USB Host functionnality of Armadeus boards under Linux.&lt;br /&gt;
&lt;br /&gt;
== Controller ==&lt;br /&gt;
* [[APF9328DevFull|APF9328DevFull]]: it is equipped with a USB 2.0 Host controller (ISP1761) featuring three USB high speed ports. The ISP1761 driver is already configured with armadeus version 3. For older versions refer to the [[ISP1761_Linux_driver |how to install USB Host Linux driver for the DevFull]] page &lt;br /&gt;
* [[APF27]] and [[APF27Dev]]: two Host ports are available. The controllers are integrated in the i.MX27 processor. Nothing has to be done to configure the controller. No special operation has to be done to use both USB ports (driver is included in default kernel).&lt;br /&gt;
* [[APF27 PPS]]: one Host port and one OTG port (that can be forced to Host mode). Default Linux kernel has all the needed drivers compiled in.&lt;br /&gt;
* [[APF51Dev]]: 2 Host ports and one OTG port (that can be forced to Host mode). Default Linux kernel has all the needed drivers compiled in.&lt;br /&gt;
* [[PPS51]] one Host port and one OTG port (that can be forced to Host mode). Default Linux kernel has all the needed drivers compiled in.&lt;br /&gt;
* [[APF28Dev]]: one Host port and one OTG port (Host/slave mode automatically switched depending on cable). Default Linux kernel has all the needed drivers compiled in.&lt;br /&gt;
&lt;br /&gt;
== Forcing an OTG controller to Host mode (APF27 and APF51)==&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
BIOS&amp;gt; setenv extrabootargs otg_mode=host&lt;br /&gt;
BIOS&amp;gt; saveenv&lt;br /&gt;
BIOS&amp;gt; boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using USB devices ==&lt;br /&gt;
&lt;br /&gt;
=== USB keyboard/mouse (HID: Human Interface Device) ===&lt;br /&gt;
==== Driver installation ====&lt;br /&gt;
* [[Talk:USB_Host|Done by default]] in recent releases&lt;br /&gt;
&lt;br /&gt;
====Plug the keyboard====&lt;br /&gt;
* you should see on console (here on APF9328 for example):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 usb 1-1.1: new low speed USB device using isp1761 and address 3&lt;br /&gt;
 usb 1-1.1: configuration #1 chosen from 1 choice&lt;br /&gt;
 input: NOVATEK USB Keyboard as /class/input/input0&lt;br /&gt;
 input: USB HID v1.10 Keyboard [NOVATEK USB Keyboard] on usb-platform-1.1&lt;br /&gt;
 input: NOVATEK USB Keyboard as /class/input/input1&lt;br /&gt;
 input: USB HID v1.10 Mouse [NOVATEK USB Keyboard] on usb-platform-1.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* To change keyboard keymap (by default US one is used):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # loadkmap &amp;lt; /etc/i18n/fr.kmap&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Plug the mouse====&lt;br /&gt;
* you should see on console (here on APF9328 for example):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 usb 1-1.2: new low speed USB device using isp1761 and address 6&lt;br /&gt;
 usb 1-1.2: configuration #1 chosen from 1 choice&lt;br /&gt;
 input: Logitech USB-PS/2 Optical Mouse as /class/input/input6&lt;br /&gt;
 input: USB HID v1.10 Mouse [Logitech USB-PS/2 Optical Mouse] on usb-platform-1.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== USB Flash memory / USB key / USB card reader / USB Hard Drive=== &lt;br /&gt;
==== Driver installation ====&lt;br /&gt;
* [[Talk:USB_Host|Done by default]] in recent releases.&lt;br /&gt;
&lt;br /&gt;
==== Plug the storage device ====&lt;br /&gt;
* You should see (for example):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 usb 1-1.2: new high speed USB device using isp1761 and address 6&lt;br /&gt;
 usb 1-1.2: configuration #1 chosen from 1 choice&lt;br /&gt;
 scsi0 : SCSI emulation for USB Mass Storage devices&lt;br /&gt;
 usb 1-1.2: reset high speed USB device using isp1761 and address 6&lt;br /&gt;
 scsi 0:0:0:0: Direct-Access     Hama     Card Reader   CF 1.9C PQ: 0 ANSI: 0 CCS&lt;br /&gt;
 sd 0:0:0:0: [sda] Attached SCSI removable disk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Additional configuration ====&lt;br /&gt;
* If /dev/sdaX does not exist, then create it:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mknod /dev/sda b 8 0&lt;br /&gt;
 # mknod /dev/sda1 b 8 1&lt;br /&gt;
 # mknod /dev/sda2 b 8 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Create a mount directory &amp;quot;usbdisk&amp;quot;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mkdir -m 777 /mnt/usbdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Mount the device ====&lt;br /&gt;
* Mount the USB Mass Storage device&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mount -t vfat /dev/sda1 /mnt/usbdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Check what is present on the USB Mass Storage device:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # ls -al /mnt/usbdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* And if it is well mounted (for example):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mount&lt;br /&gt;
 rootfs on / type rootfs (rw)&lt;br /&gt;
 /dev/root on / type jffs2 (rw)&lt;br /&gt;
 proc on /proc type proc (rw)&lt;br /&gt;
 devpts on /dev/pts type devpts (rw)&lt;br /&gt;
 tmpfs on /tmp type tmpfs (rw)&lt;br /&gt;
 sysfs on /sys type sysfs (rw)&lt;br /&gt;
 /dev/sda1 on /mnt/usbdisk type msdos (rw,fmask=0022,dmask=0022,codepage=cp437)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== USB &amp;lt;--&amp;gt; Serial adapters ===&lt;br /&gt;
* See [[USB_to_serial_adapter]]&lt;br /&gt;
&lt;br /&gt;
=== USB &amp;lt;--&amp;gt; WiFi adapters ===&lt;br /&gt;
* See [[USB_to_WiFi_adapter]]&lt;br /&gt;
&lt;br /&gt;
==U-Boot usage==&lt;br /&gt;
USB storage can altough be used with U-Boot.&lt;br /&gt;
The following commands are usefull:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 usb start #start/restart the usb&lt;br /&gt;
 usb info # show available usb devices&lt;br /&gt;
 fatls usb 0 # list the usb dongle containt (mass storage only)&lt;br /&gt;
 fatload usb 0 ${loadaddr} xxx.bin #load in ram the file xxx.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Any links ?&lt;br /&gt;
&lt;br /&gt;
[[Category:BoardConnectivity]]&lt;br /&gt;
[[Category:Linux drivers]]&lt;br /&gt;
[[Category:USB]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=USB_Host&amp;diff=11531</id>
		<title>USB Host</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=USB_Host&amp;diff=11531"/>
				<updated>2013-01-15T09:37:29Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* Uboot usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How-To use the USB Host functionnality of Armadeus boards under Linux.&lt;br /&gt;
&lt;br /&gt;
== Controller ==&lt;br /&gt;
* [[APF9328DevFull|APF9328DevFull]]: it is equipped with a USB 2.0 Host controller (ISP1761) featuring three USB high speed ports. The ISP1761 driver is already configured with armadeus version 3. For older versions refer to the [[ISP1761_Linux_driver |how to install USB Host Linux driver for the DevFull]] page &lt;br /&gt;
* [[APF27]] and [[APF27Dev]]: two Host ports are available. The controllers are integrated in the i.MX27 processor. Nothing has to be done to configure the controller. No special operation has to be done to use both USB ports (driver is included in default kernel).&lt;br /&gt;
* [[APF27 PPS]]: one Host port and one OTG port (that can be forced to Host mode). Default Linux kernel has all the needed drivers compiled in.&lt;br /&gt;
* [[APF51Dev]]: 2 Host ports and one OTG port (that can be forced to Host mode). Default Linux kernel has all the needed drivers compiled in.&lt;br /&gt;
* [[PPS51]] one Host port and one OTG port (that can be forced to Host mode). Default Linux kernel has all the needed drivers compiled in.&lt;br /&gt;
* [[APF28Dev]]: one Host port and one OTG port (Host/slave mode automatically switched depending on cable). Default Linux kernel has all the needed drivers compiled in.&lt;br /&gt;
&lt;br /&gt;
== Forcing an OTG controller to Host mode (APF27 and APF51)==&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
BIOS&amp;gt; setenv extrabootargs otg_mode=host&lt;br /&gt;
BIOS&amp;gt; saveenv&lt;br /&gt;
BIOS&amp;gt; boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using USB devices ==&lt;br /&gt;
&lt;br /&gt;
=== USB keyboard/mouse (HID: Human Interface Device) ===&lt;br /&gt;
==== Driver installation ====&lt;br /&gt;
* [[Talk:USB_Host|Done by default]] in recent releases&lt;br /&gt;
&lt;br /&gt;
====Plug the keyboard====&lt;br /&gt;
* you should see on console (here on APF9328 for example):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 usb 1-1.1: new low speed USB device using isp1761 and address 3&lt;br /&gt;
 usb 1-1.1: configuration #1 chosen from 1 choice&lt;br /&gt;
 input: NOVATEK USB Keyboard as /class/input/input0&lt;br /&gt;
 input: USB HID v1.10 Keyboard [NOVATEK USB Keyboard] on usb-platform-1.1&lt;br /&gt;
 input: NOVATEK USB Keyboard as /class/input/input1&lt;br /&gt;
 input: USB HID v1.10 Mouse [NOVATEK USB Keyboard] on usb-platform-1.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* To change keyboard keymap (by default US one is used):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # loadkmap &amp;lt; /etc/i18n/fr.kmap&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Plug the mouse====&lt;br /&gt;
* you should see on console (here on APF9328 for example):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 usb 1-1.2: new low speed USB device using isp1761 and address 6&lt;br /&gt;
 usb 1-1.2: configuration #1 chosen from 1 choice&lt;br /&gt;
 input: Logitech USB-PS/2 Optical Mouse as /class/input/input6&lt;br /&gt;
 input: USB HID v1.10 Mouse [Logitech USB-PS/2 Optical Mouse] on usb-platform-1.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== USB Flash memory / USB key / USB card reader / USB Hard Drive=== &lt;br /&gt;
==== Driver installation ====&lt;br /&gt;
* [[Talk:USB_Host|Done by default]] in recent releases.&lt;br /&gt;
&lt;br /&gt;
==== Plug the storage device ====&lt;br /&gt;
* You should see (for example):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 usb 1-1.2: new high speed USB device using isp1761 and address 6&lt;br /&gt;
 usb 1-1.2: configuration #1 chosen from 1 choice&lt;br /&gt;
 scsi0 : SCSI emulation for USB Mass Storage devices&lt;br /&gt;
 usb 1-1.2: reset high speed USB device using isp1761 and address 6&lt;br /&gt;
 scsi 0:0:0:0: Direct-Access     Hama     Card Reader   CF 1.9C PQ: 0 ANSI: 0 CCS&lt;br /&gt;
 sd 0:0:0:0: [sda] Attached SCSI removable disk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Additional configuration ====&lt;br /&gt;
* If /dev/sdaX does not exist, then create it:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mknod /dev/sda b 8 0&lt;br /&gt;
 # mknod /dev/sda1 b 8 1&lt;br /&gt;
 # mknod /dev/sda2 b 8 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Create a mount directory &amp;quot;usbdisk&amp;quot;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mkdir -m 777 /mnt/usbdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Mount the device ====&lt;br /&gt;
* Mount the USB Mass Storage device&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mount -t vfat /dev/sda1 /mnt/usbdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Check what is present on the USB Mass Storage device:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # ls -al /mnt/usbdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* And if it is well mounted (for example):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mount&lt;br /&gt;
 rootfs on / type rootfs (rw)&lt;br /&gt;
 /dev/root on / type jffs2 (rw)&lt;br /&gt;
 proc on /proc type proc (rw)&lt;br /&gt;
 devpts on /dev/pts type devpts (rw)&lt;br /&gt;
 tmpfs on /tmp type tmpfs (rw)&lt;br /&gt;
 sysfs on /sys type sysfs (rw)&lt;br /&gt;
 /dev/sda1 on /mnt/usbdisk type msdos (rw,fmask=0022,dmask=0022,codepage=cp437)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== USB &amp;lt;--&amp;gt; Serial adapters ===&lt;br /&gt;
* See [[USB_to_serial_adapter]]&lt;br /&gt;
&lt;br /&gt;
=== USB &amp;lt;--&amp;gt; WiFi adapters ===&lt;br /&gt;
* See [[USB_to_WiFi_adapter]]&lt;br /&gt;
&lt;br /&gt;
==U-Boot usage==&lt;br /&gt;
USB storage can altough be used with U-Boot.&lt;br /&gt;
The following commands are usefull:&lt;br /&gt;
&lt;br /&gt;
 usb start #start/restart the usb&lt;br /&gt;
 usb info # show available usb devices&lt;br /&gt;
 fatls usb 0 # list the usb dongle containt (mass storage only)&lt;br /&gt;
 fatload usb 0 ${loadaddr} xxx.bin #load in ram the file xxx.bin&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Any links ?&lt;br /&gt;
&lt;br /&gt;
[[Category:BoardConnectivity]]&lt;br /&gt;
[[Category:Linux drivers]]&lt;br /&gt;
[[Category:USB]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=USB_Host&amp;diff=11515</id>
		<title>USB Host</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=USB_Host&amp;diff=11515"/>
				<updated>2013-01-11T12:57:05Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How-To use the USB Host functionnality of Armadeus boards under Linux.&lt;br /&gt;
&lt;br /&gt;
== Controller ==&lt;br /&gt;
* [[APF9328DevFull|APF9328DevFull]]: it is equipped with a USB 2.0 Host controller (ISP1761) featuring three USB high speed ports. The ISP1761 driver is already configured with armadeus version 3. For older versions refer to the [[ISP1761_Linux_driver |how to install USB Host Linux driver for the DevFull]] page &lt;br /&gt;
* [[APF27]] and [[APF27Dev]]: two Host ports are available. The controllers are integrated in the i.MX27 processor. Nothing has to be done to configure the controller. No special operation has to be done to use both USB ports (driver is included in default kernel).&lt;br /&gt;
* [[APF27 PPS]]: one Host port and one OTG port (that can be forced to Host mode). Default Linux kernel has all the needed drivers compiled in.&lt;br /&gt;
* [[APF51Dev]]: 2 Host ports and one OTG port (that can be forced to Host mode). Default Linux kernel has all the needed drivers compiled in.&lt;br /&gt;
* [[PPS51]] one Host port and one OTG port (that can be forced to Host mode). Default Linux kernel has all the needed drivers compiled in.&lt;br /&gt;
* [[APF28Dev]]: one Host port and one OTG port (Host/slave mode automatically switched depending on cable). Default Linux kernel has all the needed drivers compiled in.&lt;br /&gt;
&lt;br /&gt;
== Forcing an OTG controller to Host mode (APF27 and APF51)==&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
BIOS&amp;gt; setenv extrabootargs otg_mode=host&lt;br /&gt;
BIOS&amp;gt; saveenv&lt;br /&gt;
BIOS&amp;gt; boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using USB devices ==&lt;br /&gt;
&lt;br /&gt;
=== USB keyboard/mouse (HID: Human Interface Device) ===&lt;br /&gt;
==== Driver installation ====&lt;br /&gt;
* [[Talk:USB_Host|Done by default]] in recent releases&lt;br /&gt;
&lt;br /&gt;
====Plug the keyboard====&lt;br /&gt;
* you should see on console (here on APF9328 for example):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 usb 1-1.1: new low speed USB device using isp1761 and address 3&lt;br /&gt;
 usb 1-1.1: configuration #1 chosen from 1 choice&lt;br /&gt;
 input: NOVATEK USB Keyboard as /class/input/input0&lt;br /&gt;
 input: USB HID v1.10 Keyboard [NOVATEK USB Keyboard] on usb-platform-1.1&lt;br /&gt;
 input: NOVATEK USB Keyboard as /class/input/input1&lt;br /&gt;
 input: USB HID v1.10 Mouse [NOVATEK USB Keyboard] on usb-platform-1.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* To change keyboard keymap (by default US one is used):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # loadkmap &amp;lt; /etc/i18n/fr.kmap&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Plug the mouse====&lt;br /&gt;
* you should see on console (here on APF9328 for example):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 usb 1-1.2: new low speed USB device using isp1761 and address 6&lt;br /&gt;
 usb 1-1.2: configuration #1 chosen from 1 choice&lt;br /&gt;
 input: Logitech USB-PS/2 Optical Mouse as /class/input/input6&lt;br /&gt;
 input: USB HID v1.10 Mouse [Logitech USB-PS/2 Optical Mouse] on usb-platform-1.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== USB Flash memory / USB key / USB card reader / USB Hard Drive=== &lt;br /&gt;
==== Driver installation ====&lt;br /&gt;
* [[Talk:USB_Host|Done by default]] in recent releases.&lt;br /&gt;
&lt;br /&gt;
==== Plug the storage device ====&lt;br /&gt;
* You should see (for example):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 usb 1-1.2: new high speed USB device using isp1761 and address 6&lt;br /&gt;
 usb 1-1.2: configuration #1 chosen from 1 choice&lt;br /&gt;
 scsi0 : SCSI emulation for USB Mass Storage devices&lt;br /&gt;
 usb 1-1.2: reset high speed USB device using isp1761 and address 6&lt;br /&gt;
 scsi 0:0:0:0: Direct-Access     Hama     Card Reader   CF 1.9C PQ: 0 ANSI: 0 CCS&lt;br /&gt;
 sd 0:0:0:0: [sda] Attached SCSI removable disk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Additional configuration ====&lt;br /&gt;
* If /dev/sdaX does not exist, then create it:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mknod /dev/sda b 8 0&lt;br /&gt;
 # mknod /dev/sda1 b 8 1&lt;br /&gt;
 # mknod /dev/sda2 b 8 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Create a mount directory &amp;quot;usbdisk&amp;quot;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mkdir -m 777 /mnt/usbdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Mount the device ====&lt;br /&gt;
* Mount the USB Mass Storage device&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mount -t vfat /dev/sda1 /mnt/usbdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Check what is present on the USB Mass Storage device:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # ls -al /mnt/usbdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* And if it is well mounted (for example):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mount&lt;br /&gt;
 rootfs on / type rootfs (rw)&lt;br /&gt;
 /dev/root on / type jffs2 (rw)&lt;br /&gt;
 proc on /proc type proc (rw)&lt;br /&gt;
 devpts on /dev/pts type devpts (rw)&lt;br /&gt;
 tmpfs on /tmp type tmpfs (rw)&lt;br /&gt;
 sysfs on /sys type sysfs (rw)&lt;br /&gt;
 /dev/sda1 on /mnt/usbdisk type msdos (rw,fmask=0022,dmask=0022,codepage=cp437)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== USB &amp;lt;--&amp;gt; Serial adapters ===&lt;br /&gt;
* See [[USB_to_serial_adapter]]&lt;br /&gt;
&lt;br /&gt;
=== USB &amp;lt;--&amp;gt; WiFi adapters ===&lt;br /&gt;
* See [[USB_to_WiFi_adapter]]&lt;br /&gt;
&lt;br /&gt;
==Uboot usage==&lt;br /&gt;
USB storage can altough be used with uBoot.&lt;br /&gt;
The following commands are usefull:&lt;br /&gt;
&lt;br /&gt;
 usb start #start/restart the usb&lt;br /&gt;
 usb info # show available usb devices&lt;br /&gt;
 fatls usb 0 # list the usb dongle containt (mass storage only)&lt;br /&gt;
 fatload usb 0 ${loadaddr} xxx.bin #load in ram the file xxx.bin&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Any links ?&lt;br /&gt;
&lt;br /&gt;
[[Category:BoardConnectivity]]&lt;br /&gt;
[[Category:Linux drivers]]&lt;br /&gt;
[[Category:USB]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=MultiMediaCard&amp;diff=11514</id>
		<title>MultiMediaCard</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=MultiMediaCard&amp;diff=11514"/>
				<updated>2013-01-11T12:54:08Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Instructions to use the MultiMediaCard (MMC/SD) on your Armadeus board&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
You can use standard MMC/SD/miniSD/microSD cards with your Armadeus board:&lt;br /&gt;
* with a DevLight V1, you must have [[MMC/SD | the corresponding connector attached to your development board.]] and use an adaptor for miniSD and microSD&lt;br /&gt;
* with a DevLight V2, you can use the onboard microSD connector&lt;br /&gt;
* with an [[APF9328DevFull]], you can use the MMC/SD onboard connector and an adaptor for miniSD and microSD&lt;br /&gt;
* with an [[APF27Dev]], an [[APF28Dev]] or an [[APF51Dev]], you can use the onboard microSD connector&lt;br /&gt;
&lt;br /&gt;
All needed drivers are included in the standard Armadeus Linux image.&lt;br /&gt;
&lt;br /&gt;
==Card insertion==&lt;br /&gt;
You should see something like that on the Linux console:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # imx-mmc imx-mmc.0: card inserted&lt;br /&gt;
 mmc0: host does not support reading read-only switch. assuming write-enable.&lt;br /&gt;
 mmc0: new SD card at address 01b0&lt;br /&gt;
 mmcblk0: mmc0:01b0 SD512 500224KiB&lt;br /&gt;
  mmcblk0: p1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note :&lt;br /&gt;
If the special files /dev/mmcblk0, /dev/mmcblk0p1 /dev/mmcblk0p2 ... /dev/mmcblk0p7 are NOT present on your filesystem,&lt;br /&gt;
create them by hand :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mknod /dev/mmcblk0 b 179 0&lt;br /&gt;
 # mknod /dev/mmcblk0p1 b 179 1&lt;br /&gt;
 # mknod /dev/mmcblk0p2 b 179 2&lt;br /&gt;
 ...&lt;br /&gt;
 # mknod /dev/mmcblk0p7 b 179 7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(It happened to me after upgrading an APF9328+DevLight from version 2.3 to 3.1)&lt;br /&gt;
&lt;br /&gt;
==Mounting the MMC/SD==&lt;br /&gt;
&lt;br /&gt;
* Just mount the MMC like you will do on your PC:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mount /dev/mmcblk0p1 /media/mmc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Then, you can access the MMC's files from the ''/media/mmc'' directory&lt;br /&gt;
&lt;br /&gt;
If you have problems with vfat code page, [[MultiMediaCard#VFAT_Code_Page|include the missing code page into the kernel]].&lt;br /&gt;
&lt;br /&gt;
==Booting from MMC/SD==&lt;br /&gt;
When your rootfs is too big to be put on the APF Flash, you can always use a MMC/SD like a Hard Drive and boot from it (this is possible because standard Armadeus kernel is compiled with the MMC driver built in).&lt;br /&gt;
&lt;br /&gt;
===Prepare your card===&lt;br /&gt;
* On your APF board (to avoid to crash your Host HD), create a good partition table:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # /sbin/fdisk /dev/mmcblk0&lt;br /&gt;
 Delete all existing partion with 'd'&lt;br /&gt;
 Create a primary partion: 'n' then 'p' then '1'&lt;br /&gt;
 Change bootflag to Linux: 't' then '83'&lt;br /&gt;
 Save partition table: 'w'&lt;br /&gt;
 (To quit without saving: 'm')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Then, on your PC, format your MMC with Ext2 filesystem (booting on FAT is bad :-) ):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ sudo mkfs.ext2 /dev/sdX1   (replace X with your MMC reader drive letter, if your Laptop has an integrated&lt;br /&gt;
                                           MMC reader then use mmcblk0p1 instead of sdX1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* If not automatically detected/mounted by your distribution, mount your MMC/SD on your Host filesystem (for example in ''/media/mmc''):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ sudo mkdir -p /media/mmc&lt;br /&gt;
 $ sudo mount /dev/sdX1 /media/mmc    (replace X with your MMC reader drive letter, if your Laptop has an integrated&lt;br /&gt;
                                                   MMC reader then use mmcblk0p1 instead of sdX1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Put your rootfs and Linux kernel on the MMC/SD===&lt;br /&gt;
* Buildroot should be configured to generate a tar-ed rootfs '''(done by default)''', if not:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Filesystem images  ---&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
    [*] tar the root filesystem&lt;br /&gt;
          Compression method (no compression)  ---&amp;gt;&lt;br /&gt;
    ()    other random options to pass to tar&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* and then uncompress the rootfs to the SD card, also copy the linux kernel to the rootfs /boot folder:&lt;br /&gt;
&lt;br /&gt;
{{Note | The APF9328 and for the time being the APF51 do not load the kernel from the SD card but use the one in flash instead.  }}&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make shell_env&lt;br /&gt;
$ source armadeus_env.sh&lt;br /&gt;
$ sudo tar xvf $ARMADEUS_ROOTFS_TAR -C /media/mmc&lt;br /&gt;
$ sudo mkdir -p /media/mmct/boot&lt;br /&gt;
$ sudo cp $ARMADEUS_BINARIES/$ARMADEUS_BOARD_NAME-linux.bin /media/mmc/boot&lt;br /&gt;
$ sudo umount /media/mmc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Boot===&lt;br /&gt;
* Insert the MMC/SD/microSD in the corresponding slot of your Armadeus board and then under U-Boot do:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; run mmcboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* if you want to automatically boot from SD at each startup, modify the ''bootcmd'' U-Boot macro:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; setenv bootcmd run mmcboot&lt;br /&gt;
 BIOS&amp;gt; saveenv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(default bootcmd when you receive your board is ''run jffsboot'' = boot from FLASH)&lt;br /&gt;
&lt;br /&gt;
==Performances==&lt;br /&gt;
* [[MMC/SD#Supported_Cards| Show tested cards performances]]&lt;br /&gt;
&lt;br /&gt;
==Troubleshots==&lt;br /&gt;
===VFAT Code Page===&lt;br /&gt;
If you encounter this message (or something similar):&lt;br /&gt;
 Unable to load NLS charset cp437&lt;br /&gt;
 FAT: codepage cp437 not found&lt;br /&gt;
you have to add the charset to the supported kernel ones:&lt;br /&gt;
 $ make linux26-menuconfig&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
File systems  ---&amp;gt; &lt;br /&gt;
    -*- Native language support  ---&amp;gt;&lt;br /&gt;
        &amp;lt;*&amp;gt;   Codepage 437 (United States, Canada)&lt;br /&gt;
        ...&lt;br /&gt;
        &amp;lt;*&amp;gt;   NLS ISO 8859-1  (Latin 1; Western European Languages)&lt;br /&gt;
        ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Uboot usage==&lt;br /&gt;
SD cards can altough be used with uBoot.&lt;br /&gt;
The following commands are usefull:&lt;br /&gt;
&lt;br /&gt;
 mmc rescan #scan the mmc&lt;br /&gt;
 fatls mmc 0 # list the mmc containt&lt;br /&gt;
 fatload mmc 0 ${loadaddr} xxx.bin #load in ram the file xxx.bin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
* http://en.wikipedia.org/wiki/MultiMedia_Card&lt;br /&gt;
&lt;br /&gt;
[[Category:MassStorage]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=USB_Gadget&amp;diff=11456</id>
		<title>USB Gadget</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=USB_Gadget&amp;diff=11456"/>
				<updated>2012-12-05T13:47:26Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Instructions on how to use the USB device (or OTG) port of your Armadeus board to communicate with your PC; ie see your board from your PC like an USB device.&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
You can connect your APF board to your PC using its USB Device port ([[APF9328DevFull]]), a modified USB host port ([[APF27Dev]]), or an USB OTG port put in device mode ([[APF27 PPS]], [[APF51Dev]] &amp;amp; [[APF28Dev]]), and it can be &amp;quot;enumerated&amp;quot; as most common USB devices (depending on the type of communication you want to use):&lt;br /&gt;
* serial device&lt;br /&gt;
* net device&lt;br /&gt;
* mass storage device&lt;br /&gt;
&lt;br /&gt;
=== Hardware specifics for the APF27Dev ===&lt;br /&gt;
At first, an USB A male / A male cable has to be used like this one: http://fr.farnell.com/pro-signal/psg90024/lead-usb-2-0-am-am-2m-black/dp/1494745&lt;br /&gt;
&lt;br /&gt;
Do not use USB cable with integrated ferrite bead !!&lt;br /&gt;
&lt;br /&gt;
The APF27dev board is equipped with two USB host ports. '''Only the High Speed Host port (top connector)''' can be configured as an USB Device.&lt;br /&gt;
&lt;br /&gt;
{{Warning|DO NOT CONNECT TWO HOST PORTS TOGETHER AND TAKE CARE TO USE THE RIGHT USB PORT ON THE APF27DEV !!}}&lt;br /&gt;
&lt;br /&gt;
=== Software specifics for the APF27Dev, APF27 PPS, APF51Dev ===&lt;br /&gt;
In order to activate the device mode, a new parameter has to be added to the U-Boot console variable:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; setenv extrabootargs otg_mode=device&lt;br /&gt;
 BIOS&amp;gt; saveenv&lt;br /&gt;
 BIOS&amp;gt; boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your port will now work as an USB device.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
* The drivers are now installed by default (since armadeus-3.0)&lt;br /&gt;
* you should have following modules in your kernel source tree:&lt;br /&gt;
 '''/lib/modules/`uname -r`/kernel/drivers/usb/gadget/gadgetfs.ko'''        For test&lt;br /&gt;
 '''/lib/modules/`uname -r`/kernel/drivers/usb/gadget/g_ether.ko'''         Ethernet emulation on USB&lt;br /&gt;
 '''/lib/modules/`uname -r`/kernel/drivers/usb/gadget/g_file_storage.ko'''  Mass storage&lt;br /&gt;
 '''/lib/modules/`uname -r`/kernel/drivers/usb/gadget/g_serial.ko'''        Serial emulation on USB&lt;br /&gt;
 '''/lib/modules/`uname -r`/kernel/drivers/usb/gadget/g_zero.ko'''          For test&lt;br /&gt;
* If not here is how to add the missing one: [[Talk:USB_Gadget]]&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
&lt;br /&gt;
===To emulate a mass storage device:===&lt;br /&gt;
* [[USB_Gadget#Links |create]] or get a &amp;quot;backing storage file&amp;quot; ([http://dl.free.fr/q9IKqqweK for example])&lt;br /&gt;
* copy this file (uncompressed) in the '''/tmp''' directory of your board (here my Host PC has 192.168.0.20 as IP @):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # tftp -g -r backing_file.gz -l /tmp/backing_file.gz 192.168.0.20&lt;br /&gt;
 # gunzip /tmp/backing_file.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* load ''g_file_storage'' or ''g_mass_storage'' module (depending on your Linux version):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # modprobe g_file_storage file=/tmp/backing_file&lt;br /&gt;
 g_file_storage gadget: File-backed Storage Gadget, version: 28 November 2005&lt;br /&gt;
 g_file_storage gadget: Number of LUNs=1&lt;br /&gt;
 g_file_storage gadget-lun0: ro=0, file: /tmp/backing_file&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* connect target's USB cable to your PC and, &lt;br /&gt;
On your Linux Host:&lt;br /&gt;
* If you have a recent Linux distribution, your device should be automatically mounted. Otherwise:&lt;br /&gt;
** as root, launch ''dmesg'' and find the ''/dev/sdaX'' device assigned to your board:&lt;br /&gt;
 ... usb 1-1.4: new full speed USB device using uhci_hcd and address 7&lt;br /&gt;
 ... usb 1-1.4: configuration #1 chosen from 1 choice&lt;br /&gt;
 ... scsi1 : SCSI emulation for USB Mass Storage devices&lt;br /&gt;
 ...    Vendor: Linux     Model: File-Stor Gadget  Rev: 0314&lt;br /&gt;
 ...    Type:   Direct-Access                      ANSI SCSI revision: 02&lt;br /&gt;
 ...  SCSI device sda: 8192 512-byte hdwr sectors (4 MB)&lt;br /&gt;
 ...  sda: Write Protect is off&lt;br /&gt;
 ...  SCSI device sda: 8192 512-byte hdwr sectors (4 MB)&lt;br /&gt;
 ...  sda: Write Protect is off&lt;br /&gt;
 ...   sda: sda1&lt;br /&gt;
 ...  sd 1:0:0:0: Attached scsi disk sda&lt;br /&gt;
 ...  sd 1:0:0:0: Attached scsi generic sg0 type 0&lt;br /&gt;
*&lt;br /&gt;
** then mount the device and enjoy file sharing:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ sudo mount /dev/sda1 /mnt/tmp&lt;br /&gt;
 $ cd /mnt/tmp&lt;br /&gt;
 $ showimage /mnt/tmp/test.jpg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===To emulate a serial link===&lt;br /&gt;
* On your Host PC (if '''usbserial''' module is not already loaded):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ sudo modprobe usbserial vendor=0x0525 product=0xA4A6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or you can automate it by modifying ''/etc/modprobe.d/options'' file (Tested on *Ubuntu):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ sudo vim /etc/modprobe.d/options&lt;br /&gt;
  ...&lt;br /&gt;
  options usbserial vendor=0x0525 product=0xA4A6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* on your APF:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # modprobe g_serial&lt;br /&gt;
 g_serial gadget: Gadget Serial v2.4&lt;br /&gt;
 g_serial gadget: g_serial ready&lt;br /&gt;
 fsl-usb2-udc: bind to driver g_serial&lt;br /&gt;
 g_serial gadget: high speed config #2: CDC ACM config&lt;br /&gt;
&lt;br /&gt;
 # mknod /dev/ttyGS0 c 249 0   (if not created)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* then connect the USB cable between your PC and your APF and you should see on your Host:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ tail -f /var/log/messages&lt;br /&gt;
 Sep 27 10:06:38 ...  usb 2-1.3: new high speed USB device using ehci_hcd and address 14&lt;br /&gt;
 Sep 27 10:06:38 ...  usb 2-1.3: configuration #2 chosen from 1 choice&lt;br /&gt;
 Sep 27 10:06:38 ...  cdc_acm 2-1.3:2.0: ttyACM0: USB ACM device&lt;br /&gt;
 Sep 27 10:06:38 ...  usbcore: registered new interface driver cdc_acm&lt;br /&gt;
 Sep 27 10:06:38 ...  cdc_acm: v0.26:USB Abstract Control Model driver for USB modems and ISDN adapters&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* you should now be able to send/receive data through ''/dev/ttyACM0'' (PC) and ''/dev/ttyGS0'' (APF):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # cat /dev/ttyGS0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 [armadeus]$ echo &amp;quot;COUCOU&amp;quot; &amp;gt; /dev/ttyACM0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 COUCOU&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===To emulate an Ethernet link===&lt;br /&gt;
* On your Target:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # modprobe g_ether&lt;br /&gt;
 ether gadget: using random self ethernet address&lt;br /&gt;
 ether gadget: using random host ethernet address&lt;br /&gt;
 usb0: Ethernet Gadget, version: May Day 2005&lt;br /&gt;
 usb0: using imx_udc, OUT ep2out-bulk IN ep1in-bulk STATUS ep4in-int&lt;br /&gt;
 usb0: MAC be:df:31:95:16:e0&lt;br /&gt;
 usb0: HOST MAC 3e:86:1e:94:eb:84&lt;br /&gt;
 usb0: RNDIS ready&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now an IP address has to be assigned to the USB0 ethernet port &lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # ifconfig usb0 192.168.10.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* On your PC:&lt;br /&gt;
** On '''Linux''' systems:&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;$ sudo modprobe cdc_ether&amp;lt;/pre&amp;gt;&lt;br /&gt;
** On '''Windows''' systems: &amp;lt;br/&amp;gt;When the target is detected, you will be asked to give the right driver. &amp;lt;br/&amp;gt;You will find it here: [http://www.armadeus.com/_downloads/apf27_PPS/windrivers/ APF27 PPS Windrivers].&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
&lt;br /&gt;
* http://www.linux-usb.org/gadget/&lt;br /&gt;
* http://www.linux-usb.org/usbtest/#gadgets&lt;br /&gt;
* http://www.linux-usb.org/gadget/file_storage.html&lt;br /&gt;
* http://lxr.linux.no/source/Documentation/usb/gadget_serial.txt&lt;br /&gt;
* [[Serial_Transfer]]&lt;br /&gt;
* http://www.linux-usb.org/usbnet/&lt;br /&gt;
* http://wiki.gp2x.org/wiki/UsbNet_on_Linux&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux drivers]]&lt;br /&gt;
[[Category:USB]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=USB_Host&amp;diff=11455</id>
		<title>USB Host</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=USB_Host&amp;diff=11455"/>
				<updated>2012-12-05T13:45:58Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How-To use the USB Host functionnality of Armadeus boards under Linux.&lt;br /&gt;
&lt;br /&gt;
== Controller ==&lt;br /&gt;
* [[APF9328DevFull|APF9328DevFull]]: it is equipped with a USB 2.0 Host controller (ISP1761) featuring three USB high speed ports. The ISP1761 driver is already configured with armadeus version 3. For older versions refer to the [[ISP1761_Linux_driver |how to install USB Host Linux driver for the DevFull]] page &lt;br /&gt;
* [[APF27]] and [[APF27Dev]]: two Host ports are available. The controllers are integrated in the i.MX27 processor. Nothing has to be done to configure the controller. No special operation has to be done to use both USB ports (driver is included in default kernel).&lt;br /&gt;
* [[APF27 PPS]]: one Host port and one OTG port (that can be forced to Host mode). Default Linux kernel has all the needed drivers compiled in.&lt;br /&gt;
* [[APF51Dev]]: 2 Host ports and one OTG port (that can be forced to Host mode). Default Linux kernel has all the needed drivers compiled in.&lt;br /&gt;
* [[PPS51]] one Host port and one OTG port (that can be forced to Host mode). Default Linux kernel has all the needed drivers compiled in.&lt;br /&gt;
* [[APF28Dev]]: one Host port and one OTG port (Host/slave mode automatically switched depending on cable). Default Linux kernel has all the needed drivers compiled in.&lt;br /&gt;
&lt;br /&gt;
== Forcing an OTG controller to Host mode (APF27 and APF51)==&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
BIOS&amp;gt; setenv extrabootargs otg_mode=host&lt;br /&gt;
BIOS&amp;gt; saveenv&lt;br /&gt;
BIOS&amp;gt; boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using USB devices ==&lt;br /&gt;
&lt;br /&gt;
=== USB keyboard/mouse (HID: Human Interface Device) ===&lt;br /&gt;
==== Driver installation ====&lt;br /&gt;
* [[Talk:USB_Host|Done by default]] in recent releases&lt;br /&gt;
&lt;br /&gt;
====Plug the keyboard====&lt;br /&gt;
* you should see on console (here on APF9328 for example):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 usb 1-1.1: new low speed USB device using isp1761 and address 3&lt;br /&gt;
 usb 1-1.1: configuration #1 chosen from 1 choice&lt;br /&gt;
 input: NOVATEK USB Keyboard as /class/input/input0&lt;br /&gt;
 input: USB HID v1.10 Keyboard [NOVATEK USB Keyboard] on usb-platform-1.1&lt;br /&gt;
 input: NOVATEK USB Keyboard as /class/input/input1&lt;br /&gt;
 input: USB HID v1.10 Mouse [NOVATEK USB Keyboard] on usb-platform-1.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* To change keyboard keymap (by default US one is used):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # loadkmap &amp;lt; /etc/i18n/fr.kmap&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Plug the mouse====&lt;br /&gt;
* you should see on console (here on APF9328 for example):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 usb 1-1.2: new low speed USB device using isp1761 and address 6&lt;br /&gt;
 usb 1-1.2: configuration #1 chosen from 1 choice&lt;br /&gt;
 input: Logitech USB-PS/2 Optical Mouse as /class/input/input6&lt;br /&gt;
 input: USB HID v1.10 Mouse [Logitech USB-PS/2 Optical Mouse] on usb-platform-1.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== USB Flash memory / USB key / USB card reader / USB Hard Drive=== &lt;br /&gt;
==== Driver installation ====&lt;br /&gt;
* [[Talk:USB_Host|Done by default]] in recent releases.&lt;br /&gt;
&lt;br /&gt;
==== Plug the storage device ====&lt;br /&gt;
* You should see (for example):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 usb 1-1.2: new high speed USB device using isp1761 and address 6&lt;br /&gt;
 usb 1-1.2: configuration #1 chosen from 1 choice&lt;br /&gt;
 scsi0 : SCSI emulation for USB Mass Storage devices&lt;br /&gt;
 usb 1-1.2: reset high speed USB device using isp1761 and address 6&lt;br /&gt;
 scsi 0:0:0:0: Direct-Access     Hama     Card Reader   CF 1.9C PQ: 0 ANSI: 0 CCS&lt;br /&gt;
 sd 0:0:0:0: [sda] Attached SCSI removable disk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Additional configuration ====&lt;br /&gt;
* If /dev/sdaX does not exist, then create it:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mknod /dev/sda b 8 0&lt;br /&gt;
 # mknod /dev/sda1 b 8 1&lt;br /&gt;
 # mknod /dev/sda2 b 8 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Create a mount directory &amp;quot;usbdisk&amp;quot;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mkdir -m 777 /mnt/usbdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Mount the device ====&lt;br /&gt;
* Mount the USB Mass Storage device&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mount -t vfat /dev/sda1 /mnt/usbdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Check what is present on the USB Mass Storage device:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # ls -al /mnt/usbdisk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* And if it is well mounted (for example):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mount&lt;br /&gt;
 rootfs on / type rootfs (rw)&lt;br /&gt;
 /dev/root on / type jffs2 (rw)&lt;br /&gt;
 proc on /proc type proc (rw)&lt;br /&gt;
 devpts on /dev/pts type devpts (rw)&lt;br /&gt;
 tmpfs on /tmp type tmpfs (rw)&lt;br /&gt;
 sysfs on /sys type sysfs (rw)&lt;br /&gt;
 /dev/sda1 on /mnt/usbdisk type msdos (rw,fmask=0022,dmask=0022,codepage=cp437)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== USB &amp;lt;--&amp;gt; Serial adapters ===&lt;br /&gt;
* See [[USB_to_serial_adapter]]&lt;br /&gt;
&lt;br /&gt;
=== USB &amp;lt;--&amp;gt; WiFi adapters ===&lt;br /&gt;
* See [[USB_to_WiFi_adapter]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Any links ?&lt;br /&gt;
&lt;br /&gt;
[[Category:BoardConnectivity]]&lt;br /&gt;
[[Category:Linux drivers]]&lt;br /&gt;
[[Category:USB]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=GSM/GPRS&amp;diff=11428</id>
		<title>GSM/GPRS</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=GSM/GPRS&amp;diff=11428"/>
				<updated>2012-11-19T13:01:15Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will summarize informations to use the GSM/GPRS/3G module of the [[Wireless_extension_board|APF27Wireless board]] and the [[APF51Dev]] (optional).&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
GSM/GPRS are generally driven through the RS-232 bus. AT commands are used to dialog with the module.&lt;br /&gt;
* GSM MODEM of the [[Wireless_extension_board|APF27Wireless extension board (APW)]] is connected to the UART2 (/dev/ttySMX1) of the [[APF27]].&lt;br /&gt;
* GSM/3G MODEM of the [[APF51Dev]] is connected to the i.MX processor through an UART implemented in the FPGA. So the corresponding bitfile has to loaded before trying to access the MODEM.&lt;br /&gt;
Both are using a Sagem's Hilo module. Hilo AT commands can be found [http://www.libelium.com/tienda/catalog/images/arduino/AT_Commands.pdf here]&lt;br /&gt;
&lt;br /&gt;
==Linux configuration (APF27Dev only)==&lt;br /&gt;
* Linux will have to be configured in order to tell that an APW is connected to your [[APF27Dev]]:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux26-menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
System Type  ---&amp;gt;&lt;br /&gt;
    Freescale MXC Implementations  ---&amp;gt;&lt;br /&gt;
            ...&lt;br /&gt;
            Extension board (Wireless (APW))  ---&amp;gt;&lt;br /&gt;
       [*] GSM/GPRS Modem (NEW)&lt;br /&gt;
       [ ] Bluetooth &amp;amp; WiFi module (NEW)&lt;br /&gt;
       [ ] CSI (Camera) pass-through (NEW)&lt;br /&gt;
       [ ] GPS module (NEW)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux26&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* reflash you Linux kernel&lt;br /&gt;
&lt;br /&gt;
==Configure serial port==&lt;br /&gt;
====APF27====&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# export GSM_DEVICE=/dev/ttySMX1              (or /dev/ttymxc1 on recent kernels)&lt;br /&gt;
# stty -F $GSM_DEVICE raw -echo -echoe -echok 115200&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====APF51Dev====&lt;br /&gt;
	&lt;br /&gt;
{{Note|Don't forget to put &amp;quot;Wireless&amp;quot; J42 jumper (near microSD connector) '''AND''' power on FPGA Bank 3 (with corresponding J39 jumper).}}&lt;br /&gt;
* On APF51Dev, GSM/3G module is accessed through serial ports synthetized in APF51's FPGA. So we have to load it first. (Needed dual UARTs FPGA firmware can be found under armadeus-4.0 distribution in ''firmware/pod_scripts'' directory, with the [[POD]] script needed to regenerate it, and is by default installed in rootfs).&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# load_fpga /lib/firmware/fpga/apf51_gsm_gps_firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Once firmware loaded, drivers related to FPGA can be used :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# modprobe irq_ocore&lt;br /&gt;
# modprobe 8250&lt;br /&gt;
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled&lt;br /&gt;
# modprobe twin_uarts_irq_mng&lt;br /&gt;
# modprobe twin_uarts_16750&lt;br /&gt;
serial8250.0: ttyS0 at MMIO 0xb8000020 (irq = 320) is a TI16750&lt;br /&gt;
serial8250.0: ttyS1 at MMIO 0xb8000040 (irq = 321) is a TI16750&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Bring MODEM out of reset state (POK_IN/PWON pin, connected to [[APF51_PMIC#GPIO|PMIC GPIO6]]):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# modprobe wm831x-gpio&lt;br /&gt;
# echo 245 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
# echo out &amp;gt; /sys/class/gpio/gpio245/direction&lt;br /&gt;
# echo 1 &amp;gt; /sys/class/gpio/gpio245/value&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Configure serial port:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# ls /dev/ttyS*&lt;br /&gt;
/dev/ttyS0  /dev/ttyS1  /dev/ttyS2  /dev/ttyS3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* If the /dev/ttyS[0-1] files don't exist, create it/them with ''mknod'' :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# mknod /dev/ttyS0 c 4 64&lt;br /&gt;
# mknod /dev/ttyS1 c 4 65&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# export GSM_DEVICE=/dev/ttyS0&lt;br /&gt;
# stty -F $GSM_DEVICE -echo -echoe -echok 115200&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Basic Usage==&lt;br /&gt;
===Sending AT commands &amp;quot;manually&amp;quot;===&lt;br /&gt;
* Sending AT commands with ''minicom'' utility (one of the command coming with [[busybox]]):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# minicom $GSM_DEVICE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
( To exit ''minocom'' you will have to type '''&amp;lt;CTRL-x&amp;gt;''' )&lt;br /&gt;
* Check module presence:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
ATI3&lt;br /&gt;
SAGEM HiC,A.005.00&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note| If no echo are printed on serial console: you can't see what you're typing. In that case, to reactivate the echo, use:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
ATE1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note| By default, the module starts in auto baudrate. This mays result in loss of communication with baud rate higher than 19200 bauds. To avoid problems, the baud rate has to be fixed (here to 115200 bauds):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+IPR=115200&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
* Get constructor name:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CGMI&lt;br /&gt;
SAGEM&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Get model name:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CGMM&lt;br /&gt;
HILO GPRS&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Enter PIN code (here 0000). '''!! Use your own and beware that you will only get 3 tries !!:'''&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CPIN=&amp;quot;0000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Check PIN code status:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CPIN?&lt;br /&gt;
+CPIN: READY&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Note|Don't launch further AT commands if PIN code wasn't entered successfully}}&lt;br /&gt;
&lt;br /&gt;
* Check module status (0 Ready, 1 Unavailable, 2 Status unknown, 3 Ringing, 4 Call in progress, 5 Asleep):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CPAS&lt;br /&gt;
+CPAS: 0&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Get Indicator control (&amp;lt;battchg&amp;gt;[0-4],&amp;lt;signal&amp;gt;[0-4],&amp;lt;service&amp;gt;0/1,&amp;lt;message&amp;gt;0/1,&amp;lt;call&amp;gt;0/1,&amp;lt;smsfull&amp;gt;0/1):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CIND?&lt;br /&gt;
+CIND: 0,4,1,0,0,0,1&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Get signal quality (should be better than 12/99):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CSQ&lt;br /&gt;
+CSQ: 24,99&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Voice call &amp;quot;123456789&amp;quot; (; is important here to signify a voice call, otherwise a data call is tried and may fail if you don't have the right subscribe)&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
ATD&amp;quot;123456789&amp;quot;;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Terminate current call:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
ATH&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sending AT commands in shell scripts===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
GSM_DEVICE=/dev/ttyXXX&lt;br /&gt;
send_at_cmd()&lt;br /&gt;
{&lt;br /&gt;
        echo -e -n &amp;quot;$1\015&amp;quot; &amp;gt; $GSM_DEVICE&lt;br /&gt;
        sleep 1      # Adjustable ! (usleep)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
send_at_cmd AT&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* See ''target/test/test_gsm.sh'' for more details&lt;br /&gt;
&lt;br /&gt;
==Sending SMS==&lt;br /&gt;
* Supposing you are already connected to the modem with cu&lt;br /&gt;
* Check if you can send SMS with your SIM card (you should get +CMGF: (0,1))&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 AT+CMGF=?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* If OK, switch to SMS sending mode:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 AT+CMGF=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Write a message for 0661234567 phone number:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CMGW=&amp;quot;0661326109&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Hey ! How are you doing ??&lt;br /&gt;
&amp;gt;                    &amp;lt;-- Ctrl+z to end SMS here&lt;br /&gt;
&lt;br /&gt;
+CMGW: 8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* +CMGW give you the number of your SMS saved in SIM card or phone memory&lt;br /&gt;
* Then, at anytime, you can send your SMS with (pass previous number as parameter):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 AT+CMSS=8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tools to look at==&lt;br /&gt;
* http://www.developershome.com/sms/freeLibForSMS.asp&lt;br /&gt;
* http://www.gnokii.org/&lt;br /&gt;
* http://www.alamin.org/en/index.html&lt;br /&gt;
* http://www.gammu.org/wiki/index.php?title=Gammu:Main_Page&lt;br /&gt;
* http://gatling.ikk.sztaki.hu/~kissg/gsm/index.html&lt;br /&gt;
&lt;br /&gt;
==Data tranfers (EDGE/3G)==&lt;br /&gt;
&lt;br /&gt;
===PPP installation (done by default on APF51)===&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux26-menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Device Drivers  ---&amp;gt;&lt;br /&gt;
    [*] Network device support  ---&amp;gt;&lt;br /&gt;
        &amp;lt;M&amp;gt;   PPP (point-to-point protocol) support&lt;br /&gt;
        [ ]     PPP multilink support (EXPERIMENTAL)&lt;br /&gt;
        [ ]     PPP filtering&lt;br /&gt;
        &amp;lt;M&amp;gt;     PPP support for async serial ports&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP support for sync tty ports&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP Deflate compression&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP BSD-Compress compression&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP MPPE compression (encryption) (EXPERIMENTAL)&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP over Ethernet (EXPERIMENTAL)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Package Selection for the target  ---&amp;gt;&lt;br /&gt;
    Networking applications  ---&amp;gt;&lt;br /&gt;
        [*] pppd&lt;br /&gt;
        [ ]   filtering&lt;br /&gt;
        [ ]   radius&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux26 &amp;amp;&amp;amp; make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* reflash kernel &amp;amp; rootfs&lt;br /&gt;
&lt;br /&gt;
===PPP configuration===&lt;br /&gt;
{{Note|Following instructions are given for the French operator &amp;quot;Bouygtel&amp;quot; and may need to be ajusted accordingly, depending on your operator/country}}&lt;br /&gt;
&lt;br /&gt;
* Create a &amp;quot;chat&amp;quot; script that will be used to initiate MODEM dialup (here we use the &amp;quot;cat &amp;gt; xxxx &amp;lt;&amp;lt; EOF trick&amp;quot; to automatically create the file, but you can also manually edit it with ''vi'' or ''nano''):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# mkdir -p /etc/chatscripts/&lt;br /&gt;
# cat &amp;gt; /etc/chatscripts/bouygtel &amp;lt;&amp;lt;EOF&lt;br /&gt;
ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO ANSWER' ABORT DELAYED ABORT ERROR&lt;br /&gt;
'' AT&lt;br /&gt;
OK AT+IPR=115200&lt;br /&gt;
OK AT+CPIN=&amp;quot;0000&amp;quot;&lt;br /&gt;
OK AT+CFUN=1&lt;br /&gt;
OK AT+COPS?&lt;br /&gt;
OK AT+CSQ&lt;br /&gt;
OK 'AT+CGDCONT=1,&amp;quot;IP&amp;quot;,&amp;quot;ebouygtel.com&amp;quot;,&amp;quot;&amp;quot;,0,0'&lt;br /&gt;
OK 'AT&amp;amp;FE0Q0V1'&lt;br /&gt;
OK 'ATD*99#'&lt;br /&gt;
CONNECT &amp;quot;&amp;quot;&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Don't forget to set the baudrate (default: 115200) to have a stable communication between the modem and the processor&lt;br /&gt;
* Don't forget to update &amp;quot;AT+CPIN=&amp;quot; with your real PIN code and &amp;quot;AT+CGDCONT&amp;quot; and &amp;quot;ATD*99#&amp;quot; with your operator parameters.&lt;br /&gt;
* If you want to test your chat script (verbose mode -v, on console -s, with 5 second timeout by default for commands -t 5), then launch:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# /usr/sbin/chat -v -s -t 5 -f /etc/chatscripts/bouygtel &amp;gt; $GSM_DEVICE &amp;lt; $GSM_DEVICE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* If this test was OK, you may have to poweroff/poweron the MODEM to bring it to its initial state and go further.&lt;br /&gt;
&lt;br /&gt;
====For '''APF51'''====&lt;br /&gt;
* create the PPPd config files (''/etc/ppp/peers/bouygtel'' and ''/etc/ppp/options.ttyS0''):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# mkdir -p /etc/ppp/peers/&lt;br /&gt;
# cat &amp;gt; /etc/ppp/peers/bouygtel &amp;lt;&amp;lt;EOF&lt;br /&gt;
noauth&lt;br /&gt;
connect &amp;quot;/usr/sbin/chat -v -t 5 -f /etc/chatscripts/bouygtel&amp;quot;&lt;br /&gt;
debug&lt;br /&gt;
ttyS0&lt;br /&gt;
defaultroute&lt;br /&gt;
noipdefault&lt;br /&gt;
usepeerdns&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
# cat &amp;gt; /etc/ppp/options.ttyS0 &amp;lt;&amp;lt;EOF&lt;br /&gt;
115200&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====For '''APF27'''====&lt;br /&gt;
{{Note| Check if /dev/ttySMX1 exists, if not create it with :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
mknod /dev/ttySMX1 c 204 42&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
* create the PPPd config files (''/etc/ppp/peers/bouygtel'' and ''/etc/ppp/options.ttySMX1''):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# mkdir -p /etc/ppp/peers/&lt;br /&gt;
# cat &amp;gt; /etc/ppp/peers/bouygtel &amp;lt;&amp;lt;EOF&lt;br /&gt;
noauth&lt;br /&gt;
connect &amp;quot;/usr/sbin/chat -v -t 5 -f /etc/chatscripts/bouygtel&amp;quot;&lt;br /&gt;
debug&lt;br /&gt;
ttySMX1&lt;br /&gt;
defaultroute&lt;br /&gt;
noipdefault&lt;br /&gt;
usepeerdns&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
# cat &amp;gt; /etc/ppp/options.ttySMX1 &amp;lt;&amp;lt;EOF&lt;br /&gt;
115200&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PPP Usage===&lt;br /&gt;
* Load PPP module:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# modprobe ppp          (APF27)&lt;br /&gt;
or&lt;br /&gt;
# modprobe ppp_async    (APF51)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Setup serial port name depending on your platform (''/dev/ttyS0'' on APF51, ''/dev/ttySMX1'' on APF27)&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# export GSM_DEVICE=/dev/ttyS0&lt;br /&gt;
or&lt;br /&gt;
# export GSM_DEVICE=/dev/ttySMX1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Launch the beast:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# pppd $GSM_DEVICE 115200 call bouygtel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Test===&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# ping www.google.fr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Troubleshots ===&lt;br /&gt;
* Might be needed after a successful IP setup:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# cp /etc/ppp/resolv.conf /etc/resolv.conf&lt;br /&gt;
# route add default ppp0     (due to defaultroute option in ppp ?)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To see what happened after having launched ''pppd'' or ''chat'':&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# tail -f /var/log/messages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==GSM Muxing==&lt;br /&gt;
===Why ?===&lt;br /&gt;
* By default AT commands usage is single threaded, ie only one program can open MODEM serial port and send AT commands at a given time. However it could be interesting to be able to send multiple AT commands from multiple programs at the same time, for example in order to: have a PPP link, send SMS and monitor network signal quality.&lt;br /&gt;
* This can be done by a &amp;quot;GSM mux&amp;quot;, if your MODEM support the GSM 07.10 muxing norm (which is the case with our HiLo modules).&lt;br /&gt;
===Build gsmmux===&lt;br /&gt;
* To build GSM mux (if not already done):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Package Selection for the target  ---&amp;gt;&lt;br /&gt;
    Hardware handling  ---&amp;gt;&lt;br /&gt;
        [*] gsmmux&lt;br /&gt;
              Version to use (sagem)  ---&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Use it===&lt;br /&gt;
* If you have access to Sagem's version (you will get as much as virtual serial port as times you pass ''/dev/ptmx'' to the daemon):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# gsmMuxd -p $GSM_DEVICE -b 115200 -x /dev/ptmx /dev/ptmx /dev/ptmx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Virtual serial ports will be created in ''/dev/pts/'':&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
/dev/pts/0 /dev/pts/1 /dev/pts/2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* to know how ''/dev/ptmx'' &amp;amp; ''/dev/pts/x'' is working: [http://linux.die.net/man/4/ptmx]&lt;br /&gt;
* If you have telnet or SSH sessions running ''/dev/pts/0'' may already be used ans so virtual serial ports will be allocated from ''/dev/pts/1'', etc...&lt;br /&gt;
&lt;br /&gt;
===Going further===&lt;br /&gt;
* In recent Linux kernels, there is also a driver to hanlde GSM muxing: n_gsm&lt;br /&gt;
* People wanting to do a &amp;quot;real&amp;quot; phone can take a look at [http://ofono.org/documentation ofono]&lt;br /&gt;
&lt;br /&gt;
==SMS using SMS server tools 3==&lt;br /&gt;
simple AT commands can be used to sent SMS. If you need more flexibility or advanced management of your SMS, you can use SMS Server Tools 3.&lt;br /&gt;
SMS Server Tools 3 is a SMS Gateway software which can send and receive short messages through GSM modems and mobile phones.&lt;br /&gt;
&lt;br /&gt;
===Build SMS Server Tools3===&lt;br /&gt;
* To build SMS Server Tools 3:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Package Selection for the target  ---&amp;gt;&lt;br /&gt;
    Hardware handling  ---&amp;gt;&lt;br /&gt;
        [*] SMS Server Tools3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
The SMS server can be configured by using a configuration file (smsd.conf) located on the target in the /etc/smsd directory.&lt;br /&gt;
The following parameters have to be verified:&lt;br /&gt;
* device: uart port used to communicate with the modem. If GSMUX is used, then this parameter is of form /dev/pts/x where is x is the number of the virtual port&lt;br /&gt;
* baudrate: baudrate of the uart port&lt;br /&gt;
* rtscts: must be yes&lt;br /&gt;
* incoming: yes if you want to receive SMS&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
start the sms deamon:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
smsd -c /etc/smsd/smsd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then put a SMS file in the /var/spool/outgoing directory. Once placed a SMS will be sent.&lt;br /&gt;
&lt;br /&gt;
Incoming SMS can be read in the /var/spool/incoming directory.&lt;br /&gt;
&lt;br /&gt;
Reports and logs are also generated.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://support.sagemcom.com/site/modele_fax.php?page=produit&amp;amp;numero_type=22&amp;amp;produit=877 HiLo 3G documentation at Sagem]&lt;br /&gt;
* [http://www.libelium.com/tienda/catalog/images/arduino/AT_Commands.pdf HiLo AT Commands]&lt;br /&gt;
* [http://www.developershome.com/sms/ SMS tutorial]&lt;br /&gt;
* http://wiki.openmoko.org/wiki/Neo_1973_and_Neo_FreeRunner_gsm_modem&lt;br /&gt;
* [http://www.anotherurl.com/library/at_test.htm AT Test commands]&lt;br /&gt;
* http://www.gsm-modem.de/gsm-faq.html&lt;br /&gt;
* [http://www.technologuepro.com/gsm/commande_at.htm Les commandes AT]&lt;br /&gt;
* [http://smstools3.kekekasvi.com SMS Server Tools 3]&lt;br /&gt;
&lt;br /&gt;
[[Category:Wireless]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=GSM/GPRS&amp;diff=11427</id>
		<title>GSM/GPRS</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=GSM/GPRS&amp;diff=11427"/>
				<updated>2012-11-19T13:00:59Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* SMS using SMS server tools 3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will summarize informations to use the GSM/GPRS/3G module of the [[Wireless_extension_board|APF27Wireless board]] and the [[APF51Dev]] (optional).&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
GSM/GPRS are generally driven through the RS-232 bus. AT commands are used to dialog with the module.&lt;br /&gt;
* GSM MODEM of the [[Wireless_extension_board|APF27Wireless extension board (APW)]] is connected to the UART2 (/dev/ttySMX1) of the [[APF27]].&lt;br /&gt;
* GSM/3G MODEM of the [[APF51Dev]] is connected to the i.MX processor through an UART implemented in the FPGA. So the corresponding bitfile has to loaded before trying to access the MODEM.&lt;br /&gt;
Both are using a Sagem's Hilo module. Hilo AT commands can be found [http://www.libelium.com/tienda/catalog/images/arduino/AT_Commands.pdf here]&lt;br /&gt;
&lt;br /&gt;
==Linux configuration (APF27Dev only)==&lt;br /&gt;
* Linux will have to be configured in order to tell that an APW is connected to your [[APF27Dev]]:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux26-menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
System Type  ---&amp;gt;&lt;br /&gt;
    Freescale MXC Implementations  ---&amp;gt;&lt;br /&gt;
            ...&lt;br /&gt;
            Extension board (Wireless (APW))  ---&amp;gt;&lt;br /&gt;
       [*] GSM/GPRS Modem (NEW)&lt;br /&gt;
       [ ] Bluetooth &amp;amp; WiFi module (NEW)&lt;br /&gt;
       [ ] CSI (Camera) pass-through (NEW)&lt;br /&gt;
       [ ] GPS module (NEW)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux26&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* reflash you Linux kernel&lt;br /&gt;
&lt;br /&gt;
==Configure serial port==&lt;br /&gt;
====APF27====&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# export GSM_DEVICE=/dev/ttySMX1              (or /dev/ttymxc1 on recent kernels)&lt;br /&gt;
# stty -F $GSM_DEVICE raw -echo -echoe -echok 115200&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====APF51Dev====&lt;br /&gt;
	&lt;br /&gt;
{{Note|Don't forget to put &amp;quot;Wireless&amp;quot; J42 jumper (near microSD connector) '''AND''' power on FPGA Bank 3 (with corresponding J39 jumper).}}&lt;br /&gt;
* On APF51Dev, GSM/3G module is accessed through serial ports synthetized in APF51's FPGA. So we have to load it first. (Needed dual UARTs FPGA firmware can be found under armadeus-4.0 distribution in ''firmware/pod_scripts'' directory, with the [[POD]] script needed to regenerate it, and is by default installed in rootfs).&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# load_fpga /lib/firmware/fpga/apf51_gsm_gps_firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Once firmware loaded, drivers related to FPGA can be used :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# modprobe irq_ocore&lt;br /&gt;
# modprobe 8250&lt;br /&gt;
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled&lt;br /&gt;
# modprobe twin_uarts_irq_mng&lt;br /&gt;
# modprobe twin_uarts_16750&lt;br /&gt;
serial8250.0: ttyS0 at MMIO 0xb8000020 (irq = 320) is a TI16750&lt;br /&gt;
serial8250.0: ttyS1 at MMIO 0xb8000040 (irq = 321) is a TI16750&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Bring MODEM out of reset state (POK_IN/PWON pin, connected to [[APF51_PMIC#GPIO|PMIC GPIO6]]):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# modprobe wm831x-gpio&lt;br /&gt;
# echo 245 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
# echo out &amp;gt; /sys/class/gpio/gpio245/direction&lt;br /&gt;
# echo 1 &amp;gt; /sys/class/gpio/gpio245/value&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Configure serial port:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# ls /dev/ttyS*&lt;br /&gt;
/dev/ttyS0  /dev/ttyS1  /dev/ttyS2  /dev/ttyS3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* If the /dev/ttyS[0-1] files don't exist, create it/them with ''mknod'' :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# mknod /dev/ttyS0 c 4 64&lt;br /&gt;
# mknod /dev/ttyS1 c 4 65&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# export GSM_DEVICE=/dev/ttyS0&lt;br /&gt;
# stty -F $GSM_DEVICE -echo -echoe -echok 115200&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Basic Usage==&lt;br /&gt;
===Sending AT commands &amp;quot;manually&amp;quot;===&lt;br /&gt;
* Sending AT commands with ''minicom'' utility (one of the command coming with [[busybox]]):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# minicom $GSM_DEVICE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
( To exit ''minocom'' you will have to type '''&amp;lt;CTRL-x&amp;gt;''' )&lt;br /&gt;
* Check module presence:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
ATI3&lt;br /&gt;
SAGEM HiC,A.005.00&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note| If no echo are printed on serial console: you can't see what you're typing. In that case, to reactivate the echo, use:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
ATE1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note| By default, the module starts in auto baudrate. This mays result in loss of communication with baud rate higher than 19200 bauds. To avoid problems, the baud rate has to be fixed (here to 115200 bauds):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+IPR=115200&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
* Get constructor name:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CGMI&lt;br /&gt;
SAGEM&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Get model name:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CGMM&lt;br /&gt;
HILO GPRS&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Enter PIN code (here 0000). '''!! Use your own and beware that you will only get 3 tries !!:'''&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CPIN=&amp;quot;0000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Check PIN code status:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CPIN?&lt;br /&gt;
+CPIN: READY&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Note|Don't launch further AT commands if PIN code wasn't entered successfully}}&lt;br /&gt;
&lt;br /&gt;
* Check module status (0 Ready, 1 Unavailable, 2 Status unknown, 3 Ringing, 4 Call in progress, 5 Asleep):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CPAS&lt;br /&gt;
+CPAS: 0&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Get Indicator control (&amp;lt;battchg&amp;gt;[0-4],&amp;lt;signal&amp;gt;[0-4],&amp;lt;service&amp;gt;0/1,&amp;lt;message&amp;gt;0/1,&amp;lt;call&amp;gt;0/1,&amp;lt;smsfull&amp;gt;0/1):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CIND?&lt;br /&gt;
+CIND: 0,4,1,0,0,0,1&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Get signal quality (should be better than 12/99):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CSQ&lt;br /&gt;
+CSQ: 24,99&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Voice call &amp;quot;123456789&amp;quot; (; is important here to signify a voice call, otherwise a data call is tried and may fail if you don't have the right subscribe)&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
ATD&amp;quot;123456789&amp;quot;;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Terminate current call:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
ATH&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sending AT commands in shell scripts===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
GSM_DEVICE=/dev/ttyXXX&lt;br /&gt;
send_at_cmd()&lt;br /&gt;
{&lt;br /&gt;
        echo -e -n &amp;quot;$1\015&amp;quot; &amp;gt; $GSM_DEVICE&lt;br /&gt;
        sleep 1      # Adjustable ! (usleep)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
send_at_cmd AT&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* See ''target/test/test_gsm.sh'' for more details&lt;br /&gt;
&lt;br /&gt;
==Sending SMS==&lt;br /&gt;
* Supposing you are already connected to the modem with cu&lt;br /&gt;
* Check if you can send SMS with your SIM card (you should get +CMGF: (0,1))&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 AT+CMGF=?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* If OK, switch to SMS sending mode:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 AT+CMGF=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Write a message for 0661234567 phone number:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CMGW=&amp;quot;0661326109&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Hey ! How are you doing ??&lt;br /&gt;
&amp;gt;                    &amp;lt;-- Ctrl+z to end SMS here&lt;br /&gt;
&lt;br /&gt;
+CMGW: 8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* +CMGW give you the number of your SMS saved in SIM card or phone memory&lt;br /&gt;
* Then, at anytime, you can send your SMS with (pass previous number as parameter):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 AT+CMSS=8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tools to look at==&lt;br /&gt;
* http://www.developershome.com/sms/freeLibForSMS.asp&lt;br /&gt;
* http://www.gnokii.org/&lt;br /&gt;
* http://www.alamin.org/en/index.html&lt;br /&gt;
* http://www.gammu.org/wiki/index.php?title=Gammu:Main_Page&lt;br /&gt;
* http://gatling.ikk.sztaki.hu/~kissg/gsm/index.html&lt;br /&gt;
&lt;br /&gt;
==Data tranfers (EDGE/3G)==&lt;br /&gt;
&lt;br /&gt;
===PPP installation (done by default on APF51)===&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux26-menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Device Drivers  ---&amp;gt;&lt;br /&gt;
    [*] Network device support  ---&amp;gt;&lt;br /&gt;
        &amp;lt;M&amp;gt;   PPP (point-to-point protocol) support&lt;br /&gt;
        [ ]     PPP multilink support (EXPERIMENTAL)&lt;br /&gt;
        [ ]     PPP filtering&lt;br /&gt;
        &amp;lt;M&amp;gt;     PPP support for async serial ports&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP support for sync tty ports&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP Deflate compression&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP BSD-Compress compression&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP MPPE compression (encryption) (EXPERIMENTAL)&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP over Ethernet (EXPERIMENTAL)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Package Selection for the target  ---&amp;gt;&lt;br /&gt;
    Networking applications  ---&amp;gt;&lt;br /&gt;
        [*] pppd&lt;br /&gt;
        [ ]   filtering&lt;br /&gt;
        [ ]   radius&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux26 &amp;amp;&amp;amp; make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* reflash kernel &amp;amp; rootfs&lt;br /&gt;
&lt;br /&gt;
===PPP configuration===&lt;br /&gt;
{{Note|Following instructions are given for the French operator &amp;quot;Bouygtel&amp;quot; and may need to be ajusted accordingly, depending on your operator/country}}&lt;br /&gt;
&lt;br /&gt;
* Create a &amp;quot;chat&amp;quot; script that will be used to initiate MODEM dialup (here we use the &amp;quot;cat &amp;gt; xxxx &amp;lt;&amp;lt; EOF trick&amp;quot; to automatically create the file, but you can also manually edit it with ''vi'' or ''nano''):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# mkdir -p /etc/chatscripts/&lt;br /&gt;
# cat &amp;gt; /etc/chatscripts/bouygtel &amp;lt;&amp;lt;EOF&lt;br /&gt;
ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO ANSWER' ABORT DELAYED ABORT ERROR&lt;br /&gt;
'' AT&lt;br /&gt;
OK AT+IPR=115200&lt;br /&gt;
OK AT+CPIN=&amp;quot;0000&amp;quot;&lt;br /&gt;
OK AT+CFUN=1&lt;br /&gt;
OK AT+COPS?&lt;br /&gt;
OK AT+CSQ&lt;br /&gt;
OK 'AT+CGDCONT=1,&amp;quot;IP&amp;quot;,&amp;quot;ebouygtel.com&amp;quot;,&amp;quot;&amp;quot;,0,0'&lt;br /&gt;
OK 'AT&amp;amp;FE0Q0V1'&lt;br /&gt;
OK 'ATD*99#'&lt;br /&gt;
CONNECT &amp;quot;&amp;quot;&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Don't forget to set the baudrate (default: 115200) to have a stable communication between the modem and the processor&lt;br /&gt;
* Don't forget to update &amp;quot;AT+CPIN=&amp;quot; with your real PIN code and &amp;quot;AT+CGDCONT&amp;quot; and &amp;quot;ATD*99#&amp;quot; with your operator parameters.&lt;br /&gt;
* If you want to test your chat script (verbose mode -v, on console -s, with 5 second timeout by default for commands -t 5), then launch:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# /usr/sbin/chat -v -s -t 5 -f /etc/chatscripts/bouygtel &amp;gt; $GSM_DEVICE &amp;lt; $GSM_DEVICE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* If this test was OK, you may have to poweroff/poweron the MODEM to bring it to its initial state and go further.&lt;br /&gt;
&lt;br /&gt;
====For '''APF51'''====&lt;br /&gt;
* create the PPPd config files (''/etc/ppp/peers/bouygtel'' and ''/etc/ppp/options.ttyS0''):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# mkdir -p /etc/ppp/peers/&lt;br /&gt;
# cat &amp;gt; /etc/ppp/peers/bouygtel &amp;lt;&amp;lt;EOF&lt;br /&gt;
noauth&lt;br /&gt;
connect &amp;quot;/usr/sbin/chat -v -t 5 -f /etc/chatscripts/bouygtel&amp;quot;&lt;br /&gt;
debug&lt;br /&gt;
ttyS0&lt;br /&gt;
defaultroute&lt;br /&gt;
noipdefault&lt;br /&gt;
usepeerdns&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
# cat &amp;gt; /etc/ppp/options.ttyS0 &amp;lt;&amp;lt;EOF&lt;br /&gt;
115200&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====For '''APF27'''====&lt;br /&gt;
{{Note| Check if /dev/ttySMX1 exists, if not create it with :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
mknod /dev/ttySMX1 c 204 42&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
* create the PPPd config files (''/etc/ppp/peers/bouygtel'' and ''/etc/ppp/options.ttySMX1''):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# mkdir -p /etc/ppp/peers/&lt;br /&gt;
# cat &amp;gt; /etc/ppp/peers/bouygtel &amp;lt;&amp;lt;EOF&lt;br /&gt;
noauth&lt;br /&gt;
connect &amp;quot;/usr/sbin/chat -v -t 5 -f /etc/chatscripts/bouygtel&amp;quot;&lt;br /&gt;
debug&lt;br /&gt;
ttySMX1&lt;br /&gt;
defaultroute&lt;br /&gt;
noipdefault&lt;br /&gt;
usepeerdns&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
# cat &amp;gt; /etc/ppp/options.ttySMX1 &amp;lt;&amp;lt;EOF&lt;br /&gt;
115200&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PPP Usage===&lt;br /&gt;
* Load PPP module:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# modprobe ppp          (APF27)&lt;br /&gt;
or&lt;br /&gt;
# modprobe ppp_async    (APF51)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Setup serial port name depending on your platform (''/dev/ttyS0'' on APF51, ''/dev/ttySMX1'' on APF27)&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# export GSM_DEVICE=/dev/ttyS0&lt;br /&gt;
or&lt;br /&gt;
# export GSM_DEVICE=/dev/ttySMX1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Launch the beast:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# pppd $GSM_DEVICE 115200 call bouygtel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Test===&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# ping www.google.fr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Troubleshots ===&lt;br /&gt;
* Might be needed after a successful IP setup:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# cp /etc/ppp/resolv.conf /etc/resolv.conf&lt;br /&gt;
# route add default ppp0     (due to defaultroute option in ppp ?)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To see what happened after having launched ''pppd'' or ''chat'':&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# tail -f /var/log/messages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==GSM Muxing==&lt;br /&gt;
===Why ?===&lt;br /&gt;
* By default AT commands usage is single threaded, ie only one program can open MODEM serial port and send AT commands at a given time. However it could be interesting to be able to send multiple AT commands from multiple programs at the same time, for example in order to: have a PPP link, send SMS and monitor network signal quality.&lt;br /&gt;
* This can be done by a &amp;quot;GSM mux&amp;quot;, if your MODEM support the GSM 07.10 muxing norm (which is the case with our HiLo modules).&lt;br /&gt;
===Build gsmmux===&lt;br /&gt;
* To build GSM mux (if not already done):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Package Selection for the target  ---&amp;gt;&lt;br /&gt;
    Hardware handling  ---&amp;gt;&lt;br /&gt;
        [*] gsmmux&lt;br /&gt;
              Version to use (sagem)  ---&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Use it===&lt;br /&gt;
* If you have access to Sagem's version (you will get as much as virtual serial port as times you pass ''/dev/ptmx'' to the daemon):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# gsmMuxd -p $GSM_DEVICE -b 115200 -x /dev/ptmx /dev/ptmx /dev/ptmx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Virtual serial ports will be created in ''/dev/pts/'':&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
/dev/pts/0 /dev/pts/1 /dev/pts/2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* to know how ''/dev/ptmx'' &amp;amp; ''/dev/pts/x'' is working: [http://linux.die.net/man/4/ptmx]&lt;br /&gt;
* If you have telnet or SSH sessions running ''/dev/pts/0'' may already be used ans so virtual serial ports will be allocated from ''/dev/pts/1'', etc...&lt;br /&gt;
&lt;br /&gt;
===Going further===&lt;br /&gt;
* In recent Linux kernels, there is also a driver to hanlde GSM muxing: n_gsm&lt;br /&gt;
* People wanting to do a &amp;quot;real&amp;quot; phone can take a look at [http://ofono.org/documentation ofono]&lt;br /&gt;
&lt;br /&gt;
==SMS using SMS server tools 3==&lt;br /&gt;
simple AT commands can be used to sent SMS. If you need more flexibility or advanced management of your SMS, you can use SMS Server Tools 3.&lt;br /&gt;
SMS Server Tools 3 is a SMS Gateway software which can send and receive short messages through GSM modems and mobile phones.&lt;br /&gt;
&lt;br /&gt;
===Build SMS Server Tools3===&lt;br /&gt;
* To build SMS Server Tools 3:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Package Selection for the target  ---&amp;gt;&lt;br /&gt;
    Hardware handling  ---&amp;gt;&lt;br /&gt;
        [*] SMS Server Tools3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
The SMS server can be configured by using a configuration file (smsd.conf) located on the target in the /etc/smsd directory.&lt;br /&gt;
The following parameters have to be verified:&lt;br /&gt;
* device: uart port used to communicate with the modem. If GSMUX is used, then this parameter is of form /dev/pts/x where is x is the number of the virtual port&lt;br /&gt;
* baudrate: baudrate of the uart port&lt;br /&gt;
* rtscts: must be yes&lt;br /&gt;
* incoming: yes if you want to receive SMS&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
start the sms deamon:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
smsd -c /etc/smsd/smsd.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then put a SMS file in the /var/spool/outgoing directory. Once placed a SMS will be sent.&lt;br /&gt;
Incoming SMS can be read in the /var/spool/incoming directory.&lt;br /&gt;
Reports and logs are also generated.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://support.sagemcom.com/site/modele_fax.php?page=produit&amp;amp;numero_type=22&amp;amp;produit=877 HiLo 3G documentation at Sagem]&lt;br /&gt;
* [http://www.libelium.com/tienda/catalog/images/arduino/AT_Commands.pdf HiLo AT Commands]&lt;br /&gt;
* [http://www.developershome.com/sms/ SMS tutorial]&lt;br /&gt;
* http://wiki.openmoko.org/wiki/Neo_1973_and_Neo_FreeRunner_gsm_modem&lt;br /&gt;
* [http://www.anotherurl.com/library/at_test.htm AT Test commands]&lt;br /&gt;
* http://www.gsm-modem.de/gsm-faq.html&lt;br /&gt;
* [http://www.technologuepro.com/gsm/commande_at.htm Les commandes AT]&lt;br /&gt;
* [http://smstools3.kekekasvi.com SMS Server Tools 3]&lt;br /&gt;
&lt;br /&gt;
[[Category:Wireless]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=GSM/GPRS&amp;diff=11426</id>
		<title>GSM/GPRS</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=GSM/GPRS&amp;diff=11426"/>
				<updated>2012-11-19T12:57:42Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will summarize informations to use the GSM/GPRS/3G module of the [[Wireless_extension_board|APF27Wireless board]] and the [[APF51Dev]] (optional).&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
GSM/GPRS are generally driven through the RS-232 bus. AT commands are used to dialog with the module.&lt;br /&gt;
* GSM MODEM of the [[Wireless_extension_board|APF27Wireless extension board (APW)]] is connected to the UART2 (/dev/ttySMX1) of the [[APF27]].&lt;br /&gt;
* GSM/3G MODEM of the [[APF51Dev]] is connected to the i.MX processor through an UART implemented in the FPGA. So the corresponding bitfile has to loaded before trying to access the MODEM.&lt;br /&gt;
Both are using a Sagem's Hilo module. Hilo AT commands can be found [http://www.libelium.com/tienda/catalog/images/arduino/AT_Commands.pdf here]&lt;br /&gt;
&lt;br /&gt;
==Linux configuration (APF27Dev only)==&lt;br /&gt;
* Linux will have to be configured in order to tell that an APW is connected to your [[APF27Dev]]:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux26-menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
System Type  ---&amp;gt;&lt;br /&gt;
    Freescale MXC Implementations  ---&amp;gt;&lt;br /&gt;
            ...&lt;br /&gt;
            Extension board (Wireless (APW))  ---&amp;gt;&lt;br /&gt;
       [*] GSM/GPRS Modem (NEW)&lt;br /&gt;
       [ ] Bluetooth &amp;amp; WiFi module (NEW)&lt;br /&gt;
       [ ] CSI (Camera) pass-through (NEW)&lt;br /&gt;
       [ ] GPS module (NEW)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux26&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* reflash you Linux kernel&lt;br /&gt;
&lt;br /&gt;
==Configure serial port==&lt;br /&gt;
====APF27====&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# export GSM_DEVICE=/dev/ttySMX1              (or /dev/ttymxc1 on recent kernels)&lt;br /&gt;
# stty -F $GSM_DEVICE raw -echo -echoe -echok 115200&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====APF51Dev====&lt;br /&gt;
	&lt;br /&gt;
{{Note|Don't forget to put &amp;quot;Wireless&amp;quot; J42 jumper (near microSD connector) '''AND''' power on FPGA Bank 3 (with corresponding J39 jumper).}}&lt;br /&gt;
* On APF51Dev, GSM/3G module is accessed through serial ports synthetized in APF51's FPGA. So we have to load it first. (Needed dual UARTs FPGA firmware can be found under armadeus-4.0 distribution in ''firmware/pod_scripts'' directory, with the [[POD]] script needed to regenerate it, and is by default installed in rootfs).&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# load_fpga /lib/firmware/fpga/apf51_gsm_gps_firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Once firmware loaded, drivers related to FPGA can be used :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# modprobe irq_ocore&lt;br /&gt;
# modprobe 8250&lt;br /&gt;
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled&lt;br /&gt;
# modprobe twin_uarts_irq_mng&lt;br /&gt;
# modprobe twin_uarts_16750&lt;br /&gt;
serial8250.0: ttyS0 at MMIO 0xb8000020 (irq = 320) is a TI16750&lt;br /&gt;
serial8250.0: ttyS1 at MMIO 0xb8000040 (irq = 321) is a TI16750&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Bring MODEM out of reset state (POK_IN/PWON pin, connected to [[APF51_PMIC#GPIO|PMIC GPIO6]]):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# modprobe wm831x-gpio&lt;br /&gt;
# echo 245 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
# echo out &amp;gt; /sys/class/gpio/gpio245/direction&lt;br /&gt;
# echo 1 &amp;gt; /sys/class/gpio/gpio245/value&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Configure serial port:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# ls /dev/ttyS*&lt;br /&gt;
/dev/ttyS0  /dev/ttyS1  /dev/ttyS2  /dev/ttyS3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* If the /dev/ttyS[0-1] files don't exist, create it/them with ''mknod'' :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# mknod /dev/ttyS0 c 4 64&lt;br /&gt;
# mknod /dev/ttyS1 c 4 65&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# export GSM_DEVICE=/dev/ttyS0&lt;br /&gt;
# stty -F $GSM_DEVICE -echo -echoe -echok 115200&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Basic Usage==&lt;br /&gt;
===Sending AT commands &amp;quot;manually&amp;quot;===&lt;br /&gt;
* Sending AT commands with ''minicom'' utility (one of the command coming with [[busybox]]):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# minicom $GSM_DEVICE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
( To exit ''minocom'' you will have to type '''&amp;lt;CTRL-x&amp;gt;''' )&lt;br /&gt;
* Check module presence:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
ATI3&lt;br /&gt;
SAGEM HiC,A.005.00&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note| If no echo are printed on serial console: you can't see what you're typing. In that case, to reactivate the echo, use:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
ATE1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note| By default, the module starts in auto baudrate. This mays result in loss of communication with baud rate higher than 19200 bauds. To avoid problems, the baud rate has to be fixed (here to 115200 bauds):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+IPR=115200&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
* Get constructor name:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CGMI&lt;br /&gt;
SAGEM&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Get model name:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CGMM&lt;br /&gt;
HILO GPRS&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Enter PIN code (here 0000). '''!! Use your own and beware that you will only get 3 tries !!:'''&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CPIN=&amp;quot;0000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Check PIN code status:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CPIN?&lt;br /&gt;
+CPIN: READY&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Note|Don't launch further AT commands if PIN code wasn't entered successfully}}&lt;br /&gt;
&lt;br /&gt;
* Check module status (0 Ready, 1 Unavailable, 2 Status unknown, 3 Ringing, 4 Call in progress, 5 Asleep):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CPAS&lt;br /&gt;
+CPAS: 0&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Get Indicator control (&amp;lt;battchg&amp;gt;[0-4],&amp;lt;signal&amp;gt;[0-4],&amp;lt;service&amp;gt;0/1,&amp;lt;message&amp;gt;0/1,&amp;lt;call&amp;gt;0/1,&amp;lt;smsfull&amp;gt;0/1):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CIND?&lt;br /&gt;
+CIND: 0,4,1,0,0,0,1&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Get signal quality (should be better than 12/99):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CSQ&lt;br /&gt;
+CSQ: 24,99&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Voice call &amp;quot;123456789&amp;quot; (; is important here to signify a voice call, otherwise a data call is tried and may fail if you don't have the right subscribe)&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
ATD&amp;quot;123456789&amp;quot;;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Terminate current call:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
ATH&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sending AT commands in shell scripts===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
GSM_DEVICE=/dev/ttyXXX&lt;br /&gt;
send_at_cmd()&lt;br /&gt;
{&lt;br /&gt;
        echo -e -n &amp;quot;$1\015&amp;quot; &amp;gt; $GSM_DEVICE&lt;br /&gt;
        sleep 1      # Adjustable ! (usleep)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
send_at_cmd AT&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* See ''target/test/test_gsm.sh'' for more details&lt;br /&gt;
&lt;br /&gt;
==Sending SMS==&lt;br /&gt;
* Supposing you are already connected to the modem with cu&lt;br /&gt;
* Check if you can send SMS with your SIM card (you should get +CMGF: (0,1))&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 AT+CMGF=?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* If OK, switch to SMS sending mode:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 AT+CMGF=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Write a message for 0661234567 phone number:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CMGW=&amp;quot;0661326109&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Hey ! How are you doing ??&lt;br /&gt;
&amp;gt;                    &amp;lt;-- Ctrl+z to end SMS here&lt;br /&gt;
&lt;br /&gt;
+CMGW: 8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* +CMGW give you the number of your SMS saved in SIM card or phone memory&lt;br /&gt;
* Then, at anytime, you can send your SMS with (pass previous number as parameter):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 AT+CMSS=8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tools to look at==&lt;br /&gt;
* http://www.developershome.com/sms/freeLibForSMS.asp&lt;br /&gt;
* http://www.gnokii.org/&lt;br /&gt;
* http://www.alamin.org/en/index.html&lt;br /&gt;
* http://www.gammu.org/wiki/index.php?title=Gammu:Main_Page&lt;br /&gt;
* http://gatling.ikk.sztaki.hu/~kissg/gsm/index.html&lt;br /&gt;
&lt;br /&gt;
==Data tranfers (EDGE/3G)==&lt;br /&gt;
&lt;br /&gt;
===PPP installation (done by default on APF51)===&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux26-menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Device Drivers  ---&amp;gt;&lt;br /&gt;
    [*] Network device support  ---&amp;gt;&lt;br /&gt;
        &amp;lt;M&amp;gt;   PPP (point-to-point protocol) support&lt;br /&gt;
        [ ]     PPP multilink support (EXPERIMENTAL)&lt;br /&gt;
        [ ]     PPP filtering&lt;br /&gt;
        &amp;lt;M&amp;gt;     PPP support for async serial ports&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP support for sync tty ports&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP Deflate compression&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP BSD-Compress compression&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP MPPE compression (encryption) (EXPERIMENTAL)&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP over Ethernet (EXPERIMENTAL)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Package Selection for the target  ---&amp;gt;&lt;br /&gt;
    Networking applications  ---&amp;gt;&lt;br /&gt;
        [*] pppd&lt;br /&gt;
        [ ]   filtering&lt;br /&gt;
        [ ]   radius&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux26 &amp;amp;&amp;amp; make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* reflash kernel &amp;amp; rootfs&lt;br /&gt;
&lt;br /&gt;
===PPP configuration===&lt;br /&gt;
{{Note|Following instructions are given for the French operator &amp;quot;Bouygtel&amp;quot; and may need to be ajusted accordingly, depending on your operator/country}}&lt;br /&gt;
&lt;br /&gt;
* Create a &amp;quot;chat&amp;quot; script that will be used to initiate MODEM dialup (here we use the &amp;quot;cat &amp;gt; xxxx &amp;lt;&amp;lt; EOF trick&amp;quot; to automatically create the file, but you can also manually edit it with ''vi'' or ''nano''):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# mkdir -p /etc/chatscripts/&lt;br /&gt;
# cat &amp;gt; /etc/chatscripts/bouygtel &amp;lt;&amp;lt;EOF&lt;br /&gt;
ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO ANSWER' ABORT DELAYED ABORT ERROR&lt;br /&gt;
'' AT&lt;br /&gt;
OK AT+IPR=115200&lt;br /&gt;
OK AT+CPIN=&amp;quot;0000&amp;quot;&lt;br /&gt;
OK AT+CFUN=1&lt;br /&gt;
OK AT+COPS?&lt;br /&gt;
OK AT+CSQ&lt;br /&gt;
OK 'AT+CGDCONT=1,&amp;quot;IP&amp;quot;,&amp;quot;ebouygtel.com&amp;quot;,&amp;quot;&amp;quot;,0,0'&lt;br /&gt;
OK 'AT&amp;amp;FE0Q0V1'&lt;br /&gt;
OK 'ATD*99#'&lt;br /&gt;
CONNECT &amp;quot;&amp;quot;&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Don't forget to set the baudrate (default: 115200) to have a stable communication between the modem and the processor&lt;br /&gt;
* Don't forget to update &amp;quot;AT+CPIN=&amp;quot; with your real PIN code and &amp;quot;AT+CGDCONT&amp;quot; and &amp;quot;ATD*99#&amp;quot; with your operator parameters.&lt;br /&gt;
* If you want to test your chat script (verbose mode -v, on console -s, with 5 second timeout by default for commands -t 5), then launch:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# /usr/sbin/chat -v -s -t 5 -f /etc/chatscripts/bouygtel &amp;gt; $GSM_DEVICE &amp;lt; $GSM_DEVICE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* If this test was OK, you may have to poweroff/poweron the MODEM to bring it to its initial state and go further.&lt;br /&gt;
&lt;br /&gt;
====For '''APF51'''====&lt;br /&gt;
* create the PPPd config files (''/etc/ppp/peers/bouygtel'' and ''/etc/ppp/options.ttyS0''):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# mkdir -p /etc/ppp/peers/&lt;br /&gt;
# cat &amp;gt; /etc/ppp/peers/bouygtel &amp;lt;&amp;lt;EOF&lt;br /&gt;
noauth&lt;br /&gt;
connect &amp;quot;/usr/sbin/chat -v -t 5 -f /etc/chatscripts/bouygtel&amp;quot;&lt;br /&gt;
debug&lt;br /&gt;
ttyS0&lt;br /&gt;
defaultroute&lt;br /&gt;
noipdefault&lt;br /&gt;
usepeerdns&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
# cat &amp;gt; /etc/ppp/options.ttyS0 &amp;lt;&amp;lt;EOF&lt;br /&gt;
115200&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====For '''APF27'''====&lt;br /&gt;
{{Note| Check if /dev/ttySMX1 exists, if not create it with :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
mknod /dev/ttySMX1 c 204 42&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
* create the PPPd config files (''/etc/ppp/peers/bouygtel'' and ''/etc/ppp/options.ttySMX1''):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# mkdir -p /etc/ppp/peers/&lt;br /&gt;
# cat &amp;gt; /etc/ppp/peers/bouygtel &amp;lt;&amp;lt;EOF&lt;br /&gt;
noauth&lt;br /&gt;
connect &amp;quot;/usr/sbin/chat -v -t 5 -f /etc/chatscripts/bouygtel&amp;quot;&lt;br /&gt;
debug&lt;br /&gt;
ttySMX1&lt;br /&gt;
defaultroute&lt;br /&gt;
noipdefault&lt;br /&gt;
usepeerdns&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
# cat &amp;gt; /etc/ppp/options.ttySMX1 &amp;lt;&amp;lt;EOF&lt;br /&gt;
115200&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PPP Usage===&lt;br /&gt;
* Load PPP module:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# modprobe ppp          (APF27)&lt;br /&gt;
or&lt;br /&gt;
# modprobe ppp_async    (APF51)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Setup serial port name depending on your platform (''/dev/ttyS0'' on APF51, ''/dev/ttySMX1'' on APF27)&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# export GSM_DEVICE=/dev/ttyS0&lt;br /&gt;
or&lt;br /&gt;
# export GSM_DEVICE=/dev/ttySMX1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Launch the beast:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# pppd $GSM_DEVICE 115200 call bouygtel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Test===&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# ping www.google.fr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Troubleshots ===&lt;br /&gt;
* Might be needed after a successful IP setup:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# cp /etc/ppp/resolv.conf /etc/resolv.conf&lt;br /&gt;
# route add default ppp0     (due to defaultroute option in ppp ?)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To see what happened after having launched ''pppd'' or ''chat'':&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# tail -f /var/log/messages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==GSM Muxing==&lt;br /&gt;
===Why ?===&lt;br /&gt;
* By default AT commands usage is single threaded, ie only one program can open MODEM serial port and send AT commands at a given time. However it could be interesting to be able to send multiple AT commands from multiple programs at the same time, for example in order to: have a PPP link, send SMS and monitor network signal quality.&lt;br /&gt;
* This can be done by a &amp;quot;GSM mux&amp;quot;, if your MODEM support the GSM 07.10 muxing norm (which is the case with our HiLo modules).&lt;br /&gt;
===Build gsmmux===&lt;br /&gt;
* To build GSM mux (if not already done):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Package Selection for the target  ---&amp;gt;&lt;br /&gt;
    Hardware handling  ---&amp;gt;&lt;br /&gt;
        [*] gsmmux&lt;br /&gt;
              Version to use (sagem)  ---&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Use it===&lt;br /&gt;
* If you have access to Sagem's version (you will get as much as virtual serial port as times you pass ''/dev/ptmx'' to the daemon):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# gsmMuxd -p $GSM_DEVICE -b 115200 -x /dev/ptmx /dev/ptmx /dev/ptmx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Virtual serial ports will be created in ''/dev/pts/'':&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
/dev/pts/0 /dev/pts/1 /dev/pts/2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* to know how ''/dev/ptmx'' &amp;amp; ''/dev/pts/x'' is working: [http://linux.die.net/man/4/ptmx]&lt;br /&gt;
* If you have telnet or SSH sessions running ''/dev/pts/0'' may already be used ans so virtual serial ports will be allocated from ''/dev/pts/1'', etc...&lt;br /&gt;
&lt;br /&gt;
===Going further===&lt;br /&gt;
* In recent Linux kernels, there is also a driver to hanlde GSM muxing: n_gsm&lt;br /&gt;
* People wanting to do a &amp;quot;real&amp;quot; phone can take a look at [http://ofono.org/documentation ofono]&lt;br /&gt;
&lt;br /&gt;
==SMS using SMS server tools 3==&lt;br /&gt;
simple AT commands can be used to sent SMS. If you need more flexibility or advanced management of your SMS, you can use SMS Server Tools 3.&lt;br /&gt;
SMS Server Tools 3 is a SMS Gateway software which can send and receive short messages through GSM modems and mobile phones.&lt;br /&gt;
&lt;br /&gt;
===Build SMS Server Tools3===&lt;br /&gt;
* To build SMS Server Tools 3:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Package Selection for the target  ---&amp;gt;&lt;br /&gt;
    Hardware handling  ---&amp;gt;&lt;br /&gt;
        [*] SMS Server Tools3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
The SMS server can be configured by using a configuration file (smsd.conf) located on the target in the /etc/smsd directory.&lt;br /&gt;
The following parameters have to be verified:&lt;br /&gt;
* device: uart port used to communicate with the modem. If GSMUX is used, then this parameter is of form /dev/pts/x where is x is the number of the virtual port&lt;br /&gt;
* baudrate: baudrate of the uart port&lt;br /&gt;
* rtscts: must be yes&lt;br /&gt;
* incoming: yes if you want to receive SMS&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
start the sms deamon:&lt;br /&gt;
smsd -c /etc/smsd/smsd.conf&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://support.sagemcom.com/site/modele_fax.php?page=produit&amp;amp;numero_type=22&amp;amp;produit=877 HiLo 3G documentation at Sagem]&lt;br /&gt;
* [http://www.libelium.com/tienda/catalog/images/arduino/AT_Commands.pdf HiLo AT Commands]&lt;br /&gt;
* [http://www.developershome.com/sms/ SMS tutorial]&lt;br /&gt;
* http://wiki.openmoko.org/wiki/Neo_1973_and_Neo_FreeRunner_gsm_modem&lt;br /&gt;
* [http://www.anotherurl.com/library/at_test.htm AT Test commands]&lt;br /&gt;
* http://www.gsm-modem.de/gsm-faq.html&lt;br /&gt;
* [http://www.technologuepro.com/gsm/commande_at.htm Les commandes AT]&lt;br /&gt;
* [http://smstools3.kekekasvi.com SMS Server Tools 3]&lt;br /&gt;
&lt;br /&gt;
[[Category:Wireless]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=GSM/GPRS&amp;diff=11425</id>
		<title>GSM/GPRS</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=GSM/GPRS&amp;diff=11425"/>
				<updated>2012-11-19T12:52:48Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will summarize informations to use the GSM/GPRS/3G module of the [[Wireless_extension_board|APF27Wireless board]] and the [[APF51Dev]] (optional).&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
GSM/GPRS are generally driven through the RS-232 bus. AT commands are used to dialog with the module.&lt;br /&gt;
* GSM MODEM of the [[Wireless_extension_board|APF27Wireless extension board (APW)]] is connected to the UART2 (/dev/ttySMX1) of the [[APF27]].&lt;br /&gt;
* GSM/3G MODEM of the [[APF51Dev]] is connected to the i.MX processor through an UART implemented in the FPGA. So the corresponding bitfile has to loaded before trying to access the MODEM.&lt;br /&gt;
Both are using a Sagem's Hilo module. Hilo AT commands can be found [http://www.libelium.com/tienda/catalog/images/arduino/AT_Commands.pdf here]&lt;br /&gt;
&lt;br /&gt;
==Linux configuration (APF27Dev only)==&lt;br /&gt;
* Linux will have to be configured in order to tell that an APW is connected to your [[APF27Dev]]:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux26-menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
System Type  ---&amp;gt;&lt;br /&gt;
    Freescale MXC Implementations  ---&amp;gt;&lt;br /&gt;
            ...&lt;br /&gt;
            Extension board (Wireless (APW))  ---&amp;gt;&lt;br /&gt;
       [*] GSM/GPRS Modem (NEW)&lt;br /&gt;
       [ ] Bluetooth &amp;amp; WiFi module (NEW)&lt;br /&gt;
       [ ] CSI (Camera) pass-through (NEW)&lt;br /&gt;
       [ ] GPS module (NEW)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux26&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* reflash you Linux kernel&lt;br /&gt;
&lt;br /&gt;
==Configure serial port==&lt;br /&gt;
====APF27====&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# export GSM_DEVICE=/dev/ttySMX1              (or /dev/ttymxc1 on recent kernels)&lt;br /&gt;
# stty -F $GSM_DEVICE raw -echo -echoe -echok 115200&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====APF51Dev====&lt;br /&gt;
	&lt;br /&gt;
{{Note|Don't forget to put &amp;quot;Wireless&amp;quot; J42 jumper (near microSD connector) '''AND''' power on FPGA Bank 3 (with corresponding J39 jumper).}}&lt;br /&gt;
* On APF51Dev, GSM/3G module is accessed through serial ports synthetized in APF51's FPGA. So we have to load it first. (Needed dual UARTs FPGA firmware can be found under armadeus-4.0 distribution in ''firmware/pod_scripts'' directory, with the [[POD]] script needed to regenerate it, and is by default installed in rootfs).&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# load_fpga /lib/firmware/fpga/apf51_gsm_gps_firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Once firmware loaded, drivers related to FPGA can be used :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# modprobe irq_ocore&lt;br /&gt;
# modprobe 8250&lt;br /&gt;
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled&lt;br /&gt;
# modprobe twin_uarts_irq_mng&lt;br /&gt;
# modprobe twin_uarts_16750&lt;br /&gt;
serial8250.0: ttyS0 at MMIO 0xb8000020 (irq = 320) is a TI16750&lt;br /&gt;
serial8250.0: ttyS1 at MMIO 0xb8000040 (irq = 321) is a TI16750&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Bring MODEM out of reset state (POK_IN/PWON pin, connected to [[APF51_PMIC#GPIO|PMIC GPIO6]]):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# modprobe wm831x-gpio&lt;br /&gt;
# echo 245 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
# echo out &amp;gt; /sys/class/gpio/gpio245/direction&lt;br /&gt;
# echo 1 &amp;gt; /sys/class/gpio/gpio245/value&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Configure serial port:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# ls /dev/ttyS*&lt;br /&gt;
/dev/ttyS0  /dev/ttyS1  /dev/ttyS2  /dev/ttyS3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* If the /dev/ttyS[0-1] files don't exist, create it/them with ''mknod'' :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# mknod /dev/ttyS0 c 4 64&lt;br /&gt;
# mknod /dev/ttyS1 c 4 65&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# export GSM_DEVICE=/dev/ttyS0&lt;br /&gt;
# stty -F $GSM_DEVICE -echo -echoe -echok 115200&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Basic Usage==&lt;br /&gt;
===Sending AT commands &amp;quot;manually&amp;quot;===&lt;br /&gt;
* Sending AT commands with ''minicom'' utility (one of the command coming with [[busybox]]):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# minicom $GSM_DEVICE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
( To exit ''minocom'' you will have to type '''&amp;lt;CTRL-x&amp;gt;''' )&lt;br /&gt;
* Check module presence:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
ATI3&lt;br /&gt;
SAGEM HiC,A.005.00&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note| If no echo are printed on serial console: you can't see what you're typing. In that case, to reactivate the echo, use:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
ATE1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note| By default, the module starts in auto baudrate. This mays result in loss of communication with baud rate higher than 19200 bauds. To avoid problems, the baud rate has to be fixed (here to 115200 bauds):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+IPR=115200&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
* Get constructor name:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CGMI&lt;br /&gt;
SAGEM&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Get model name:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CGMM&lt;br /&gt;
HILO GPRS&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Enter PIN code (here 0000). '''!! Use your own and beware that you will only get 3 tries !!:'''&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CPIN=&amp;quot;0000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Check PIN code status:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CPIN?&lt;br /&gt;
+CPIN: READY&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Note|Don't launch further AT commands if PIN code wasn't entered successfully}}&lt;br /&gt;
&lt;br /&gt;
* Check module status (0 Ready, 1 Unavailable, 2 Status unknown, 3 Ringing, 4 Call in progress, 5 Asleep):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CPAS&lt;br /&gt;
+CPAS: 0&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Get Indicator control (&amp;lt;battchg&amp;gt;[0-4],&amp;lt;signal&amp;gt;[0-4],&amp;lt;service&amp;gt;0/1,&amp;lt;message&amp;gt;0/1,&amp;lt;call&amp;gt;0/1,&amp;lt;smsfull&amp;gt;0/1):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CIND?&lt;br /&gt;
+CIND: 0,4,1,0,0,0,1&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Get signal quality (should be better than 12/99):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CSQ&lt;br /&gt;
+CSQ: 24,99&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Voice call &amp;quot;123456789&amp;quot; (; is important here to signify a voice call, otherwise a data call is tried and may fail if you don't have the right subscribe)&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
ATD&amp;quot;123456789&amp;quot;;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Terminate current call:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
ATH&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sending AT commands in shell scripts===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
GSM_DEVICE=/dev/ttyXXX&lt;br /&gt;
send_at_cmd()&lt;br /&gt;
{&lt;br /&gt;
        echo -e -n &amp;quot;$1\015&amp;quot; &amp;gt; $GSM_DEVICE&lt;br /&gt;
        sleep 1      # Adjustable ! (usleep)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
send_at_cmd AT&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* See ''target/test/test_gsm.sh'' for more details&lt;br /&gt;
&lt;br /&gt;
==Sending SMS==&lt;br /&gt;
* Supposing you are already connected to the modem with cu&lt;br /&gt;
* Check if you can send SMS with your SIM card (you should get +CMGF: (0,1))&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 AT+CMGF=?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* If OK, switch to SMS sending mode:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 AT+CMGF=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Write a message for 0661234567 phone number:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CMGW=&amp;quot;0661326109&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Hey ! How are you doing ??&lt;br /&gt;
&amp;gt;                    &amp;lt;-- Ctrl+z to end SMS here&lt;br /&gt;
&lt;br /&gt;
+CMGW: 8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* +CMGW give you the number of your SMS saved in SIM card or phone memory&lt;br /&gt;
* Then, at anytime, you can send your SMS with (pass previous number as parameter):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 AT+CMSS=8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tools to look at==&lt;br /&gt;
* http://www.developershome.com/sms/freeLibForSMS.asp&lt;br /&gt;
* http://www.gnokii.org/&lt;br /&gt;
* http://www.alamin.org/en/index.html&lt;br /&gt;
* http://www.gammu.org/wiki/index.php?title=Gammu:Main_Page&lt;br /&gt;
* http://gatling.ikk.sztaki.hu/~kissg/gsm/index.html&lt;br /&gt;
&lt;br /&gt;
==Data tranfers (EDGE/3G)==&lt;br /&gt;
&lt;br /&gt;
===PPP installation (done by default on APF51)===&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux26-menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Device Drivers  ---&amp;gt;&lt;br /&gt;
    [*] Network device support  ---&amp;gt;&lt;br /&gt;
        &amp;lt;M&amp;gt;   PPP (point-to-point protocol) support&lt;br /&gt;
        [ ]     PPP multilink support (EXPERIMENTAL)&lt;br /&gt;
        [ ]     PPP filtering&lt;br /&gt;
        &amp;lt;M&amp;gt;     PPP support for async serial ports&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP support for sync tty ports&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP Deflate compression&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP BSD-Compress compression&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP MPPE compression (encryption) (EXPERIMENTAL)&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP over Ethernet (EXPERIMENTAL)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Package Selection for the target  ---&amp;gt;&lt;br /&gt;
    Networking applications  ---&amp;gt;&lt;br /&gt;
        [*] pppd&lt;br /&gt;
        [ ]   filtering&lt;br /&gt;
        [ ]   radius&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux26 &amp;amp;&amp;amp; make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* reflash kernel &amp;amp; rootfs&lt;br /&gt;
&lt;br /&gt;
===PPP configuration===&lt;br /&gt;
{{Note|Following instructions are given for the French operator &amp;quot;Bouygtel&amp;quot; and may need to be ajusted accordingly, depending on your operator/country}}&lt;br /&gt;
&lt;br /&gt;
* Create a &amp;quot;chat&amp;quot; script that will be used to initiate MODEM dialup (here we use the &amp;quot;cat &amp;gt; xxxx &amp;lt;&amp;lt; EOF trick&amp;quot; to automatically create the file, but you can also manually edit it with ''vi'' or ''nano''):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# mkdir -p /etc/chatscripts/&lt;br /&gt;
# cat &amp;gt; /etc/chatscripts/bouygtel &amp;lt;&amp;lt;EOF&lt;br /&gt;
ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO ANSWER' ABORT DELAYED ABORT ERROR&lt;br /&gt;
'' AT&lt;br /&gt;
OK AT+IPR=115200&lt;br /&gt;
OK AT+CPIN=&amp;quot;0000&amp;quot;&lt;br /&gt;
OK AT+CFUN=1&lt;br /&gt;
OK AT+COPS?&lt;br /&gt;
OK AT+CSQ&lt;br /&gt;
OK 'AT+CGDCONT=1,&amp;quot;IP&amp;quot;,&amp;quot;ebouygtel.com&amp;quot;,&amp;quot;&amp;quot;,0,0'&lt;br /&gt;
OK 'AT&amp;amp;FE0Q0V1'&lt;br /&gt;
OK 'ATD*99#'&lt;br /&gt;
CONNECT &amp;quot;&amp;quot;&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Don't forget to set the baudrate (default: 115200) to have a stable communication between the modem and the processor&lt;br /&gt;
* Don't forget to update &amp;quot;AT+CPIN=&amp;quot; with your real PIN code and &amp;quot;AT+CGDCONT&amp;quot; and &amp;quot;ATD*99#&amp;quot; with your operator parameters.&lt;br /&gt;
* If you want to test your chat script (verbose mode -v, on console -s, with 5 second timeout by default for commands -t 5), then launch:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# /usr/sbin/chat -v -s -t 5 -f /etc/chatscripts/bouygtel &amp;gt; $GSM_DEVICE &amp;lt; $GSM_DEVICE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* If this test was OK, you may have to poweroff/poweron the MODEM to bring it to its initial state and go further.&lt;br /&gt;
&lt;br /&gt;
====For '''APF51'''====&lt;br /&gt;
* create the PPPd config files (''/etc/ppp/peers/bouygtel'' and ''/etc/ppp/options.ttyS0''):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# mkdir -p /etc/ppp/peers/&lt;br /&gt;
# cat &amp;gt; /etc/ppp/peers/bouygtel &amp;lt;&amp;lt;EOF&lt;br /&gt;
noauth&lt;br /&gt;
connect &amp;quot;/usr/sbin/chat -v -t 5 -f /etc/chatscripts/bouygtel&amp;quot;&lt;br /&gt;
debug&lt;br /&gt;
ttyS0&lt;br /&gt;
defaultroute&lt;br /&gt;
noipdefault&lt;br /&gt;
usepeerdns&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
# cat &amp;gt; /etc/ppp/options.ttyS0 &amp;lt;&amp;lt;EOF&lt;br /&gt;
115200&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====For '''APF27'''====&lt;br /&gt;
{{Note| Check if /dev/ttySMX1 exists, if not create it with :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
mknod /dev/ttySMX1 c 204 42&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
* create the PPPd config files (''/etc/ppp/peers/bouygtel'' and ''/etc/ppp/options.ttySMX1''):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# mkdir -p /etc/ppp/peers/&lt;br /&gt;
# cat &amp;gt; /etc/ppp/peers/bouygtel &amp;lt;&amp;lt;EOF&lt;br /&gt;
noauth&lt;br /&gt;
connect &amp;quot;/usr/sbin/chat -v -t 5 -f /etc/chatscripts/bouygtel&amp;quot;&lt;br /&gt;
debug&lt;br /&gt;
ttySMX1&lt;br /&gt;
defaultroute&lt;br /&gt;
noipdefault&lt;br /&gt;
usepeerdns&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
# cat &amp;gt; /etc/ppp/options.ttySMX1 &amp;lt;&amp;lt;EOF&lt;br /&gt;
115200&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PPP Usage===&lt;br /&gt;
* Load PPP module:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# modprobe ppp          (APF27)&lt;br /&gt;
or&lt;br /&gt;
# modprobe ppp_async    (APF51)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Setup serial port name depending on your platform (''/dev/ttyS0'' on APF51, ''/dev/ttySMX1'' on APF27)&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# export GSM_DEVICE=/dev/ttyS0&lt;br /&gt;
or&lt;br /&gt;
# export GSM_DEVICE=/dev/ttySMX1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Launch the beast:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# pppd $GSM_DEVICE 115200 call bouygtel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Test===&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# ping www.google.fr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Troubleshots ===&lt;br /&gt;
* Might be needed after a successful IP setup:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# cp /etc/ppp/resolv.conf /etc/resolv.conf&lt;br /&gt;
# route add default ppp0     (due to defaultroute option in ppp ?)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To see what happened after having launched ''pppd'' or ''chat'':&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# tail -f /var/log/messages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==GSM Muxing==&lt;br /&gt;
===Why ?===&lt;br /&gt;
* By default AT commands usage is single threaded, ie only one program can open MODEM serial port and send AT commands at a given time. However it could be interesting to be able to send multiple AT commands from multiple programs at the same time, for example in order to: have a PPP link, send SMS and monitor network signal quality.&lt;br /&gt;
* This can be done by a &amp;quot;GSM mux&amp;quot;, if your MODEM support the GSM 07.10 muxing norm (which is the case with our HiLo modules).&lt;br /&gt;
===Build gsmmux===&lt;br /&gt;
* To build GSM mux (if not already done):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Package Selection for the target  ---&amp;gt;&lt;br /&gt;
    Hardware handling  ---&amp;gt;&lt;br /&gt;
        [*] gsmmux&lt;br /&gt;
              Version to use (sagem)  ---&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Use it===&lt;br /&gt;
* If you have access to Sagem's version (you will get as much as virtual serial port as times you pass ''/dev/ptmx'' to the daemon):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# gsmMuxd -p $GSM_DEVICE -b 115200 -x /dev/ptmx /dev/ptmx /dev/ptmx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Virtual serial ports will be created in ''/dev/pts/'':&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
/dev/pts/0 /dev/pts/1 /dev/pts/2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* to know how ''/dev/ptmx'' &amp;amp; ''/dev/pts/x'' is working: [http://linux.die.net/man/4/ptmx]&lt;br /&gt;
* If you have telnet or SSH sessions running ''/dev/pts/0'' may already be used ans so virtual serial ports will be allocated from ''/dev/pts/1'', etc...&lt;br /&gt;
&lt;br /&gt;
===Going further===&lt;br /&gt;
* In recent Linux kernels, there is also a driver to hanlde GSM muxing: n_gsm&lt;br /&gt;
* People wanting to do a &amp;quot;real&amp;quot; phone can take a look at [http://ofono.org/documentation ofono]&lt;br /&gt;
&lt;br /&gt;
==SMS using SMS server tools 3==&lt;br /&gt;
simple AT commands can be used to sent SMS. If you need more flexibility or advanced management of your SMS, you can use SMS Server Tools 3.&lt;br /&gt;
SMS Server Tools 3 is a SMS Gateway software which can send and receive short messages through GSM modems and mobile phones.&lt;br /&gt;
&lt;br /&gt;
===Build SMS Server Tools3===&lt;br /&gt;
* To build SMS Server Tools 3:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Package Selection for the target  ---&amp;gt;&lt;br /&gt;
    Hardware handling  ---&amp;gt;&lt;br /&gt;
        [*] SMS Server Tools3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
The SMS server can be configured by using a configuration file (smsd.conf) located on the target in the /etc/smsd directory.&lt;br /&gt;
The following parameters have to be verified:&lt;br /&gt;
* device: uart port used to communicate with the modem. If GSMUX is used, then this parameter is of form /dev/pts/x where is x is the number of the virtual port&lt;br /&gt;
* baudrate: baudrate of the uart port&lt;br /&gt;
* rtscts: must be yes&lt;br /&gt;
* incoming: yes if you want to receive SMS&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://support.sagemcom.com/site/modele_fax.php?page=produit&amp;amp;numero_type=22&amp;amp;produit=877 HiLo 3G documentation at Sagem]&lt;br /&gt;
* [http://www.libelium.com/tienda/catalog/images/arduino/AT_Commands.pdf HiLo AT Commands]&lt;br /&gt;
* [http://www.developershome.com/sms/ SMS tutorial]&lt;br /&gt;
* http://wiki.openmoko.org/wiki/Neo_1973_and_Neo_FreeRunner_gsm_modem&lt;br /&gt;
* [http://www.anotherurl.com/library/at_test.htm AT Test commands]&lt;br /&gt;
* http://www.gsm-modem.de/gsm-faq.html&lt;br /&gt;
* [http://www.technologuepro.com/gsm/commande_at.htm Les commandes AT]&lt;br /&gt;
* [http://smstools3.kekekasvi.com SMS Server Tools 3]&lt;br /&gt;
&lt;br /&gt;
[[Category:Wireless]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=GSM/GPRS&amp;diff=11424</id>
		<title>GSM/GPRS</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=GSM/GPRS&amp;diff=11424"/>
				<updated>2012-11-19T12:42:19Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* Build SMS Server Tools3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will summarize informations to use the GSM/GPRS/3G module of the [[Wireless_extension_board|APF27Wireless board]] and the [[APF51Dev]] (optional).&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
GSM/GPRS are generally driven through the RS-232 bus. AT commands are used to dialog with the module.&lt;br /&gt;
* GSM MODEM of the [[Wireless_extension_board|APF27Wireless extension board (APW)]] is connected to the UART2 (/dev/ttySMX1) of the [[APF27]].&lt;br /&gt;
* GSM/3G MODEM of the [[APF51Dev]] is connected to the i.MX processor through an UART implemented in the FPGA. So the corresponding bitfile has to loaded before trying to access the MODEM.&lt;br /&gt;
Both are using a Sagem's Hilo module. Hilo AT commands can be found [http://www.libelium.com/tienda/catalog/images/arduino/AT_Commands.pdf here]&lt;br /&gt;
&lt;br /&gt;
==Linux configuration (APF27Dev only)==&lt;br /&gt;
* Linux will have to be configured in order to tell that an APW is connected to your [[APF27Dev]]:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux26-menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
System Type  ---&amp;gt;&lt;br /&gt;
    Freescale MXC Implementations  ---&amp;gt;&lt;br /&gt;
            ...&lt;br /&gt;
            Extension board (Wireless (APW))  ---&amp;gt;&lt;br /&gt;
       [*] GSM/GPRS Modem (NEW)&lt;br /&gt;
       [ ] Bluetooth &amp;amp; WiFi module (NEW)&lt;br /&gt;
       [ ] CSI (Camera) pass-through (NEW)&lt;br /&gt;
       [ ] GPS module (NEW)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux26&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* reflash you Linux kernel&lt;br /&gt;
&lt;br /&gt;
==Configure serial port==&lt;br /&gt;
====APF27====&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# export GSM_DEVICE=/dev/ttySMX1              (or /dev/ttymxc1 on recent kernels)&lt;br /&gt;
# stty -F $GSM_DEVICE raw -echo -echoe -echok 115200&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====APF51Dev====&lt;br /&gt;
	&lt;br /&gt;
{{Note|Don't forget to put &amp;quot;Wireless&amp;quot; J42 jumper (near microSD connector) '''AND''' power on FPGA Bank 3 (with corresponding J39 jumper).}}&lt;br /&gt;
* On APF51Dev, GSM/3G module is accessed through serial ports synthetized in APF51's FPGA. So we have to load it first. (Needed dual UARTs FPGA firmware can be found under armadeus-4.0 distribution in ''firmware/pod_scripts'' directory, with the [[POD]] script needed to regenerate it, and is by default installed in rootfs).&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# load_fpga /lib/firmware/fpga/apf51_gsm_gps_firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Once firmware loaded, drivers related to FPGA can be used :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# modprobe irq_ocore&lt;br /&gt;
# modprobe 8250&lt;br /&gt;
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled&lt;br /&gt;
# modprobe twin_uarts_irq_mng&lt;br /&gt;
# modprobe twin_uarts_16750&lt;br /&gt;
serial8250.0: ttyS0 at MMIO 0xb8000020 (irq = 320) is a TI16750&lt;br /&gt;
serial8250.0: ttyS1 at MMIO 0xb8000040 (irq = 321) is a TI16750&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Bring MODEM out of reset state (POK_IN/PWON pin, connected to [[APF51_PMIC#GPIO|PMIC GPIO6]]):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# modprobe wm831x-gpio&lt;br /&gt;
# echo 245 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
# echo out &amp;gt; /sys/class/gpio/gpio245/direction&lt;br /&gt;
# echo 1 &amp;gt; /sys/class/gpio/gpio245/value&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Configure serial port:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# ls /dev/ttyS*&lt;br /&gt;
/dev/ttyS0  /dev/ttyS1  /dev/ttyS2  /dev/ttyS3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* If the /dev/ttyS[0-1] files don't exist, create it/them with ''mknod'' :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# mknod /dev/ttyS0 c 4 64&lt;br /&gt;
# mknod /dev/ttyS1 c 4 65&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# export GSM_DEVICE=/dev/ttyS0&lt;br /&gt;
# stty -F $GSM_DEVICE -echo -echoe -echok 115200&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Basic Usage==&lt;br /&gt;
===Sending AT commands &amp;quot;manually&amp;quot;===&lt;br /&gt;
* Sending AT commands with ''minicom'' utility (one of the command coming with [[busybox]]):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# minicom $GSM_DEVICE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
( To exit ''minocom'' you will have to type '''&amp;lt;CTRL-x&amp;gt;''' )&lt;br /&gt;
* Check module presence:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
ATI3&lt;br /&gt;
SAGEM HiC,A.005.00&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note| If no echo are printed on serial console: you can't see what you're typing. In that case, to reactivate the echo, use:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
ATE1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note| By default, the module starts in auto baudrate. This mays result in loss of communication with baud rate higher than 19200 bauds. To avoid problems, the baud rate has to be fixed (here to 115200 bauds):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+IPR=115200&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
* Get constructor name:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CGMI&lt;br /&gt;
SAGEM&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Get model name:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CGMM&lt;br /&gt;
HILO GPRS&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Enter PIN code (here 0000). '''!! Use your own and beware that you will only get 3 tries !!:'''&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CPIN=&amp;quot;0000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Check PIN code status:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CPIN?&lt;br /&gt;
+CPIN: READY&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Note|Don't launch further AT commands if PIN code wasn't entered successfully}}&lt;br /&gt;
&lt;br /&gt;
* Check module status (0 Ready, 1 Unavailable, 2 Status unknown, 3 Ringing, 4 Call in progress, 5 Asleep):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CPAS&lt;br /&gt;
+CPAS: 0&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Get Indicator control (&amp;lt;battchg&amp;gt;[0-4],&amp;lt;signal&amp;gt;[0-4],&amp;lt;service&amp;gt;0/1,&amp;lt;message&amp;gt;0/1,&amp;lt;call&amp;gt;0/1,&amp;lt;smsfull&amp;gt;0/1):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CIND?&lt;br /&gt;
+CIND: 0,4,1,0,0,0,1&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Get signal quality (should be better than 12/99):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CSQ&lt;br /&gt;
+CSQ: 24,99&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Voice call &amp;quot;123456789&amp;quot; (; is important here to signify a voice call, otherwise a data call is tried and may fail if you don't have the right subscribe)&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
ATD&amp;quot;123456789&amp;quot;;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Terminate current call:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
ATH&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sending AT commands in shell scripts===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
GSM_DEVICE=/dev/ttyXXX&lt;br /&gt;
send_at_cmd()&lt;br /&gt;
{&lt;br /&gt;
        echo -e -n &amp;quot;$1\015&amp;quot; &amp;gt; $GSM_DEVICE&lt;br /&gt;
        sleep 1      # Adjustable ! (usleep)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
send_at_cmd AT&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* See ''target/test/test_gsm.sh'' for more details&lt;br /&gt;
&lt;br /&gt;
==Sending SMS==&lt;br /&gt;
* Supposing you are already connected to the modem with cu&lt;br /&gt;
* Check if you can send SMS with your SIM card (you should get +CMGF: (0,1))&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 AT+CMGF=?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* If OK, switch to SMS sending mode:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 AT+CMGF=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Write a message for 0661234567 phone number:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CMGW=&amp;quot;0661326109&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Hey ! How are you doing ??&lt;br /&gt;
&amp;gt;                    &amp;lt;-- Ctrl+z to end SMS here&lt;br /&gt;
&lt;br /&gt;
+CMGW: 8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* +CMGW give you the number of your SMS saved in SIM card or phone memory&lt;br /&gt;
* Then, at anytime, you can send your SMS with (pass previous number as parameter):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 AT+CMSS=8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tools to look at==&lt;br /&gt;
* http://www.developershome.com/sms/freeLibForSMS.asp&lt;br /&gt;
* http://www.gnokii.org/&lt;br /&gt;
* http://www.alamin.org/en/index.html&lt;br /&gt;
* http://www.gammu.org/wiki/index.php?title=Gammu:Main_Page&lt;br /&gt;
* http://gatling.ikk.sztaki.hu/~kissg/gsm/index.html&lt;br /&gt;
&lt;br /&gt;
==Data tranfers (EDGE/3G)==&lt;br /&gt;
&lt;br /&gt;
===PPP installation (done by default on APF51)===&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux26-menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Device Drivers  ---&amp;gt;&lt;br /&gt;
    [*] Network device support  ---&amp;gt;&lt;br /&gt;
        &amp;lt;M&amp;gt;   PPP (point-to-point protocol) support&lt;br /&gt;
        [ ]     PPP multilink support (EXPERIMENTAL)&lt;br /&gt;
        [ ]     PPP filtering&lt;br /&gt;
        &amp;lt;M&amp;gt;     PPP support for async serial ports&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP support for sync tty ports&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP Deflate compression&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP BSD-Compress compression&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP MPPE compression (encryption) (EXPERIMENTAL)&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP over Ethernet (EXPERIMENTAL)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Package Selection for the target  ---&amp;gt;&lt;br /&gt;
    Networking applications  ---&amp;gt;&lt;br /&gt;
        [*] pppd&lt;br /&gt;
        [ ]   filtering&lt;br /&gt;
        [ ]   radius&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux26 &amp;amp;&amp;amp; make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* reflash kernel &amp;amp; rootfs&lt;br /&gt;
&lt;br /&gt;
===PPP configuration===&lt;br /&gt;
{{Note|Following instructions are given for the French operator &amp;quot;Bouygtel&amp;quot; and may need to be ajusted accordingly, depending on your operator/country}}&lt;br /&gt;
&lt;br /&gt;
* Create a &amp;quot;chat&amp;quot; script that will be used to initiate MODEM dialup (here we use the &amp;quot;cat &amp;gt; xxxx &amp;lt;&amp;lt; EOF trick&amp;quot; to automatically create the file, but you can also manually edit it with ''vi'' or ''nano''):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# mkdir -p /etc/chatscripts/&lt;br /&gt;
# cat &amp;gt; /etc/chatscripts/bouygtel &amp;lt;&amp;lt;EOF&lt;br /&gt;
ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO ANSWER' ABORT DELAYED ABORT ERROR&lt;br /&gt;
'' AT&lt;br /&gt;
OK AT+IPR=115200&lt;br /&gt;
OK AT+CPIN=&amp;quot;0000&amp;quot;&lt;br /&gt;
OK AT+CFUN=1&lt;br /&gt;
OK AT+COPS?&lt;br /&gt;
OK AT+CSQ&lt;br /&gt;
OK 'AT+CGDCONT=1,&amp;quot;IP&amp;quot;,&amp;quot;ebouygtel.com&amp;quot;,&amp;quot;&amp;quot;,0,0'&lt;br /&gt;
OK 'AT&amp;amp;FE0Q0V1'&lt;br /&gt;
OK 'ATD*99#'&lt;br /&gt;
CONNECT &amp;quot;&amp;quot;&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Don't forget to set the baudrate (default: 115200) to have a stable communication between the modem and the processor&lt;br /&gt;
* Don't forget to update &amp;quot;AT+CPIN=&amp;quot; with your real PIN code and &amp;quot;AT+CGDCONT&amp;quot; and &amp;quot;ATD*99#&amp;quot; with your operator parameters.&lt;br /&gt;
* If you want to test your chat script (verbose mode -v, on console -s, with 5 second timeout by default for commands -t 5), then launch:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# /usr/sbin/chat -v -s -t 5 -f /etc/chatscripts/bouygtel &amp;gt; $GSM_DEVICE &amp;lt; $GSM_DEVICE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* If this test was OK, you may have to poweroff/poweron the MODEM to bring it to its initial state and go further.&lt;br /&gt;
&lt;br /&gt;
====For '''APF51'''====&lt;br /&gt;
* create the PPPd config files (''/etc/ppp/peers/bouygtel'' and ''/etc/ppp/options.ttyS0''):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# mkdir -p /etc/ppp/peers/&lt;br /&gt;
# cat &amp;gt; /etc/ppp/peers/bouygtel &amp;lt;&amp;lt;EOF&lt;br /&gt;
noauth&lt;br /&gt;
connect &amp;quot;/usr/sbin/chat -v -t 5 -f /etc/chatscripts/bouygtel&amp;quot;&lt;br /&gt;
debug&lt;br /&gt;
ttyS0&lt;br /&gt;
defaultroute&lt;br /&gt;
noipdefault&lt;br /&gt;
usepeerdns&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
# cat &amp;gt; /etc/ppp/options.ttyS0 &amp;lt;&amp;lt;EOF&lt;br /&gt;
115200&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====For '''APF27'''====&lt;br /&gt;
{{Note| Check if /dev/ttySMX1 exists, if not create it with :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
mknod /dev/ttySMX1 c 204 42&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
* create the PPPd config files (''/etc/ppp/peers/bouygtel'' and ''/etc/ppp/options.ttySMX1''):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# mkdir -p /etc/ppp/peers/&lt;br /&gt;
# cat &amp;gt; /etc/ppp/peers/bouygtel &amp;lt;&amp;lt;EOF&lt;br /&gt;
noauth&lt;br /&gt;
connect &amp;quot;/usr/sbin/chat -v -t 5 -f /etc/chatscripts/bouygtel&amp;quot;&lt;br /&gt;
debug&lt;br /&gt;
ttySMX1&lt;br /&gt;
defaultroute&lt;br /&gt;
noipdefault&lt;br /&gt;
usepeerdns&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
# cat &amp;gt; /etc/ppp/options.ttySMX1 &amp;lt;&amp;lt;EOF&lt;br /&gt;
115200&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PPP Usage===&lt;br /&gt;
* Load PPP module:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# modprobe ppp          (APF27)&lt;br /&gt;
or&lt;br /&gt;
# modprobe ppp_async    (APF51)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Setup serial port name depending on your platform (''/dev/ttyS0'' on APF51, ''/dev/ttySMX1'' on APF27)&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# export GSM_DEVICE=/dev/ttyS0&lt;br /&gt;
or&lt;br /&gt;
# export GSM_DEVICE=/dev/ttySMX1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Launch the beast:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# pppd $GSM_DEVICE 115200 call bouygtel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Test===&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# ping www.google.fr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Troubleshots ===&lt;br /&gt;
* Might be needed after a successful IP setup:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# cp /etc/ppp/resolv.conf /etc/resolv.conf&lt;br /&gt;
# route add default ppp0     (due to defaultroute option in ppp ?)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To see what happened after having launched ''pppd'' or ''chat'':&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# tail -f /var/log/messages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==GSM Muxing==&lt;br /&gt;
===Why ?===&lt;br /&gt;
* By default AT commands usage is single threaded, ie only one program can open MODEM serial port and send AT commands at a given time. However it could be interesting to be able to send multiple AT commands from multiple programs at the same time, for example in order to: have a PPP link, send SMS and monitor network signal quality.&lt;br /&gt;
* This can be done by a &amp;quot;GSM mux&amp;quot;, if your MODEM support the GSM 07.10 muxing norm (which is the case with our HiLo modules).&lt;br /&gt;
===Build gsmmux===&lt;br /&gt;
* To build GSM mux (if not already done):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Package Selection for the target  ---&amp;gt;&lt;br /&gt;
    Hardware handling  ---&amp;gt;&lt;br /&gt;
        [*] gsmmux&lt;br /&gt;
              Version to use (sagem)  ---&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Use it===&lt;br /&gt;
* If you have access to Sagem's version (you will get as much as virtual serial port as times you pass ''/dev/ptmx'' to the daemon):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# gsmMuxd -p $GSM_DEVICE -b 115200 -x /dev/ptmx /dev/ptmx /dev/ptmx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Virtual serial ports will be created in ''/dev/pts/'':&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
/dev/pts/0 /dev/pts/1 /dev/pts/2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* to know how ''/dev/ptmx'' &amp;amp; ''/dev/pts/x'' is working: [http://linux.die.net/man/4/ptmx]&lt;br /&gt;
* If you have telnet or SSH sessions running ''/dev/pts/0'' may already be used ans so virtual serial ports will be allocated from ''/dev/pts/1'', etc...&lt;br /&gt;
&lt;br /&gt;
===Going further===&lt;br /&gt;
* In recent Linux kernels, there is also a driver to hanlde GSM muxing: n_gsm&lt;br /&gt;
* People wanting to do a &amp;quot;real&amp;quot; phone can take a look at [http://ofono.org/documentation ofono]&lt;br /&gt;
&lt;br /&gt;
==SMS using SMS server tools 3==&lt;br /&gt;
simple AT commands can be used to sent SMS. If you need more flexibility or advanced management of your SMS, you can use SMS Server Tools 3.&lt;br /&gt;
SMS Server Tools 3 is a SMS Gateway software which can send and receive short messages through GSM modems and mobile phones.&lt;br /&gt;
&lt;br /&gt;
===Build SMS Server Tools3===&lt;br /&gt;
* To build SMS Server Tools 3:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Package Selection for the target  ---&amp;gt;&lt;br /&gt;
    Hardware handling  ---&amp;gt;&lt;br /&gt;
        [*] SMS Server Tools3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://support.sagemcom.com/site/modele_fax.php?page=produit&amp;amp;numero_type=22&amp;amp;produit=877 HiLo 3G documentation at Sagem]&lt;br /&gt;
* [http://www.libelium.com/tienda/catalog/images/arduino/AT_Commands.pdf HiLo AT Commands]&lt;br /&gt;
* [http://www.developershome.com/sms/ SMS tutorial]&lt;br /&gt;
* http://wiki.openmoko.org/wiki/Neo_1973_and_Neo_FreeRunner_gsm_modem&lt;br /&gt;
* [http://www.anotherurl.com/library/at_test.htm AT Test commands]&lt;br /&gt;
* http://www.gsm-modem.de/gsm-faq.html&lt;br /&gt;
* [http://www.technologuepro.com/gsm/commande_at.htm Les commandes AT]&lt;br /&gt;
* [http://smstools3.kekekasvi.com SMS Server Tools 3]&lt;br /&gt;
&lt;br /&gt;
[[Category:Wireless]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=GSM/GPRS&amp;diff=11423</id>
		<title>GSM/GPRS</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=GSM/GPRS&amp;diff=11423"/>
				<updated>2012-11-19T12:41:56Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will summarize informations to use the GSM/GPRS/3G module of the [[Wireless_extension_board|APF27Wireless board]] and the [[APF51Dev]] (optional).&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
GSM/GPRS are generally driven through the RS-232 bus. AT commands are used to dialog with the module.&lt;br /&gt;
* GSM MODEM of the [[Wireless_extension_board|APF27Wireless extension board (APW)]] is connected to the UART2 (/dev/ttySMX1) of the [[APF27]].&lt;br /&gt;
* GSM/3G MODEM of the [[APF51Dev]] is connected to the i.MX processor through an UART implemented in the FPGA. So the corresponding bitfile has to loaded before trying to access the MODEM.&lt;br /&gt;
Both are using a Sagem's Hilo module. Hilo AT commands can be found [http://www.libelium.com/tienda/catalog/images/arduino/AT_Commands.pdf here]&lt;br /&gt;
&lt;br /&gt;
==Linux configuration (APF27Dev only)==&lt;br /&gt;
* Linux will have to be configured in order to tell that an APW is connected to your [[APF27Dev]]:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux26-menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
System Type  ---&amp;gt;&lt;br /&gt;
    Freescale MXC Implementations  ---&amp;gt;&lt;br /&gt;
            ...&lt;br /&gt;
            Extension board (Wireless (APW))  ---&amp;gt;&lt;br /&gt;
       [*] GSM/GPRS Modem (NEW)&lt;br /&gt;
       [ ] Bluetooth &amp;amp; WiFi module (NEW)&lt;br /&gt;
       [ ] CSI (Camera) pass-through (NEW)&lt;br /&gt;
       [ ] GPS module (NEW)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux26&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* reflash you Linux kernel&lt;br /&gt;
&lt;br /&gt;
==Configure serial port==&lt;br /&gt;
====APF27====&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# export GSM_DEVICE=/dev/ttySMX1              (or /dev/ttymxc1 on recent kernels)&lt;br /&gt;
# stty -F $GSM_DEVICE raw -echo -echoe -echok 115200&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====APF51Dev====&lt;br /&gt;
	&lt;br /&gt;
{{Note|Don't forget to put &amp;quot;Wireless&amp;quot; J42 jumper (near microSD connector) '''AND''' power on FPGA Bank 3 (with corresponding J39 jumper).}}&lt;br /&gt;
* On APF51Dev, GSM/3G module is accessed through serial ports synthetized in APF51's FPGA. So we have to load it first. (Needed dual UARTs FPGA firmware can be found under armadeus-4.0 distribution in ''firmware/pod_scripts'' directory, with the [[POD]] script needed to regenerate it, and is by default installed in rootfs).&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# load_fpga /lib/firmware/fpga/apf51_gsm_gps_firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Once firmware loaded, drivers related to FPGA can be used :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# modprobe irq_ocore&lt;br /&gt;
# modprobe 8250&lt;br /&gt;
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled&lt;br /&gt;
# modprobe twin_uarts_irq_mng&lt;br /&gt;
# modprobe twin_uarts_16750&lt;br /&gt;
serial8250.0: ttyS0 at MMIO 0xb8000020 (irq = 320) is a TI16750&lt;br /&gt;
serial8250.0: ttyS1 at MMIO 0xb8000040 (irq = 321) is a TI16750&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Bring MODEM out of reset state (POK_IN/PWON pin, connected to [[APF51_PMIC#GPIO|PMIC GPIO6]]):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# modprobe wm831x-gpio&lt;br /&gt;
# echo 245 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
# echo out &amp;gt; /sys/class/gpio/gpio245/direction&lt;br /&gt;
# echo 1 &amp;gt; /sys/class/gpio/gpio245/value&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Configure serial port:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# ls /dev/ttyS*&lt;br /&gt;
/dev/ttyS0  /dev/ttyS1  /dev/ttyS2  /dev/ttyS3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* If the /dev/ttyS[0-1] files don't exist, create it/them with ''mknod'' :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# mknod /dev/ttyS0 c 4 64&lt;br /&gt;
# mknod /dev/ttyS1 c 4 65&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# export GSM_DEVICE=/dev/ttyS0&lt;br /&gt;
# stty -F $GSM_DEVICE -echo -echoe -echok 115200&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Basic Usage==&lt;br /&gt;
===Sending AT commands &amp;quot;manually&amp;quot;===&lt;br /&gt;
* Sending AT commands with ''minicom'' utility (one of the command coming with [[busybox]]):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# minicom $GSM_DEVICE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
( To exit ''minocom'' you will have to type '''&amp;lt;CTRL-x&amp;gt;''' )&lt;br /&gt;
* Check module presence:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
ATI3&lt;br /&gt;
SAGEM HiC,A.005.00&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note| If no echo are printed on serial console: you can't see what you're typing. In that case, to reactivate the echo, use:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
ATE1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note| By default, the module starts in auto baudrate. This mays result in loss of communication with baud rate higher than 19200 bauds. To avoid problems, the baud rate has to be fixed (here to 115200 bauds):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+IPR=115200&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
* Get constructor name:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CGMI&lt;br /&gt;
SAGEM&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Get model name:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CGMM&lt;br /&gt;
HILO GPRS&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Enter PIN code (here 0000). '''!! Use your own and beware that you will only get 3 tries !!:'''&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CPIN=&amp;quot;0000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Check PIN code status:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CPIN?&lt;br /&gt;
+CPIN: READY&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Note|Don't launch further AT commands if PIN code wasn't entered successfully}}&lt;br /&gt;
&lt;br /&gt;
* Check module status (0 Ready, 1 Unavailable, 2 Status unknown, 3 Ringing, 4 Call in progress, 5 Asleep):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CPAS&lt;br /&gt;
+CPAS: 0&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Get Indicator control (&amp;lt;battchg&amp;gt;[0-4],&amp;lt;signal&amp;gt;[0-4],&amp;lt;service&amp;gt;0/1,&amp;lt;message&amp;gt;0/1,&amp;lt;call&amp;gt;0/1,&amp;lt;smsfull&amp;gt;0/1):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CIND?&lt;br /&gt;
+CIND: 0,4,1,0,0,0,1&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Get signal quality (should be better than 12/99):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CSQ&lt;br /&gt;
+CSQ: 24,99&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Voice call &amp;quot;123456789&amp;quot; (; is important here to signify a voice call, otherwise a data call is tried and may fail if you don't have the right subscribe)&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
ATD&amp;quot;123456789&amp;quot;;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Terminate current call:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
ATH&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sending AT commands in shell scripts===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
GSM_DEVICE=/dev/ttyXXX&lt;br /&gt;
send_at_cmd()&lt;br /&gt;
{&lt;br /&gt;
        echo -e -n &amp;quot;$1\015&amp;quot; &amp;gt; $GSM_DEVICE&lt;br /&gt;
        sleep 1      # Adjustable ! (usleep)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
send_at_cmd AT&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* See ''target/test/test_gsm.sh'' for more details&lt;br /&gt;
&lt;br /&gt;
==Sending SMS==&lt;br /&gt;
* Supposing you are already connected to the modem with cu&lt;br /&gt;
* Check if you can send SMS with your SIM card (you should get +CMGF: (0,1))&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 AT+CMGF=?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* If OK, switch to SMS sending mode:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 AT+CMGF=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Write a message for 0661234567 phone number:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CMGW=&amp;quot;0661326109&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Hey ! How are you doing ??&lt;br /&gt;
&amp;gt;                    &amp;lt;-- Ctrl+z to end SMS here&lt;br /&gt;
&lt;br /&gt;
+CMGW: 8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* +CMGW give you the number of your SMS saved in SIM card or phone memory&lt;br /&gt;
* Then, at anytime, you can send your SMS with (pass previous number as parameter):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 AT+CMSS=8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tools to look at==&lt;br /&gt;
* http://www.developershome.com/sms/freeLibForSMS.asp&lt;br /&gt;
* http://www.gnokii.org/&lt;br /&gt;
* http://www.alamin.org/en/index.html&lt;br /&gt;
* http://www.gammu.org/wiki/index.php?title=Gammu:Main_Page&lt;br /&gt;
* http://gatling.ikk.sztaki.hu/~kissg/gsm/index.html&lt;br /&gt;
&lt;br /&gt;
==Data tranfers (EDGE/3G)==&lt;br /&gt;
&lt;br /&gt;
===PPP installation (done by default on APF51)===&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux26-menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Device Drivers  ---&amp;gt;&lt;br /&gt;
    [*] Network device support  ---&amp;gt;&lt;br /&gt;
        &amp;lt;M&amp;gt;   PPP (point-to-point protocol) support&lt;br /&gt;
        [ ]     PPP multilink support (EXPERIMENTAL)&lt;br /&gt;
        [ ]     PPP filtering&lt;br /&gt;
        &amp;lt;M&amp;gt;     PPP support for async serial ports&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP support for sync tty ports&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP Deflate compression&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP BSD-Compress compression&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP MPPE compression (encryption) (EXPERIMENTAL)&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP over Ethernet (EXPERIMENTAL)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Package Selection for the target  ---&amp;gt;&lt;br /&gt;
    Networking applications  ---&amp;gt;&lt;br /&gt;
        [*] pppd&lt;br /&gt;
        [ ]   filtering&lt;br /&gt;
        [ ]   radius&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux26 &amp;amp;&amp;amp; make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* reflash kernel &amp;amp; rootfs&lt;br /&gt;
&lt;br /&gt;
===PPP configuration===&lt;br /&gt;
{{Note|Following instructions are given for the French operator &amp;quot;Bouygtel&amp;quot; and may need to be ajusted accordingly, depending on your operator/country}}&lt;br /&gt;
&lt;br /&gt;
* Create a &amp;quot;chat&amp;quot; script that will be used to initiate MODEM dialup (here we use the &amp;quot;cat &amp;gt; xxxx &amp;lt;&amp;lt; EOF trick&amp;quot; to automatically create the file, but you can also manually edit it with ''vi'' or ''nano''):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# mkdir -p /etc/chatscripts/&lt;br /&gt;
# cat &amp;gt; /etc/chatscripts/bouygtel &amp;lt;&amp;lt;EOF&lt;br /&gt;
ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO ANSWER' ABORT DELAYED ABORT ERROR&lt;br /&gt;
'' AT&lt;br /&gt;
OK AT+IPR=115200&lt;br /&gt;
OK AT+CPIN=&amp;quot;0000&amp;quot;&lt;br /&gt;
OK AT+CFUN=1&lt;br /&gt;
OK AT+COPS?&lt;br /&gt;
OK AT+CSQ&lt;br /&gt;
OK 'AT+CGDCONT=1,&amp;quot;IP&amp;quot;,&amp;quot;ebouygtel.com&amp;quot;,&amp;quot;&amp;quot;,0,0'&lt;br /&gt;
OK 'AT&amp;amp;FE0Q0V1'&lt;br /&gt;
OK 'ATD*99#'&lt;br /&gt;
CONNECT &amp;quot;&amp;quot;&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Don't forget to set the baudrate (default: 115200) to have a stable communication between the modem and the processor&lt;br /&gt;
* Don't forget to update &amp;quot;AT+CPIN=&amp;quot; with your real PIN code and &amp;quot;AT+CGDCONT&amp;quot; and &amp;quot;ATD*99#&amp;quot; with your operator parameters.&lt;br /&gt;
* If you want to test your chat script (verbose mode -v, on console -s, with 5 second timeout by default for commands -t 5), then launch:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# /usr/sbin/chat -v -s -t 5 -f /etc/chatscripts/bouygtel &amp;gt; $GSM_DEVICE &amp;lt; $GSM_DEVICE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* If this test was OK, you may have to poweroff/poweron the MODEM to bring it to its initial state and go further.&lt;br /&gt;
&lt;br /&gt;
====For '''APF51'''====&lt;br /&gt;
* create the PPPd config files (''/etc/ppp/peers/bouygtel'' and ''/etc/ppp/options.ttyS0''):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# mkdir -p /etc/ppp/peers/&lt;br /&gt;
# cat &amp;gt; /etc/ppp/peers/bouygtel &amp;lt;&amp;lt;EOF&lt;br /&gt;
noauth&lt;br /&gt;
connect &amp;quot;/usr/sbin/chat -v -t 5 -f /etc/chatscripts/bouygtel&amp;quot;&lt;br /&gt;
debug&lt;br /&gt;
ttyS0&lt;br /&gt;
defaultroute&lt;br /&gt;
noipdefault&lt;br /&gt;
usepeerdns&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
# cat &amp;gt; /etc/ppp/options.ttyS0 &amp;lt;&amp;lt;EOF&lt;br /&gt;
115200&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====For '''APF27'''====&lt;br /&gt;
{{Note| Check if /dev/ttySMX1 exists, if not create it with :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
mknod /dev/ttySMX1 c 204 42&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
* create the PPPd config files (''/etc/ppp/peers/bouygtel'' and ''/etc/ppp/options.ttySMX1''):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# mkdir -p /etc/ppp/peers/&lt;br /&gt;
# cat &amp;gt; /etc/ppp/peers/bouygtel &amp;lt;&amp;lt;EOF&lt;br /&gt;
noauth&lt;br /&gt;
connect &amp;quot;/usr/sbin/chat -v -t 5 -f /etc/chatscripts/bouygtel&amp;quot;&lt;br /&gt;
debug&lt;br /&gt;
ttySMX1&lt;br /&gt;
defaultroute&lt;br /&gt;
noipdefault&lt;br /&gt;
usepeerdns&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
# cat &amp;gt; /etc/ppp/options.ttySMX1 &amp;lt;&amp;lt;EOF&lt;br /&gt;
115200&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PPP Usage===&lt;br /&gt;
* Load PPP module:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# modprobe ppp          (APF27)&lt;br /&gt;
or&lt;br /&gt;
# modprobe ppp_async    (APF51)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Setup serial port name depending on your platform (''/dev/ttyS0'' on APF51, ''/dev/ttySMX1'' on APF27)&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# export GSM_DEVICE=/dev/ttyS0&lt;br /&gt;
or&lt;br /&gt;
# export GSM_DEVICE=/dev/ttySMX1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Launch the beast:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# pppd $GSM_DEVICE 115200 call bouygtel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Test===&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# ping www.google.fr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Troubleshots ===&lt;br /&gt;
* Might be needed after a successful IP setup:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# cp /etc/ppp/resolv.conf /etc/resolv.conf&lt;br /&gt;
# route add default ppp0     (due to defaultroute option in ppp ?)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To see what happened after having launched ''pppd'' or ''chat'':&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# tail -f /var/log/messages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==GSM Muxing==&lt;br /&gt;
===Why ?===&lt;br /&gt;
* By default AT commands usage is single threaded, ie only one program can open MODEM serial port and send AT commands at a given time. However it could be interesting to be able to send multiple AT commands from multiple programs at the same time, for example in order to: have a PPP link, send SMS and monitor network signal quality.&lt;br /&gt;
* This can be done by a &amp;quot;GSM mux&amp;quot;, if your MODEM support the GSM 07.10 muxing norm (which is the case with our HiLo modules).&lt;br /&gt;
===Build gsmmux===&lt;br /&gt;
* To build GSM mux (if not already done):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Package Selection for the target  ---&amp;gt;&lt;br /&gt;
    Hardware handling  ---&amp;gt;&lt;br /&gt;
        [*] gsmmux&lt;br /&gt;
              Version to use (sagem)  ---&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Use it===&lt;br /&gt;
* If you have access to Sagem's version (you will get as much as virtual serial port as times you pass ''/dev/ptmx'' to the daemon):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# gsmMuxd -p $GSM_DEVICE -b 115200 -x /dev/ptmx /dev/ptmx /dev/ptmx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Virtual serial ports will be created in ''/dev/pts/'':&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
/dev/pts/0 /dev/pts/1 /dev/pts/2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* to know how ''/dev/ptmx'' &amp;amp; ''/dev/pts/x'' is working: [http://linux.die.net/man/4/ptmx]&lt;br /&gt;
* If you have telnet or SSH sessions running ''/dev/pts/0'' may already be used ans so virtual serial ports will be allocated from ''/dev/pts/1'', etc...&lt;br /&gt;
&lt;br /&gt;
===Going further===&lt;br /&gt;
* In recent Linux kernels, there is also a driver to hanlde GSM muxing: n_gsm&lt;br /&gt;
* People wanting to do a &amp;quot;real&amp;quot; phone can take a look at [http://ofono.org/documentation ofono]&lt;br /&gt;
&lt;br /&gt;
==SMS using SMS server tools 3==&lt;br /&gt;
simple AT commands can be used to sent SMS. If you need more flexibility or advanced management of your SMS, you can use SMS Server Tools 3.&lt;br /&gt;
SMS Server Tools 3 is a SMS Gateway software which can send and receive short messages through GSM modems and mobile phones.&lt;br /&gt;
&lt;br /&gt;
===Build SMS Server Tools3===&lt;br /&gt;
* To build SMS Server Tools 3:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Package Selection for the target  ---&amp;gt;&lt;br /&gt;
    Hardware handling  ---&amp;gt;&lt;br /&gt;
        [*] gsmmux&lt;br /&gt;
              Version to use (sagem)  ---&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://support.sagemcom.com/site/modele_fax.php?page=produit&amp;amp;numero_type=22&amp;amp;produit=877 HiLo 3G documentation at Sagem]&lt;br /&gt;
* [http://www.libelium.com/tienda/catalog/images/arduino/AT_Commands.pdf HiLo AT Commands]&lt;br /&gt;
* [http://www.developershome.com/sms/ SMS tutorial]&lt;br /&gt;
* http://wiki.openmoko.org/wiki/Neo_1973_and_Neo_FreeRunner_gsm_modem&lt;br /&gt;
* [http://www.anotherurl.com/library/at_test.htm AT Test commands]&lt;br /&gt;
* http://www.gsm-modem.de/gsm-faq.html&lt;br /&gt;
* [http://www.technologuepro.com/gsm/commande_at.htm Les commandes AT]&lt;br /&gt;
* [http://smstools3.kekekasvi.com SMS Server Tools 3]&lt;br /&gt;
&lt;br /&gt;
[[Category:Wireless]]&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=Armadeus_5.0_Troubleshots&amp;diff=11235</id>
		<title>Armadeus 5.0 Troubleshots</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=Armadeus_5.0_Troubleshots&amp;diff=11235"/>
				<updated>2012-08-28T07:53:07Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* TFT flickering&lt;br /&gt;
** This effect is due to the dynamic frequency scaling Linux feature which is activated by default. Please try this command: echo userspace &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor. If the problem is solved, the feature can be deactivated in Linux menuconfig: http://www.armadeus.com/wiki/index.php?title=Talk:USB_to_WiFi_adapter   (end of page)&lt;br /&gt;
&lt;br /&gt;
* USB random disconnection&lt;br /&gt;
** USB problems may appear due to the dynamic frequency scaling Linux feature which is activated by default. Please try this command: echo userspace &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor. If the problem is solved, the feature can be deactivated in Linux menuconfig: http://www.armadeus.com/wiki/index.php?title=Talk:USB_to_WiFi_adapter   (end of page)&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	<entry>
		<id>http://www.armadeus.org/wiki/index.php?title=SP_VISION&amp;diff=11234</id>
		<title>SP VISION</title>
		<link rel="alternate" type="text/html" href="http://www.armadeus.org/wiki/index.php?title=SP_VISION&amp;diff=11234"/>
				<updated>2012-08-20T16:38:33Z</updated>
		
		<summary type="html">&lt;p&gt;Salocin68: /* On the APF*_Dev */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
The SP_Vision board is an extension of [[APF27Dev]] and [[APF51Dev]] with a Spartan6 and two DDR. It is designed for real-time video processing.&lt;br /&gt;
&lt;br /&gt;
= Configure the sp_vision fpga =&lt;br /&gt;
&lt;br /&gt;
SP_Vision FPGA configuration is done through APF* FPGA, then to configure the SP_Vision FPGA you will need a configuration virtual component called ''sp_vision_configure'' under the APF*'s onboard FPGA.&lt;br /&gt;
This virtual component is available in [http://periphondemand.git.sourceforge.net/git/gitweb.cgi?p=periphondemand/periphondemand;a=tree;f=src/library/components/sp_vision_configure;h=babdb0b05178267c1a8d077b0a1c5737820dea0e;hb=HEAD POD library], but if you don't want to make special design just for configuration, a standard design is provided in armadeus tree.&lt;br /&gt;
&lt;br /&gt;
== On the APF*_Dev ==&lt;br /&gt;
&lt;br /&gt;
* First select the driver for sp_vision_configuraton under linux-menuconfig :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
[ ]$ make linux26-menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Device Drivers  ---&amp;gt;       &lt;br /&gt;
    Armadeus specific drivers  ---&amp;gt;&lt;br /&gt;
        FPGA Drivers   ---&amp;gt;&lt;br /&gt;
            [...]&lt;br /&gt;
            [*]   virtual components&lt;br /&gt;
            [...]&lt;br /&gt;
            [*]   Board designs&lt;br /&gt;
            [...]&lt;br /&gt;
            &amp;lt;M&amp;gt;     board driver for sp_vision fpga loader&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
[ ]$ make linux26&lt;br /&gt;
[...]&lt;br /&gt;
[ ]$ make&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The configuration bitstream can be found under the directory ''firmware/pod_scripts/'' and it's named '''apf27_spvision_loader.bit''' for APF27 and '''apf51_spvision_loader.bin''' for APF51. To configure the second (sp_vision) FPGA, first FPGA on APF* must be configured with this bitstream.&lt;br /&gt;
* Configure the first fpga (if you transfer files by nfs):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # modprobe fpgaloader&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
On APF27:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # load_fpga apf27_spvision_loader.bit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
On APF51:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # load_fpga apf51_spvision_loader.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Once the first FPGA configured, just do :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # modprobe sploader&lt;br /&gt;
 # modprobe sploader_prober&lt;br /&gt;
 # dd if=your_sp_vision_bitstream.bit of=/dev/sp_loader&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Communicate with sp_vision =&lt;br /&gt;
{{Under_Construction}}&lt;/div&gt;</summary>
		<author><name>Salocin68</name></author>	</entry>

	</feed>